doxy -> .h
authorraster <raster@7cbeb6ba-43b4-40fd-8cce-4c39aea84d33>
Fri, 8 Apr 2011 07:45:46 +0000 (07:45 +0000)
committerraster <raster@7cbeb6ba-43b4-40fd-8cce-4c39aea84d33>
Fri, 8 Apr 2011 07:45:46 +0000 (07:45 +0000)
git-svn-id: http://svn.enlightenment.org/svn/e/trunk/edje@58478 7cbeb6ba-43b4-40fd-8cce-4c39aea84d33

13 files changed:
doc/edje.dox.in
src/lib/Edje.h
src/lib/Edje_Edit.h
src/lib/edje_cache.c
src/lib/edje_edit.c
src/lib/edje_external.c
src/lib/edje_load.c
src/lib/edje_lua2.c
src/lib/edje_main.c
src/lib/edje_message_queue.c
src/lib/edje_program.c
src/lib/edje_smart.c
src/lib/edje_util.c

index 739a513..e69de29 100644 (file)
@@ -1,519 +0,0 @@
-/** 
-@file edje.dox
-@brief Edje Graphical Design Library
-These routines are used for Edje.
-*/
-
-/**
-
-@mainpage Edje Library Documentation
-@image html  e.png
-@version @PACKAGE_VERSION@
-@author Carsten Haitzler <raster@@rasterman.com>
-@author Tilman Sauerbeck (tilman at code-monkey de)
-@author ZigsMcKenzie <zigsmckenzie@@gmail.com>
-@author Cedric BAIL <cedric.bail@@free.fr>
-@author Brian Mattern <rephorm@@rephorm.com>
-@author Mathieu Taillefumier <mathieu.taillefumier@@free.fr>
-@author Tristan <blunderer@@gmail.com>
-@author Gustavo Lima Chaves <glima@@profusion.mobi>
-@author Bruno Dilly <bdilly@@profusion.mobi>
-@author Fabiano Fidêncio <fidencio@@profusion.mobi>
-@author Jihoon Kim <jihoon48.kim@@samsung.com>
-@author Tiago Falcão <tiago@@profusion.mobi>
-@author Davide Andreoli <dave@@gurumeditation.it>
-@author Sebastian Dransfeld <sd@@tango.flipp.net>
-@author Tom Hacohen <tom@@stosb.com>
-@author Aharon Hillel <a.hillel@@partner.samsung.com>
-@date 2003-2011
-
-
-
-
-
-
-
-
-
-
-@section intro What is Edje?
-
-Edje is a complex graphical design & layout library.
-
-It doesn't pretend to do containing and regular layout like a widget
-set, but it is the base for such components. Based on the requirements
-of Enlightenment 0.17, Edje should serve all the purposes of creating
-visual elements (borders of windows, buttons, scrollbars, etc.) and
-allow the designer the ability to animate, layout and control the look
-and feel of any program using Edje as its basic GUI constructor. This
-library allows for multiple collections of Layouts in one file,
-sharing the same image and font database and thus allowing a whole
-theme to be conveniently packaged into 1 file and shipped around.
-
-Edje separates the layout and behavior logic. Edje files ship with an
-image and font database, used by all the parts in all the collections
-to source graphical data. It has a directory of logical part names
-pointing to the part collection entry ID in the file (thus allowing
-for multiple logical names to point to the same part collection,
-allowing for the sharing of data between display elements). Each part
-collection consists of a list of visual parts, as well as a list of
-programs. A program is a conditionally run program that if a
-particular event occurs (a button is pressed, a mouse enters or leaves
-a part) will trigger an action that may affect other parts. In this
-way a part collection can be "programmed" via its file as to hilight
-buttons when the mouse passes over them or show hidden parts when a
-button is clicked somewhere etc. The actions performed in changing
-from one state to another are also allowed to transition over a period
-of time, allowing animation. Programs and animations can be run in
-"parallel".
-
-This separation and simplistic event driven style of programming can produce
-almost any look and feel one could want for basic visual elements. Anything
-more complex is likely the domain of an application or widget set that may
-use Edje as a convenient way of being able to configure parts of the display.
-
-For details of Edje's history, see the \ref history section.
-
-
-
-
-
-
-
-
-@section requirements What does Edje require?
-
-Edje requires fairly little on your system. to use the Edje runtime library
-you need:
-
-  - Evas (library)
-  - Ecore (library)
-  - Eet (library)
-  - Embryo (library)
-  - Eina (library)
-
-Evas needs to be build with the JPEG, PNG and EET image loaders enabled at a
-minimum. Edje uses X for the test program, so you will need the SOFTWARE_X11
-engine built into Evas as well. A suggested configure list is below in the
-"cheat sheet" for Evas.
-
-Ecore needs the ECORE, ECORE_EVAS and ECORE_X modules built at a minimum.
-It's suggested to build all the Ecore modules, but the ECORE_FB modules is
-definitely optional.
-
-Eina, Eet and Embryo have no interesting options so just build and
-install them.
-
-It is suggested right now that you get the latest SVN versions of the
-required libraries. You also need to build them in the right order and make
-sure the right options are enabled in the required libraries. Here is a
-quick "cheat sheet" on how to get started.
-
-@verbatim
-1. You need Eina from the trunk svn branch.
-
-  svn co http://svn.enlightenment.org/svn/e/trunk/eina/
-  cd eina
-  ./autogen.sh
-  ./configure
-  make
-  sudo make install
-  cd
-
-2. You need Eet from the trunk svn branch.
-
-  svn co http://svn.enlightenment.org/svn/e/trunk/eet/
-  cd eet
-  ./autogen.sh
-  ./configure
-  make
-  sudo make install
-  cd
-
-3. You need Evas from the trunk svn branch built with eet, png and jpeg loader support.
-
-  svn co http://svn.enlightenment.org/svn/e/trunk/evas/
-  cd evas
-  ./autogen.sh
-  ./configure --enable-image-loader-eet --enable-font-loader-eet --enable-image-loader-jpeg --enable-image-loader-png --enable-buffer
-  make
-  sudo make install
-  cd
-
-4. You need Ecore from the trunk svn branch built with ecore-x and ecore-evas.
-
-  svn co http://svn.enlightenment.org/svn/e/trunk/ecore/
-  cd ecore
-  ./autogen.sh
-  ./configure --enable-ecore-x --enable-ecore-evas --enable-ecore-evas-software-buffer --enable-ecore-evas-software-x11 --enable-ecore-evas-software-buffer
-  make
-  sudo make install
-  cd
-
-5. You need embryo from the trunk svn branch
-
-  svn co http://svn.enlightenment.org/svn/e/trunk/embryo/
-  cd embryo
-  ./autogen.sh
-  ./configure
-  make
-  sudo make install
-  cd
-
-@endverbatim
-
-
-
-
-
-
-
-
-
-@section compiling How to compile and test Edje
-
-Now you need to compile and install Edje.
-
-@verbatim
-  ./configure
-  make
-  sudo make install
-@endverbatim
-
-You now have it installed and ready to go, but you need input
-data. There are lots of examples in SVN, the best one is
-Enlightenment's own theme file.
-
-You may use different tools to edit and view the generated ".edj"
-files, for instance:
-
-  - editje (http://trac.enlightenment.org/e/wiki/Editje)
-  - edje_viewer (http://trac.enlightenment.org/e/wiki/Edje_Viewer)
-
-
-
-
-
-
-
-
-
-
-@section details So how does this all work?
-
-Edje internally holds a geometry state machine and state graph of what is
-visible, not, where, at what size, with what colors etc. This is described
-to Edje from an Edje .edj file containing this information. These files can
-be produced by using edje_cc to take a text file (a .edc file) and "compile"
-an output .edj file that contains this information, images and any other
-data needed.
-
-The application using Edje will then create an object in its Evas
-canvas and set the bundle file to use, specifying the @b group name to
-use. Edje will load such information and create all the required
-children objects with the specified properties as defined in each @b
-part of the given group. See the following annotated example:
-
-@code
-/*
- * edje_example.c:
- *
- *    Creates a window using Ecore_Evas and inside it an object with
- *    the edje group "my_group" from file "edje_example.edj".
- *
- *     Requires edje_example.edj in the current folder.
- *
- * Compile:
- *    gcc -o edje_example edje_example.c `pkg-config --cflags --libs eina evas ecore ecore-evas edje`
- */
-
-#include <Eina.h>
-#include <Evas.h>
-#include <Ecore.h>
-#include <Ecore_Evas.h>
-#include <Edje.h>
-
-#define WIDTH 320
-#define HEIGHT 240
-
-static Evas_Object *create_my_group(Evas *canvas, const char *text)
-{
-   Evas_Object *edje;
-
-   /* create the edje object where we'll load our file */
-   edje = edje_object_add(canvas);
-   if (!edje)
-     {
-       EINA_LOG_CRIT("could not create edje object!");
-       return NULL;
-     }
-
-   /* load our desired file */
-   if (!edje_object_file_set(edje, "edje_example.edj", "my_group"))
-     {
-       int err = edje_object_load_error_get(edje);
-       const char *errmsg = edje_load_error_str(err);
-       EINA_LOG_ERR("could not load 'my_group' from edje_example.edj: %s",
-                    errmsg);
-
-       evas_object_del(edje);
-       return NULL;
-     }
-
-   if (text)
-     {
-       /* this is will replace the string used by "text" part in "my_group" */
-       if (!edje_object_part_text_set(edje, "text", text))
-         {
-            EINA_LOG_WARN("could not set the text. "
-                          "Maybe part 'text' does not exist?");
-         }
-     }
-
-   /* operate on edje as any other object */
-   evas_object_move(edje, 0, 0);
-   evas_object_resize(edje, WIDTH, HEIGHT);
-   evas_object_show(edje);
-   return edje;
-}
-
-int main(int argc, char *argv[])
-{
-   Ecore_Evas *window;
-   Evas *canvas;
-   Evas_Object *edje;
-   const char *text;
-
-   eina_init();
-   evas_init();
-   ecore_init();
-   ecore_evas_init();
-   edje_init();
-
-   window = ecore_evas_new(NULL, 0, 0, WIDTH, HEIGHT, NULL);
-   if (!window)
-     {
-       EINA_LOG_CRIT("could not create window.");
-       return -1;
-     }
-   canvas = ecore_evas_get(window);
-
-   text = (argc > 1) ? argv[1] : NULL;
-
-   edje = create_my_group(canvas, text);
-   if (!edje)
-     return -2;
-
-   ecore_evas_show(window);
-   ecore_main_loop_begin();
-
-   evas_object_del(edje);
-   ecore_evas_free(window);
-
-   return 0;
-}
-@endcode
-
-It requires the following source Edje file:
-@code
-// compile: edje_cc edje_example.edc
-collections {
-   group {
-      name: "my_group"; // must be the same as in edje_example.c
-
-      parts {
-         part {
-            name: "background";
-            type: RECT; // plain boring rectangle
-            mouse_events: 0; // we don't need any mouse event on the background
-
-            // just one state "default"
-            description {
-               state: "default" 0.0; // must always exist
-               color: 255 255 255 255; // white
-
-               // define part coordinates:
-
-               rel1 { // top-left point at (0, 0) [WIDTH * 0 + 0, HEIGHT * 0 + 0]
-                  relative: 0.0 0.0;
-                  offset: 0 0;
-               }
-               rel2 { // bottom-right point at (WIDTH * 1.0 - 1, HEIGHT * 1.0 - 1)
-                  relative: 1.0 1.0;
-                  offset: -1 -1;
-               }
-            }
-         }
-
-         part {
-            name: "text";
-            type: TEXT;
-            mouse_events: 1; // we want to change the color on mouse-over
-
-            // 2 states, one "default" and another "over" to be used
-            // on mouse over effect
-
-            description {
-               state: "default" 0.0;
-               color: 255 0 0 255; // red
-
-               // define part coordinates:
-
-               rel1 { // top-left at (WIDTH * 0.1 + 5, HEIGHT * 0.2 + 10)
-                  relative: 0.1 0.2;
-                  offset: 5 10;
-               }
-               rel2 { // bottom-right at (WIDTH * 0.9 - 6, HEIGHT * 0.8 - 11)
-                  relative: 0.9 0.8;
-                  offset: -6 -11;
-               }
-
-               // define text specific state details
-               text {
-                  font: "Sans"; /* using fontconfig name! */
-                  size: 10;
-                  text: "hello world";
-               }
-            }
-
-            description {
-               state: "over" 0.0;
-               inherit: "default" 0.0; // copy everything from "default" at this point
-
-               color: 0 255 0 255; // override color, now it is green
-            }
-         }
-
-         // do programs to change color on text mouse in/out (over)
-         programs {
-            program {
-               // what triggers this program:
-               signal: "mouse,in";
-               source: "text";
-
-               // what this program does:
-               action: STATE_SET "over" 0.0;
-               target: "text";
-
-               // do the state-set in a nice interpolation animation
-               // using linear time in 0.1 second
-               transition: LINEAR 0.1;
-            }
-
-            program {
-               // what triggers this program:
-               signal: "mouse,out";
-               source: "text";
-
-               // what this program does:
-               action: STATE_SET "default" 0.0;
-               target: "text";
-
-               // do the state-set in a nice interpolation animation
-               // using linear time in 0.1 second
-               transition: LINEAR 0.1;
-            }
-         }
-      }
-   }
-}
-@endcode
-
-
-One should save these files as edje_example.c and edje_example.edc then:
-@verbatim
-gcc -o edje_example edje_example.c `pkg-config --cflags --libs eina evas ecore ecore-evas edje`
-edje_cc edje_example.edc
-
-./edje_example "some text"
-@endverbatim
-
-Although simple, this example illustrates that animations and state
-changes can be done from the Edje file itself without any requirement
-in the C application.
-
-Before digging into changing or creating your own Edje source (edc)
-files, read the \ref edcref.
-
-
-
-@section history Edje History
-
-It's a sequel to "Ebits" which has serviced the needs of Enlightenment
-development for early version 0.17. The original design parameters under
-which Ebits came about were a lot more restricted than the resulting
-use of them, thus Edje was born.
-
-Edje is a more complex layout engine compared to Ebits. It doesn't
-pretend to do containing and regular layout like a widget set. It
-still inherits the more simplistic layout ideas behind Ebits, but it
-now does them a lot more cleanly, allowing for easy expansion, and the
-ability to cover much more ground than Ebits ever could. For the
-purposes of Enlightenment 0.17, Edje was conceived to serve all the
-purposes of creating visual elements (borders of windows, buttons,
-scrollbars, etc.) and allow the designer the ability to animate,
-layout and control the look and feel of any program using Edje as its
-basic GUI constructor.
-
-Unlike Ebits, Edje separates the layout and behavior logic.
-
-
-
-
-
-
-
-
-
-@todo Complete documentation of API
-@todo Bytecode language for extending programs... but what/how?
-
-*/
-
-
-/**
-
-@example embryo_custom_state.edc
-This example show how to create a custom state from embryo. Clicking on the
-3 labels will rotate the object in the given direction.
-
-@example embryo_pong.edc
-Super-simple Pong implementation in pure embryo.
-
-@example embryo_run_program.edc
-This example show how to run an edje program from embryo code.
-
-@example embryo_set_state.edc
-This example show how to change the state of a part from embryo code.
-
-@example embryo_set_text.edc
-This example show how to set the text in TEXT part from embryo code.
-
-@example embryo_timer.edc
-This example show the usage of timers in embryo.
-
-@example external_elm_anchorblock.edc
-This example use an elementary anchorblock and a button to animate the text.
-
-@example external_elm_button.edc
-This example create some elementary buttons and do some actions on user click.
-
-@example external_elm_check.edc
-This example show EXTERNAL checkbox in action.
-
-@example external_elm_panes.edc
-This example show EXTERNAL elementary panes in action.
-
-@example external_emotion_elm.edc
-Super-concise video player example using Edje/Emotion/Elementary.
-
-@example lua_script.edc
-This example show the usage of lua scripting to create and animate some
-objects in the canvas.
-
-@example toggle_using_filter.edc
-This example show how to toggle the state of a part using the 'filter'
-param in edje programs
-
-*/
index b880df2..9094eed 100644 (file)
@@ -1,3 +1,520 @@
+/** 
+@brief Edje Graphical Design Library
+These routines are used for Edje.
+
+@mainpage Edje Library Documentation
+@image html  e.png
+@version 1.0.0
+@author Carsten Haitzler <raster@@rasterman.com>
+@author Tilman Sauerbeck (tilman at code-monkey de)
+@author ZigsMcKenzie <zigsmckenzie@@gmail.com>
+@author Cedric BAIL <cedric.bail@@free.fr>
+@author Brian Mattern <rephorm@@rephorm.com>
+@author Mathieu Taillefumier <mathieu.taillefumier@@free.fr>
+@author Tristan <blunderer@@gmail.com>
+@author Gustavo Lima Chaves <glima@@profusion.mobi>
+@author Bruno Dilly <bdilly@@profusion.mobi>
+@author Fabiano Fidêncio <fidencio@@profusion.mobi>
+@author Jihoon Kim <jihoon48.kim@@samsung.com>
+@author Tiago Falcão <tiago@@profusion.mobi>
+@author Davide Andreoli <dave@@gurumeditation.it>
+@author Sebastian Dransfeld <sd@@tango.flipp.net>
+@author Tom Hacohen <tom@@stosb.com>
+@author Aharon Hillel <a.hillel@@partner.samsung.com>
+@date 2003-2011
+
+
+
+
+
+
+
+
+
+
+@section intro What is Edje?
+
+Edje is a complex graphical design & layout library.
+
+It doesn't pretend to do containing and regular layout like a widget
+set, but it is the base for such components. Based on the requirements
+of Enlightenment 0.17, Edje should serve all the purposes of creating
+visual elements (borders of windows, buttons, scrollbars, etc.) and
+allow the designer the ability to animate, layout and control the look
+and feel of any program using Edje as its basic GUI constructor. This
+library allows for multiple collections of Layouts in one file,
+sharing the same image and font database and thus allowing a whole
+theme to be conveniently packaged into 1 file and shipped around.
+
+Edje separates the layout and behavior logic. Edje files ship with an
+image and font database, used by all the parts in all the collections
+to source graphical data. It has a directory of logical part names
+pointing to the part collection entry ID in the file (thus allowing
+for multiple logical names to point to the same part collection,
+allowing for the sharing of data between display elements). Each part
+collection consists of a list of visual parts, as well as a list of
+programs. A program is a conditionally run program that if a
+particular event occurs (a button is pressed, a mouse enters or leaves
+a part) will trigger an action that may affect other parts. In this
+way a part collection can be "programmed" via its file as to hilight
+buttons when the mouse passes over them or show hidden parts when a
+button is clicked somewhere etc. The actions performed in changing
+from one state to another are also allowed to transition over a period
+of time, allowing animation. Programs and animations can be run in
+"parallel".
+
+This separation and simplistic event driven style of programming can produce
+almost any look and feel one could want for basic visual elements. Anything
+more complex is likely the domain of an application or widget set that may
+use Edje as a convenient way of being able to configure parts of the display.
+
+For details of Edje's history, see the \ref history section.
+
+
+
+
+
+
+
+
+@section requirements What does Edje require?
+
+Edje requires fairly little on your system. to use the Edje runtime library
+you need:
+
+  - Evas (library)
+  - Ecore (library)
+  - Eet (library)
+  - Embryo (library)
+  - Eina (library)
+
+Evas needs to be build with the JPEG, PNG and EET image loaders enabled at a
+minimum. Edje uses X for the test program, so you will need the SOFTWARE_X11
+engine built into Evas as well. A suggested configure list is below in the
+"cheat sheet" for Evas.
+
+Ecore needs the ECORE, ECORE_EVAS and ECORE_X modules built at a minimum.
+It's suggested to build all the Ecore modules, but the ECORE_FB modules is
+definitely optional.
+
+Eina, Eet and Embryo have no interesting options so just build and
+install them.
+
+It is suggested right now that you get the latest SVN versions of the
+required libraries. You also need to build them in the right order and make
+sure the right options are enabled in the required libraries. Here is a
+quick "cheat sheet" on how to get started.
+
+@verbatim
+1. You need Eina from the trunk svn branch.
+
+  svn co http://svn.enlightenment.org/svn/e/trunk/eina/
+  cd eina
+  ./autogen.sh
+  ./configure
+  make
+  sudo make install
+  cd
+
+2. You need Eet from the trunk svn branch.
+
+  svn co http://svn.enlightenment.org/svn/e/trunk/eet/
+  cd eet
+  ./autogen.sh
+  ./configure
+  make
+  sudo make install
+  cd
+
+3. You need Evas from the trunk svn branch built with eet, png and jpeg loader support.
+
+  svn co http://svn.enlightenment.org/svn/e/trunk/evas/
+  cd evas
+  ./autogen.sh
+  ./configure --enable-image-loader-eet --enable-font-loader-eet --enable-image-loader-jpeg --enable-image-loader-png --enable-buffer
+  make
+  sudo make install
+  cd
+
+4. You need Ecore from the trunk svn branch built with ecore-x and ecore-evas.
+
+  svn co http://svn.enlightenment.org/svn/e/trunk/ecore/
+  cd ecore
+  ./autogen.sh
+  ./configure --enable-ecore-x --enable-ecore-evas --enable-ecore-evas-software-buffer --enable-ecore-evas-software-x11 --enable-ecore-evas-software-buffer
+  make
+  sudo make install
+  cd
+
+5. You need embryo from the trunk svn branch
+
+  svn co http://svn.enlightenment.org/svn/e/trunk/embryo/
+  cd embryo
+  ./autogen.sh
+  ./configure
+  make
+  sudo make install
+  cd
+
+@endverbatim
+
+
+
+
+
+
+
+
+
+@section compiling How to compile and test Edje
+
+Now you need to compile and install Edje.
+
+@verbatim
+  ./configure
+  make
+  sudo make install
+@endverbatim
+
+You now have it installed and ready to go, but you need input
+data. There are lots of examples in SVN, the best one is
+Enlightenment's own theme file.
+
+You may use different tools to edit and view the generated ".edj"
+files, for instance:
+
+  - editje (http://trac.enlightenment.org/e/wiki/Editje)
+  - edje_viewer (http://trac.enlightenment.org/e/wiki/Edje_Viewer)
+
+
+
+
+
+
+
+
+
+
+@section details So how does this all work?
+
+Edje internally holds a geometry state machine and state graph of what is
+visible, not, where, at what size, with what colors etc. This is described
+to Edje from an Edje .edj file containing this information. These files can
+be produced by using edje_cc to take a text file (a .edc file) and "compile"
+an output .edj file that contains this information, images and any other
+data needed.
+
+The application using Edje will then create an object in its Evas
+canvas and set the bundle file to use, specifying the @b group name to
+use. Edje will load such information and create all the required
+children objects with the specified properties as defined in each @b
+part of the given group. See the following annotated example:
+
+@code
+
+#include <Eina.h>
+#include <Evas.h>
+#include <Ecore.h>
+#include <Ecore_Evas.h>
+#include <Edje.h>
+
+#define WIDTH 320
+#define HEIGHT 240
+
+static Evas_Object *create_my_group(Evas *canvas, const char *text)
+{
+   Evas_Object *edje;
+
+   edje = edje_object_add(canvas);
+   if (!edje)
+     {
+       EINA_LOG_CRIT("could not create edje object!");
+       return NULL;
+     }
+
+   if (!edje_object_file_set(edje, "edje_example.edj", "my_group"))
+     {
+       int err = edje_object_load_error_get(edje);
+       const char *errmsg = edje_load_error_str(err);
+       EINA_LOG_ERR("could not load 'my_group' from edje_example.edj: %s",
+                    errmsg);
+
+       evas_object_del(edje);
+       return NULL;
+     }
+
+   if (text)
+     {
+       if (!edje_object_part_text_set(edje, "text", text))
+         {
+            EINA_LOG_WARN("could not set the text. "
+                          "Maybe part 'text' does not exist?");
+         }
+     }
+
+   evas_object_move(edje, 0, 0);
+   evas_object_resize(edje, WIDTH, HEIGHT);
+   evas_object_show(edje);
+   return edje;
+}
+
+int main(int argc, char *argv[])
+{
+   Ecore_Evas *window;
+   Evas *canvas;
+   Evas_Object *edje;
+   const char *text;
+
+   eina_init();
+   evas_init();
+   ecore_init();
+   ecore_evas_init();
+   edje_init();
+
+   window = ecore_evas_new(NULL, 0, 0, WIDTH, HEIGHT, NULL);
+   if (!window)
+     {
+       EINA_LOG_CRIT("could not create window.");
+       return -1;
+     }
+   canvas = ecore_evas_get(window);
+
+   text = (argc > 1) ? argv[1] : NULL;
+
+   edje = create_my_group(canvas, text);
+   if (!edje)
+     return -2;
+
+   ecore_evas_show(window);
+   ecore_main_loop_begin();
+
+   evas_object_del(edje);
+   ecore_evas_free(window);
+
+   return 0;
+}
+@endcode
+
+It requires the following source Edje file:
+@code
+// compile: edje_cc edje_example.edc
+collections {
+   group {
+      name: "my_group"; // must be the same as in edje_example.c
+
+      parts {
+         part {
+            name: "background";
+            type: RECT; // plain boring rectangle
+            mouse_events: 0; // we don't need any mouse event on the background
+
+            // just one state "default"
+            description {
+               state: "default" 0.0; // must always exist
+               color: 255 255 255 255; // white
+
+               // define part coordinates:
+
+               rel1 { // top-left point at (0, 0) [WIDTH * 0 + 0, HEIGHT * 0 + 0]
+                  relative: 0.0 0.0;
+                  offset: 0 0;
+               }
+               rel2 { // bottom-right point at (WIDTH * 1.0 - 1, HEIGHT * 1.0 - 1)
+                  relative: 1.0 1.0;
+                  offset: -1 -1;
+               }
+            }
+         }
+
+         part {
+            name: "text";
+            type: TEXT;
+            mouse_events: 1; // we want to change the color on mouse-over
+
+            // 2 states, one "default" and another "over" to be used
+            // on mouse over effect
+
+            description {
+               state: "default" 0.0;
+               color: 255 0 0 255; // red
+
+               // define part coordinates:
+
+               rel1 { // top-left at (WIDTH * 0.1 + 5, HEIGHT * 0.2 + 10)
+                  relative: 0.1 0.2;
+                  offset: 5 10;
+               }
+               rel2 { // bottom-right at (WIDTH * 0.9 - 6, HEIGHT * 0.8 - 11)
+                  relative: 0.9 0.8;
+                  offset: -6 -11;
+               }
+
+               // define text specific state details
+               text {
+                  font: "Sans"; // using fontconfig name!
+                  size: 10;
+                  text: "hello world";
+               }
+            }
+
+            description {
+               state: "over" 0.0;
+               inherit: "default" 0.0; // copy everything from "default" at this point
+
+               color: 0 255 0 255; // override color, now it is green
+            }
+         }
+
+         // do programs to change color on text mouse in/out (over)
+         programs {
+            program {
+               // what triggers this program:
+               signal: "mouse,in";
+               source: "text";
+
+               // what this program does:
+               action: STATE_SET "over" 0.0;
+               target: "text";
+
+               // do the state-set in a nice interpolation animation
+               // using linear time in 0.1 second
+               transition: LINEAR 0.1;
+            }
+
+            program {
+               // what triggers this program:
+               signal: "mouse,out";
+               source: "text";
+
+               // what this program does:
+               action: STATE_SET "default" 0.0;
+               target: "text";
+
+               // do the state-set in a nice interpolation animation
+               // using linear time in 0.1 second
+               transition: LINEAR 0.1;
+            }
+         }
+      }
+   }
+}
+@endcode
+
+
+One should save these files as edje_example.c and edje_example.edc then:
+@verbatim
+gcc -o edje_example edje_example.c `pkg-config --cflags --libs eina evas ecore ecore-evas edje`
+edje_cc edje_example.edc
+
+./edje_example "some text"
+@endverbatim
+
+Although simple, this example illustrates that animations and state
+changes can be done from the Edje file itself without any requirement
+in the C application.
+
+Before digging into changing or creating your own Edje source (edc)
+files, read the \ref edcref.
+
+
+
+@section history Edje History
+
+It's a sequel to "Ebits" which has serviced the needs of Enlightenment
+development for early version 0.17. The original design parameters under
+which Ebits came about were a lot more restricted than the resulting
+use of them, thus Edje was born.
+
+Edje is a more complex layout engine compared to Ebits. It doesn't
+pretend to do containing and regular layout like a widget set. It
+still inherits the more simplistic layout ideas behind Ebits, but it
+now does them a lot more cleanly, allowing for easy expansion, and the
+ability to cover much more ground than Ebits ever could. For the
+purposes of Enlightenment 0.17, Edje was conceived to serve all the
+purposes of creating visual elements (borders of windows, buttons,
+scrollbars, etc.) and allow the designer the ability to animate,
+layout and control the look and feel of any program using Edje as its
+basic GUI constructor.
+
+Unlike Ebits, Edje separates the layout and behavior logic.
+
+
+
+
+
+
+
+
+
+@todo Complete documentation of API
+@todo Bytecode language for extending programs... but what/how?
+
+*/
+
+
+/**
+
+@example embryo_custom_state.edc
+This example show how to create a custom state from embryo. Clicking on the
+3 labels will rotate the object in the given direction.
+
+@example embryo_pong.edc
+Super-simple Pong implementation in pure embryo.
+
+@example embryo_run_program.edc
+This example show how to run an edje program from embryo code.
+
+@example embryo_set_state.edc
+This example show how to change the state of a part from embryo code.
+
+@example embryo_set_text.edc
+This example show how to set the text in TEXT part from embryo code.
+
+@example embryo_timer.edc
+This example show the usage of timers in embryo.
+
+@example external_elm_anchorblock.edc
+This example use an elementary anchorblock and a button to animate the text.
+
+@example external_elm_button.edc
+This example create some elementary buttons and do some actions on user click.
+
+@example external_elm_check.edc
+This example show EXTERNAL checkbox in action.
+
+@example external_elm_panes.edc
+This example show EXTERNAL elementary panes in action.
+
+@example external_emotion_elm.edc
+Super-concise video player example using Edje/Emotion/Elementary.
+
+@example lua_script.edc
+This example show the usage of lua scripting to create and animate some
+objects in the canvas.
+
+@example toggle_using_filter.edc
+This example show how to toggle the state of a part using the 'filter'
+param in edje programs
+
+*/
+
+/**
+ * @page luaref Edje Lua scripting
+ *
+ * @section intro Introduction
+ * 
+ * Lua is intended for script-only objects at this point (with embryo left
+ * for augmenting standard programs). Since script-only objects effectively
+ * define objects entirely via Lua script (resize handling, event handling
+ * etc. etc.) this places many more demands on them, and thus a more powerful
+ * language is in order. Lua is that language.
+ *
+ * To get you started, here's an example:
+ * @include lua_script.edc
+ *
+ */
+
 #ifndef _EDJE_H
 #define _EDJE_H
 
@@ -312,6 +829,15 @@ typedef enum _Edje_External_Param_Flags
                                             EDJE_EXTERNAL_PARAM_FLAGS_STATE)
 } Edje_External_Param_Flags;
 
+
+/**
+ * @brief Converts type identifier to string nicer representation.
+ *
+ * This may be used to debug or other informational purposes.
+ *
+ * @param type the identifier to convert.
+ * @return the string with the string representation, or @c "(unknown)".
+ */
 EAPI const char *edje_external_param_type_str(Edje_External_Param_Type type) EINA_PURE;
 
 struct _Edje_External_Param
@@ -487,195 +1013,2166 @@ typedef void         (*Edje_Text_Filter_Cb)     (void *data, Evas_Object *obj, c
 typedef Evas_Object *(*Edje_Item_Provider_Cb)   (void *data, Evas_Object *obj, const char *part, const char *item);
 
    /* edje_main.c */
-   EAPI int          edje_init                       (void);
-   EAPI int          edje_shutdown                   (void);
+   
+/**
+ * @brief Initialize the edje library.
+ *
+ * @return The new init count. The initial value is zero.
+ *
+ * This function initializes the ejde library, making the propers
+ * calls to initialization functions. It makes calls to functions
+ * eina_init(), ecore_init(), embryo_init() and eet_init() so
+ * there is no need to call those functions again in your code. To
+ * shutdown edje there is a function edje_shutdown().
+ *
+ * @see edje_shutdown()
+ * @see eina_init()
+ * @see ecore_init()
+ * @see embryo_init()
+ * @see eet_init()
+ *
+ */
+EAPI int          edje_init                       (void);
+   
+/**
+ * @brief Shutdown the edje library.
+ *
+ * @return The number of times the library has been initialised without being
+ *         shutdown.
+ *
+ * This function shuts down the edje library. It calls the functions
+ * eina_shutdown(), ecore_shutdown(), embryo_shutdown() and
+ * eet_shutdown(), so there is no need to call these functions again
+ * in your code.
+ *
+ * @see edje_init()
+ * @see eina_shutdown()
+ * @see ecore_shutdown()
+ * @see embryo_shutdown()
+ * @see eet_shutdown()
+ *
+ */
+EAPI int          edje_shutdown                   (void);
 
    /* edje_program.c */
-   EAPI void         edje_frametime_set              (double t);
-   EAPI double       edje_frametime_get              (void);
-
-   /* edje_util.c */
-   EAPI void         edje_freeze                     (void);
-   EAPI void         edje_thaw                       (void);
-   EAPI void         edje_fontset_append_set         (const char *fonts);
-   EAPI const char  *edje_fontset_append_get         (void);
-   EAPI void         edje_scale_set                  (double scale);
-   EAPI double       edje_scale_get                  (void);
-   EAPI Eina_Bool    edje_object_scale_set           (Evas_Object *obj, double scale);
-   EAPI double       edje_object_scale_get           (const Evas_Object *obj);
-   EAPI void         edje_object_mirrored_set        (Evas_Object *obj, Eina_Bool rtl);
-   EAPI Eina_Bool    edje_object_mirrored_get        (const Evas_Object *obj);
-
-   /* edje_load.c */
-   EAPI Eina_List   *edje_file_collection_list       (const char *file);
-   EAPI void         edje_file_collection_list_free  (Eina_List *lst);
-   EAPI Eina_Bool    edje_file_group_exists          (const char *file, const char *glob);
-   EAPI char        *edje_file_data_get              (const char *file, const char *key);
-   EAPI void         edje_file_cache_set             (int count);
-   EAPI int          edje_file_cache_get             (void);
-   EAPI void         edje_file_cache_flush           (void);
-   EAPI void         edje_collection_cache_set       (int count);
-   EAPI int          edje_collection_cache_get       (void);
-   EAPI void         edje_collection_cache_flush     (void);
-
-   /* edje_util.c */
-   EAPI Eina_Bool    edje_color_class_set            (const char *color_class, int r, int g, int b, int a, int r2, int g2, int b2, int a2, int r3, int g3, int b3, int a3);
-   EAPI Eina_Bool    edje_color_class_get            (const char *color_class, int *r, int *g, int *b, int *a, int *r2, int *g2, int *b2, int *a2, int *r3, int *g3, int *b3, int *a3);
-   EAPI void         edje_color_class_del            (const char *color_class);
-   EAPI Eina_List   *edje_color_class_list           (void);
-   EAPI Eina_Bool    edje_text_class_set             (const char *text_class, const char *font, Evas_Font_Size size);
-   EAPI void         edje_text_class_del             (const char *text_class);
-   EAPI Eina_List   *edje_text_class_list            (void);
-   EAPI void         edje_extern_object_min_size_set (Evas_Object *obj, Evas_Coord minw, Evas_Coord minh);
-   EAPI void         edje_extern_object_max_size_set (Evas_Object *obj, Evas_Coord maxw, Evas_Coord maxh);
-   EAPI void         edje_extern_object_aspect_set   (Evas_Object *obj, Edje_Aspect_Control aspect, Evas_Coord aw, Evas_Coord ah);
-   EAPI void         edje_box_layout_register        (const char *name, Evas_Object_Box_Layout func, void *(*layout_data_get)(void *), void (*layout_data_free)(void *), void (*free_data)(void *), void *data);
-
-   /* edje_smart.c */
-   EAPI Evas_Object *edje_object_add                 (Evas *evas);
+   
+/**
+ * @brief Set edje trasitions' frame time.
+ *
+ * @param t The frame time, in seconds. Default value is 1/30.
+ *
+ * This function sets the edje built-in animations' frame time (thus,
+ * affecting their resolution) by calling
+ * ecore_animator_frametime_set(). This frame time can be retrieved
+ * with edje_frametime_get().
+ *
+ * @see edje_frametime_get()
+ *
+ */
+EAPI void         edje_frametime_set              (double t);
+   
+/**
+ * @brief Get edje trasitions' frame time.
+ *
+ * @return The frame time, in seconds.
+ *
+ * This function returns the edje frame time set by
+ * edje_frametime_set().
+ *
+ * @see edje_frametime_set()
+ *
+ */
+EAPI double       edje_frametime_get              (void);
 
    /* edje_util.c */
-   EAPI const char  *edje_object_data_get            (const Evas_Object *obj, const char *key);
+   
+/**
+ * @brief Freeze Edje objects.
+ *
+ * This function freezes every edje objects in the current process.
+ *
+ * See edje_object_freeze().
+ *
+ */
+EAPI void         edje_freeze                     (void);
+   
+/**
+ * @brief Thaw edje objects.
+ *
+ * This function thaw all edje object in the current process.
+ *
+ * See edje_object_thaw().
+ *
+ */
+EAPI void         edje_thaw                       (void);
+   
+/**
+ * @brief Set the edje append fontset.
+ *
+ * @param fonts The fontset to append.
+ *
+ * This function sets the edje append fontset.
+ *
+ */
+EAPI void         edje_fontset_append_set         (const char *fonts);
+   
+/**
+ * @brief Get the edje append fontset.
+ *
+ * @return The edje append fontset.
+ *
+ * This function returns the edje append fontset set by
+ * edje_fontset_append_set() function.
+ *
+ * @see edje_fontset_append_set().
+ *
+ */
+EAPI const char  *edje_fontset_append_get         (void);
+   
+/**
+ * @brief Set edje's global scaling factor.
+ *
+ * @param scale The edje (global) scale factor. The defaul is 1.0.
+ *
+ * Edje allows one to build scalable interfaces. Scale factors, which
+ * are set to neutral values by default (no scaling, actual sizes),
+ * are of two types: global and individual. Edje's global scaling
+ * factor will affect all its objects which hadn't their individual
+ * scaling factors altered from the default value. If they had it set
+ * differently, that factor will override the global one.
+ *
+ * Scaling affects the values of min/max object sizes, which are
+ * multiplied by it. Font sizes are scaled, too.
+ *
+ * This property can be retrieved with edje_scale_get().
+ *
+ * @see edje_scale_get().
+ *
+ */
+EAPI void         edje_scale_set                  (double scale);
+   
+/**
+ * @brief Get edje's global scaling factor.
+ *
+ * @return The edje (global) scale factor. The defaul is 1.0.
+ *
+ * This function returns edje's global scale factor, which can be set
+ * by edje_scale_set().
+ *
+ * @see edje_scale_set().
+ *
+ */
+EAPI double       edje_scale_get                  (void);
+   
+/**
+ * @brief Set the edje object's scaling factor.
+ *
+ * @param obj The edje object's reference.
+ * @param scale The edje object scale factor. The defaul is 1.0.
+ *
+ * This function sets the individual scale factor of the @a obj edje
+ * object. This property (or edje's global scale factor, when
+ * applicable), will affect this object's parts. However, only parts
+ * which, at the EDC language level, were declared which the "scale"
+ * attribute set to 1 (default is zero) will be affected.
+ *
+ * This scale factor can be retrieved with edje_object_scale_get().
+ * @see edje_object_scale_get().
+ *
+ */
+EAPI Eina_Bool    edje_object_scale_set           (Evas_Object *obj, double scale);
+   
+/**
+ * @brief Get the edje object's scaling factor.
+ *
+ * @param obj The edje object's reference.
+ *
+ * This function returns the individual scale factor of the @a obj
+ * edje object, which can be set by edje_object_scale_set().
+ *
+ * @see edje_object_scale_set().
+ *
+ */
+EAPI double       edje_object_scale_get           (const Evas_Object *obj);
+   
+/**
+ * Set the RTL orientation for this object.
+ *
+ * @param obj the smart object
+ * @rtl new value of flag EINA_TRUE/EINA_FALSE
+ * @since 1.1.0
+ */
+EAPI void         edje_object_mirrored_set        (Evas_Object *obj, Eina_Bool rtl);
+   
+/**
+ * Get the RTL orientation for this object.
+ *
+ * You can RTL orientation explicitly with edje_object_mirrored_set.
+ *
+ * @param obj the smart object
+ * @return if flag is set or not.
+ * @since 1.1.0
+ */
+EAPI Eina_Bool    edje_object_mirrored_get        (const Evas_Object *obj);
 
    /* edje_load.c */
-   EAPI Eina_Bool        edje_object_file_set        (Evas_Object *obj, const char *file, const char *group);
-   EAPI void             edje_object_file_get        (const Evas_Object *obj, const char **file, const char **group);
-   EAPI Edje_Load_Error  edje_object_load_error_get  (const Evas_Object *obj);
-   EAPI const char      *edje_load_error_str         (Edje_Load_Error error);
-
-   /* edje_util.c */
-   EAPI Eina_Bool    edje_object_preload             (Evas_Object *obj, Eina_Bool cancel);
-
-   /* edje_program.c */
-   EAPI void         edje_object_signal_callback_add (Evas_Object *obj, const char *emission, const char *source, Edje_Signal_Cb func, void *data);
-   EAPI void        *edje_object_signal_callback_del (Evas_Object *obj, const char *emission, const char *source, Edje_Signal_Cb func);
-   EAPI void        *edje_object_signal_callback_del_full(Evas_Object *obj, const char *emission, const char *source, Edje_Signal_Cb func, void *data);
-   EAPI void         edje_object_signal_emit         (Evas_Object *obj, const char *emission, const char *source);
-   EAPI void         edje_object_play_set            (Evas_Object *obj, Eina_Bool play);
-   EAPI Eina_Bool    edje_object_play_get            (const Evas_Object *obj);
-   EAPI void         edje_object_animation_set       (Evas_Object *obj, Eina_Bool on);
-   EAPI Eina_Bool    edje_object_animation_get       (const Evas_Object *obj);
-
-   /* edje_util.c */
-   EAPI int          edje_object_freeze                  (Evas_Object *obj);
-   EAPI int          edje_object_thaw                    (Evas_Object *obj);
-   EAPI Eina_Bool    edje_object_color_class_set         (Evas_Object *obj, const char *color_class, int r, int g, int b, int a, int r2, int g2, int b2, int a2, int r3, int g3, int b3, int a3);
-   EAPI Eina_Bool    edje_object_color_class_get         (const Evas_Object *o, const char *color_class, int *r, int *g, int *b, int *a, int *r2, int *g2, int *b2, int *a2, int *r3, int *g3, int *b3, int *a3);
-   EAPI void         edje_object_color_class_del         (Evas_Object *obj, const char *color_class);
-   EAPI Eina_Bool    edje_object_text_class_set          (Evas_Object *obj, const char *text_class, const char *font, Evas_Font_Size size);
-   EAPI void         edje_object_size_min_get            (const Evas_Object *obj, Evas_Coord *minw, Evas_Coord *minh);
-   EAPI void         edje_object_size_max_get            (const Evas_Object *obj, Evas_Coord *maxw, Evas_Coord *maxh);
-   EAPI void         edje_object_calc_force              (Evas_Object *obj);
-   EAPI void         edje_object_size_min_calc           (Evas_Object *obj, Evas_Coord *minw, Evas_Coord *minh);
-   EAPI Eina_Bool    edje_object_parts_extends_calc      (Evas_Object *obj, Evas_Coord *x, Evas_Coord *y, Evas_Coord *w, Evas_Coord *h);
-   EAPI void         edje_object_size_min_restricted_calc(Evas_Object *obj, Evas_Coord *minw, Evas_Coord *minh, Evas_Coord restrictedw, Evas_Coord restrictedh);
-   EAPI Eina_Bool    edje_object_part_exists             (const Evas_Object *obj, const char *part);
-   EAPI const Evas_Object *edje_object_part_object_get   (const Evas_Object *obj, const char *part);
-   EAPI Eina_Bool    edje_object_part_geometry_get       (const Evas_Object *obj, const char *part, Evas_Coord *x, Evas_Coord *y, Evas_Coord *w, Evas_Coord *h);
-
-   EAPI void         edje_object_item_provider_set       (Evas_Object *obj, Edje_Item_Provider_Cb func, void *data);
-
-   EAPI void         edje_object_text_change_cb_set      (Evas_Object *obj, Edje_Text_Change_Cb func, void *data);
-
-   EAPI Eina_Bool    edje_object_part_text_set           (Evas_Object *obj, const char *part, const char *text);
-   EAPI const char  *edje_object_part_text_get           (const Evas_Object *obj, const char *part);
-   EAPI Eina_Bool    edje_object_part_text_unescaped_set (Evas_Object *obj, const char *part, const char *text_to_escape);
-   EAPI char        *edje_object_part_text_unescaped_get (const Evas_Object *obj, const char *part);
-
-   EAPI const char      *edje_object_part_text_selection_get           (const Evas_Object *obj, const char *part);
-   EAPI void             edje_object_part_text_select_none             (const Evas_Object *obj, const char *part);
-   EAPI void             edje_object_part_text_select_all              (const Evas_Object *obj, const char *part);
-   EAPI void             edje_object_part_text_insert                  (Evas_Object *obj, const char *part, const char *text);
-   EAPI const Eina_List *edje_object_part_text_anchor_list_get         (const Evas_Object *obj, const char *part);
-   EAPI const Eina_List *edje_object_part_text_anchor_geometry_get     (const Evas_Object *obj, const char *part, const char *anchor);
-   EAPI const Eina_List *edje_object_part_text_item_list_get           (const Evas_Object *obj, const char *part);
-   EAPI Eina_Bool        edje_object_part_text_item_geometry_get       (const Evas_Object *obj, const char *part, const char *item, Evas_Coord *cx, Evas_Coord *cy, Evas_Coord *cw, Evas_Coord *ch);
-   EAPI void             edje_object_part_text_cursor_geometry_get     (const Evas_Object *obj, const char *part, Evas_Coord *x, Evas_Coord *y, Evas_Coord *w, Evas_Coord *h);
-   EAPI void             edje_object_part_text_select_allow_set        (const Evas_Object *obj, const char *part, Eina_Bool allow);
-   EAPI void             edje_object_part_text_select_abort            (const Evas_Object *obj, const char *part);
-   EAPI void             edje_object_part_text_select_begin            (const Evas_Object *obj, const char *part);
-   EAPI void             edje_object_part_text_select_extend           (const Evas_Object *obj, const char *part);
-
-   EAPI Eina_Bool        edje_object_part_text_cursor_next                 (Evas_Object *obj, const char *part, Edje_Cursor cur);
-   EAPI Eina_Bool        edje_object_part_text_cursor_prev                 (Evas_Object *obj, const char *part, Edje_Cursor cur);
-   EAPI Eina_Bool        edje_object_part_text_cursor_up                   (Evas_Object *obj, const char *part, Edje_Cursor cur);
-   EAPI Eina_Bool        edje_object_part_text_cursor_down                 (Evas_Object *obj, const char *part, Edje_Cursor cur);
-   EAPI void             edje_object_part_text_cursor_begin_set            (Evas_Object *obj, const char *part, Edje_Cursor cur);
-   EAPI void             edje_object_part_text_cursor_end_set              (Evas_Object *obj, const char *part, Edje_Cursor cur);
-   EAPI void             edje_object_part_text_cursor_copy                 (Evas_Object *obj, const char *part, Edje_Cursor src, Edje_Cursor dst);
-   EAPI void             edje_object_part_text_cursor_line_begin_set       (Evas_Object *obj, const char *part, Edje_Cursor cur);
-   EAPI void             edje_object_part_text_cursor_line_end_set         (Evas_Object *obj, const char *part, Edje_Cursor cur);
-   EAPI Eina_Bool        edje_object_part_text_cursor_coord_set            (Evas_Object *obj, const char *part, Edje_Cursor cur, Evas_Coord x, Evas_Coord y);
-   EAPI Eina_Bool        edje_object_part_text_cursor_is_format_get        (const Evas_Object *obj, const char *part, Edje_Cursor cur);
-   EAPI Eina_Bool        edje_object_part_text_cursor_is_visible_format_get(const Evas_Object *obj, const char *part, Edje_Cursor cur);
-   EAPI const char      *edje_object_part_text_cursor_content_get          (const Evas_Object *obj, const char *part, Edje_Cursor cur);
-   EAPI void             edje_object_part_text_cursor_pos_set              (Evas_Object *obj, const char *part, Edje_Cursor cur, int pos);
-   EAPI int              edje_object_part_text_cursor_pos_get              (const Evas_Object *obj, const char *part, Edje_Cursor cur);
-
-   EAPI void             edje_object_text_insert_filter_callback_add       (Evas_Object *obj, const char *part, Edje_Text_Filter_Cb func, void *data);
-   EAPI void            *edje_object_text_insert_filter_callback_del       (Evas_Object *obj, const char *part, Edje_Text_Filter_Cb func);
-   EAPI void            *edje_object_text_insert_filter_callback_del_full  (Evas_Object *obj, const char *part, Edje_Text_Filter_Cb func, void *data);
-
-   EAPI Eina_Bool        edje_object_part_swallow        (Evas_Object *obj, const char *part, Evas_Object *obj_swallow);
-   EAPI void             edje_object_part_unswallow      (Evas_Object *obj, Evas_Object *obj_swallow);
-   EAPI Evas_Object     *edje_object_part_swallow_get    (const Evas_Object *obj, const char *part);
-   EAPI const char      *edje_object_part_state_get      (const Evas_Object *obj, const char *part, double *val_ret);
-   EAPI Edje_Drag_Dir    edje_object_part_drag_dir_get   (const Evas_Object *obj, const char *part);
-   EAPI Eina_Bool        edje_object_part_drag_value_set (Evas_Object *obj, const char *part, double dx, double dy);
-   EAPI Eina_Bool        edje_object_part_drag_value_get (const Evas_Object *obj, const char *part, double *dx, double *dy);
-   EAPI Eina_Bool        edje_object_part_drag_size_set  (Evas_Object *obj, const char *part, double dw, double dh);
-   EAPI Eina_Bool        edje_object_part_drag_size_get  (const Evas_Object *obj, const char *part, double *dw, double *dh);
-   EAPI Eina_Bool        edje_object_part_drag_step_set  (Evas_Object *obj, const char *part, double dx, double dy);
-   EAPI Eina_Bool        edje_object_part_drag_step_get  (const Evas_Object *obj, const char *part, double *dx, double *dy);
-   EAPI Eina_Bool        edje_object_part_drag_page_set  (Evas_Object *obj, const char *part, double dx, double dy);
-   EAPI Eina_Bool        edje_object_part_drag_page_get  (const Evas_Object *obj, const char *part, double *dx, double *dy);
-   EAPI Eina_Bool        edje_object_part_drag_step      (Evas_Object *obj, const char *part, double dx, double dy);
-   EAPI Eina_Bool        edje_object_part_drag_page      (Evas_Object *obj, const char *part, double dx, double dy);
-
-   EAPI Evas_Object              *edje_object_part_external_object_get     (const Evas_Object *obj, const char *part);
-   EAPI Eina_Bool                 edje_object_part_external_param_set      (Evas_Object *obj, const char *part, const Edje_External_Param *param);
-   EAPI Eina_Bool                 edje_object_part_external_param_get      (const Evas_Object *obj, const char *part, Edje_External_Param *param);
-   EAPI Evas_Object              *edje_object_part_external_content_get    (const Evas_Object *obj, const char *part, const char *content);
-   EAPI Edje_External_Param_Type  edje_object_part_external_param_type_get (const Evas_Object *obj, const char *part, const char *param);
-
-   EAPI Eina_Bool    edje_object_part_box_append             (Evas_Object *obj, const char *part, Evas_Object *child);
-   EAPI Eina_Bool    edje_object_part_box_prepend            (Evas_Object *obj, const char *part, Evas_Object *child);
-   EAPI Eina_Bool    edje_object_part_box_insert_before      (Evas_Object *obj, const char *part, Evas_Object *child, const Evas_Object *reference);
-   EAPI Eina_Bool    edje_object_part_box_insert_at          (Evas_Object *obj, const char *part, Evas_Object *child, unsigned int pos);
-   EAPI Evas_Object *edje_object_part_box_remove             (Evas_Object *obj, const char *part, Evas_Object *child);
-   EAPI Evas_Object *edje_object_part_box_remove_at          (Evas_Object *obj, const char *part, unsigned int pos);
-   EAPI Eina_Bool    edje_object_part_box_remove_all         (Evas_Object *obj, const char *part, Eina_Bool clear);
-   EAPI Evas_Object *edje_object_part_table_child_get        (Evas_Object *obj, const char *part, unsigned int col, unsigned int row);
-   EAPI Eina_Bool    edje_object_part_table_pack             (Evas_Object *obj, const char *part, Evas_Object *child_obj, unsigned short col, unsigned short row, unsigned short colspan, unsigned short rowspan);
-   EAPI Eina_Bool    edje_object_part_table_unpack           (Evas_Object *obj, const char *part, Evas_Object *child_obj);
-   EAPI Eina_Bool    edje_object_part_table_col_row_size_get (const Evas_Object *obj, const char *part, int *cols, int *rows);
-   EAPI Eina_Bool    edje_object_part_table_clear            (Evas_Object *obj, const char *part, Eina_Bool clear);
-
-   /* edje_message_queue.c */
-   EAPI void         edje_object_message_send                (Evas_Object *obj, Edje_Message_Type type, int id, void *msg);
-   EAPI void         edje_object_message_handler_set         (Evas_Object *obj, Edje_Message_Handler_Cb func, void *data);
-   EAPI void         edje_object_message_signal_process      (Evas_Object *obj);
-
-   EAPI void         edje_message_signal_process             (void);
-
-   /* edje_external.c */
-   EAPI Eina_Bool    edje_external_type_register             (const char *type_name, const Edje_External_Type *type_info);
-   EAPI Eina_Bool    edje_external_type_unregister           (const char *type_name);
-
-   EAPI void         edje_external_type_array_register       (const Edje_External_Type_Info *array);
-   EAPI void         edje_external_type_array_unregister     (const Edje_External_Type_Info *array);
-
-   EAPI unsigned int edje_external_type_abi_version_get      (void) EINA_CONST;
-
-
-   EAPI Eina_Iterator                  *edje_external_iterator_get     (void);
-   EAPI Edje_External_Param            *edje_external_param_find       (const Eina_List *params, const char *key);
+   
+/**
+ * Get a list of groups in an edje file
+ * @param file The path to the edje file
+ *
+ * @return The Eina_List of group names (char *)
+ *
+ * Note: the list must be freed using edje_file_collection_list_free()
+ * when you are done with it.
+ */
+EAPI Eina_List   *edje_file_collection_list       (const char *file);
+   
+/**
+ * Free file collection list
+ * @param lst The Eina_List of groups
+ *
+ * Frees the list returned by edje_file_collection_list().
+ */
+EAPI void         edje_file_collection_list_free  (Eina_List *lst);
+   
+/**
+ * Determine whether a group matching glob exists in an edje file.
+ * @param file The file path
+ * @param glob A glob to match on
+ *
+ * @return 1 if a match is found, 0 otherwise
+ */
+EAPI Eina_Bool    edje_file_group_exists          (const char *file, const char *glob);
+   
+/**
+ * Get data from the file level data block of an edje file
+ * @param file The path to the .edj file
+ * @param key The data key
+ * @return The string value of the data
+ *
+ * If an edje file is built from the following edc:
+ *
+ * data {
+ *   item: "key1" "value1";
+ *   item: "key2" "value2";
+ * }
+ * collections { ... }
+ *
+ * Then, edje_file_data_get("key1") will return "value1"
+ */
+EAPI char        *edje_file_data_get              (const char *file, const char *key);
+
+   /* edje_cache.c */
+   /**
+    * @addtogroup Edje_cache_Group Cache
+    *
+    * @brief These functions provide an abstraction layer between the
+    * application code and the interface, while allowing extremely
+    * flexible dynamic layouts and animations.
+    *
+    * @{
+    */
+   
+/**
+ * @brief Set the file cache size.
+ *
+ * @param count The file cache size in edje file units. Default is 16.
+ *
+ * This function sets the file cache size. Edje keeps this cache in
+ * order to prevent duplicates of edje file entries in memory. The
+ * file cache size can be retrieved with edje_file_cache_get().
+ *
+ * @see edje_file_cache_get()
+ * @see edje_file_cache_flush()
+ *
+ */
+EAPI void         edje_file_cache_set             (int count);
+   
+/**
+ * @brief Return the file cache size.
+ *
+ * @return The file cache size in edje file units. Default is 16.
+ *
+ * This function returns the file cache size set by
+ * edje_file_cache_set().
+ *
+ * @see edje_file_cache_set()
+ * @see edje_file_cache_flush()
+ *
+ */
+EAPI int          edje_file_cache_get             (void);
+   
+/**
+ * @brief Clean the file cache.
+ *
+ * This function cleans the file cache entries, but keeps this cache's
+ * size to the last value set.
+ *
+ * @see edje_file_cache_set()
+ * @see edje_file_cache_get()
+ *
+ */
+EAPI void         edje_file_cache_flush           (void);
+   
+/**
+ * @brief Set the collection cache size.
+ *
+ * @param count The collection cache size, in edje object units. Default is 16.
+ *
+ * This function sets the collection cache size. Edje keeps this cache
+ * in order to prevent duplicates of edje {collection,group,part}
+ * entries in memory. The collection cache size can be retrieved with
+ * edje_collection_cache_get().
+ *
+ * @see edje_collection_cache_get()
+ * @see edje_collection_cache_flush()
+ *
+ */
+EAPI void         edje_collection_cache_set       (int count);
+   
+/**
+ * @brief Return the collection cache size.
+ *
+ * @return The collection cache size, in edje object units. Default is 16.
+ *
+ * This function returns the collection cache size set by
+ * edje_collection_cache_set().
+ *
+ * @see edje_collection_cache_set()
+ * @see edje_collection_cache_flush()
+ *
+ */
+EAPI int          edje_collection_cache_get       (void);
+   
+/**
+ * @brief Clean the collection cache.
+ *
+ * This function cleans the collection cache, but keeps this cache's
+ * size to the last value set.
+ *
+ * @see edje_collection_cache_set()
+ * @see edje_collection_cache_get()
+ *
+ */
+EAPI void         edje_collection_cache_flush     (void);
+   /**
+    * @}
+    */
+   
+   /* edje_util.c */
+   
+/**
+ * @brief Set Edje color class.
+ *
+ * @param color_class
+ * @param r Object Red value
+ * @param g Object Green value
+ * @param b Object Blue value
+ * @param a Object Alpha value
+ * @param r2 Outline Red value
+ * @param g2 Outline Green value
+ * @param b2 Outline Blue value
+ * @param a2 Outline Alpha value
+ * @param r3 Shadow Red value
+ * @param g3 Shadow Green value
+ * @param b3 Shadow Blue value
+ * @param a3 Shadow Alpha value
+ *
+ * This function sets the color values for a process level color
+ * class.  This will cause all edje parts in the current process that
+ * have the specified color class to have their colors multiplied by
+ * these values.  (Object level color classes set by
+ * edje_object_color_class_set() will override the values set by this
+ * function).
+ *
+ * The first color is the object, the second is the text outline, and
+ * the third is the text shadow. (Note that the second two only apply
+ * to text parts).
+ *
+ * Setting color emits a signal "color_class,set" with source being
+ * the given color class in all objects.
+ *
+ * @see edje_color_class_set().
+ *
+ * @note unlike Evas, Edje colors are @b not pre-multiplied. That is,
+ *       half-transparent white is 255 255 255 128.
+ */
+EAPI Eina_Bool    edje_color_class_set            (const char *color_class, int r, int g, int b, int a, int r2, int g2, int b2, int a2, int r3, int g3, int b3, int a3);
+   
+/**
+ * @brief Get Edje color class.
+ *
+ * @param color_class
+ * @param r Object Red value
+ * @param g Object Green value
+ * @param b Object Blue value
+ * @param a Object Alpha value
+ * @param r2 Outline Red value
+ * @param g2 Outline Green value
+ * @param b2 Outline Blue value
+ * @param a2 Outline Alpha value
+ * @param r3 Shadow Red value
+ * @param g3 Shadow Green value
+ * @param b3 Shadow Blue value
+ * @param a3 Shadow Alpha value
+ *
+ * @return EINA_TRUE if found or EINA_FALSE if not found and all
+ *         values are zeroed.
+ *
+ * This function gets the color values for a process level color
+ * class. This value is the globally set and not per-object, that is,
+ * the value that would be used by objects if they did not override with
+ * edje_object_color_class_set().
+ *
+ * The first color is the object, the second is the text outline, and
+ * the third is the text shadow. (Note that the second two only apply
+ * to text parts).
+ *
+ * @see edje_color_class_set().
+ *
+ * @note unlike Evas, Edje colors are @b not pre-multiplied. That is,
+ *       half-transparent white is 255 255 255 128.
+ */
+EAPI Eina_Bool    edje_color_class_get            (const char *color_class, int *r, int *g, int *b, int *a, int *r2, int *g2, int *b2, int *a2, int *r3, int *g3, int *b3, int *a3);
+   EAPI void         edje_color_class_del            (const char *color_class);
+   EAPI Eina_List   *edje_color_class_list           (void);
+   
+/**
+ * @brief Set the Edje text class.
+ *
+ * @param text_class The text class name
+ * @param font The font name
+ * @param size The font size
+ *
+ * This function sets updates all edje members which belong to this
+ * text class with the new font attributes.
+ *
+ * @see edje_text_class_get().
+ *
+ */
+
+/**
+ * @brief Delete the object color class.
+ *
+ * @param obj The edje object's reference.
+ * @param color_class The color class to be deleted.
+ *
+ * This function deletes any values at the object level for the
+ * specified object and color class.
+ *
+ * Deleting color emits a signal "color_class,del" with source being
+ * the given color.
+ */
+EAPI Eina_Bool    edje_text_class_set             (const char *text_class, const char *font, Evas_Font_Size size);
+   EAPI void         edje_text_class_del             (const char *text_class);
+   EAPI Eina_List   *edje_text_class_list            (void);
+   
+/**
+ * @brief Set the object minimum size.
+ *
+ * @param obj A valid Evas_Object handle
+ * @param minw The minimum width
+ * @param minh The minimum height
+ *
+ * This sets the minimum size restriction for the object.
+ */
+EAPI void         edje_extern_object_min_size_set (Evas_Object *obj, Evas_Coord minw, Evas_Coord minh);
+   
+/**
+ * @brief Set the object maximum size.
+ *
+ * @param obj A valid Evas_Object handle
+ * @param maxw The maximum width
+ * @param maxh The maximum height
+ *
+ * This sets the maximum size restriction for the object.
+ */
+EAPI void         edje_extern_object_max_size_set (Evas_Object *obj, Evas_Coord maxw, Evas_Coord maxh);
+   
+/**
+ * @brief Set the object aspect size.
+ *
+ * @param obj A valid Evas_Object handle
+ * @param aspect The aspect control axes
+ * @param aw The aspect radio width
+ * @param ah The aspect ratio height
+ *
+ * This sets the desired aspect ratio to keep an object that will be
+ * swallowed by Edje. The width and height define a preferred size
+ * ASPECT and the object may be scaled to be larger or smaller, but
+ * retaining the relative scale of both aspect width and height.
+ */
+EAPI void         edje_extern_object_aspect_set   (Evas_Object *obj, Edje_Aspect_Control aspect, Evas_Coord aw, Evas_Coord ah);
+   
+/**
+ * @brief Registers a custom layout to be used in edje boxes.
+ *
+ * @param name The name of the layout
+ * @param func The function defining the layout
+ * @param layout_data_get This function gets the custom data pointer
+ * for func
+ * @param layout_data_free Passed to func to free its private data
+ * when needed
+ * @param free_data Frees data
+ * @param data Private pointer passed to layout_data_get
+ *
+ * This function registers custom layouts that can be referred from
+ * themes by the registered name. The Evas_Object_Box_Layout
+ * functions receive two pointers for internal use, one being private
+ * data, and the other the function to free that data when it's not
+ * longer needed. From Edje, this private data will be retrieved by
+ * calling layout_data_get, and layout_data_free will be the free
+ * function passed to func. layout_data_get will be called with data
+ * as its parameter, and this one will be freed by free_data whenever
+ * the layout is unregistered from Edje.
+ */
+EAPI void         edje_box_layout_register        (const char *name, Evas_Object_Box_Layout func, void *(*layout_data_get)(void *), void (*layout_data_free)(void *), void (*free_data)(void *), void *data);
+
+   /* edje_smart.c */
+   
+/**
+ * Constructs the Edje object
+ * @param evas A valid Evas handle
+ * @return The Evas_Object pointer.
+ *
+ * Creates the Edje smart object, returning the Evas_Object handle.
+ */
+EAPI Evas_Object *edje_object_add                 (Evas *evas);
+
+   /* edje_util.c */
+   
+/**
+ * @brief Get Edje object data.
+ *
+ * @param obj A valid Evas_Object handle
+ * @param key The data key
+ * @return The data string
+ *
+ * This function fetches data specified at the object level.
+ *
+ * In EDC this comes from a data block within the group block that @a
+ * obj was loaded from. E.g.
+ *
+ * @code
+ * collections {
+ *   group {
+ *     name: "a_group";
+ *     data {
+ *      item: "key1" "value1";
+ *      item: "key2" "value2";
+ *     }
+ *   }
+ * }
+ * @endcode
+ */
+EAPI const char  *edje_object_data_get            (const Evas_Object *obj, const char *key);
+
+   /* edje_load.c */
+   
+/**
+ * Sets the EET file and group to load @a obj from
+ * @param obj A valid Evas_Object handle
+ * @param file The path to the EET file
+ * @param group The group name in the Edje
+ * @return 0 on Error\n
+ * 1 on Success and sets EDJE_LOAD_ERROR_NONE
+ *
+ * Edje uses EET files, conventionally ending in .edj, to store object
+ * descriptions. A single file contains multiple named groups. This function
+ * specifies the file and group name to load @a obj from.
+ */
+EAPI Eina_Bool        edje_object_file_set        (Evas_Object *obj, const char *file, const char *group);
+   
+/**
+ * Get the file and group name that @a obj was loaded from
+ * @param obj A valid Evas_Object handle
+ * @param file A pointer to store a pointer to the filename in
+ * @param group A pointer to store a pointer to the group name in
+ *
+ * This gets the EET file location and group for the given Evas_Object.
+ * If @a obj is either not an edje file, or has not had its file/group set
+ * using edje_object_file_set(), then both @a file and @a group will be set
+ * to NULL.
+ *
+ * It is valid to pass in NULL for either @a file or @a group if you are not
+ * interested in one of the values.
+ */
+EAPI void             edje_object_file_get        (const Evas_Object *obj, const char **file, const char **group);
+   
+/**
+ * Gets the Edje load error
+ * @param obj A valid Evas_Object handle
+ *
+ * @return The Edje load error:\n
+ * EDJE_LOAD_ERROR_NONE: No Error\n
+ * EDJE_LOAD_ERROR_GENERIC: Generic Error\n
+ * EDJE_LOAD_ERROR_DOES_NOT_EXIST: Does not Exist\n
+ * EDJE_LOAD_ERROR_PERMISSION_DENIED: Permission Denied\n
+ * EDJE_LOAD_ERROR_RESOURCE_ALLOCATION_FAILED: Resource Allocation Failed\n
+ * EDJE_LOAD_ERROR_CORRUPT_FILE: Corrupt File\n
+ * EDJE_LOAD_ERROR_UNKNOWN_FORMAT: Unknown Format\n
+ * EDJE_LOAD_ERROR_INCOMPATIBLE_FILE: Incompatible File\n
+ * EDJE_LOAD_ERROR_UNKNOWN_COLLECTION: Unknown Collection\n
+ * EDJE_LOAD_ERROR_RECURSIVE_REFERENCE: Recursive Reference\n
+ */
+EAPI Edje_Load_Error  edje_object_load_error_get  (const Evas_Object *obj);
+   EAPI const char      *edje_load_error_str         (Edje_Load_Error error);
+
+   /* edje_util.c */
+   EAPI Eina_Bool    edje_object_preload             (Evas_Object *obj, Eina_Bool cancel);
+
+   /* edje_program.c */
+   
+/**
+ * @brief Add a callback for a signal emitted by @a obj.
+ *
+ * @param obj A valid Evas_Object handle.
+ * @param emission The signal's name.
+ * @param source The signal's source.
+ * @param func The callback function to be executed when the signal is
+ * emitted.
+ * @param data A pointer to data to pass in to the callback function.
+ *
+ * Connects a callback function to a signal emitted by @a obj.
+ * In EDC, a program can emit a signal as follows:
+ *
+ * @code
+ * program {
+ *   name: "emit_example";
+ *   action: SIGNAL_EMIT "a_signal" "a_source";
+ * }
+ * @endcode
+ *
+ * Assuming a function with the following declaration is definded:
+ *
+ * @code
+ * void cb_signal(void *data, Evas_Object *o, const char *emission, const char *source);
+ * @endcode
+ *
+ * a callback is attached using:
+ *
+ * @code
+ * edje_object_signal_callback_add(obj, "a_signal", "a_source", cb_signal, data);
+ * @endcode
+ *
+ * Here, @a data is an arbitrary pointer to be used as desired.  Note
+ * that @a emission and @a source correspond respectively to the first
+ * and the second parameters at the SIGNAL_EMIT action.
+ *
+ * Internal edje signals can also be attached to, and globs can occur
+ * in either the emission or source name, e.g.
+ *
+ * @code
+ * edje_object_signal_callback_add(obj, "mouse,down,*", "button.*", NULL);
+ * @endcode
+ *
+ * Here, any mouse down events on an edje part whose name begins with
+ * "button." will trigger the callback. The actual signal and source
+ * names will be passed in to the @a emission and @a source parameters
+ * of the callback function (e.g. "mouse,down,2" and "button.close").
+ */
+EAPI void         edje_object_signal_callback_add (Evas_Object *obj, const char *emission, const char *source, Edje_Signal_Cb func, void *data);
+   
+/**
+ * @brief Remove a signal-triggered callback from an object.
+ *
+ * @param obj A valid Evas_Object handle.
+ * @param emission The emission string.
+ * @param source The source string.
+ * @param func The callback function.
+ * @return The data pointer
+ *
+ * This function removes a callback, previously attached to the
+ * emittion of a signal, from the object @a obj. The parameters @a
+ * emission, @a source and @a func must match exactly those passed to
+ * a previous call to edje_object_signal_callback_add(). The data
+ * pointer that was passed to this call will be returned.
+ *
+ * @see edje_object_signal_callback_add().
+ * @see edje_object_signal_callback_del_full().
+ *
+ */
+EAPI void        *edje_object_signal_callback_del (Evas_Object *obj, const char *emission, const char *source, Edje_Signal_Cb func);
+   
+/**
+ * @brief Remove a signal-triggered callback from an object.
+ *
+ * @param obj A valid Evas_Object handle.
+ * @param emission The emission string.
+ * @param source The source string.
+ * @param func The callback function.
+ * @param data The user data passed to the callback.
+ * @return The data pointer
+ *
+ * This function removes a callback, previously attached to the
+ * emittion of a signal, from the object @a obj. The parameters @a
+ * emission, @a sourcei, @a func and @a data must match exactly those
+ * passed to a previous call to edje_object_signal_callback_add(). The data
+ * pointer that was passed to this call will be returned.
+ *
+ * @see edje_object_signal_callback_add().
+ * @see edje_object_signal_callback_del().
+ *
+ */
+EAPI void        *edje_object_signal_callback_del_full(Evas_Object *obj, const char *emission, const char *source, Edje_Signal_Cb func, void *data);
+   
+/**
+ * @brief Send a signal to an edje object.
+ *
+ * @param obj A valid Evas_Object handle.
+ * @param emission The signal's name.
+ * @param source The signal's source.
+ *
+ * This function sends a signal to the object @a obj. An edje program
+ * can respond to a signal by specifying matching 'signal' and
+ * 'source' fields.
+ *
+ * @code
+ * edje_object_signal_emit(obj, "a_signal", "");
+ * @endcode
+ *
+ * will trigger a program whose EDC block is:
+ *
+ * @code
+ * program {
+ *  name: "a_program";
+ *  signal: "a_signal";
+ *  source: "";
+ *  action: ...
+ * }
+ * @endcode
+ *
+ * FIXME: should this signal be sent to children also?
+ */
+EAPI void         edje_object_signal_emit         (Evas_Object *obj, const char *emission, const char *source);
+   
+/**
+ * @brief Set the edje object to playing or paused states.
+ *
+ * @param obj A valid Evas_Object handle.
+ * @param play Object state (1 to playing, 0 to pauseed).
+ *
+ * This function sets the edje object @a obj to playing or paused
+ * states, depending on the parameter @a play.  This has no effect if
+ * the object was already at that state.
+ *
+ * @see edje_object_play_get().
+ *
+ */
+EAPI void         edje_object_play_set            (Evas_Object *obj, Eina_Bool play);
+   
+/**
+ * @brief Get the edje object's play/pause state.
+ *
+ * @param obj A valid Evas_Object handle.
+ * @return @c EINA_FALSE if the object is not connected, its @c delete_me flag
+ * is set, or it is at paused state; @c EINA_TRUE if the object is at playing
+ * state.
+ *
+ * This function tells if an edje object is playing or not. This state
+ * is set by edje_object_play_set().
+ *
+ * @see edje_object_play_set().
+ *
+ */
+EAPI Eina_Bool    edje_object_play_get            (const Evas_Object *obj);
+   
+/**
+ * @brief Set the object's animation state.
+ *
+ * @param obj A valid Evas_Object handle.
+ * @param on Animation State.
+ *
+ * This function starts or stops an edje object's animation. The
+ * information if it's runnig can be retrieved by
+ * edje_object_animation_get().
+ *
+ * @see edje_object_animation_get()
+ *
+ */
+EAPI void         edje_object_animation_set       (Evas_Object *obj, Eina_Bool on);
+   
+/**
+ * @brief Get the edje object's animation state.
+ *
+ * @param obj A valid Evas_Object handle.
+ * @return @c EINA_FALSE on error or if object is not animated;
+ * @c EINA_TRUE if animated.
+ *
+ * This function returns if the animation is playing or not. The
+ * animation state is set by edje_object_play_set().
+ *
+ * @see edje_object_animation_set().
+ *
+ */
+EAPI Eina_Bool    edje_object_animation_get       (const Evas_Object *obj);
+
+   /* edje_util.c */
+   
+/**
+ * @brief Freeze object.
+ *
+ * @param obj A valid Evas_Object handle
+ * @return The frozen state or 0 on Error
+ *
+ * This function puts all changes on hold. Successive freezes will
+ * nest, requiring an equal number of thaws.
+ *
+ */
+EAPI int          edje_object_freeze                  (Evas_Object *obj);
+   
+/**
+ * @brief Thaw object.
+ *
+ * @param obj A valid Evas_Object handle
+ * @return The frozen state or 0 on Error
+ *
+ * This allows frozen changes to occur.
+ *
+ */
+EAPI int          edje_object_thaw                    (Evas_Object *obj);
+   
+/**
+ * @brief Sets the object color class.
+ *
+ * @param obj A valid Evas_Object handle
+ * @param color_class
+ * @param r Object Red value
+ * @param g Object Green value
+ * @param b Object Blue value
+ * @param a Object Alpha value
+ * @param r2 Outline Red value
+ * @param g2 Outline Green value
+ * @param b2 Outline Blue value
+ * @param a2 Outline Alpha value
+ * @param r3 Shadow Red value
+ * @param g3 Shadow Green value
+ * @param b3 Shadow Blue value
+ * @param a3 Shadow Alpha value
+ *
+ * This function sets the color values for an object level color
+ * class. This will cause all edje parts in the specified object that
+ * have the specified color class to have their colors multiplied by
+ * these values.
+ *
+ * The first color is the object, the second is the text outline, and
+ * the third is the text shadow. (Note that the second two only apply
+ * to text parts).
+ *
+ * Setting color emits a signal "color_class,set" with source being
+ * the given color.
+ *
+ * @note unlike Evas, Edje colors are @b not pre-multiplied. That is,
+ *       half-transparent white is 255 255 255 128.
+ */
+
+/**
+ * @brief Lists color classes.
+ *
+ * @return A list of color class names (strings). These strings and
+ * the list must be free()'d by the caller.
+ *
+ * This function lists all color classes known about by the current
+ * process.
+ *
+ */
+
+/**
+ * @brief Delete edje color class.
+ *
+ * @param color_class
+ *
+ * This function deletes any values at the process level for the
+ * specified color class.
+ *
+ * Deleting color emits a signal "color_class,del" with source being
+ * the given color class in all objects.
+ */
+EAPI Eina_Bool    edje_object_color_class_set         (Evas_Object *obj, const char *color_class, int r, int g, int b, int a, int r2, int g2, int b2, int a2, int r3, int g3, int b3, int a3);
+   
+/**
+ * @brief Gets the object color class.
+ *
+ * @param obj A valid Evas_Object handle
+ * @param color_class
+ * @param r Object Red value
+ * @param g Object Green value
+ * @param b Object Blue value
+ * @param a Object Alpha value
+ * @param r2 Outline Red value
+ * @param g2 Outline Green value
+ * @param b2 Outline Blue value
+ * @param a2 Outline Alpha value
+ * @param r3 Shadow Red value
+ * @param g3 Shadow Green value
+ * @param b3 Shadow Blue value
+ * @param a3 Shadow Alpha value
+ *
+ * @return EINA_TRUE if found or EINA_FALSE if not found and all
+ *         values are zeroed.
+ *
+ * This function gets the color values for an object level color
+ * class. If no explicit object color is set, then global values will
+ * be used.
+ *
+ * The first color is the object, the second is the text outline, and
+ * the third is the text shadow. (Note that the second two only apply
+ * to text parts).
+ *
+ * @note unlike Evas, Edje colors are @b not pre-multiplied. That is,
+ *       half-transparent white is 255 255 255 128.
+ */
+EAPI Eina_Bool    edje_object_color_class_get         (const Evas_Object *o, const char *color_class, int *r, int *g, int *b, int *a, int *r2, int *g2, int *b2, int *a2, int *r3, int *g3, int *b3, int *a3);
+   EAPI void         edje_object_color_class_del         (Evas_Object *obj, const char *color_class);
+   
+/**
+ * @brief Sets Edje text class.
+ *
+ * @param obj A valid Evas_Object handle
+ * @param text_class The text class name
+ * @param font Font name
+ * @param size Font Size
+ *
+ * This function sets the text class for the Edje.
+ *
+ */
+
+/**
+ * @brief List text classes.
+ *
+ * @return A list of text class names (strings). These strings are
+ * stringshares and the list must be free()'d by the caller.
+ *
+ * This function lists all text classes known about by the current
+ * process.
+ *
+ */
+
+/**
+ * @brief Delete the text class.
+ *
+ * @param text_class The text class name string
+ *
+ * This function deletes any values at the process level for the
+ * specified text class.
+ *
+ */
+EAPI Eina_Bool    edje_object_text_class_set          (Evas_Object *obj, const char *text_class, const char *font, Evas_Font_Size size);
+   
+/**
+ * @brief Get the minimum size for an object.
+ *
+ * @param obj A valid Evas_Object handle
+ * @param minw Minimum width pointer
+ * @param minh Minimum height pointer
+ *
+ * Gets the object's minimum size values from the Edje. These are set
+ * to zero if no Edje is connected to the Evas Object.
+ */
+EAPI void         edje_object_size_min_get            (const Evas_Object *obj, Evas_Coord *minw, Evas_Coord *minh);
+   
+/**
+ * @brief Get the maximum size for an object.
+ *
+ * @param obj A valid Evas_Object handle
+ * @param maxw Maximum width pointer
+ * @param maxh Maximum height pointer
+ *
+ * Gets the object's maximum size values from the Edje. These are set
+ * to zero if no Edje is connected to the Evas Object.
+ */
+EAPI void         edje_object_size_max_get            (const Evas_Object *obj, Evas_Coord *maxw, Evas_Coord *maxh);
+   
+/**
+ * @brief Force a Size/Geometry calculation.
+ *
+ * @param obj A valid Evas_Object handle
+ *
+ * Forces the object @p obj to recalculation layout regardless of
+ * freeze/thaw.
+ */
+EAPI void         edje_object_calc_force              (Evas_Object *obj);
+   
+/**
+ * @brief Calculate minimum size.
+ *
+ * @param obj A valid Evas_Object handle
+ * @param minw Minimum width pointer
+ * @param minh Minimum height pointer
+ *
+ * Calculates the object's minimum size ?!
+ */
+EAPI void         edje_object_size_min_calc           (Evas_Object *obj, Evas_Coord *minw, Evas_Coord *minh);
+   EAPI Eina_Bool    edje_object_parts_extends_calc      (Evas_Object *obj, Evas_Coord *x, Evas_Coord *y, Evas_Coord *w, Evas_Coord *h);
+   EAPI void         edje_object_size_min_restricted_calc(Evas_Object *obj, Evas_Coord *minw, Evas_Coord *minh, Evas_Coord restrictedw, Evas_Coord restrictedh);
+   
+/**
+ * @brief Check if Edje part exists.
+ *
+ * @param obj A valid Evas_Object handle
+ * @param part The part name to check
+ *
+ * @return 0 on Error, 1 if Edje part exists.
+ *
+ * This function returns if a part exists in the edje.
+ *
+ */
+EAPI Eina_Bool    edje_object_part_exists             (const Evas_Object *obj, const char *part);
+   
+/**
+ * @brief Gets the evas object from a part.
+ *
+ * @param obj A valid Evas_Object handle
+ * @param part The Edje part
+ * @return Returns the Evas_Object corresponding to the given part, or
+ * NULL on failure (if the part doesn't exist)
+ *
+ * This functio gets the Evas_Object corresponding to a given part.
+ *
+ * You should never modify the state of the returned object (with
+ * evas_object_move() or evas_object_hide() for example), but you can
+ * safely query info about its current state (with
+ * evas_object_visible_get() or evas_object_color_get() for example)
+ *
+ **/
+EAPI const Evas_Object *edje_object_part_object_get   (const Evas_Object *obj, const char *part);
+   
+/**
+ * @brief Get the geometry of an Edje part.
+ *
+ * @param obj A valid Evas_Object handle
+ * @param part The Edje part
+ * @param x The x coordinate pointer
+ * @param y The y coordinate pointer
+ * @param w The width pointer
+ * @param h The height pointer
+ *
+ * This function gets the geometry of an Edje part.
+ *
+ * It is valid to pass NULL as any of @a x, @a y, @a w or @a h, whose
+ * values you are uninterested in.
+ */
+EAPI Eina_Bool    edje_object_part_geometry_get       (const Evas_Object *obj, const char *part, Evas_Coord *x, Evas_Coord *y, Evas_Coord *w, Evas_Coord *h);
+
+   
+/**
+ * @brief Set the function that provides item objects for named items in an edje entry text
+ *
+ * @param obj A valid Evas Object handle
+ * @param func The function to call (or NULL to disable) to get item objects
+ * @param data The data pointer to pass to the @p func callback
+ *
+ * Item objects may be deleted any time by Edje, and will be deleted when the
+ * Edje object is deleted (or file is set to a new file).
+ */
+EAPI void         edje_object_item_provider_set       (Evas_Object *obj, Edje_Item_Provider_Cb func, void *data);
+
+   
+/**
+ * @brief Set the object text callback.
+ *
+ * @param obj A valid Evas_Object handle
+ * @param func The callback function to handle the text change
+ * @param data The data associated to the callback function.
+ *
+ * This function gets the geometry of an Edje part
+ *
+ * It is valid to pass NULL as any of @a x, @a y, @a w or @a h, whose
+ * values you are uninterested in.
+ *
+ */
+EAPI void         edje_object_text_change_cb_set      (Evas_Object *obj, Edje_Text_Change_Cb func, void *data);
+
+   EAPI Eina_Bool    edje_object_part_text_set           (Evas_Object *obj, const char *part, const char *text);
+   
+/**
+ * @brief Return the text of the object part.
+ *
+ * @param obj A valid Evas_Object handle
+ * @param part The part name
+ *
+ * @return The text string
+ *
+ * This function returns the text associated to the object part.
+ *
+ */
+EAPI const char  *edje_object_part_text_get           (const Evas_Object *obj, const char *part);
+   
+/**
+ * @brief Sets the raw (non escaped) text for an object part.
+ *
+ * @param obj A valid Evas Object handle
+ * @param part The part name
+ * @param text_to_escape The text string
+ *
+ * This funciton will do escape for you if it is a TEXTBLOCK part,
+ * that is, if text contain tags, these tags will not be
+ * interpreted/parsed by TEXTBLOCK.
+ *
+ * @see edje_object_part_text_unescaped_get().
+ *
+ */
+EAPI Eina_Bool    edje_object_part_text_unescaped_set (Evas_Object *obj, const char *part, const char *text_to_escape);
+   
+/**
+ * @brief Returns the text of the object part, without escaping.
+ *
+ * @param obj A valid Evas_Object handle
+ * @param part The part name
+ * @return The @b allocated text string without escaping, or NULL on
+ * problems.
+ *
+ * This function is the counterpart of
+ * edje_object_part_text_unescaped_set(). Please notice that the
+ * result is newly allocated memory and should be released with free()
+ * when done.
+ *
+ * @see edje_object_part_text_unescaped_set().
+ *
+ */
+EAPI char        *edje_object_part_text_unescaped_get (const Evas_Object *obj, const char *part);
+
+   
+/**
+ * @brief Return the selection text of the object part.
+ *
+ * @param obj A valid Evas_Object handle
+ * @param part The part name
+ * @return The text string
+ *
+ * This function returns selection text of the object part.
+ *
+ */
+EAPI const char      *edje_object_part_text_selection_get           (const Evas_Object *obj, const char *part);
+   
+/**
+ * @brief Set the selection to be none.
+ *
+ * @param obj A valid Evas_Object handle
+ * @param part The part name
+ *
+ * This function sets the selection text to be none.
+ *
+ */
+EAPI void             edje_object_part_text_select_none             (const Evas_Object *obj, const char *part);
+   
+/**
+ * @brief Set the selection to be everything.
+ *
+ * @param obj A valid Evas_Object handle
+ * @param part The part name
+ *
+ * This function selects all text of the object of the part.
+ *
+ */
+EAPI void             edje_object_part_text_select_all              (const Evas_Object *obj, const char *part);
+   
+/**
+ * @brief Insert text for an object part.
+ *
+ * @param obj A valid Evas Object handle
+ * @param part The part name
+ * @param text The text string
+ *
+ * This function inserts the text for an object part just before the
+ * cursor position.
+ *
+ */
+EAPI void             edje_object_part_text_insert                  (Evas_Object *obj, const char *part, const char *text);
+   
+/**
+ * @brief Return a list of char anchor names.
+ *
+ * @param obj A valid Evas_Object handle
+ * @param part The part name
+ *
+ * @return The list of anchors (const char *), do not modify!
+ *
+ * This function returns a list of char anchor names.
+ *
+ */
+EAPI const Eina_List *edje_object_part_text_anchor_list_get         (const Evas_Object *obj, const char *part);
+   
+/**
+ * @brief Return a list of Evas_Textblock_Rectangle anchor rectangles.
+ *
+ * @param obj A valid Evas_Object handle
+ * @param part The part name
+ * @param anchor The anchor name
+ *
+ * @return The list of anchor rects (const Evas_Textblock_Rectangle
+ * *), do not modify! Geometry is relative to entry part.
+ *
+ * This function return a list of Evas_Textblock_Rectangle anchor
+ * rectangles.
+ *
+ */
+EAPI const Eina_List *edje_object_part_text_anchor_geometry_get     (const Evas_Object *obj, const char *part, const char *anchor);
+   
+/**
+ * @brief Return a list of char item names.
+ *
+ * @param obj A valid Evas_Object handle
+ * @param part The part name
+ *
+ * @return The list of items (const char *), do not modify!
+ *
+ * This function returns a list of char item names.
+ *
+ */
+EAPI const Eina_List *edje_object_part_text_item_list_get           (const Evas_Object *obj, const char *part);
+   
+/**
+ * @brief Return item geometry.
+ *
+ * @param obj A valid Evas_Object handle
+ * @param part The part name
+ * @param item The item name
+ * @param cx Item x return (relative to entry part)
+ * @param cy Item y return (relative to entry part)
+ * @param cw Item width return
+ * @param ch Item height return
+ *
+ * @return 1 if item exists, 0 if not
+ *
+ * This function return a list of Evas_Textblock_Rectangle item
+ * rectangles.
+ *
+ */
+EAPI Eina_Bool        edje_object_part_text_item_geometry_get       (const Evas_Object *obj, const char *part, const char *item, Evas_Coord *cx, Evas_Coord *cy, Evas_Coord *cw, Evas_Coord *ch);
+   
+/**
+ * @brief Returns the cursor geometry of the part relative to the edje
+ * object.
+ *
+ * @param obj A valid Evas_Object handle
+ * @param part The part name
+ * @param x Cursor X position
+ * @param y Cursor Y position
+ * @param w Cursor width
+ * @param h Cursor height
+ *
+ */
+EAPI void             edje_object_part_text_cursor_geometry_get     (const Evas_Object *obj, const char *part, Evas_Coord *x, Evas_Coord *y, Evas_Coord *w, Evas_Coord *h);
+   
+/**
+ * @brief Enables selection if the entry is an EXPLICIT selection mode
+ * type.
+ *
+ * @param obj A valid Evas_Object handle
+ * @param part The part name
+ * @param allow EINA_TRUE to enable, EINA_FALSE otherwise
+ */
+EAPI void             edje_object_part_text_select_allow_set        (const Evas_Object *obj, const char *part, Eina_Bool allow);
+   
+/**
+ * @brief Aborts any selection action on a part.
+ *
+ * @param obj A valid Evas_Object handle
+ * @param part The part name
+ */
+EAPI void             edje_object_part_text_select_abort            (const Evas_Object *obj, const char *part);
+   
+/**
+ * @brief Starts selecting at current cursor position
+ *
+ * @param obj A valid Evas_Object handle
+ * @param part The part name
+ */
+EAPI void             edje_object_part_text_select_begin            (const Evas_Object *obj, const char *part);
+   
+/**
+ * @brief Extends the current selection to the current cursor position
+ *
+ * @param obj A valid Evas_Object handle
+ * @param part The part name
+ */
+EAPI void             edje_object_part_text_select_extend           (const Evas_Object *obj, const char *part);
+
+   
+/**
+ * @brief Advances the cursor to the next cursor position.
+ * @see evas_textblock_cursor_char_next
+ *
+ * @param obj A valid Evas_Object handle
+ * @param part The part name
+ * @param cur The edje cursor to advance
+ */
+EAPI Eina_Bool        edje_object_part_text_cursor_next                 (Evas_Object *obj, const char *part, Edje_Cursor cur);
+   
+/**
+ * @brief Moves the cursor to the previous char
+ * @see evas_textblock_cursor_char_prev
+ *
+ * @param obj A valid Evas_Object handle
+ * @param part The part name
+ * @param cur the edje cursor to work on
+ */
+EAPI Eina_Bool        edje_object_part_text_cursor_prev                 (Evas_Object *obj, const char *part, Edje_Cursor cur);
+   
+/**
+ * @brief Move the cursor to the char above the current cursor position.
+ *
+ * @param obj A valid Evas_Object handle
+ * @param part The part name
+ * @param cur the edje cursor to work on
+ */
+EAPI Eina_Bool        edje_object_part_text_cursor_up                   (Evas_Object *obj, const char *part, Edje_Cursor cur);
+   
+/**
+ * @brief Moves the cursor to the char below the current cursor position.
+ *
+ * @param obj A valid Evas_Object handle
+ * @param part The part name
+ * @param cur the edje cursor to work on
+ */
+EAPI Eina_Bool        edje_object_part_text_cursor_down                 (Evas_Object *obj, const char *part, Edje_Cursor cur);
+   
+/**
+ * @brief Moves the cursor to the beginning of the text part
+ * @see evas_textblock_cursor_paragraph_first
+ *
+ * @param obj A valid Evas_Object handle
+ * @param part The part name
+ * @param cur the edje cursor to work on
+ */
+EAPI void             edje_object_part_text_cursor_begin_set            (Evas_Object *obj, const char *part, Edje_Cursor cur);
+   
+/**
+ * @brief Moves the cursor to the end of the text part.
+ * @see evas_textblock_cursor_paragraph_last
+ *
+ * @param obj A valid Evas_Object handle
+ * @param part The part name
+ * @param cur the edje cursor to work on
+ */
+EAPI void             edje_object_part_text_cursor_end_set              (Evas_Object *obj, const char *part, Edje_Cursor cur);
+   
+/**
+ * @brief Copy the cursor to another cursor.
+ *
+ * @param obj A valid Evas_Object handle
+ * @param part The part name
+ * @param sry the cursor to copy from
+ * @param dst the cursor to copy to
+ */
+EAPI void             edje_object_part_text_cursor_copy                 (Evas_Object *obj, const char *part, Edje_Cursor src, Edje_Cursor dst);
+   
+/**
+ * @brief Move the cursor to the beginning of the line.
+ * @see evas_textblock_cursor_line_char_first
+ *
+ * @param obj A valid Evas_Object handle
+ * @param part The part name
+ * @param cur the edje cursor to work on
+ */
+EAPI void             edje_object_part_text_cursor_line_begin_set       (Evas_Object *obj, const char *part, Edje_Cursor cur);
+   
+/**
+ * @brief Move the cursor to the end of the line.
+ * @see evas_textblock_cursor_line_char_last
+ *
+ * @param obj A valid Evas_Object handle
+ * @param part The part name
+ * @param cur the edje cursor to work on
+ */
+EAPI void             edje_object_part_text_cursor_line_end_set         (Evas_Object *obj, const char *part, Edje_Cursor cur);
+   
+/**
+ * Position the given cursor to a X,Y position.
+ *
+ * This is frequently used with the user cursor.
+ *
+ * @param obj An Edje object.
+ * @param part The part containing the object.
+ * @param cur The cursor to adjust.
+ * @param x X Coordinate.
+ * @param y Y Coordinate.
+ * @return True on success, false on error.
+ */
+EAPI Eina_Bool        edje_object_part_text_cursor_coord_set            (Evas_Object *obj, const char *part, Edje_Cursor cur, Evas_Coord x, Evas_Coord y);
+   
+/**
+ * @brief Returns whether the cursor points to a format.
+ * @see evas_textblock_cursor_is_format
+ *
+ * @param obj A valid Evas_Object handle
+ * @param part The part name
+ * @param cur The cursor to adjust.
+ * @return EINA_TRUE if it's true, EINA_FALSE otherwise.
+ */
+EAPI Eina_Bool        edje_object_part_text_cursor_is_format_get        (const Evas_Object *obj, const char *part, Edje_Cursor cur);
+   
+/**
+ * @brief Return true if the cursor points to a visible format
+ * For example \t, \n, item and etc.
+ * @see  evas_textblock_cursor_format_is_visible_get
+ *
+ * @param obj A valid Evas_Object handle
+ * @param part The part name
+ * @param cur The cursor to adjust.
+ */
+EAPI Eina_Bool        edje_object_part_text_cursor_is_visible_format_get(const Evas_Object *obj, const char *part, Edje_Cursor cur);
+   
+/**
+ * @brief Returns the content (char) at the cursor position.
+ * @see evas_textblock_cursor_content_get
+ *
+ * @param obj A valid Evas_Object handle
+ * @param part The part name
+ * @param cur The cursor to use
+ */
+EAPI const char      *edje_object_part_text_cursor_content_get          (const Evas_Object *obj, const char *part, Edje_Cursor cur);
+   
+/**
+ * @brief Sets the cursor position to the given value
+ *
+ * @param obj A valid Evas_Object handle
+ * @param part The part name
+ * @param cur The cursor to move
+ * @param pos the position of the cursor
+ * @since 1.1.0
+ */
+EAPI void             edje_object_part_text_cursor_pos_set              (Evas_Object *obj, const char *part, Edje_Cursor cur, int pos);
+   
+/**
+ * @brief Retrieves the current position of the cursor
+ *
+ * @param obj A valid Evas_Object handle
+ * @param part The part name
+ * @param cur The cursor to get the position
+ * @return The cursor position
+ * @since 1.1.0
+ */
+EAPI int              edje_object_part_text_cursor_pos_get              (const Evas_Object *obj, const char *part, Edje_Cursor cur);
+
+   
+/**
+ * Add a filter function for newly inserted text.
+ *
+ * Whenever text is inserted (not the same as set) into the given @p part,
+ * the list of filter functions will be called to decide if and how the new
+ * text will be accepted.
+ * There are three types of filters, EDJE_TEXT_FILTER_TEXT,
+ * EDJE_TEXT_FILTER_FORMAT and EDJE_TEXT_FILTER_MARKUP.
+ * The text parameter in the @p func filter can be modified by the user and
+ * it's up to him to free the one passed if he's to change the pointer. If
+ * doing so, the newly set text should be malloc'ed, as once all the filters
+ * are called Edje will free it.
+ * If the text is to be rejected, freeing it and setting the pointer to NULL
+ * will make Edje break out of the filter cycle and reject the inserted
+ * text.
+ *
+ * @see edje_object_text_insert_filter_callback_del
+ * @see edje_object_text_insert_filter_callback_del_full
+ *
+ * @param obj A valid Evas_Object handle
+ * @param part The part name
+ * @param func The callback function that will act as filter
+ * @param data User provided data to pass to the filter function
+ */
+EAPI void             edje_object_text_insert_filter_callback_add       (Evas_Object *obj, const char *part, Edje_Text_Filter_Cb func, void *data);
+   
+/**
+ * Delete a function from the filter list.
+ *
+ * Delete the given @p func filter from the list in @p part. Returns
+ * the user data pointer given when added.
+ *
+ * @see edje_object_text_insert_filter_callback_add
+ * @see edje_object_text_insert_filter_callback_del_full
+ *
+ * @param obj A valid Evas_Object handle
+ * @param part The part name
+ * @param func The function callback to remove
+ *
+ * @return The user data pointer if succesful, or NULL otherwise
+ */
+EAPI void            *edje_object_text_insert_filter_callback_del       (Evas_Object *obj, const char *part, Edje_Text_Filter_Cb func);
+   
+/**
+ * Delete a function and matching user data from the filter list.
+ *
+ * Delete the given @p func filter and @p data user data from the list
+ * in @p part.
+ * Returns the user data pointer given when added.
+ *
+ * @see edje_object_text_insert_filter_callback_add
+ * @see edje_object_text_insert_filter_callback_del
+ *
+ * @param obj A valid Evas_Object handle
+ * @param part The part name
+ * @param func The function callback to remove
+ * @param data The data passed to the callback function
+ *
+ * @return The same data pointer if succesful, or NULL otherwise
+ */
+EAPI void            *edje_object_text_insert_filter_callback_del_full  (Evas_Object *obj, const char *part, Edje_Text_Filter_Cb func, void *data);
+
+   
+/**
+ * @brief Swallows an object into the edje.
+ *
+ * @param obj A valid Evas_Object handle
+ * @param part The part name
+ * @param obj_swallow The object to swallow
+ *
+ * Swallows the object into the edje part so that all geometry changes
+ * for the part affect the swallowed object. (e.g. resize, move, show,
+ * raise/lower, etc.).
+ *
+ * If an object has already been swallowed into this part, then it
+ * will first be unswallowed before the new object is swallowed.
+ */
+EAPI Eina_Bool        edje_object_part_swallow        (Evas_Object *obj, const char *part, Evas_Object *obj_swallow);
+   
+/**
+ * @brief Unswallow an object.
+ *
+ * @param obj A valid Evas_Object handle
+ * @param obj_swallow The swallowed object
+ *
+ * Causes the edje to regurgitate a previously swallowed object.  :)
+ */
+EAPI void             edje_object_part_unswallow      (Evas_Object *obj, Evas_Object *obj_swallow);
+   
+/**
+ * @brief Get the object currently swallowed by a part.
+ *
+ * @param obj A valid Evas_Object handle
+ * @param part The part name
+ * @return The swallowed object, or NULL if there is none.
+ */
+EAPI Evas_Object     *edje_object_part_swallow_get    (const Evas_Object *obj, const char *part);
+   
+/**
+ * @brief Returns the state of the Edje part.
+ *
+ * @param obj A valid Evas_Object handle
+ * @param part The part name
+ * @param val_ret
+ *
+ * @return The part state:\n
+ * "default" for the default state\n
+ * "" for other states
+ */
+EAPI const char      *edje_object_part_state_get      (const Evas_Object *obj, const char *part, double *val_ret);
+   
+/**
+ * @brief Determine dragable directions.
+ *
+ * @param obj A valid Evas_Object handle
+ * @param part The part name
+ *
+ * @return 0: Not dragable\n
+ * 1: Dragable in X direction\n
+ * 2: Dragable in Y direction\n
+ * 3: Dragable in X & Y directions
+ */
+EAPI Edje_Drag_Dir    edje_object_part_drag_dir_get   (const Evas_Object *obj, const char *part);
+   
+/**
+ * @brief Set the dragable object location.
+ *
+ * @param obj A valid Evas_Object handle
+ * @param part The part name
+ * @param dx The x value
+ * @param dy The y value
+ *
+ * Places the dragable object at the given location.
+ */
+EAPI Eina_Bool        edje_object_part_drag_value_set (Evas_Object *obj, const char *part, double dx, double dy);
+   
+/**
+ * @brief Get the dragable object location.
+ *
+ * @param obj A valid Evas_Object handle
+ * @param part The part name
+ * @param dx The X value pointer
+ * @param dy The Y value pointer
+ *
+ * Gets the drag location values.
+ */
+EAPI Eina_Bool        edje_object_part_drag_value_get (const Evas_Object *obj, const char *part, double *dx, double *dy);
+   
+/**
+ * @brief Set the dragable object size.
+ *
+ * @param obj A valid Evas_Object handle
+ * @param part The part name
+ * @param dw The drag width
+ * @param dh The drag height
+ *
+ * Sets the size of the dragable object.
+ */
+EAPI Eina_Bool        edje_object_part_drag_size_set  (Evas_Object *obj, const char *part, double dw, double dh);
+   
+/**
+ * @brief Get the dragable object size.
+ *
+ * @param obj A valid Evas_Object handle
+ * @param part The part name
+ * @param dw The drag width pointer
+ * @param dh The drag height pointer
+ *
+ * Gets the dragable object size.
+ */
+EAPI Eina_Bool        edje_object_part_drag_size_get  (const Evas_Object *obj, const char *part, double *dw, double *dh);
+   
+/**
+ * @brief Sets the drag step increment.
+ *
+ * @param obj A valid Evas_Object handle
+ * @param part The part name
+ * @param dx The x step amount
+ * @param dy The y step amount
+ *
+ * Sets the x,y step increments for a dragable object.
+ */
+EAPI Eina_Bool        edje_object_part_drag_step_set  (Evas_Object *obj, const char *part, double dx, double dy);
+   
+/**
+ * @brief Gets the drag step increment values.
+ *
+ * @param obj A valid Evas_Object handle
+ * @param part The part
+ * @param dx The x step increment pointer
+ * @param dy The y step increment pointer
+ *
+ * Gets the x and y step increments for the dragable object.
+ */
+EAPI Eina_Bool        edje_object_part_drag_step_get  (const Evas_Object *obj, const char *part, double *dx, double *dy);
+   
+/**
+ * @brief Sets the page step increments.
+ *
+ * @param obj A valid Evas_Object handle
+ * @param part The part name
+ * @param dx The x page step increment
+ * @param dy The y page step increment
+ *
+ * Sets the x,y page step increment values.
+ */
+EAPI Eina_Bool        edje_object_part_drag_page_set  (Evas_Object *obj, const char *part, double dx, double dy);
+   
+/**
+ * @brief Gets the page step increments.
+ *
+ * @param obj A valid Evas_Object handle
+ * @param part The part name
+ * @param dx The dx page increment pointer
+ * @param dy The dy page increment pointer
+ *
+ * Gets the x,y page step increments for the dragable object.
+ */
+EAPI Eina_Bool        edje_object_part_drag_page_get  (const Evas_Object *obj, const char *part, double *dx, double *dy);
+   
+/**
+ * @brief Steps the dragable x,y steps.
+ *
+ * @param obj A valid Evas_Object handle
+ * @param part The part name
+ * @param dx The x step
+ * @param dy The y step
+ *
+ * Steps x,y where the step increment is the amount set by
+ * edje_object_part_drag_step_set.
+ */
+EAPI Eina_Bool        edje_object_part_drag_step      (Evas_Object *obj, const char *part, double dx, double dy);
+   
+/**
+ * @brief Pages x,y steps.
+ *
+ * @param obj A valid Evas_Object handle
+ * @param part The part name
+ * @param dx The x step
+ * @param dy The y step
+ *
+ * Pages x,y where the increment is defined by
+ * edje_object_part_drag_page_set.\n WARNING: Paging is bugged!
+ */
+EAPI Eina_Bool        edje_object_part_drag_page      (Evas_Object *obj, const char *part, double dx, double dy);
+
+   
+/**
+ * @brief Get the object created by this external part.
+ *
+ * Parts of type external creates the part object using information
+ * provided by external plugins. It's somehow like "swallow"
+ * (edje_object_part_swallow()), but it's all set automatically.
+ *
+ * This function returns the part created by such external plugins and
+ * being currently managed by this Edje.
+ *
+ * @note Almost all swallow rules apply: you should not move, resize,
+ *       hide, show, set the color or clipper of such part. It's a bit
+ *       more restrictive as one must @b never delete this object!
+ *
+ * @param obj A valid Evas_Object handle
+ * @param part The part name
+ * @return The externally created object, or NULL if there is none or
+ *         part is not an external.
+ */
+EAPI Evas_Object              *edje_object_part_external_object_get     (const Evas_Object *obj, const char *part);
+
+/**
+ * @brief Set the parameter for the external part.
+ *
+ * Parts of type external may carry extra properties that have
+ * meanings defined by the external plugin. For instance, it may be a
+ * string that defines a button label and setting this property will
+ * change that label on the fly.
+ *
+ * @note external parts have parameters set when they change
+ *       states. Those parameters will never be changed by this
+ *       function. The interpretation of how state_set parameters and
+ *       param_set will interact is up to the external plugin.
+ *
+ * @note this function will not check if parameter value is valid
+ *       using #Edje_External_Param_Info minimum, maximum, valid
+ *       choices and others. However these should be checked by the
+ *       underlying implementation provided by the external
+ *       plugin. This is done for performance reasons.
+ *
+ * @param obj A valid Evas_Object handle
+ * @param part The part name
+ * @param param the parameter details, including its name, type and
+ *        actual value. This pointer should be valid, and the
+ *        parameter must exist in
+ *        #Edje_External_Type::parameters_info, with the exact type,
+ *        otherwise the operation will fail and @c EINA_FALSE will be
+ *        returned.
+ *
+ * @return @c EINA_TRUE if everything went fine, @c EINA_FALSE on errors.
+ */
+EAPI Eina_Bool                 edje_object_part_external_param_set      (Evas_Object *obj, const char *part, const Edje_External_Param *param);
+   
+/**
+ * @brief Get the parameter for the external part.
+ *
+ * Parts of type external may carry extra properties that have
+ * meanings defined by the external plugin. For instance, it may be a
+ * string that defines a button label. This property can be modifed by
+ * state parameters, by explicit calls to
+ * edje_object_part_external_param_set() or getting the actual object
+ * with edje_object_part_external_object_get() and calling native
+ * functions.
+ *
+ * This function asks the external plugin what is the current value,
+ * independent on how it was set.
+ *
+ * @param obj A valid Evas_Object handle
+ * @param part The part name
+
+ * @param param the parameter details. It is used as both input and
+ *        output variable. This pointer should be valid, and the
+ *        parameter must exist in
+ *        #Edje_External_Type::parameters_info, with the exact type,
+ *        otherwise the operation will fail and @c EINA_FALSE will be
+ *        returned.
+ *
+ * @return @c EINA_TRUE if everything went fine and @p param members
+ *         are filled with information, @c EINA_FALSE on errors and @p
+ *         param member values are not set or valid.
+ */
+EAPI Eina_Bool                 edje_object_part_external_param_get      (const Evas_Object *obj, const char *part, Edje_External_Param *param);
+
+EAPI Evas_Object              *edje_object_part_external_content_get    (const Evas_Object *obj, const char *part, const char *content);
+   
+/**
+ * Facility to query the type of the given parameter of the given part.
+ *
+ * @param obj A valid Evas_Object handle
+ * @param part The part name
+ * @param param the parameter name to use.
+ *
+ * @return @c EDJE_EXTERNAL_PARAM_TYPE_MAX on errors, or another value
+ *         from #Edje_External_Param_Type on success.
+ */
+EAPI Edje_External_Param_Type  edje_object_part_external_param_type_get (const Evas_Object *obj, const char *part, const char *param);
+
+   
+/**
+ * @brief Appends an object to the box.
+ *
+ * @param obj A valid Evas_Object handle
+ * @param part The part name
+ * @param child The object to append
+ *
+ * @return 1: Successfully added.\n
+ * 0: An error occurred.
+ *
+ * Appends child to the box indicated by part.
+ */
+EAPI Eina_Bool    edje_object_part_box_append             (Evas_Object *obj, const char *part, Evas_Object *child);
+   
+/**
+ * @brief Prepends an object to the box.
+ *
+ * @param obj A valid Evas_Object handle
+ * @param part The part name
+ * @param child The object to prepend
+ *
+ * @return 1: Successfully added.\n
+ * 0: An error occurred.
+ *
+ * Prepends child to the box indicated by part.
+ */
+EAPI Eina_Bool    edje_object_part_box_prepend            (Evas_Object *obj, const char *part, Evas_Object *child);
+   
+/**
+ * @brief Adds an object to the box.
+ *
+ * @param obj A valid Evas_Object handle
+ * @param part The part name
+ * @param child The object to insert
+ * @param reference The object to be used as reference
+ *
+ * @return 1: Successfully added.\n
+ * 0: An error occurred.
+ *
+ * Inserts child in the box given by part, in the position marked by
+ * reference.
+ */
+EAPI Eina_Bool    edje_object_part_box_insert_before      (Evas_Object *obj, const char *part, Evas_Object *child, const Evas_Object *reference);
+   
+/**
+ * @brief Inserts an object to the box.
+ *
+ * @param obj A valid Evas_Object handle
+ * @param part The part name
+ * @param child The object to insert
+ * @param pos The position where to insert child
+ *
+ * @return 1: Successfully added.\n
+ * 0: An error occurred.
+ *
+ * Adds child to the box indicated by part, in the position given by
+ * pos.
+ */
+EAPI Eina_Bool    edje_object_part_box_insert_at          (Evas_Object *obj, const char *part, Evas_Object *child, unsigned int pos);
+   
+/**
+ * @brief Removes an object from the box.
+ *
+ * @param obj A valid Evas_Object handle
+ * @param part The part name
+ * @param child The object to remove
+ *
+ * @return Pointer to the object removed, or NULL.
+ *
+ * Removes child from the box indicated by part.
+ */
+EAPI Evas_Object *edje_object_part_box_remove             (Evas_Object *obj, const char *part, Evas_Object *child);
+   
+/**
+ * @brief Removes an object from the box.
+ *
+ * @param obj A valid Evas_Object handle
+ * @param part The part name
+ * @param pos
+ *
+ * @return Pointer to the object removed, or NULL.
+ *
+ * Removes from the box indicated by part, the object in the position
+ * pos.
+ */
+EAPI Evas_Object *edje_object_part_box_remove_at          (Evas_Object *obj, const char *part, unsigned int pos);
+   
+/**
+ * @brief Removes all elements from the box.
+ *
+ * @param obj A valid Evas_Object handle
+ * @param part The part name
+ * @param clear Delete objects on removal
+ *
+ * @return 1: Successfully cleared.\n
+ * 0: An error occurred.
+ *
+ * Removes all the external objects from the box indicated by part.
+ * Elements created from the theme will not be removed.
+ */
+EAPI Eina_Bool    edje_object_part_box_remove_all         (Evas_Object *obj, const char *part, Eina_Bool clear);
+   
+/**
+ * @brief Retrieve a child from a table
+ *
+ * @param obj A valid Evas_Object handle
+ * @param part The part name
+ * @param col The column of the child to get
+ * @param row The row of the child to get
+ * @return The child Evas_Object
+ */
+EAPI Evas_Object *edje_object_part_table_child_get        (Evas_Object *obj, const char *part, unsigned int col, unsigned int row);
+   
+/**
+ * @brief Packs an object into the table.
+ *
+ * @param obj A valid Evas_Object handle
+ * @param part The part name
+ * @param child_obj The object to pack in
+ * @param col The column to place it in
+ * @param row The row to place it in
+ * @param colspan Columns the child will take
+ * @param rowspan Rows the child will take
+ *
+ * @return 1: Successfully added.\n
+ * 0: An error occurred.
+ *
+ * Packs an object into the table indicated by part.
+ */
+EAPI Eina_Bool    edje_object_part_table_pack             (Evas_Object *obj, const char *part, Evas_Object *child_obj, unsigned short col, unsigned short row, unsigned short colspan, unsigned short rowspan);
+   
+/**
+ * @brief Removes an object from the table.
+ *
+ * @param obj A valid Evas_Object handle
+ * @param part The part name
+ * @param child_obj The object to pack in
+ *
+ * @return 1: Successfully removed.\n
+ * 0: An error occurred.
+ *
+ * Removes an object from the table indicated by part.
+ */
+EAPI Eina_Bool    edje_object_part_table_unpack           (Evas_Object *obj, const char *part, Evas_Object *child_obj);
+   
+/**
+ * @brief Gets the number of columns and rows the table has.
+ *
+ * @param obj A valid Evas_Object handle
+ * @param part The part name
+ * @param cols Pointer where to store number of columns (can be NULL)
+ * @param rows Pointer where to store number of rows (can be NULL)
+ *
+ * @return 1: Successfully get some data.\n
+ * 0: An error occurred.
+ *
+ * Retrieves the size of the table in number of columns and rows.
+ */
+EAPI Eina_Bool    edje_object_part_table_col_row_size_get (const Evas_Object *obj, const char *part, int *cols, int *rows);
+   
+/**
+ * @brief Removes all object from the table.
+ *
+ * @param obj A valid Evas_Object handle
+ * @param part The part name
+ * @param clear If set, will delete subobjs on remove
+ *
+ * @return 1: Successfully clear table.\n
+ * 0: An error occurred.
+ *
+ * Removes all object from the table indicated by part, except the
+ * internal ones set from the theme.
+ */
+EAPI Eina_Bool    edje_object_part_table_clear            (Evas_Object *obj, const char *part, Eina_Bool clear);
+
+   /* edje_message_queue.c */
+   
+/**
+ * @brief Send message to object.
+ *
+ * @param obj The edje object reference.
+ * @param type The type of message to send.
+ * @param id A identification number for the message.
+ * @param msg The message to be send.
+ *
+ *
+ * This function sends messages to this object and to all of its child
+ * objects, if applicable. The function that handles messages arriving
+ * at this edje object is is set with
+ * edje_object_message_handler_set().
+ *
+ * @see edje_object_message_handler_set()
+ *
+ */
+EAPI void         edje_object_message_send                (Evas_Object *obj, Edje_Message_Type type, int id, void *msg);
+   
+/**
+ * @brief Set the message handler function for this an object.
+ *
+ * @param obj The edje object reference.
+ * @param func The function to handle messages.
+ * @param data The data to be associated to the message handler.
+ *
+ *
+ * This function associates a message handler function and data to the
+ * edje object.
+ *
+ */
+EAPI void         edje_object_message_handler_set         (Evas_Object *obj, Edje_Message_Handler_Cb func, void *data);
+   
+/**
+ * @brief Process an object's message queue.
+ *
+ * @param obj The edje object reference.
+ *
+ * This function goes through the object message queue processing the
+ * pending messages for *this* specific edje object. Normally they'd
+ * be processed only at idle time.
+ *
+ */
+EAPI void         edje_object_message_signal_process      (Evas_Object *obj);
+
+   
+/**
+ * @brief Process all queued up edje messages.
+ *
+ * This function triggers the processing of messages addressed to any
+ * (alive) edje objects.
+ *
+ */
+EAPI void         edje_message_signal_process             (void);
+
+   /* edje_external.c */
+   
+/**
+ * Register given type name to return the given information.
+ *
+ * @param type_name name to register and be known by edje's "source:"
+ *        parameter of "type: EXTERNAL" parts.
+ * @param type_info meta-information describing how to interact with it.
+ *
+ * @return @c EINA_TRUE on success, @c EINA_FALSE on failure (like
+ *         type already registered).
+ *
+ * @see edje_external_type_array_register()
+ */
+EAPI Eina_Bool    edje_external_type_register             (const char *type_name, const Edje_External_Type *type_info);
+   
+/**
+ * Unregister given type name previously registered.
+ *
+ * @param type_name name to unregister. It should be registered with
+ *        edje_external_type_register() before.
+ *
+ * @return @c EINA_TRUE on success, @c EINA_FALSE on failure (like
+ *         type_name did not exist).
+ *
+ * @see edje_external_type_array_unregister()
+ */
+EAPI Eina_Bool    edje_external_type_unregister           (const char *type_name);
+
+   
+/**
+ * Register a batch of types and their information.
+ *
+ * This is the recommended function to add information as it's faster
+ * than the single version edje_external_type_register().
+ *
+ * @note the given array is not modified, but the type name strings
+ *       are @b not duplicated! That is, all type names must be @b
+ *       live until they are unregistered! This was chosen to save
+ *       some memory and most people will just define the array as a
+ *       global static const type anyway.
+ *
+ * @param array @c NULL terminated array with type name and
+ *        information. Note that type name or information are not
+ *        modified by are @b referenced, so they must keep alive after
+ *        this function returns!
+ *
+ * @return @c EINA_TRUE on success, @c EINA_FALSE on failure (like
+ *         type already registered).
+ *
+ * @see edje_external_type_register()
+ */
+EAPI void         edje_external_type_array_register       (const Edje_External_Type_Info *array);
+   
+/**
+ * Unregister a batch of given external type previously registered.
+ *
+ * @param array @c NULL terminated array, should be the same as the
+ *        one used to register with edje_external_type_array_register()
+ *
+ * @see edje_external_type_unregister()
+ */
+EAPI void         edje_external_type_array_unregister     (const Edje_External_Type_Info *array);
+
+   
+/**
+ * Return the current ABI version for Edje_External_Type structure.
+ *
+ * Always check this number before accessing Edje_External_Type in
+ * your own software. If the number is not the same, your software may
+ * access invalid memory and crash, or just get garbage values.
+ *
+ * @warning @b NEVER, EVER define your own Edje_External_Type using the
+ *          return of this function as it will change as Edje library
+ *          (libedje.so) changes, but your type definition will
+ *          not. Instead, use #EDJE_EXTERNAL_TYPE_ABI_VERSION.
+ *
+ * Summary:
+ *   - use edje_external_type_abi_version_get() to check.
+ *   - use #EDJE_EXTERNAL_TYPE_ABI_VERSION to define/declare.
+ *
+ * @return version this edje library was compiled.
+ */
+EAPI unsigned int edje_external_type_abi_version_get      (void) EINA_CONST;
+
+
+   
+/**
+ * Returns an iterator that emits Eina_Hash_Tuple pointers with key
+ * being the name and data being the Edje_External_Type pointer.
+ *
+ * @code
+ * const Eina_Hash_Tuple *tuple;
+ * Eina_Iterator *itr;
+ * const Eina_List *l, *modules;
+ * const char *s;
+ *
+ * modules = edje_available_modules_get();
+ * EINA_LIST_FOREACH(modules, l, s)
+ *   {
+ *      if (!edje_module_load(s))
+ *        printf("Error loading edje module: %s\n", s);
+ *   }
+ *
+ * itr = edje_external_iterator_get();
+ * EINA_ITERATOR_FOREACH(itr, tuple)
+ *   {
+ *      const char *name = tuple->key;
+ *      const Edje_External_Type *type = tuple->data;
+ *
+ *      if ((!type) ||
+ *          (type->abi_version != edje_external_type_abi_version_get()))
+ *        {
+ *           printf("Error: invalid type %p (abi: %d, expected: %d)\n",
+ *                   type, type ? type->abi_version : 0,
+ *                   edje_external_type_abi_version_get());
+ *           continue;
+ *        }
+ *
+ *      printf("%s: %s (%s) label='%s' desc='%s'\n",
+ *             name, type->module, type->module_name,
+ *             type->label_get ? type->label_get(type->data) : "",
+ *             type->description_get ? type->description_get(type->data) : "");
+ *   }
+ *
+ * @endcode
+ */
+EAPI Eina_Iterator                  *edje_external_iterator_get     (void);
+   EAPI Edje_External_Param            *edje_external_param_find       (const Eina_List *params, const char *key);
    EAPI Eina_Bool                       edje_external_param_int_get    (const Eina_List *params, const char *key, int *ret);
    EAPI Eina_Bool                       edje_external_param_double_get (const Eina_List *params, const char *key, double *ret);
    EAPI Eina_Bool                       edje_external_param_string_get (const Eina_List *params, const char *key, const char **ret);
    EAPI Eina_Bool                       edje_external_param_bool_get   (const Eina_List *params, const char *key, Eina_Bool *ret);
    EAPI Eina_Bool                       edje_external_param_choice_get (const Eina_List *params, const char *key, const char **ret);
-   EAPI const Edje_External_Param_Info *edje_external_param_info_get   (const char *type_name);
+   
+/**
+ * Get the array of parameters information about a type given its name.
+ *
+ * @note the type names and other strings are static, that means they
+ *       @b NOT translated. One must use
+ *       Edje_External_Type::translate() to translate those.
+ *
+ * @return the NULL terminated array, or @c NULL if type is unknown or
+ *         it does not have any parameter information.
+ *
+ * @see edje_external_type_get()
+ */
+EAPI const Edje_External_Param_Info *edje_external_param_info_get   (const char *type_name);
    EAPI const Edje_External_Type       *edje_external_type_get         (const char *type_name);
 
    /* edje_module.c */
index 35c2ec6..935d661 100644 (file)
@@ -191,6 +191,24 @@ EAPI void edje_edit_print_internal_status(Evas_Object *obj);
  * @return EINA_TRUE if successfully added the group, EINA_FALSE if an error
  * occurred or if a group with the same name exists.
  */
+
+/**
+ * @brief Add an edje (empty) group to an edje object's group set.
+ *
+ * @param obj The pointer to edje object.
+ * @param name The name of the group.
+ *
+ * @return 1 If it could allocate memory to the part group added
+ * or zero if not.
+ *
+ * This function adds, at run time, one more group, which will reside
+ * in memory, to the group set found in the .edj file which @a obj was
+ * loaded with. This group can be manipulated by other API functions,
+ * like @c edje_edit_part_add(), for example. If desired, the new
+ * group can be actually committed the respective .edj by use of @c
+ * edje_edit_save().
+ *
+ */
 EAPI Eina_Bool edje_edit_group_add(Evas_Object *obj, const char *name);
 
 /** Delete the specified group from the given edje.
@@ -204,6 +222,21 @@ EAPI Eina_Bool edje_edit_group_add(Evas_Object *obj, const char *name);
  *
  * @return EINA_TRUE if successful, EINA_FALSE otherwise.
  */
+
+/**
+ * @brief Delete the specified group from the edje file.
+ *
+ * @param obj The pointer to the edje object.
+ * @param group_name Group to delete.
+ *
+ * @return @c EINA_TRUE on success, @c EINA_FALSE on failure.
+ *
+ * This function deletes the given group from the file @a obj is set to. This
+ * operation can't be undone as all references to the group are removed from
+ * the file.
+ * This function may fail if the group to be deleted is currently in use.
+ *
+ */
 EAPI Eina_Bool edje_edit_group_del(Evas_Object *obj, const char *group_name);
 
 /** Check if a group with the given name exist in the edje.
@@ -2027,6 +2060,18 @@ EAPI Eina_Bool edje_edit_state_external_param_choice_get(Evas_Object *obj, const
  *
  * @return EINA_TRUE if it was set, EINA_FALSE otherwise.
  */
+
+/**
+ * Arguments should have proper sized values matching their types:
+ *   - EDJE_EXTERNAL_PARAM_TYPE_INT: int
+ *   - EDJE_EXTERNAL_PARAM_TYPE_BOOL: int
+ *   - EDJE_EXTERNAL_PARAM_TYPE_DOUBLE: double
+ *   - EDJE_EXTERNAL_PARAM_TYPE_STRING: char*
+ *   - EDJE_EXTERNAL_PARAM_TYPE_CHOICE: char*
+ *
+ * @note: The validation of the parameter will occur only if the part
+ * is in the same state as the one being modified.
+ */
 EAPI Eina_Bool edje_edit_state_external_param_set(Evas_Object *obj, const char *part, const char *state, double value, const char *param, Edje_External_Param_Type type, ...);
 
 /** Set external parameter of type INT.
index 3d1d789..a8b355f 100644 (file)
@@ -504,29 +504,6 @@ _edje_file_cache_shutdown(void)
  *                                   API                                      *
  *============================================================================*/
 
-/**
- * @addtogroup Edje_cache_Group Cache
- *
- * @brief These functions provide an abstraction layer between the
- * application code and the interface, while allowing extremely
- * flexible dynamic layouts and animations.
- *
- * @{
- */
-
-/**
- * @brief Set the file cache size.
- *
- * @param count The file cache size in edje file units. Default is 16.
- *
- * This function sets the file cache size. Edje keeps this cache in
- * order to prevent duplicates of edje file entries in memory. The
- * file cache size can be retrieved with edje_file_cache_get().
- *
- * @see edje_file_cache_get()
- * @see edje_file_cache_flush()
- *
- */
 
 EAPI void
 edje_file_cache_set(int count)
@@ -536,18 +513,6 @@ edje_file_cache_set(int count)
    _edje_cache_file_clean();
 }
 
-/**
- * @brief Return the file cache size.
- *
- * @return The file cache size in edje file units. Default is 16.
- *
- * This function returns the file cache size set by
- * edje_file_cache_set().
- *
- * @see edje_file_cache_set()
- * @see edje_file_cache_flush()
- *
- */
 
 EAPI int
 edje_file_cache_get(void)
@@ -555,16 +520,6 @@ edje_file_cache_get(void)
    return _edje_file_cache_size;
 }
 
-/**
- * @brief Clean the file cache.
- *
- * This function cleans the file cache entries, but keeps this cache's
- * size to the last value set.
- *
- * @see edje_file_cache_set()
- * @see edje_file_cache_get()
- *
- */
 
 EAPI void
 edje_file_cache_flush(void)
@@ -577,20 +532,6 @@ edje_file_cache_flush(void)
    _edje_file_cache_size = ps;
 }
 
-/**
- * @brief Set the collection cache size.
- *
- * @param count The collection cache size, in edje object units. Default is 16.
- *
- * This function sets the collection cache size. Edje keeps this cache
- * in order to prevent duplicates of edje {collection,group,part}
- * entries in memory. The collection cache size can be retrieved with
- * edje_collection_cache_get().
- *
- * @see edje_collection_cache_get()
- * @see edje_collection_cache_flush()
- *
- */
 
 EAPI void
 edje_collection_cache_set(int count)
@@ -605,18 +546,6 @@ edje_collection_cache_set(int count)
    /* FIXME: freach in file hash too! */
 }
 
-/**
- * @brief Return the collection cache size.
- *
- * @return The collection cache size, in edje object units. Default is 16.
- *
- * This function returns the collection cache size set by
- * edje_collection_cache_set().
- *
- * @see edje_collection_cache_set()
- * @see edje_collection_cache_flush()
- *
- */
 
 EAPI int
 edje_collection_cache_get(void)
@@ -624,16 +553,6 @@ edje_collection_cache_get(void)
    return _edje_collection_cache_size;
 }
 
-/**
- * @brief Clean the collection cache.
- *
- * This function cleans the collection cache, but keeps this cache's
- * size to the last value set.
- *
- * @see edje_collection_cache_set()
- * @see edje_collection_cache_get()
- *
- */
 
 EAPI void
 edje_collection_cache_flush(void)
@@ -649,8 +568,3 @@ edje_collection_cache_flush(void)
    /* FIXME: freach in file hash too! */
    _edje_collection_cache_size = ps;
 }
-
-/**
- *
- * @}
- */
index a4be7d2..9204f53 100644 (file)
@@ -955,23 +955,6 @@ edje_edit_compiler_get(Evas_Object *obj)
 /*  GROUPS API  */
 /****************/
 
-/**
- * @brief Add an edje (empty) group to an edje object's group set.
- *
- * @param obj The pointer to edje object.
- * @param name The name of the group.
- *
- * @return 1 If it could allocate memory to the part group added
- * or zero if not.
- *
- * This function adds, at run time, one more group, which will reside
- * in memory, to the group set found in the .edj file which @a obj was
- * loaded with. This group can be manipulated by other API functions,
- * like @c edje_edit_part_add(), for example. If desired, the new
- * group can be actually committed the respective .edj by use of @c
- * edje_edit_save().
- *
- */
 EAPI Eina_Bool
 edje_edit_group_add(Evas_Object *obj, const char *name)
 {
@@ -1066,20 +1049,6 @@ edje_edit_group_add(Evas_Object *obj, const char *name)
    return EINA_TRUE;
 }
 
-/**
- * @brief Delete the specified group from the edje file.
- *
- * @param obj The pointer to the edje object.
- * @param group_name Group to delete.
- *
- * @return @c EINA_TRUE on success, @c EINA_FALSE on failure.
- *
- * This function deletes the given group from the file @a obj is set to. This
- * operation can't be undone as all references to the group are removed from
- * the file.
- * This function may fail if the group to be deleted is currently in use.
- *
- */
 EAPI Eina_Bool
 edje_edit_group_del(Evas_Object *obj, const char *group_name)
 {
@@ -4067,17 +4036,6 @@ edje_edit_state_external_param_choice_get(Evas_Object *obj, const char *part, co
    return EINA_FALSE;
 }
 
-/**
- * Arguments should have proper sized values matching their types:
- *   - EDJE_EXTERNAL_PARAM_TYPE_INT: int
- *   - EDJE_EXTERNAL_PARAM_TYPE_BOOL: int
- *   - EDJE_EXTERNAL_PARAM_TYPE_DOUBLE: double
- *   - EDJE_EXTERNAL_PARAM_TYPE_STRING: char*
- *   - EDJE_EXTERNAL_PARAM_TYPE_CHOICE: char*
- *
- * @note: The validation of the parameter will occur only if the part
- * is in the same state as the one being modified.
- */
 EAPI Eina_Bool
 edje_edit_state_external_param_set(Evas_Object *obj, const char *part, const char *state, double value, const char *param, Edje_External_Param_Type type, ...)
 {
index 2ad2867..8bf6256 100644 (file)
@@ -3,14 +3,6 @@
 static Eina_Hash *type_registry = NULL;
 static int init_count = 0;
 
-/**
- * @brief Converts type identifier to string nicer representation.
- *
- * This may be used to debug or other informational purposes.
- *
- * @param type the identifier to convert.
- * @return the string with the string representation, or @c "(unknown)".
- */
 EAPI const char *
 edje_external_param_type_str(Edje_External_Param_Type type)
 {
@@ -31,25 +23,6 @@ edje_external_param_type_str(Edje_External_Param_Type type)
      }
 }
 
-/**
- * @brief Get the object created by this external part.
- *
- * Parts of type external creates the part object using information
- * provided by external plugins. It's somehow like "swallow"
- * (edje_object_part_swallow()), but it's all set automatically.
- *
- * This function returns the part created by such external plugins and
- * being currently managed by this Edje.
- *
- * @note Almost all swallow rules apply: you should not move, resize,
- *       hide, show, set the color or clipper of such part. It's a bit
- *       more restrictive as one must @b never delete this object!
- *
- * @param obj A valid Evas_Object handle
- * @param part The part name
- * @return The externally created object, or NULL if there is none or
- *         part is not an external.
- */
 EAPI Evas_Object *
 edje_object_part_external_object_get(const Evas_Object *obj, const char *part)
 {
@@ -77,36 +50,6 @@ edje_object_part_external_object_get(const Evas_Object *obj, const char *part)
    return rp->swallowed_object;
 }
 
-/**
- * @brief Set the parameter for the external part.
- *
- * Parts of type external may carry extra properties that have
- * meanings defined by the external plugin. For instance, it may be a
- * string that defines a button label and setting this property will
- * change that label on the fly.
- *
- * @note external parts have parameters set when they change
- *       states. Those parameters will never be changed by this
- *       function. The interpretation of how state_set parameters and
- *       param_set will interact is up to the external plugin.
- *
- * @note this function will not check if parameter value is valid
- *       using #Edje_External_Param_Info minimum, maximum, valid
- *       choices and others. However these should be checked by the
- *       underlying implementation provided by the external
- *       plugin. This is done for performance reasons.
- *
- * @param obj A valid Evas_Object handle
- * @param part The part name
- * @param param the parameter details, including its name, type and
- *        actual value. This pointer should be valid, and the
- *        parameter must exist in
- *        #Edje_External_Type::parameters_info, with the exact type,
- *        otherwise the operation will fail and @c EINA_FALSE will be
- *        returned.
- *
- * @return @c EINA_TRUE if everything went fine, @c EINA_FALSE on errors.
- */
 EAPI Eina_Bool
 edje_object_part_external_param_set(Evas_Object *obj, const char *part, const Edje_External_Param *param)
 {
@@ -128,34 +71,6 @@ edje_object_part_external_param_set(Evas_Object *obj, const char *part, const Ed
    return _edje_external_param_set(obj, rp, param);
 }
 
-/**
- * @brief Get the parameter for the external part.
- *
- * Parts of type external may carry extra properties that have
- * meanings defined by the external plugin. For instance, it may be a
- * string that defines a button label. This property can be modifed by
- * state parameters, by explicit calls to
- * edje_object_part_external_param_set() or getting the actual object
- * with edje_object_part_external_object_get() and calling native
- * functions.
- *
- * This function asks the external plugin what is the current value,
- * independent on how it was set.
- *
- * @param obj A valid Evas_Object handle
- * @param part The part name
-
- * @param param the parameter details. It is used as both input and
- *        output variable. This pointer should be valid, and the
- *        parameter must exist in
- *        #Edje_External_Type::parameters_info, with the exact type,
- *        otherwise the operation will fail and @c EINA_FALSE will be
- *        returned.
- *
- * @return @c EINA_TRUE if everything went fine and @p param members
- *         are filled with information, @c EINA_FALSE on errors and @p
- *         param member values are not set or valid.
- */
 EAPI Eina_Bool
 edje_object_part_external_param_get(const Evas_Object *obj, const char *part, Edje_External_Param *param)
 {
@@ -179,7 +94,7 @@ edje_object_part_external_param_get(const Evas_Object *obj, const char *part, Ed
 
 
 
-EAPI Evas_Object*
+EAPI Evas_Object *
 edje_object_part_external_content_get(const Evas_Object *obj, const char *part, const char *content)
 {
    Edje *ed;
@@ -200,16 +115,6 @@ edje_object_part_external_content_get(const Evas_Object *obj, const char *part,
    return _edje_external_content_get(rp->swallowed_object, content);
 }
 
-/**
- * Facility to query the type of the given parameter of the given part.
- *
- * @param obj A valid Evas_Object handle
- * @param part The part name
- * @param param the parameter name to use.
- *
- * @return @c EDJE_EXTERNAL_PARAM_TYPE_MAX on errors, or another value
- *         from #Edje_External_Param_Type on success.
- */
 EAPI Edje_External_Param_Type
 edje_object_part_external_param_type_get(const Evas_Object *obj, const char *part, const char *param)
 {
@@ -248,18 +153,6 @@ edje_object_part_external_param_type_get(const Evas_Object *obj, const char *par
 }
 
 
-/**
- * Register given type name to return the given information.
- *
- * @param type_name name to register and be known by edje's "source:"
- *        parameter of "type: EXTERNAL" parts.
- * @param type_info meta-information describing how to interact with it.
- *
- * @return @c EINA_TRUE on success, @c EINA_FALSE on failure (like
- *         type already registered).
- *
- * @see edje_external_type_array_register()
- */
 EAPI Eina_Bool
 edje_external_type_register(const char *type_name, const Edje_External_Type *type_info)
 {
@@ -285,17 +178,6 @@ edje_external_type_register(const char *type_name, const Edje_External_Type *typ
    return eina_hash_add(type_registry, type_name, type_info);
 }
 
-/**
- * Unregister given type name previously registered.
- *
- * @param type_name name to unregister. It should be registered with
- *        edje_external_type_register() before.
- *
- * @return @c EINA_TRUE on success, @c EINA_FALSE on failure (like
- *         type_name did not exist).
- *
- * @see edje_external_type_array_unregister()
- */
 EAPI Eina_Bool
 edje_external_type_unregister(const char *type_name)
 {
@@ -304,28 +186,6 @@ edje_external_type_unregister(const char *type_name)
    return eina_hash_del_by_key(type_registry, type_name);
 }
 
-/**
- * Register a batch of types and their information.
- *
- * This is the recommended function to add information as it's faster
- * than the single version edje_external_type_register().
- *
- * @note the given array is not modified, but the type name strings
- *       are @b not duplicated! That is, all type names must be @b
- *       live until they are unregistered! This was chosen to save
- *       some memory and most people will just define the array as a
- *       global static const type anyway.
- *
- * @param array @c NULL terminated array with type name and
- *        information. Note that type name or information are not
- *        modified by are @b referenced, so they must keep alive after
- *        this function returns!
- *
- * @return @c EINA_TRUE on success, @c EINA_FALSE on failure (like
- *         type already registered).
- *
- * @see edje_external_type_register()
- */
 EAPI void
 edje_external_type_array_register(const Edje_External_Type_Info *array)
 {
@@ -349,14 +209,6 @@ edje_external_type_array_register(const Edje_External_Type_Info *array)
      }
 }
 
-/**
- * Unregister a batch of given external type previously registered.
- *
- * @param array @c NULL terminated array, should be the same as the
- *        one used to register with edje_external_type_array_register()
- *
- * @see edje_external_type_unregister()
- */
 EAPI void
 edje_external_type_array_unregister(const Edje_External_Type_Info *array)
 {
@@ -369,70 +221,12 @@ edje_external_type_array_unregister(const Edje_External_Type_Info *array)
      eina_hash_del(type_registry, itr->name, itr->info);
 }
 
-/**
- * Return the current ABI version for Edje_External_Type structure.
- *
- * Always check this number before accessing Edje_External_Type in
- * your own software. If the number is not the same, your software may
- * access invalid memory and crash, or just get garbage values.
- *
- * @warning @b NEVER, EVER define your own Edje_External_Type using the
- *          return of this function as it will change as Edje library
- *          (libedje.so) changes, but your type definition will
- *          not. Instead, use #EDJE_EXTERNAL_TYPE_ABI_VERSION.
- *
- * Summary:
- *   - use edje_external_type_abi_version_get() to check.
- *   - use #EDJE_EXTERNAL_TYPE_ABI_VERSION to define/declare.
- *
- * @return version this edje library was compiled.
- */
 EAPI unsigned int
 edje_external_type_abi_version_get(void)
 {
    return EDJE_EXTERNAL_TYPE_ABI_VERSION;
 }
 
-/**
- * Returns an iterator that emits Eina_Hash_Tuple pointers with key
- * being the name and data being the Edje_External_Type pointer.
- *
- * @code
- * const Eina_Hash_Tuple *tuple;
- * Eina_Iterator *itr;
- * const Eina_List *l, *modules;
- * const char *s;
- *
- * modules = edje_available_modules_get();
- * EINA_LIST_FOREACH(modules, l, s)
- *   {
- *      if (!edje_module_load(s))
- *        printf("Error loading edje module: %s\n", s);
- *   }
- *
- * itr = edje_external_iterator_get();
- * EINA_ITERATOR_FOREACH(itr, tuple)
- *   {
- *      const char *name = tuple->key;
- *      const Edje_External_Type *type = tuple->data;
- *
- *      if ((!type) ||
- *          (type->abi_version != edje_external_type_abi_version_get()))
- *        {
- *           printf("Error: invalid type %p (abi: %d, expected: %d)\n",
- *                   type, type ? type->abi_version : 0,
- *                   edje_external_type_abi_version_get());
- *           continue;
- *        }
- *
- *      printf("%s: %s (%s) label='%s' desc='%s'\n",
- *             name, type->module, type->module_name,
- *             type->label_get ? type->label_get(type->data) : "",
- *             type->description_get ? type->description_get(type->data) : "");
- *   }
- *
- * @endcode
- */
 EAPI Eina_Iterator *
 edje_external_iterator_get(void)
 {
@@ -536,18 +330,6 @@ edje_external_param_choice_get(const Eina_List *params, const char *key, const c
    return EINA_FALSE;
 }
 
-/**
- * Get the array of parameters information about a type given its name.
- *
- * @note the type names and other strings are static, that means they
- *       @b NOT translated. One must use
- *       Edje_External_Type::translate() to translate those.
- *
- * @return the NULL terminated array, or @c NULL if type is unknown or
- *         it does not have any parameter information.
- *
- * @see edje_external_type_get()
- */
 EAPI const Edje_External_Param_Info *
 edje_external_param_info_get(const char *type_name)
 {
index e3052df..68f4a29 100644 (file)
@@ -10,18 +10,6 @@ static Eina_List *_edje_swallows_collect(Edje *ed);
 
 /************************** API Routines **************************/
 
-/* FIXDOC: Verify/expand doc */
-/** Sets the EET file and group to load @a obj from
- * @param obj A valid Evas_Object handle
- * @param file The path to the EET file
- * @param group The group name in the Edje
- * @return 0 on Error\n
- * 1 on Success and sets EDJE_LOAD_ERROR_NONE
- *
- * Edje uses EET files, conventionally ending in .edj, to store object
- * descriptions. A single file contains multiple named groups. This function
- * specifies the file and group name to load @a obj from.
- */
 EAPI Eina_Bool
 edje_object_file_set(Evas_Object *obj, const char *file, const char *group)
 {
@@ -36,20 +24,6 @@ edje_object_file_set(Evas_Object *obj, const char *file, const char *group)
    return ret;
 }
 
-/* FIXDOC: Verify/expand doc. */
-/** Get the file and group name that @a obj was loaded from
- * @param obj A valid Evas_Object handle
- * @param file A pointer to store a pointer to the filename in
- * @param group A pointer to store a pointer to the group name in
- *
- * This gets the EET file location and group for the given Evas_Object.
- * If @a obj is either not an edje file, or has not had its file/group set
- * using edje_object_file_set(), then both @a file and @a group will be set
- * to NULL.
- *
- * It is valid to pass in NULL for either @a file or @a group if you are not
- * interested in one of the values.
- */
 EAPI void
 edje_object_file_get(const Evas_Object *obj, const char **file, const char **group)
 {
@@ -66,22 +40,6 @@ edje_object_file_get(const Evas_Object *obj, const char **file, const char **gro
    if (group) *group = ed->group;
 }
 
-/* FIXDOC: Verify. return error? */
-/** Gets the Edje load error
- * @param obj A valid Evas_Object handle
- *
- * @return The Edje load error:\n
- * EDJE_LOAD_ERROR_NONE: No Error\n
- * EDJE_LOAD_ERROR_GENERIC: Generic Error\n
- * EDJE_LOAD_ERROR_DOES_NOT_EXIST: Does not Exist\n
- * EDJE_LOAD_ERROR_PERMISSION_DENIED: Permission Denied\n
- * EDJE_LOAD_ERROR_RESOURCE_ALLOCATION_FAILED: Resource Allocation Failed\n
- * EDJE_LOAD_ERROR_CORRUPT_FILE: Corrupt File\n
- * EDJE_LOAD_ERROR_UNKNOWN_FORMAT: Unknown Format\n
- * EDJE_LOAD_ERROR_INCOMPATIBLE_FILE: Incompatible File\n
- * EDJE_LOAD_ERROR_UNKNOWN_COLLECTION: Unknown Collection\n
- * EDJE_LOAD_ERROR_RECURSIVE_REFERENCE: Recursive Reference\n
- */
 EAPI Edje_Load_Error
 edje_object_load_error_get(const Evas_Object *obj)
 {
@@ -123,14 +81,6 @@ edje_load_error_str(Edje_Load_Error error)
 }
 
 
-/** Get a list of groups in an edje file
- * @param file The path to the edje file
- *
- * @return The Eina_List of group names (char *)
- *
- * Note: the list must be freed using edje_file_collection_list_free()
- * when you are done with it.
- */
 EAPI Eina_List *
 edje_file_collection_list(const char *file)
 {
@@ -157,11 +107,6 @@ edje_file_collection_list(const char *file)
    return lst;
 }
 
-/** Free file collection list
- * @param lst The Eina_List of groups
- *
- * Frees the list returned by edje_file_collection_list().
- */
 EAPI void
 edje_file_collection_list_free(Eina_List *lst)
 {
@@ -172,12 +117,6 @@ edje_file_collection_list_free(Eina_List *lst)
      }
 }
 
-/** Determine whether a group matching glob exists in an edje file.
- * @param file The file path
- * @param glob A glob to match on
- *
- * @return 1 if a match is found, 0 otherwise
- */
 EAPI Eina_Bool
 edje_file_group_exists(const char *file, const char *glob)
 {
@@ -238,21 +177,6 @@ edje_file_group_exists(const char *file, const char *glob)
 }
 
 
-/** Get data from the file level data block of an edje file
- * @param file The path to the .edj file
- * @param key The data key
- * @return The string value of the data
- *
- * If an edje file is built from the following edc:
- *
- * data {
- *   item: "key1" "value1";
- *   item: "key2" "value2";
- * }
- * collections { ... }
- *
- * Then, edje_file_data_get("key1") will return "value1"
- */
 EAPI char *
 edje_file_data_get(const char *file, const char *key)
 {
index e8ca549..883bdb5 100644 (file)
@@ -1,19 +1,3 @@
-/**
- * @page luaref Edje Lua scripting
- *
- * @section intro Introduction
- * 
- * Lua is intended for script-only objects at this point (with embryo left
- * for augmenting standard programs). Since script-only objects effectively
- * define objects entirely via Lua script (resize handling, event handling
- * etc. etc.) this places many more demands on them, and thus a more powerful
- * language is in order. Lua is that language.
- *
- * To get you started, here's an example:
- * @include lua_script.edc
- *
- */
-
 #include "edje_private.h"
 
 //--------------------------------------------------------------------------//
index f8413dc..2aebe07 100644 (file)
@@ -12,34 +12,6 @@ Eina_Mempool *_edje_real_part_state_mp = NULL;
  *                                   API                                      *
  *============================================================================*/
 
-/**
- * @addtogroup Edje_main_Group Main
- *
- * @brief These functions provide an abstraction layer between the
- * application code and the interface, while allowing extremely
- * flexible dynamic layouts and animations.
- *
- * @{
- */
-
-/**
- * @brief Initialize the edje library.
- *
- * @return The new init count. The initial value is zero.
- *
- * This function initializes the ejde library, making the propers
- * calls to initialization functions. It makes calls to functions
- * eina_init(), ecore_init(), embryo_init() and eet_init() so
- * there is no need to call those functions again in your code. To
- * shutdown edje there is a function edje_shutdown().
- *
- * @see edje_shutdown()
- * @see eina_init()
- * @see ecore_init()
- * @see embryo_init()
- * @see eet_init()
- *
- */
 
 EAPI int
 edje_init(void)
@@ -135,24 +107,6 @@ edje_init(void)
    return --_edje_init_count;
 }
 
-/**
- * @brief Shutdown the edje library.
- *
- * @return The number of times the library has been initialised without being
- *         shutdown.
- *
- * This function shuts down the edje library. It calls the functions
- * eina_shutdown(), ecore_shutdown(), embryo_shutdown() and
- * eet_shutdown(), so there is no need to call these functions again
- * in your code.
- *
- * @see edje_init()
- * @see eina_shutdown()
- * @see ecore_shutdown()
- * @see embryo_shutdown()
- * @see eet_shutdown()
- *
- */
 
 EAPI int
 edje_shutdown(void)
@@ -292,8 +246,3 @@ _edje_unref(Edje *ed)
    ed->references--;
    if (ed->references == 0) _edje_del(ed);
 }
-
-/**
- *
- * @}
- */
index 13387f7..07fd75f 100644 (file)
@@ -13,34 +13,6 @@ static int tmp_msgq_restart = 0;
  *                                   API                                      *
  *============================================================================*/
 
-/**
- * @addtogroup Edje_message_queue_Group Message_Queue
- *
- * @brief These functions provide an abstraction layer between the
- * application code and the interface, while allowing extremely
- * flexible dynamic layouts and animations.
- *
- * @{
- */
-
-/**
- * @brief Send message to object.
- *
- * @param obj The edje object reference.
- * @param type The type of message to send.
- * @param id A identification number for the message.
- * @param msg The message to be send.
- *
- *
- * This function sends messages to this object and to all of its child
- * objects, if applicable. The function that handles messages arriving
- * at this edje object is is set with
- * edje_object_message_handler_set().
- *
- * @see edje_object_message_handler_set()
- *
- */
-
 EAPI void
 edje_object_message_send(Evas_Object *obj, Edje_Message_Type type, int id, void *msg)
 {
@@ -59,18 +31,6 @@ edje_object_message_send(Evas_Object *obj, Edje_Message_Type type, int id, void
      }
 }
 
-/**
- * @brief Set the message handler function for this an object.
- *
- * @param obj The edje object reference.
- * @param func The function to handle messages.
- * @param data The data to be associated to the message handler.
- *
- *
- * This function associates a message handler function and data to the
- * edje object.
- *
- */
 
 EAPI void
 edje_object_message_handler_set(Evas_Object *obj, Edje_Message_Handler_Cb func, void *data)
@@ -82,16 +42,6 @@ edje_object_message_handler_set(Evas_Object *obj, Edje_Message_Handler_Cb func,
    _edje_message_cb_set(ed, func, data);
 }
 
-/**
- * @brief Process an object's message queue.
- *
- * @param obj The edje object reference.
- *
- * This function goes through the object message queue processing the
- * pending messages for *this* specific edje object. Normally they'd
- * be processed only at idle time.
- *
- */
 
 EAPI void
 edje_object_message_signal_process(Evas_Object *obj)
@@ -196,13 +146,6 @@ end:
 #endif
 }
 
-/**
- * @brief Process all queued up edje messages.
- *
- * This function triggers the processing of messages addressed to any
- * (alive) edje objects.
- *
- */
 
 EAPI void
 edje_message_signal_process(void)
@@ -912,8 +855,3 @@ _edje_message_del(Edje *ed)
        if (ed->message.num <= 0) return;
      }
 }
-
-/**
- *
- * @}
- */
index c21a248..ba8b7e6 100644 (file)
@@ -13,100 +13,18 @@ Eina_List      *_edje_animators = NULL;
  *                                   API                                      *
  *============================================================================*/
 
-/**
- * @addtogroup Edje_program_Group Program
- *
- * @brief These functions provide an abstraction layer between the
- * application code and the interface, while allowing extremely
- * flexible dynamic layouts and animations.
- *
- * @{
- */
-
-/**
- * @brief Set edje trasitions' frame time.
- *
- * @param t The frame time, in seconds. Default value is 1/30.
- *
- * This function sets the edje built-in animations' frame time (thus,
- * affecting their resolution) by calling
- * ecore_animator_frametime_set(). This frame time can be retrieved
- * with edje_frametime_get().
- *
- * @see edje_frametime_get()
- *
- */
 EAPI void
 edje_frametime_set(double t)
 {
    ecore_animator_frametime_set(t);
 }
 
-/**
- * @brief Get edje trasitions' frame time.
- *
- * @return The frame time, in seconds.
- *
- * This function returns the edje frame time set by
- * edje_frametime_set().
- *
- * @see edje_frametime_set()
- *
- */
 EAPI double
 edje_frametime_get(void)
 {
    return ecore_animator_frametime_get();
 }
 
-/**
- * @brief Add a callback for a signal emitted by @a obj.
- *
- * @param obj A valid Evas_Object handle.
- * @param emission The signal's name.
- * @param source The signal's source.
- * @param func The callback function to be executed when the signal is
- * emitted.
- * @param data A pointer to data to pass in to the callback function.
- *
- * Connects a callback function to a signal emitted by @a obj.
- * In EDC, a program can emit a signal as follows:
- *
- * @code
- * program {
- *   name: "emit_example";
- *   action: SIGNAL_EMIT "a_signal" "a_source";
- * }
- * @endcode
- *
- * Assuming a function with the following declaration is definded:
- *
- * @code
- * void cb_signal(void *data, Evas_Object *o, const char *emission, const char *source);
- * @endcode
- *
- * a callback is attached using:
- *
- * @code
- * edje_object_signal_callback_add(obj, "a_signal", "a_source", cb_signal, data);
- * @endcode
- *
- * Here, @a data is an arbitrary pointer to be used as desired.  Note
- * that @a emission and @a source correspond respectively to the first
- * and the second parameters at the SIGNAL_EMIT action.
- *
- * Internal edje signals can also be attached to, and globs can occur
- * in either the emission or source name, e.g.
- *
- * @code
- * edje_object_signal_callback_add(obj, "mouse,down,*", "button.*", NULL);
- * @endcode
- *
- * Here, any mouse down events on an edje part whose name begins with
- * "button." will trigger the callback. The actual signal and source
- * names will be passed in to the @a emission and @a source parameters
- * of the callback function (e.g. "mouse,down,2" and "button.close").
- */
 EAPI void
 edje_object_signal_callback_add(Evas_Object *obj, const char *emission, const char *source, void (*func) (void *data, Evas_Object *o, const char *emission, const char *source), void *data)
 {
@@ -134,25 +52,6 @@ edje_object_signal_callback_add(Evas_Object *obj, const char *emission, const ch
      _edje_callbacks_patterns_clean(ed);
 }
 
-/**
- * @brief Remove a signal-triggered callback from an object.
- *
- * @param obj A valid Evas_Object handle.
- * @param emission The emission string.
- * @param source The source string.
- * @param func The callback function.
- * @return The data pointer
- *
- * This function removes a callback, previously attached to the
- * emittion of a signal, from the object @a obj. The parameters @a
- * emission, @a source and @a func must match exactly those passed to
- * a previous call to edje_object_signal_callback_add(). The data
- * pointer that was passed to this call will be returned.
- *
- * @see edje_object_signal_callback_add().
- * @see edje_object_signal_callback_del_full().
- *
- */
 EAPI void *
 edje_object_signal_callback_del(Evas_Object *obj, const char *emission, const char *source, void (*func) (void *data, Evas_Object *o, const char *emission, const char *source))
 {
@@ -195,26 +94,6 @@ edje_object_signal_callback_del(Evas_Object *obj, const char *emission, const ch
    return NULL;
 }
 
-/**
- * @brief Remove a signal-triggered callback from an object.
- *
- * @param obj A valid Evas_Object handle.
- * @param emission The emission string.
- * @param source The source string.
- * @param func The callback function.
- * @param data The user data passed to the callback.
- * @return The data pointer
- *
- * This function removes a callback, previously attached to the
- * emittion of a signal, from the object @a obj. The parameters @a
- * emission, @a sourcei, @a func and @a data must match exactly those
- * passed to a previous call to edje_object_signal_callback_add(). The data
- * pointer that was passed to this call will be returned.
- *
- * @see edje_object_signal_callback_add().
- * @see edje_object_signal_callback_del().
- *
- */
 EAPI void *
 edje_object_signal_callback_del_full(Evas_Object *obj, const char *emission, const char *source, Edje_Signal_Cb func, void *data)
 {
@@ -257,34 +136,6 @@ edje_object_signal_callback_del_full(Evas_Object *obj, const char *emission, con
    return NULL;
 }
 
-/**
- * @brief Send a signal to an edje object.
- *
- * @param obj A valid Evas_Object handle.
- * @param emission The signal's name.
- * @param source The signal's source.
- *
- * This function sends a signal to the object @a obj. An edje program
- * can respond to a signal by specifying matching 'signal' and
- * 'source' fields.
- *
- * @code
- * edje_object_signal_emit(obj, "a_signal", "");
- * @endcode
- *
- * will trigger a program whose EDC block is:
- *
- * @code
- * program {
- *  name: "a_program";
- *  signal: "a_signal";
- *  source: "";
- *  action: ...
- * }
- * @endcode
- *
- * FIXME: should this signal be sent to children also?
- */
 EAPI void
 edje_object_signal_emit(Evas_Object *obj, const char *emission, const char *source)
 {
@@ -298,19 +149,6 @@ edje_object_signal_emit(Evas_Object *obj, const char *emission, const char *sour
 }
 
 /* FIXDOC: Verify/Expand */
-/**
- * @brief Set the edje object to playing or paused states.
- *
- * @param obj A valid Evas_Object handle.
- * @param play Object state (1 to playing, 0 to pauseed).
- *
- * This function sets the edje object @a obj to playing or paused
- * states, depending on the parameter @a play.  This has no effect if
- * the object was already at that state.
- *
- * @see edje_object_play_get().
- *
- */
 EAPI void
 edje_object_play_set(Evas_Object *obj, Eina_Bool play)
 {
@@ -347,20 +185,6 @@ edje_object_play_set(Evas_Object *obj, Eina_Bool play)
      }
 }
 
-/**
- * @brief Get the edje object's play/pause state.
- *
- * @param obj A valid Evas_Object handle.
- * @return @c EINA_FALSE if the object is not connected, its @c delete_me flag
- * is set, or it is at paused state; @c EINA_TRUE if the object is at playing
- * state.
- *
- * This function tells if an edje object is playing or not. This state
- * is set by edje_object_play_set().
- *
- * @see edje_object_play_set().
- *
- */
 EAPI Eina_Bool
 edje_object_play_get(const Evas_Object *obj)
 {
@@ -374,19 +198,6 @@ edje_object_play_get(const Evas_Object *obj)
 }
 
 /* FIXDOC: Verify/Expand */
-/**
- * @brief Set the object's animation state.
- *
- * @param obj A valid Evas_Object handle.
- * @param on Animation State.
- *
- * This function starts or stops an edje object's animation. The
- * information if it's runnig can be retrieved by
- * edje_object_animation_get().
- *
- * @see edje_object_animation_get()
- *
- */
 EAPI void
 edje_object_animation_set(Evas_Object *obj, Eina_Bool on)
 {
@@ -444,19 +255,6 @@ edje_object_animation_set(Evas_Object *obj, Eina_Bool on)
    _edje_unblock(ed);
 }
 
-/**
- * @brief Get the edje object's animation state.
- *
- * @param obj A valid Evas_Object handle.
- * @return @c EINA_FALSE on error or if object is not animated;
- * @c EINA_TRUE if animated.
- *
- * This function returns if the animation is playing or not. The
- * animation state is set by edje_object_play_set().
- *
- * @see edje_object_animation_set().
- *
- */
 
 EAPI Eina_Bool
 edje_object_animation_get(const Evas_Object *obj)
@@ -2160,8 +1958,3 @@ _edje_param_set(Edje_Real_Part *part, const char *param, const char *value)
          }
      }
 }
-
-/**
- *
- * @}
- */
index 3340b62..e638278 100644 (file)
@@ -18,13 +18,6 @@ Eina_List *_edje_edjes = NULL;
 
 /************************** API Routines **************************/
 
-/* FIXDOC: Verify/Expand */
-/** Constructs the Edje object
- * @param evas A valid Evas handle
- * @return The Evas_Object pointer.
- *
- * Creates the Edje smart object, returning the Evas_Object handle.
- */
 EAPI Evas_Object *
 edje_object_add(Evas *evas)
 {
index c61a68c..cfbc43d 100644 (file)
@@ -43,14 +43,6 @@ Edje_Real_Part *_edje_real_part_recursive_get_helper(const Edje *ed, char **path
 
 #define FASTFREEZE 1
 
-/**
- * @brief Freeze Edje objects.
- *
- * This function freezes every edje objects in the current process.
- *
- * See edje_object_freeze().
- *
- */
 EAPI void
 edje_freeze(void)
 {
@@ -91,14 +83,6 @@ _edje_thaw_edje(Edje *ed)
 }
 #endif
 
-/**
- * @brief Thaw edje objects.
- *
- * This function thaw all edje object in the current process.
- *
- * See edje_object_thaw().
- *
- */
 EAPI void
 edje_thaw(void)
 {
@@ -128,14 +112,6 @@ edje_thaw(void)
 #endif
 }
 
-/**
- * @brief Set the edje append fontset.
- *
- * @param fonts The fontset to append.
- *
- * This function sets the edje append fontset.
- *
- */
 EAPI void
 edje_fontset_append_set(const char *fonts)
 {
@@ -144,43 +120,12 @@ edje_fontset_append_set(const char *fonts)
    _edje_fontset_append = fonts ? strdup(fonts) : NULL;
 }
 
-/**
- * @brief Get the edje append fontset.
- *
- * @return The edje append fontset.
- *
- * This function returns the edje append fontset set by
- * edje_fontset_append_set() function.
- *
- * @see edje_fontset_append_set().
- *
- */
 EAPI const char *
 edje_fontset_append_get(void)
 {
    return _edje_fontset_append;
 }
 
-/**
- * @brief Set edje's global scaling factor.
- *
- * @param scale The edje (global) scale factor. The defaul is 1.0.
- *
- * Edje allows one to build scalable interfaces. Scale factors, which
- * are set to neutral values by default (no scaling, actual sizes),
- * are of two types: global and individual. Edje's global scaling
- * factor will affect all its objects which hadn't their individual
- * scaling factors altered from the default value. If they had it set
- * differently, that factor will override the global one.
- *
- * Scaling affects the values of min/max object sizes, which are
- * multiplied by it. Font sizes are scaled, too.
- *
- * This property can be retrieved with edje_scale_get().
- *
- * @see edje_scale_get().
- *
- */
 EAPI void
 edje_scale_set(double scale)
 {
@@ -193,39 +138,12 @@ edje_scale_set(double scale)
      edje_object_calc_force(data);
 }
 
-/**
- * @brief Get edje's global scaling factor.
- *
- * @return The edje (global) scale factor. The defaul is 1.0.
- *
- * This function returns edje's global scale factor, which can be set
- * by edje_scale_set().
- *
- * @see edje_scale_set().
- *
- */
 EAPI double
 edje_scale_get(void)
 {
   return TO_DOUBLE(_edje_scale);
 }
 
-/**
- * @brief Set the edje object's scaling factor.
- *
- * @param obj The edje object's reference.
- * @param scale The edje object scale factor. The defaul is 1.0.
- *
- * This function sets the individual scale factor of the @a obj edje
- * object. This property (or edje's global scale factor, when
- * applicable), will affect this object's parts. However, only parts
- * which, at the EDC language level, were declared which the "scale"
- * attribute set to 1 (default is zero) will be affected.
- *
- * This scale factor can be retrieved with edje_object_scale_get().
- * @see edje_object_scale_get().
- *
- */
 EAPI Eina_Bool
 edje_object_scale_set(Evas_Object *obj, double scale)
 {
@@ -239,17 +157,6 @@ edje_object_scale_set(Evas_Object *obj, double scale)
    return EINA_TRUE;
 }
 
-/**
- * @brief Get the edje object's scaling factor.
- *
- * @param obj The edje object's reference.
- *
- * This function returns the individual scale factor of the @a obj
- * edje object, which can be set by edje_object_scale_set().
- *
- * @see edje_object_scale_set().
- *
- */
 EAPI double
 edje_object_scale_get(const Evas_Object *obj)
 {
@@ -260,15 +167,6 @@ edje_object_scale_get(const Evas_Object *obj)
    return TO_DOUBLE(ed->scale);
 }
 
-/**
- * Get the RTL orientation for this object.
- *
- * You can RTL orientation explicitly with edje_object_mirrored_set.
- *
- * @param obj the smart object
- * @return if flag is set or not.
- * @since 1.1.0
- */
 EAPI Eina_Bool
 edje_object_mirrored_get(const Evas_Object *obj)
 {
@@ -289,13 +187,6 @@ _edje_object_orientation_inform(Evas_Object *obj)
      edje_object_signal_emit(obj, "edje,state,ltr", "edje");
 }
 
-/**
- * Set the RTL orientation for this object.
- *
- * @param obj the smart object
- * @rtl new value of flag EINA_TRUE/EINA_FALSE
- * @since 1.1.0
- */
 EAPI void
 edje_object_mirrored_set(Evas_Object *obj, Eina_Bool rtl)
 {
@@ -327,30 +218,6 @@ edje_object_mirrored_set(Evas_Object *obj, Eina_Bool rtl)
    return;
 }
 
-/**
- * @brief Get Edje object data.
- *
- * @param obj A valid Evas_Object handle
- * @param key The data key
- * @return The data string
- *
- * This function fetches data specified at the object level.
- *
- * In EDC this comes from a data block within the group block that @a
- * obj was loaded from. E.g.
- *
- * @code
- * collections {
- *   group {
- *     name: "a_group";
- *     data {
- *      item: "key1" "value1";
- *      item: "key2" "value2";
- *     }
- *   }
- * }
- * @endcode
- */
 EAPI const char *
 edje_object_data_get(const Evas_Object *obj, const char *key)
 {
@@ -364,16 +231,6 @@ edje_object_data_get(const Evas_Object *obj, const char *key)
    return edje_string_get(eina_hash_find(ed->collection->data, key));
 }
 
-/**
- * @brief Freeze object.
- *
- * @param obj A valid Evas_Object handle
- * @return The frozen state or 0 on Error
- *
- * This function puts all changes on hold. Successive freezes will
- * nest, requiring an equal number of thaws.
- *
- */
 EAPI int
 edje_object_freeze(Evas_Object *obj)
 {
@@ -392,15 +249,6 @@ edje_object_freeze(Evas_Object *obj)
    return _edje_freeze(ed);
 }
 
-/**
- * @brief Thaw object.
- *
- * @param obj A valid Evas_Object handle
- * @return The frozen state or 0 on Error
- *
- * This allows frozen changes to occur.
- *
- */
 EAPI int
 edje_object_thaw(Evas_Object *obj)
 {
@@ -420,42 +268,6 @@ edje_object_thaw(Evas_Object *obj)
    return _edje_thaw(ed);
 }
 
-/**
- * @brief Set Edje color class.
- *
- * @param color_class
- * @param r Object Red value
- * @param g Object Green value
- * @param b Object Blue value
- * @param a Object Alpha value
- * @param r2 Outline Red value
- * @param g2 Outline Green value
- * @param b2 Outline Blue value
- * @param a2 Outline Alpha value
- * @param r3 Shadow Red value
- * @param g3 Shadow Green value
- * @param b3 Shadow Blue value
- * @param a3 Shadow Alpha value
- *
- * This function sets the color values for a process level color
- * class.  This will cause all edje parts in the current process that
- * have the specified color class to have their colors multiplied by
- * these values.  (Object level color classes set by
- * edje_object_color_class_set() will override the values set by this
- * function).
- *
- * The first color is the object, the second is the text outline, and
- * the third is the text shadow. (Note that the second two only apply
- * to text parts).
- *
- * Setting color emits a signal "color_class,set" with source being
- * the given color class in all objects.
- *
- * @see edje_color_class_set().
- *
- * @note unlike Evas, Edje colors are @b not pre-multiplied. That is,
- *       half-transparent white is 255 255 255 128.
- */
 EAPI Eina_Bool
 edje_color_class_set(const char *color_class, int r, int g, int b, int a, int r2, int g2, int b2, int a2, int r3, int g3, int b3, int a3)
 {
@@ -525,40 +337,6 @@ edje_color_class_set(const char *color_class, int r, int g, int b, int a, int r2
    return EINA_TRUE;
 }
 
-/**
- * @brief Get Edje color class.
- *
- * @param color_class
- * @param r Object Red value
- * @param g Object Green value
- * @param b Object Blue value
- * @param a Object Alpha value
- * @param r2 Outline Red value
- * @param g2 Outline Green value
- * @param b2 Outline Blue value
- * @param a2 Outline Alpha value
- * @param r3 Shadow Red value
- * @param g3 Shadow Green value
- * @param b3 Shadow Blue value
- * @param a3 Shadow Alpha value
- *
- * @return EINA_TRUE if found or EINA_FALSE if not found and all
- *         values are zeroed.
- *
- * This function gets the color values for a process level color
- * class. This value is the globally set and not per-object, that is,
- * the value that would be used by objects if they did not override with
- * edje_object_color_class_set().
- *
- * The first color is the object, the second is the text outline, and
- * the third is the text shadow. (Note that the second two only apply
- * to text parts).
- *
- * @see edje_color_class_set().
- *
- * @note unlike Evas, Edje colors are @b not pre-multiplied. That is,
- *       half-transparent white is 255 255 255 128.
- */
 EAPI Eina_Bool
 edje_color_class_get(const char *color_class, int *r, int *g, int *b, int *a, int *r2, int *g2, int *b2, int *a2, int *r3, int *g3, int *b3, int *a3)
 {
@@ -593,17 +371,6 @@ edje_color_class_get(const char *color_class, int *r, int *g, int *b, int *a, in
      }
 }
 
-/**
- * @brief Delete edje color class.
- *
- * @param color_class
- *
- * This function deletes any values at the process level for the
- * specified color class.
- *
- * Deleting color emits a signal "color_class,del" with source being
- * the given color class in all objects.
- */
 void
 edje_color_class_del(const char *color_class)
 {
@@ -635,16 +402,6 @@ edje_color_class_del(const char *color_class)
      }
 }
 
-/**
- * @brief Lists color classes.
- *
- * @return A list of color class names (strings). These strings and
- * the list must be free()'d by the caller.
- *
- * This function lists all color classes known about by the current
- * process.
- *
- */
 Eina_List *
 edje_color_class_list(void)
 {
@@ -667,39 +424,6 @@ _edje_color_class_list_foreach(const Eina_Hash *hash __UNUSED__, const void *key
    return EINA_TRUE;
 }
 
-/**
- * @brief Sets the object color class.
- *
- * @param obj A valid Evas_Object handle
- * @param color_class
- * @param r Object Red value
- * @param g Object Green value
- * @param b Object Blue value
- * @param a Object Alpha value
- * @param r2 Outline Red value
- * @param g2 Outline Green value
- * @param b2 Outline Blue value
- * @param a2 Outline Alpha value
- * @param r3 Shadow Red value
- * @param g3 Shadow Green value
- * @param b3 Shadow Blue value
- * @param a3 Shadow Alpha value
- *
- * This function sets the color values for an object level color
- * class. This will cause all edje parts in the specified object that
- * have the specified color class to have their colors multiplied by
- * these values.
- *
- * The first color is the object, the second is the text outline, and
- * the third is the text shadow. (Note that the second two only apply
- * to text parts).
- *
- * Setting color emits a signal "color_class,set" with source being
- * the given color.
- *
- * @note unlike Evas, Edje colors are @b not pre-multiplied. That is,
- *       half-transparent white is 255 255 255 128.
- */
 EAPI Eina_Bool
 edje_object_color_class_set(Evas_Object *obj, const char *color_class, int r, int g, int b, int a, int r2, int g2, int b2, int a2, int r3, int g3, int b3, int a3)
 {
@@ -794,38 +518,6 @@ edje_object_color_class_set(Evas_Object *obj, const char *color_class, int r, in
    return EINA_TRUE;
 }
 
-/**
- * @brief Gets the object color class.
- *
- * @param obj A valid Evas_Object handle
- * @param color_class
- * @param r Object Red value
- * @param g Object Green value
- * @param b Object Blue value
- * @param a Object Alpha value
- * @param r2 Outline Red value
- * @param g2 Outline Green value
- * @param b2 Outline Blue value
- * @param a2 Outline Alpha value
- * @param r3 Shadow Red value
- * @param g3 Shadow Green value
- * @param b3 Shadow Blue value
- * @param a3 Shadow Alpha value
- *
- * @return EINA_TRUE if found or EINA_FALSE if not found and all
- *         values are zeroed.
- *
- * This function gets the color values for an object level color
- * class. If no explicit object color is set, then global values will
- * be used.
- *
- * The first color is the object, the second is the text outline, and
- * the third is the text shadow. (Note that the second two only apply
- * to text parts).
- *
- * @note unlike Evas, Edje colors are @b not pre-multiplied. That is,
- *       half-transparent white is 255 255 255 128.
- */
 EAPI Eina_Bool
 edje_object_color_class_get(const Evas_Object *obj, const char *color_class, int *r, int *g, int *b, int *a, int *r2, int *g2, int *b2, int *a2, int *r3, int *g3, int *b3, int *a3)
 {
@@ -856,18 +548,6 @@ edje_object_color_class_get(const Evas_Object *obj, const char *color_class, int
      }
 }
 
-/**
- * @brief Delete the object color class.
- *
- * @param obj The edje object's reference.
- * @param color_class The color class to be deleted.
- *
- * This function deletes any values at the object level for the
- * specified object and color class.
- *
- * Deleting color emits a signal "color_class,del" with source being
- * the given color.
- */
 void
 edje_object_color_class_del(Evas_Object *obj, const char *color_class)
 {
@@ -907,19 +587,6 @@ edje_object_color_class_del(Evas_Object *obj, const char *color_class)
    _edje_emit(ed, "color_class,del", color_class);
 }
 
-/**
- * @brief Set the Edje text class.
- *
- * @param text_class The text class name
- * @param font The font name
- * @param size The font size
- *
- * This function sets updates all edje members which belong to this
- * text class with the new font attributes.
- *
- * @see edje_text_class_get().
- *
- */
 EAPI Eina_Bool
 edje_text_class_set(const char *text_class, const char *font, Evas_Font_Size size)
 {
@@ -982,15 +649,6 @@ edje_text_class_set(const char *text_class, const char *font, Evas_Font_Size siz
    return EINA_TRUE;
 }
 
-/**
- * @brief Delete the text class.
- *
- * @param text_class The text class name string
- *
- * This function deletes any values at the process level for the
- * specified text class.
- *
- */
 void
 edje_text_class_del(const char *text_class)
 {
@@ -1023,16 +681,6 @@ edje_text_class_del(const char *text_class)
      }
 }
 
-/**
- * @brief List text classes.
- *
- * @return A list of text class names (strings). These strings are
- * stringshares and the list must be free()'d by the caller.
- *
- * This function lists all text classes known about by the current
- * process.
- *
- */
 Eina_List *
 edje_text_class_list(void)
 {
@@ -1054,17 +702,6 @@ _edje_text_class_list_foreach(const Eina_Hash *hash __UNUSED__, const void *key,
    return EINA_TRUE;
 }
 
-/**
- * @brief Sets Edje text class.
- *
- * @param obj A valid Evas_Object handle
- * @param text_class The text class name
- * @param font Font name
- * @param size Font Size
- *
- * This function sets the text class for the Edje.
- *
- */
 EAPI Eina_Bool
 edje_object_text_class_set(Evas_Object *obj, const char *text_class, const char *font, Evas_Font_Size size)
 {
@@ -1139,17 +776,6 @@ edje_object_text_class_set(Evas_Object *obj, const char *text_class, const char
    return EINA_TRUE;
 }
 
-/**
- * @brief Check if Edje part exists.
- *
- * @param obj A valid Evas_Object handle
- * @param part The part name to check
- *
- * @return 0 on Error, 1 if Edje part exists.
- *
- * This function returns if a part exists in the edje.
- *
- */
 EAPI Eina_Bool
 edje_object_part_exists(const Evas_Object *obj, const char *part)
 {
@@ -1163,22 +789,6 @@ edje_object_part_exists(const Evas_Object *obj, const char *part)
    return EINA_TRUE;
 }
 
-/**
- * @brief Gets the evas object from a part.
- *
- * @param obj A valid Evas_Object handle
- * @param part The Edje part
- * @return Returns the Evas_Object corresponding to the given part, or
- * NULL on failure (if the part doesn't exist)
- *
- * This functio gets the Evas_Object corresponding to a given part.
- *
- * You should never modify the state of the returned object (with
- * evas_object_move() or evas_object_hide() for example), but you can
- * safely query info about its current state (with
- * evas_object_visible_get() or evas_object_color_get() for example)
- *
- **/
 EAPI const Evas_Object *
 edje_object_part_object_get(const Evas_Object *obj, const char *part)
 {
@@ -1196,21 +806,6 @@ edje_object_part_object_get(const Evas_Object *obj, const char *part)
    return rp->object;
 }
 
-/**
- * @brief Get the geometry of an Edje part.
- *
- * @param obj A valid Evas_Object handle
- * @param part The Edje part
- * @param x The x coordinate pointer
- * @param y The y coordinate pointer
- * @param w The width pointer
- * @param h The height pointer
- *
- * This function gets the geometry of an Edje part.
- *
- * It is valid to pass NULL as any of @a x, @a y, @a w or @a h, whose
- * values you are uninterested in.
- */
 EAPI Eina_Bool
 edje_object_part_geometry_get(const Evas_Object *obj, const char *part, Evas_Coord *x, Evas_Coord *y, Evas_Coord *w, Evas_Coord *h )
 {
@@ -1246,16 +841,6 @@ edje_object_part_geometry_get(const Evas_Object *obj, const char *part, Evas_Coo
    return EINA_TRUE;
 }
 
-/**
- * @brief Set the function that provides item objects for named items in an edje entry text
- *
- * @param obj A valid Evas Object handle
- * @param func The function to call (or NULL to disable) to get item objects
- * @param data The data pointer to pass to the @p func callback
- *
- * Item objects may be deleted any time by Edje, and will be deleted when the
- * Edje object is deleted (or file is set to a new file).
- */
 EAPI void
 edje_object_item_provider_set(Evas_Object *obj, Edje_Item_Provider_Cb func, void *data)
 {
@@ -1268,19 +853,6 @@ edje_object_item_provider_set(Evas_Object *obj, Edje_Item_Provider_Cb func, void
 }
 
 /* FIXDOC: New Function */
-/**
- * @brief Set the object text callback.
- *
- * @param obj A valid Evas_Object handle
- * @param func The callback function to handle the text change
- * @param data The data associated to the callback function.
- *
- * This function gets the geometry of an Edje part
- *
- * It is valid to pass NULL as any of @a x, @a y, @a w or @a h, whose
- * values you are uninterested in.
- *
- */
 EAPI void
 edje_object_text_change_cb_set(Evas_Object *obj, Edje_Text_Change_Cb func, void *data)
 {
@@ -1349,17 +921,6 @@ edje_object_part_text_set(Evas_Object *obj, const char *part, const char *text)
    return _edje_object_part_text_raw_set(obj, rp, part, text);
 }
 
-/**
- * @brief Return the text of the object part.
- *
- * @param obj A valid Evas_Object handle
- * @param part The part name
- *
- * @return The text string
- *
- * This function returns the text associated to the object part.
- *
- */
 EAPI const char *
 edje_object_part_text_get(const Evas_Object *obj, const char *part)
 {
@@ -1493,20 +1054,6 @@ _edje_text_unescape(const char *text)
    return ret;
 }
 
-/**
- * @brief Sets the raw (non escaped) text for an object part.
- *
- * @param obj A valid Evas Object handle
- * @param part The part name
- * @param text_to_escape The text string
- *
- * This funciton will do escape for you if it is a TEXTBLOCK part,
- * that is, if text contain tags, these tags will not be
- * interpreted/parsed by TEXTBLOCK.
- *
- * @see edje_object_part_text_unescaped_get().
- *
- */
 EAPI Eina_Bool
 edje_object_part_text_unescaped_set(Evas_Object *obj, const char *part, const char *text_to_escape)
 {
@@ -1530,22 +1077,6 @@ edje_object_part_text_unescaped_set(Evas_Object *obj, const char *part, const ch
    return ret;
 }
 
-/**
- * @brief Returns the text of the object part, without escaping.
- *
- * @param obj A valid Evas_Object handle
- * @param part The part name
- * @return The @b allocated text string without escaping, or NULL on
- * problems.
- *
- * This function is the counterpart of
- * edje_object_part_text_unescaped_set(). Please notice that the
- * result is newly allocated memory and should be released with free()
- * when done.
- *
- * @see edje_object_part_text_unescaped_set().
- *
- */
 EAPI char *
 edje_object_part_text_unescaped_get(const Evas_Object *obj, const char *part)
 {
@@ -1577,16 +1108,6 @@ edje_object_part_text_unescaped_get(const Evas_Object *obj, const char *part)
    return NULL;
 }
 
-/**
- * @brief Return the selection text of the object part.
- *
- * @param obj A valid Evas_Object handle
- * @param part The part name
- * @return The text string
- *
- * This function returns selection text of the object part.
- *
- */
 EAPI const char *
 edje_object_part_text_selection_get(const Evas_Object *obj, const char *part)
 {
@@ -1602,15 +1123,6 @@ edje_object_part_text_selection_get(const Evas_Object *obj, const char *part)
    return NULL;
 }
 
-/**
- * @brief Set the selection to be none.
- *
- * @param obj A valid Evas_Object handle
- * @param part The part name
- *
- * This function sets the selection text to be none.
- *
- */
 EAPI void
 edje_object_part_text_select_none(const Evas_Object *obj, const char *part)
 {
@@ -1625,15 +1137,6 @@ edje_object_part_text_select_none(const Evas_Object *obj, const char *part)
      _edje_entry_select_none(rp);
 }
 
-/**
- * @brief Set the selection to be everything.
- *
- * @param obj A valid Evas_Object handle
- * @param part The part name
- *
- * This function selects all text of the object of the part.
- *
- */
 EAPI void
 edje_object_part_text_select_all(const Evas_Object *obj, const char *part)
 {
@@ -1648,17 +1151,6 @@ edje_object_part_text_select_all(const Evas_Object *obj, const char *part)
      _edje_entry_select_all(rp);
 }
 
-/**
- * @brief Insert text for an object part.
- *
- * @param obj A valid Evas Object handle
- * @param part The part name
- * @param text The text string
- *
- * This function inserts the text for an object part just before the
- * cursor position.
- *
- */
 EAPI void
 edje_object_part_text_insert(Evas_Object *obj, const char *part, const char *text)
 {
@@ -1681,17 +1173,6 @@ edje_object_part_text_insert(Evas_Object *obj, const char *part, const char *tex
      rp->edje->text_change.func(rp->edje->text_change.data, obj, part);
 }
 
-/**
- * @brief Return a list of char anchor names.
- *
- * @param obj A valid Evas_Object handle
- * @param part The part name
- *
- * @return The list of anchors (const char *), do not modify!
- *
- * This function returns a list of char anchor names.
- *
- */
 EAPI const Eina_List *
 edje_object_part_text_anchor_list_get(const Evas_Object *obj, const char *part)
 {
@@ -1707,20 +1188,6 @@ edje_object_part_text_anchor_list_get(const Evas_Object *obj, const char *part)
    return NULL;
 }
 
-/**
- * @brief Return a list of Evas_Textblock_Rectangle anchor rectangles.
- *
- * @param obj A valid Evas_Object handle
- * @param part The part name
- * @param anchor The anchor name
- *
- * @return The list of anchor rects (const Evas_Textblock_Rectangle
- * *), do not modify! Geometry is relative to entry part.
- *
- * This function return a list of Evas_Textblock_Rectangle anchor
- * rectangles.
- *
- */
 EAPI const Eina_List *
 edje_object_part_text_anchor_geometry_get(const Evas_Object *obj, const char *part, const char *anchor)
 {
@@ -1736,17 +1203,6 @@ edje_object_part_text_anchor_geometry_get(const Evas_Object *obj, const char *pa
    return NULL;
 }
 
-/**
- * @brief Return a list of char item names.
- *
- * @param obj A valid Evas_Object handle
- * @param part The part name
- *
- * @return The list of items (const char *), do not modify!
- *
- * This function returns a list of char item names.
- *
- */
 EAPI const Eina_List *
 edje_object_part_text_item_list_get(const Evas_Object *obj, const char *part)
 {
@@ -1762,23 +1218,6 @@ edje_object_part_text_item_list_get(const Evas_Object *obj, const char *part)
    return NULL;
 }
 
-/**
- * @brief Return item geometry.
- *
- * @param obj A valid Evas_Object handle
- * @param part The part name
- * @param item The item name
- * @param cx Item x return (relative to entry part)
- * @param cy Item y return (relative to entry part)
- * @param cw Item width return
- * @param ch Item height return
- *
- * @return 1 if item exists, 0 if not
- *
- * This function return a list of Evas_Textblock_Rectangle item
- * rectangles.
- *
- */
 EAPI Eina_Bool
 edje_object_part_text_item_geometry_get(const Evas_Object *obj, const char *part, const char *item, Evas_Coord *cx, Evas_Coord *cy, Evas_Coord *cw, Evas_Coord *ch)
 {
@@ -1794,18 +1233,6 @@ edje_object_part_text_item_geometry_get(const Evas_Object *obj, const char *part
    return EINA_FALSE;
 }
 
-/**
- * @brief Returns the cursor geometry of the part relative to the edje
- * object.
- *
- * @param obj A valid Evas_Object handle
- * @param part The part name
- * @param x Cursor X position
- * @param y Cursor Y position
- * @param w Cursor width
- * @param h Cursor height
- *
- */
 EAPI void
 edje_object_part_text_cursor_geometry_get(const Evas_Object *obj, const char *part, Evas_Coord *x, Evas_Coord *y, Evas_Coord *w, Evas_Coord *h)
 {
@@ -1829,14 +1256,6 @@ edje_object_part_text_cursor_geometry_get(const Evas_Object *obj, const char *pa
    return;
 }
 
-/**
- * @brief Enables selection if the entry is an EXPLICIT selection mode
- * type.
- *
- * @param obj A valid Evas_Object handle
- * @param part The part name
- * @param allow EINA_TRUE to enable, EINA_FALSE otherwise
- */
 EAPI void
 edje_object_part_text_select_allow_set(const Evas_Object *obj, const char *part, Eina_Bool allow)
 {
@@ -1851,12 +1270,6 @@ edje_object_part_text_select_allow_set(const Evas_Object *obj, const char *part,
      _edje_entry_select_allow_set(rp, allow);
 }
 
-/**
- * @brief Aborts any selection action on a part.
- *
- * @param obj A valid Evas_Object handle
- * @param part The part name
- */
 EAPI void
 edje_object_part_text_select_abort(const Evas_Object *obj, const char *part)
 {
@@ -1871,12 +1284,6 @@ edje_object_part_text_select_abort(const Evas_Object *obj, const char *part)
      _edje_entry_select_abort(rp);
 }
 
-/**
- * @brief Starts selecting at current cursor position
- *
- * @param obj A valid Evas_Object handle
- * @param part The part name
- */
 EAPI void
 edje_object_part_text_select_begin(const Evas_Object *obj, const char *part)
 {
@@ -1891,12 +1298,6 @@ edje_object_part_text_select_begin(const Evas_Object *obj, const char *part)
      _edje_entry_select_begin(rp);
 }
 
-/**
- * @brief Extends the current selection to the current cursor position
- *
- * @param obj A valid Evas_Object handle
- * @param part The part name
- */
 EAPI void
 edje_object_part_text_select_extend(const Evas_Object *obj, const char *part)
 {
@@ -1911,14 +1312,6 @@ edje_object_part_text_select_extend(const Evas_Object *obj, const char *part)
      _edje_entry_select_extend(rp);
 }
 
-/**
- * @brief Advances the cursor to the next cursor position.
- * @see evas_textblock_cursor_char_next
- *
- * @param obj A valid Evas_Object handle
- * @param part The part name
- * @param cur The edje cursor to advance
- */
 EAPI Eina_Bool
 edje_object_part_text_cursor_next(Evas_Object *obj, const char *part, Edje_Cursor cur)
 {
@@ -1936,14 +1329,6 @@ edje_object_part_text_cursor_next(Evas_Object *obj, const char *part, Edje_Curso
    return EINA_FALSE;
 }
 
-/**
- * @brief Moves the cursor to the previous char
- * @see evas_textblock_cursor_char_prev
- *
- * @param obj A valid Evas_Object handle
- * @param part The part name
- * @param cur the edje cursor to work on
- */
 EAPI Eina_Bool
 edje_object_part_text_cursor_prev(Evas_Object *obj, const char *part, Edje_Cursor cur)
 {
@@ -1961,13 +1346,6 @@ edje_object_part_text_cursor_prev(Evas_Object *obj, const char *part, Edje_Curso
    return EINA_FALSE;
 }
 
-/**
- * @brief Move the cursor to the char above the current cursor position.
- *
- * @param obj A valid Evas_Object handle
- * @param part The part name
- * @param cur the edje cursor to work on
- */
 EAPI Eina_Bool
 edje_object_part_text_cursor_up(Evas_Object *obj, const char *part, Edje_Cursor cur)
 {
@@ -1985,13 +1363,6 @@ edje_object_part_text_cursor_up(Evas_Object *obj, const char *part, Edje_Cursor
    return EINA_FALSE;
 }
 
-/**
- * @brief Moves the cursor to the char below the current cursor position.
- *
- * @param obj A valid Evas_Object handle
- * @param part The part name
- * @param cur the edje cursor to work on
- */
 EAPI Eina_Bool
 edje_object_part_text_cursor_down(Evas_Object *obj, const char *part, Edje_Cursor cur)
 {
@@ -2009,14 +1380,6 @@ edje_object_part_text_cursor_down(Evas_Object *obj, const char *part, Edje_Curso
    return EINA_FALSE;
 }
 
-/**
- * @brief Moves the cursor to the beginning of the text part
- * @see evas_textblock_cursor_paragraph_first
- *
- * @param obj A valid Evas_Object handle
- * @param part The part name
- * @param cur the edje cursor to work on
- */
 EAPI void
 edje_object_part_text_cursor_begin_set(Evas_Object *obj, const char *part, Edje_Cursor cur)
 {
@@ -2033,14 +1396,6 @@ edje_object_part_text_cursor_begin_set(Evas_Object *obj, const char *part, Edje_
      }
 }
 
-/**
- * @brief Moves the cursor to the end of the text part.
- * @see evas_textblock_cursor_paragraph_last
- *
- * @param obj A valid Evas_Object handle
- * @param part The part name
- * @param cur the edje cursor to work on
- */
 EAPI void
 edje_object_part_text_cursor_end_set(Evas_Object *obj, const char *part, Edje_Cursor cur)
 {
@@ -2057,14 +1412,6 @@ edje_object_part_text_cursor_end_set(Evas_Object *obj, const char *part, Edje_Cu
      }
 }
 
-/**
- * @brief Copy the cursor to another cursor.
- *
- * @param obj A valid Evas_Object handle
- * @param part The part name
- * @param sry the cursor to copy from
- * @param dst the cursor to copy to
- */
 EAPI void
 edje_object_part_text_cursor_copy(Evas_Object *obj, const char *part, Edje_Cursor src, Edje_Cursor dst)
 {
@@ -2081,14 +1428,6 @@ edje_object_part_text_cursor_copy(Evas_Object *obj, const char *part, Edje_Curso
      }
 }
 
-/**
- * @brief Move the cursor to the beginning of the line.
- * @see evas_textblock_cursor_line_char_first
- *
- * @param obj A valid Evas_Object handle
- * @param part The part name
- * @param cur the edje cursor to work on
- */
 EAPI void
 edje_object_part_text_cursor_line_begin_set(Evas_Object *obj, const char *part, Edje_Cursor cur)
 {
@@ -2105,14 +1444,6 @@ edje_object_part_text_cursor_line_begin_set(Evas_Object *obj, const char *part,
      }
 }
 
-/**
- * @brief Move the cursor to the end of the line.
- * @see evas_textblock_cursor_line_char_last
- *
- * @param obj A valid Evas_Object handle
- * @param part The part name
- * @param cur the edje cursor to work on
- */
 EAPI void
 edje_object_part_text_cursor_line_end_set(Evas_Object *obj, const char *part, Edje_Cursor cur)
 {
@@ -2129,18 +1460,6 @@ edje_object_part_text_cursor_line_end_set(Evas_Object *obj, const char *part, Ed
      }
 }
 
-/**
- * Position the given cursor to a X,Y position.
- *
- * This is frequently used with the user cursor.
- *
- * @param obj An Edje object.
- * @param part The part containing the object.
- * @param cur The cursor to adjust.
- * @param x X Coordinate.
- * @param y Y Coordinate.
- * @return True on success, false on error.
- */
 EAPI Eina_Bool
 edje_object_part_text_cursor_coord_set(Evas_Object *obj, const char *part,
                Edje_Cursor cur, Evas_Coord x, Evas_Coord y)
@@ -2159,15 +1478,6 @@ edje_object_part_text_cursor_coord_set(Evas_Object *obj, const char *part,
    return EINA_FALSE;
 }
 
-/**
- * @brief Returns whether the cursor points to a format.
- * @see evas_textblock_cursor_is_format
- *
- * @param obj A valid Evas_Object handle
- * @param part The part name
- * @param cur The cursor to adjust.
- * @return EINA_TRUE if it's true, EINA_FALSE otherwise.
- */
 EAPI Eina_Bool
 edje_object_part_text_cursor_is_format_get(const Evas_Object *obj, const char *part, Edje_Cursor cur)
 {
@@ -2184,16 +1494,7 @@ edje_object_part_text_cursor_is_format_get(const Evas_Object *obj, const char *p
      }
    return EINA_FALSE;
 }
-
-/**
- * @brief Return true if the cursor points to a visible format
- * For example \t, \n, item and etc.
- * @see  evas_textblock_cursor_format_is_visible_get
- *
- * @param obj A valid Evas_Object handle
- * @param part The part name
- * @param cur The cursor to adjust.
- */
+
 EAPI Eina_Bool
 edje_object_part_text_cursor_is_visible_format_get(const Evas_Object *obj, const char *part, Edje_Cursor cur)
 {
@@ -2211,14 +1512,6 @@ edje_object_part_text_cursor_is_visible_format_get(const Evas_Object *obj, const
    return 0;
 }
 
-/**
- * @brief Returns the content (char) at the cursor position.
- * @see evas_textblock_cursor_content_get
- *
- * @param obj A valid Evas_Object handle
- * @param part The part name
- * @param cur The cursor to use
- */
 EAPI const char *
 edje_object_part_text_cursor_content_get(const Evas_Object *obj, const char *part, Edje_Cursor cur)
 {
@@ -2236,15 +1529,6 @@ edje_object_part_text_cursor_content_get(const Evas_Object *obj, const char *par
    return NULL;
 }
 
-/**
- * @brief Sets the cursor position to the given value
- *
- * @param obj A valid Evas_Object handle
- * @param part The part name
- * @param cur The cursor to move
- * @param pos the position of the cursor
- * @since 1.1.0
- */
 EAPI void
 edje_object_part_text_cursor_pos_set(Evas_Object *obj, const char *part, Edje_Cursor cur, int pos)
 {
@@ -2261,15 +1545,6 @@ edje_object_part_text_cursor_pos_set(Evas_Object *obj, const char *part, Edje_Cu
      }
 }
 
-/**
- * @brief Retrieves the current position of the cursor
- *
- * @param obj A valid Evas_Object handle
- * @param part The part name
- * @param cur The cursor to get the position
- * @return The cursor position
- * @since 1.1.0
- */
 EAPI int
 edje_object_part_text_cursor_pos_get(const Evas_Object *obj, const char *part, Edje_Cursor cur)
 {
@@ -2287,30 +1562,6 @@ edje_object_part_text_cursor_pos_get(const Evas_Object *obj, const char *part, E
    return 0;
 }
 
-/**
- * Add a filter function for newly inserted text.
- *
- * Whenever text is inserted (not the same as set) into the given @p part,
- * the list of filter functions will be called to decide if and how the new
- * text will be accepted.
- * There are three types of filters, EDJE_TEXT_FILTER_TEXT,
- * EDJE_TEXT_FILTER_FORMAT and EDJE_TEXT_FILTER_MARKUP.
- * The text parameter in the @p func filter can be modified by the user and
- * it's up to him to free the one passed if he's to change the pointer. If
- * doing so, the newly set text should be malloc'ed, as once all the filters
- * are called Edje will free it.
- * If the text is to be rejected, freeing it and setting the pointer to NULL
- * will make Edje break out of the filter cycle and reject the inserted
- * text.
- *
- * @see edje_object_text_insert_filter_callback_del
- * @see edje_object_text_insert_filter_callback_del_full
- *
- * @param obj A valid Evas_Object handle
- * @param part The part name
- * @param func The callback function that will act as filter
- * @param data User provided data to pass to the filter function
- */
 EAPI void
 edje_object_text_insert_filter_callback_add(Evas_Object *obj, const char *part, Edje_Text_Filter_Cb func, void *data)
 {
@@ -2327,21 +1578,6 @@ edje_object_text_insert_filter_callback_add(Evas_Object *obj, const char *part,
      eina_list_append(ed->text_insert_filter_callbacks, cb);
 }
 
-/**
- * Delete a function from the filter list.
- *
- * Delete the given @p func filter from the list in @p part. Returns
- * the user data pointer given when added.
- *
- * @see edje_object_text_insert_filter_callback_add
- * @see edje_object_text_insert_filter_callback_del_full
- *
- * @param obj A valid Evas_Object handle
- * @param part The part name
- * @param func The function callback to remove
- *
- * @return The user data pointer if succesful, or NULL otherwise
- */
 EAPI void *
 edje_object_text_insert_filter_callback_del(Evas_Object *obj, const char *part, Edje_Text_Filter_Cb func)
 {
@@ -2366,23 +1602,6 @@ edje_object_text_insert_filter_callback_del(Evas_Object *obj, const char *part,
    return NULL;
 }
 
-/**
- * Delete a function and matching user data from the filter list.
- *
- * Delete the given @p func filter and @p data user data from the list
- * in @p part.
- * Returns the user data pointer given when added.
- *
- * @see edje_object_text_insert_filter_callback_add
- * @see edje_object_text_insert_filter_callback_del
- *
- * @param obj A valid Evas_Object handle
- * @param part The part name
- * @param func The function callback to remove
- * @param data The data passed to the callback function
- *
- * @return The same data pointer if succesful, or NULL otherwise
- */
 EAPI void *
 edje_object_text_insert_filter_callback_del_full(Evas_Object *obj, const char *part, Edje_Text_Filter_Cb func, void *data)
 {
@@ -2408,20 +1627,6 @@ edje_object_text_insert_filter_callback_del_full(Evas_Object *obj, const char *p
    return NULL;
 }
 
-/**
- * @brief Swallows an object into the edje.
- *
- * @param obj A valid Evas_Object handle
- * @param part The part name
- * @param obj_swallow The object to swallow
- *
- * Swallows the object into the edje part so that all geometry changes
- * for the part affect the swallowed object. (e.g. resize, move, show,
- * raise/lower, etc.).
- *
- * If an object has already been swallowed into this part, then it
- * will first be unswallowed before the new object is swallowed.
- */
 EAPI Eina_Bool
 edje_object_part_swallow(Evas_Object *obj, const char *part, Evas_Object *obj_swallow)
 {
@@ -2465,15 +1670,6 @@ _recalc_extern_parent(Evas_Object *obj)
    _edje_recalc(ed);
 }
 
-/**
- * @brief Set the object minimum size.
- *
- * @param obj A valid Evas_Object handle
- * @param minw The minimum width
- * @param minh The minimum height
- *
- * This sets the minimum size restriction for the object.
- */
 EAPI void
 edje_extern_object_min_size_set(Evas_Object *obj, Evas_Coord minw, Evas_Coord minh)
 {
@@ -2490,15 +1686,6 @@ edje_extern_object_min_size_set(Evas_Object *obj, Evas_Coord minw, Evas_Coord mi
      }
 }
 
-/**
- * @brief Set the object maximum size.
- *
- * @param obj A valid Evas_Object handle
- * @param maxw The maximum width
- * @param maxh The maximum height
- *
- * This sets the maximum size restriction for the object.
- */
 EAPI void
 edje_extern_object_max_size_set(Evas_Object *obj, Evas_Coord maxw, Evas_Coord maxh)
 {
@@ -2515,19 +1702,6 @@ edje_extern_object_max_size_set(Evas_Object *obj, Evas_Coord maxw, Evas_Coord ma
      }
 }
 
-/**
- * @brief Set the object aspect size.
- *
- * @param obj A valid Evas_Object handle
- * @param aspect The aspect control axes
- * @param aw The aspect radio width
- * @param ah The aspect ratio height
- *
- * This sets the desired aspect ratio to keep an object that will be
- * swallowed by Edje. The width and height define a preferred size
- * ASPECT and the object may be scaled to be larger or smaller, but
- * retaining the relative scale of both aspect width and height.
- */
 EAPI void
 edje_extern_object_aspect_set(Evas_Object *obj, Edje_Aspect_Control aspect, Evas_Coord aw, Evas_Coord ah)
 {
@@ -2691,28 +1865,6 @@ _edje_box_layout_external_new(const char *name, Evas_Object_Box_Layout func, voi
    return l;
 }
 
-/**
- * @brief Registers a custom layout to be used in edje boxes.
- *
- * @param name The name of the layout
- * @param func The function defining the layout
- * @param layout_data_get This function gets the custom data pointer
- * for func
- * @param layout_data_free Passed to func to free its private data
- * when needed
- * @param free_data Frees data
- * @param data Private pointer passed to layout_data_get
- *
- * This function registers custom layouts that can be referred from
- * themes by the registered name. The Evas_Object_Box_Layout
- * functions receive two pointers for internal use, one being private
- * data, and the other the function to free that data when it's not
- * longer needed. From Edje, this private data will be retrieved by
- * calling layout_data_get, and layout_data_free will be the free
- * function passed to func. layout_data_get will be called with data
- * as its parameter, and this one will be freed by free_data whenever
- * the layout is unregistered from Edje.
- */
 EAPI void
 edje_box_layout_register(const char *name, Evas_Object_Box_Layout func, void *(*layout_data_get)(void *), void (*layout_data_free)(void *), void (*free_data)(void *), void *data)
 {
@@ -2771,14 +1923,6 @@ edje_box_layout_register(const char *name, Evas_Object_Box_Layout func, void *(*
      }
 }
 
-/**
- * @brief Unswallow an object.
- *
- * @param obj A valid Evas_Object handle
- * @param obj_swallow The swallowed object
- *
- * Causes the edje to regurgitate a previously swallowed object.  :)
- */
 EAPI void
 edje_object_part_unswallow(Evas_Object *obj __UNUSED__, Evas_Object *obj_swallow)
 {
@@ -2826,13 +1970,6 @@ edje_object_part_unswallow(Evas_Object *obj __UNUSED__, Evas_Object *obj_swallow
      }
 }
 
-/**
- * @brief Get the object currently swallowed by a part.
- *
- * @param obj A valid Evas_Object handle
- * @param part The part name
- * @return The swallowed object, or NULL if there is none.
- */
 EAPI Evas_Object *
 edje_object_part_swallow_get(const Evas_Object *obj, const char *part)
 {
@@ -2850,16 +1987,6 @@ edje_object_part_swallow_get(const Evas_Object *obj, const char *part)
    return rp->swallowed_object;
 }
 
-/**
- * @brief Get the minimum size for an object.
- *
- * @param obj A valid Evas_Object handle
- * @param minw Minimum width pointer
- * @param minh Minimum height pointer
- *
- * Gets the object's minimum size values from the Edje. These are set
- * to zero if no Edje is connected to the Evas Object.
- */
 EAPI void
 edje_object_size_min_get(const Evas_Object *obj, Evas_Coord *minw, Evas_Coord *minh)
 {
@@ -2876,16 +2003,6 @@ edje_object_size_min_get(const Evas_Object *obj, Evas_Coord *minw, Evas_Coord *m
    if (minh) *minh = ed->collection->prop.min.h;
 }
 
-/**
- * @brief Get the maximum size for an object.
- *
- * @param obj A valid Evas_Object handle
- * @param maxw Maximum width pointer
- * @param maxh Maximum height pointer
- *
- * Gets the object's maximum size values from the Edje. These are set
- * to zero if no Edje is connected to the Evas Object.
- */
 EAPI void
 edje_object_size_max_get(const Evas_Object *obj, Evas_Coord *maxw, Evas_Coord *maxh)
 {
@@ -2922,14 +2039,6 @@ edje_object_size_max_get(const Evas_Object *obj, Evas_Coord *maxw, Evas_Coord *m
      }
 }
 
-/**
- * @brief Force a Size/Geometry calculation.
- *
- * @param obj A valid Evas_Object handle
- *
- * Forces the object @p obj to recalculation layout regardless of
- * freeze/thaw.
- */
 EAPI void
 edje_object_calc_force(Evas_Object *obj)
 {
@@ -2955,15 +2064,6 @@ edje_object_calc_force(Evas_Object *obj)
    _edje_freeze_val = pf2;
 }
 
-/**
- * @brief Calculate minimum size.
- *
- * @param obj A valid Evas_Object handle
- * @param minw Minimum width pointer
- * @param minh Minimum height pointer
- *
- * Calculates the object's minimum size ?!
- */
 EAPI void
 edje_object_size_min_calc(Evas_Object *obj, Evas_Coord *minw, Evas_Coord *minh)
 {
@@ -3170,17 +2270,6 @@ edje_object_size_min_restricted_calc(Evas_Object *obj, Evas_Coord *minw, Evas_Co
    ed->calc_only = 0;
 }
 
-/**
- * @brief Returns the state of the Edje part.
- *
- * @param obj A valid Evas_Object handle
- * @param part The part name
- * @param val_ret
- *
- * @return The part state:\n
- * "default" for the default state\n
- * "" for other states
- */
 /* FIXME: Correctly return other states */
 EAPI const char *
 edje_object_part_state_get(const Evas_Object *obj, const char *part, double *val_ret)
@@ -3226,17 +2315,6 @@ edje_object_part_state_get(const Evas_Object *obj, const char *part, double *val
    return "";
 }
 
-/**
- * @brief Determine dragable directions.
- *
- * @param obj A valid Evas_Object handle
- * @param part The part name
- *
- * @return 0: Not dragable\n
- * 1: Dragable in X direction\n
- * 2: Dragable in Y direction\n
- * 3: Dragable in X & Y directions
- */
 EAPI Edje_Drag_Dir
 edje_object_part_drag_dir_get(const Evas_Object *obj, const char *part)
 {
@@ -3257,16 +2335,6 @@ edje_object_part_drag_dir_get(const Evas_Object *obj, const char *part)
    return EDJE_DRAG_DIR_NONE;
 }
 
-/**
- * @brief Set the dragable object location.
- *
- * @param obj A valid Evas_Object handle
- * @param part The part name
- * @param dx The x value
- * @param dy The y value
- *
- * Places the dragable object at the given location.
- */
 EAPI Eina_Bool
 edje_object_part_drag_value_set(Evas_Object *obj, const char *part, double dx, double dy)
 {
@@ -3297,16 +2365,6 @@ edje_object_part_drag_value_set(Evas_Object *obj, const char *part, double dx, d
    return EINA_TRUE;
 }
 
-/**
- * @brief Get the dragable object location.
- *
- * @param obj A valid Evas_Object handle
- * @param part The part name
- * @param dx The X value pointer
- * @param dy The Y value pointer
- *
- * Gets the drag location values.
- */
 /* FIXME: Should this be x and y instead of dx/dy? */
 EAPI Eina_Bool
 edje_object_part_drag_value_get(const Evas_Object *obj, const char *part, double *dx, double *dy)
@@ -3342,16 +2400,6 @@ edje_object_part_drag_value_get(const Evas_Object *obj, const char *part, double
    return EINA_TRUE;
 }
 
-/**
- * @brief Set the dragable object size.
- *
- * @param obj A valid Evas_Object handle
- * @param part The part name
- * @param dw The drag width
- * @param dh The drag height
- *
- * Sets the size of the dragable object.
- */
 EAPI Eina_Bool
 edje_object_part_drag_size_set(Evas_Object *obj, const char *part, double dw, double dh)
 {
@@ -3378,16 +2426,6 @@ edje_object_part_drag_size_set(Evas_Object *obj, const char *part, double dw, do
    return EINA_TRUE;
 }
 
-/**
- * @brief Get the dragable object size.
- *
- * @param obj A valid Evas_Object handle
- * @param part The part name
- * @param dw The drag width pointer
- * @param dh The drag height pointer
- *
- * Gets the dragable object size.
- */
 EAPI Eina_Bool
 edje_object_part_drag_size_get(const Evas_Object *obj, const char *part, double *dw, double *dh)
 {
@@ -3417,16 +2455,6 @@ edje_object_part_drag_size_get(const Evas_Object *obj, const char *part, double
    return EINA_TRUE;
 }
 
-/**
- * @brief Sets the drag step increment.
- *
- * @param obj A valid Evas_Object handle
- * @param part The part name
- * @param dx The x step amount
- * @param dy The y step amount
- *
- * Sets the x,y step increments for a dragable object.
- */
 EAPI Eina_Bool
 edje_object_part_drag_step_set(Evas_Object *obj, const char *part, double dx, double dy)
 {
@@ -3450,16 +2478,6 @@ edje_object_part_drag_step_set(Evas_Object *obj, const char *part, double dx, do
    return EINA_TRUE;
 }
 
-/**
- * @brief Gets the drag step increment values.
- *
- * @param obj A valid Evas_Object handle
- * @param part The part
- * @param dx The x step increment pointer
- * @param dy The y step increment pointer
- *
- * Gets the x and y step increments for the dragable object.
- */
 EAPI Eina_Bool
 edje_object_part_drag_step_get(const Evas_Object *obj, const char *part, double *dx, double *dy)
 {
@@ -3489,16 +2507,6 @@ edje_object_part_drag_step_get(const Evas_Object *obj, const char *part, double
    return EINA_TRUE;
 }
 
-/**
- * @brief Sets the page step increments.
- *
- * @param obj A valid Evas_Object handle
- * @param part The part name
- * @param dx The x page step increment
- * @param dy The y page step increment
- *
- * Sets the x,y page step increment values.
- */
 EAPI Eina_Bool
 edje_object_part_drag_page_set(Evas_Object *obj, const char *part, double dx, double dy)
 {
@@ -3522,16 +2530,6 @@ edje_object_part_drag_page_set(Evas_Object *obj, const char *part, double dx, do
    return EINA_TRUE;
 }
 
-/**
- * @brief Gets the page step increments.
- *
- * @param obj A valid Evas_Object handle
- * @param part The part name
- * @param dx The dx page increment pointer
- * @param dy The dy page increment pointer
- *
- * Gets the x,y page step increments for the dragable object.
- */
 EAPI Eina_Bool
 edje_object_part_drag_page_get(const Evas_Object *obj, const char *part, double *dx, double *dy)
 {
@@ -3561,17 +2559,6 @@ edje_object_part_drag_page_get(const Evas_Object *obj, const char *part, double
    return EINA_TRUE;
 }
 
-/**
- * @brief Steps the dragable x,y steps.
- *
- * @param obj A valid Evas_Object handle
- * @param part The part name
- * @param dx The x step
- * @param dy The y step
- *
- * Steps x,y where the step increment is the amount set by
- * edje_object_part_drag_step_set.
- */
 EAPI Eina_Bool
 edje_object_part_drag_step(Evas_Object *obj, const char *part, double dx, double dy)
 {
@@ -3602,17 +2589,6 @@ edje_object_part_drag_step(Evas_Object *obj, const char *part, double dx, double
    return EINA_TRUE;
 }
 
-/**
- * @brief Pages x,y steps.
- *
- * @param obj A valid Evas_Object handle
- * @param part The part name
- * @param dx The x step
- * @param dy The y step
- *
- * Pages x,y where the increment is defined by
- * edje_object_part_drag_page_set.\n WARNING: Paging is bugged!
- */
 EAPI Eina_Bool
 edje_object_part_drag_page(Evas_Object *obj, const char *part, double dx, double dy)
 {
@@ -3658,18 +2634,6 @@ _edje_box_shutdown(void)
    _edje_box_layout_registry = NULL;
 }
 
-/**
- * @brief Appends an object to the box.
- *
- * @param obj A valid Evas_Object handle
- * @param part The part name
- * @param child The object to append
- *
- * @return 1: Successfully added.\n
- * 0: An error occurred.
- *
- * Appends child to the box indicated by part.
- */
 EAPI Eina_Bool
 edje_object_part_box_append(Evas_Object *obj, const char *part, Evas_Object *child)
 {
@@ -3686,18 +2650,6 @@ edje_object_part_box_append(Evas_Object *obj, const char *part, Evas_Object *chi
    return _edje_real_part_box_append(rp, child);
 }
 
-/**
- * @brief Prepends an object to the box.
- *
- * @param obj A valid Evas_Object handle
- * @param part The part name
- * @param child The object to prepend
- *
- * @return 1: Successfully added.\n
- * 0: An error occurred.
- *
- * Prepends child to the box indicated by part.
- */
 EAPI Eina_Bool
 edje_object_part_box_prepend(Evas_Object *obj, const char *part, Evas_Object *child)
 {
@@ -3714,20 +2666,6 @@ edje_object_part_box_prepend(Evas_Object *obj, const char *part, Evas_Object *ch
    return _edje_real_part_box_prepend(rp, child);
 }
 
-/**
- * @brief Adds an object to the box.
- *
- * @param obj A valid Evas_Object handle
- * @param part The part name
- * @param child The object to insert
- * @param reference The object to be used as reference
- *
- * @return 1: Successfully added.\n
- * 0: An error occurred.
- *
- * Inserts child in the box given by part, in the position marked by
- * reference.
- */
 EAPI Eina_Bool
 edje_object_part_box_insert_before(Evas_Object *obj, const char *part, Evas_Object *child, const Evas_Object *reference)
 {
@@ -3744,20 +2682,6 @@ edje_object_part_box_insert_before(Evas_Object *obj, const char *part, Evas_Obje
    return _edje_real_part_box_insert_before(rp, child, reference);
 }
 
-/**
- * @brief Inserts an object to the box.
- *
- * @param obj A valid Evas_Object handle
- * @param part The part name
- * @param child The object to insert
- * @param pos The position where to insert child
- *
- * @return 1: Successfully added.\n
- * 0: An error occurred.
- *
- * Adds child to the box indicated by part, in the position given by
- * pos.
- */
 EAPI Eina_Bool
 edje_object_part_box_insert_at(Evas_Object *obj, const char *part, Evas_Object *child, unsigned int pos)
 {
@@ -3774,17 +2698,6 @@ edje_object_part_box_insert_at(Evas_Object *obj, const char *part, Evas_Object *
    return _edje_real_part_box_insert_at(rp, child, pos);
 }
 
-/**
- * @brief Removes an object from the box.
- *
- * @param obj A valid Evas_Object handle
- * @param part The part name
- * @param child The object to remove
- *
- * @return Pointer to the object removed, or NULL.
- *
- * Removes child from the box indicated by part.
- */
 EAPI Evas_Object *
 edje_object_part_box_remove(Evas_Object *obj, const char *part, Evas_Object *child)
 {
@@ -3801,18 +2714,6 @@ edje_object_part_box_remove(Evas_Object *obj, const char *part, Evas_Object *chi
    return _edje_real_part_box_remove(rp, child);
 }
 
-/**
- * @brief Removes an object from the box.
- *
- * @param obj A valid Evas_Object handle
- * @param part The part name
- * @param pos
- *
- * @return Pointer to the object removed, or NULL.
- *
- * Removes from the box indicated by part, the object in the position
- * pos.
- */
 EAPI Evas_Object *
 edje_object_part_box_remove_at(Evas_Object *obj, const char *part, unsigned int pos)
 {
@@ -3829,19 +2730,6 @@ edje_object_part_box_remove_at(Evas_Object *obj, const char *part, unsigned int
    return _edje_real_part_box_remove_at(rp, pos);
 }
 
-/**
- * @brief Removes all elements from the box.
- *
- * @param obj A valid Evas_Object handle
- * @param part The part name
- * @param clear Delete objects on removal
- *
- * @return 1: Successfully cleared.\n
- * 0: An error occurred.
- *
- * Removes all the external objects from the box indicated by part.
- * Elements created from the theme will not be removed.
- */
 EAPI Eina_Bool
 edje_object_part_box_remove_all(Evas_Object *obj, const char *part, Eina_Bool clear)
 {
@@ -4065,15 +2953,6 @@ _edje_table_child_remove(Edje_Real_Part *rp, Evas_Object *child)
    _edje_recalc(rp->edje);
 }
 
-/**
- * @brief Retrieve a child from a table
- *
- * @param obj A valid Evas_Object handle
- * @param part The part name
- * @param col The column of the child to get
- * @param row The row of the child to get
- * @return The child Evas_Object
- */
 EAPI Evas_Object *
 edje_object_part_table_child_get(Evas_Object *obj, const char *part, unsigned int col, unsigned int row)
 {
@@ -4090,22 +2969,6 @@ edje_object_part_table_child_get(Evas_Object *obj, const char *part, unsigned in
    return evas_object_table_child_get(rp->object, col, row);
 }
 
-/**
- * @brief Packs an object into the table.
- *
- * @param obj A valid Evas_Object handle
- * @param part The part name
- * @param child_obj The object to pack in
- * @param col The column to place it in
- * @param row The row to place it in
- * @param colspan Columns the child will take
- * @param rowspan Rows the child will take
- *
- * @return 1: Successfully added.\n
- * 0: An error occurred.
- *
- * Packs an object into the table indicated by part.
- */
 EAPI Eina_Bool
 edje_object_part_table_pack(Evas_Object *obj, const char *part, Evas_Object *child_obj, unsigned short col, unsigned short row, unsigned short colspan, unsigned short rowspan)
 {
@@ -4122,18 +2985,6 @@ edje_object_part_table_pack(Evas_Object *obj, const char *part, Evas_Object *chi
    return _edje_real_part_table_pack(rp, child_obj, col, row, colspan, rowspan);
 }
 
-/**
- * @brief Removes an object from the table.
- *
- * @param obj A valid Evas_Object handle
- * @param part The part name
- * @param child_obj The object to pack in
- *
- * @return 1: Successfully removed.\n
- * 0: An error occurred.
- *
- * Removes an object from the table indicated by part.
- */
 EAPI Eina_Bool
 edje_object_part_table_unpack(Evas_Object *obj, const char *part, Evas_Object *child_obj)
 {
@@ -4150,19 +3001,6 @@ edje_object_part_table_unpack(Evas_Object *obj, const char *part, Evas_Object *c
    return _edje_real_part_table_unpack(rp, child_obj);
 }
 
-/**
- * @brief Gets the number of columns and rows the table has.
- *
- * @param obj A valid Evas_Object handle
- * @param part The part name
- * @param cols Pointer where to store number of columns (can be NULL)
- * @param rows Pointer where to store number of rows (can be NULL)
- *
- * @return 1: Successfully get some data.\n
- * 0: An error occurred.
- *
- * Retrieves the size of the table in number of columns and rows.
- */
 EAPI Eina_Bool
 edje_object_part_table_col_row_size_get(const Evas_Object *obj, const char *part, int *cols, int *rows)
 {
@@ -4180,19 +3018,6 @@ edje_object_part_table_col_row_size_get(const Evas_Object *obj, const char *part
    return EINA_TRUE;
 }
 
-/**
- * @brief Removes all object from the table.
- *
- * @param obj A valid Evas_Object handle
- * @param part The part name
- * @param clear If set, will delete subobjs on remove
- *
- * @return 1: Successfully clear table.\n
- * 0: An error occurred.
- *
- * Removes all object from the table indicated by part, except the
- * internal ones set from the theme.
- */
 EAPI Eina_Bool
 edje_object_part_table_clear(Evas_Object *obj, const char *part, Eina_Bool clear)
 {
@@ -5135,6 +3960,11 @@ _edje_object_signal_preload_cb(void *data, Evas_Object *obj, __UNUSED__ const ch
    _edje_object_preload(ed);
 }
 
+/**
+ * @internal
+ * 
+ * for edje_cc
+ */
 EAPI void
 _edje_program_remove(Edje_Part_Collection *edc, Edje_Program *p)
 {
@@ -5180,6 +4010,11 @@ _edje_program_remove(Edje_Part_Collection *edc, Edje_Program *p)
        }
 }
 
+/**
+ * @internal
+ * 
+ * for edje_cc
+ */
 EAPI void
 _edje_program_insert(Edje_Part_Collection *edc, Edje_Program *p)
 {