diff --git a/doc/Doxyfile.in b/doc/Doxyfile.in
index 775d41f012..243f8d47a1 100644
--- a/doc/Doxyfile.in
+++ b/doc/Doxyfile.in
@@ -603,7 +603,8 @@ INPUT = @top_srcdir@/src/lib \
@srcdir@/eio_examples.dox \
@srcdir@/edbus_examples.dox \
@srcdir@/ephysics_examples.dox \
- @srcdir@/edje_examples.dox
+ @srcdir@/edje_examples.dox \
+ @top_srcdir@/src/bin/edje/edje_cc_handlers.c
# This tag can be used to specify the character encoding of the source files
# that doxygen parses. Internally doxygen uses the UTF-8 encoding, which is
@@ -1696,3 +1697,24 @@ GENERATE_LEGEND = YES
# the various graphs.
DOT_CLEANUP = YES
+
+# Aliases used by edcref
+ALIASES = block="
"
+ALIASES += context=" | \code"
+ALIASES += description="\endcode |
| "
+ALIASES += endblock=" |
"
+ALIASES += property=" | "
+ALIASES += parameters=" | "
+ALIASES += effect=" | | "
+ALIASES += endproperty=" |
|
"
+ALIASES += edcsection{2}="\anchor sec_\1 \ref sec_quickaccess \"\2\" |
"
+ALIASES += edcsubsection{2}="\anchor sec_\1 \ref sec_quickaccess \"\2\" |
"
+
+# Aliases used by luaref
+ALIASES += luaclass{2}="\anchor \1 \n\2
"
+ALIASES += attributes="Attributes:
"
+ALIASES += methods="Methods:
"
+ALIASES += events="Events:
"
+ALIASES += setters="Setters:
"
+ALIASES += seealso{2}="See also: \1\n"
+ALIASES += seealso{1}="See also: \1\n"
diff --git a/doc/e.css b/doc/e.css
index 2dd6b44798..2418ac917f 100644
--- a/doc/e.css
+++ b/doc/e.css
@@ -271,3 +271,37 @@ td.nav_active {
width: 100%;
}
+table.edcref tr td.block {
+ vertical-align: top;
+ padding-top: 10px;
+}
+
+table.edcref tr.section td.section, div.luaclass {
+ color: #888;
+ font-size: 16pt;
+ padding: 15px;
+ border-top: 1px solid #ccc;
+ text-align: center;
+}
+
+table.edcref tr.section td.section a {
+ color: #888;
+ text-decoration: none;
+}
+
+table.edcref tr.subsection td.subsection, div.luaclass {
+ color: #888;
+ font-size: 11pt;
+ padding: 1px;
+ text-align: center;
+}
+
+table.edcref tr.subsection td.subsection a {
+ color: #888;
+ text-decoration: none;
+}
+
+div.luaattrib {
+ color: #888;
+ border: 1px solid #ccc;
+}
diff --git a/doc/edje_examples.dox b/doc/edje_examples.dox
index a48ad7e581..f44e0fa2f1 100644
--- a/doc/edje_examples.dox
+++ b/doc/edje_examples.dox
@@ -1,5 +1,5 @@
/**
- * @page edje_examples Examples
+ * @page edje_examples Edje Examples
*
* Examples:
* @li @ref Example_Edje_Basics
diff --git a/doc/main.dox b/doc/main.dox
index 7af53104e4..b69d1c1abf 100644
--- a/doc/main.dox
+++ b/doc/main.dox
@@ -20,6 +20,7 @@
* @li @ref efreet_main freedesktop.org (xdg) menu and desktop integration.
* @li @ref eeze_main hardware device manipulation and notification.
* @li @ref ephysics_main physics simulation integration and visual effects.
+ * @li @ref edje_main layout and theme library with super powers.
*
*/
@@ -27,33 +28,44 @@
* @page authors Authors
*
* @author Adam Simpkins
+ * @author Aharon Hillel
* @author Albin "Lutin" Tonnerre
* @author Andre Dieb
* @author Andrew Elcock
* @author Arnaud de Turckheim 'quarium'
* @author Bernhard Nemec
+ * @author billiob (Boris Faure)
* @author Bluezery
* @author Boris "billiob" Faure
* @author Brett Nash
* @author Brian 'rephorm' Mattern
+ * @author Brian Mattern
* @author Bruno Dilly
* @author Burra
* @author Carsten Haitzler
- * @author Cedric Bail
+ * @author Cedric BAIL
* @author Chidambar Zinnoury
* @author Chris Ross
* @author Christophe Dumez
* @author Christopher 'devilhorns' Michael
- * @author ChunEon Park
+ * @author ChunEon Park (Hermet)
* @author Corey "atmos" Donohoe
* @author dan sinclair
* @author Daniel Juyung Seo
- * @author Daniel Willmann
+ * @author Daniel Willmann
+ * @author Daniel Zaoui
* @author David 'onefang' Seikel
* @author David Goodlad
+ * @author David Seikel
+ * @author Davide Andreoli
* @author Doyoun Kang
+ * @author Fabiano Fidêncio
+ * @author Flavio Ceolin
+ * @author Govindaraju SM
+ * @author Guilherme Silveira
* @author Guillaume Friloux
* @author Gustavo Chaves
+ * @author Gustavo Lima Chaves
* @author Gustavo Sverzut Barbieri
* @author Gwanglim Lee
* @author Haifeng Deng
@@ -62,12 +74,14 @@
* @author Hyoyoung Chang
* @author Ibukun Olumuyiwa
* @author Iván Briano
+ * @author Jaehwan Kim
* @author Jihoon Kim
* @author Jorge Luis Zapata Muga
* @author Jose O Gonzalez
* @author José Roberto de Souza
* @author Jérémy Zurcher
- * @author Jérôme Pinot
+ * @author Jérôme Pinot
+ * @author Kim Shinwoo
* @author Kim Woelders
* @author Kim Yunhan
* @author Lars Munch
@@ -79,8 +93,9 @@
* @author Mathieu Taillefumier
* @author Matt Barclay
* @author Michael 'Mickey' Lauer
+ * @author Michael Bouchaud (yoz)
* @author Mikael Sans
- * @author Mike Blumenkrantz
+ * @author Mike Blumenkrantz
* @author Myoungwoon Roy Kim(roy_kim)
* @author Myungjae Lee
@@ -90,10 +105,13 @@
* @author Nicolas Aguirre
* @author Peter Wehrfritz
* @author PnB
+ * @author Prince Kumar Dubey
* @author Rafael Antognolli
* @author Rafal Krypa
+ * @author Rajeev Ranjan (Rajeev)
* @author Raphael Kubo da Costa
* @author Ricardo de Almeida Gonzaga
+ * @author Robert David
* @author Rui Miguel Silva Seabra
* @author Samsung Electronics
* @author Samsung SAIT
@@ -106,19 +124,22 @@
* @author Sung W. Park
* @author Term
* @author Thierry el Borgi
+ * @author Tiago Falcão
* @author Till Adam
* @author Tilman Sauerbeck
* @author Tim Horton
* @author Tom Gilbert
* @author Tom Hacohen
+ * @author Tristan
* @author Vikram Narayanan
* @author Vincent Torri
- * @author Vincent Torri
* @author Willem Monsuwe
+ * @author WooHyun Jung (woohyun)
* @author xlopez@@igalia.com
* @author Youness Alaoui
* @author Yuri
* @author Yuri Hudobin
+ * @author ZigsMcKenzie
*
* Please contact to get in
* contact with the developers and maintainers.
@@ -196,3 +217,9 @@
*
* @brief Hardware device manipulation and notification, wraps UDev and similar.
*/
+
+/**
+ * @defgroup Edje
+ *
+ * @brief Layout and theme library with super-powers.
+ */
diff --git a/src/lib/edje/Edje.h b/src/lib/edje/Edje.h
index 4d51404fb8..c8b83a311a 100644
--- a/src/lib/edje/Edje.h
+++ b/src/lib/edje/Edje.h
@@ -3,13 +3,19 @@
These routines are used for Edje.
-@mainpage Edje Library Documentation
-@version 1.7
-@date 2003-2012
+@page edje_main Edje
-Please see the @ref authors page for contact details.
+@date 2003 (created)
-@section intro What is Edje?
+@section toc Table of Contents
+
+@li @ref edje_main_intro
+@li @ref edje_main_work
+@li @ref edje_main_compiling
+@li @ref edje_main_next_steps
+@li @ref edje_main_intro_example
+
+@section edje_main_intro Introduction
Edje is a complex graphical design & layout library.
@@ -45,54 +51,9 @@ 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.
+For details of Edje's history, see the @ref edje_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)
- - Lua 5.1 (library)
-
-Evas needs to be build with the JPEG, PNG and EET image loaders enabled at a
-minimum. You will also need the buffer engine (which requires the
-software_generic engine) as well.
-
-Ecore (library) needs the ECORE and ECORE_EVAS modules built at a minimum.
-It's suggested to build all the Ecore modules. You will beed the Buffer
-engine support built into Ecore_Evas for edje_cc to function.
-
-
-@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:
-
- - edje_player (provided by Edje)
- - edje_codegen (provided by Edje) @since 1.8.0
- - 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?
+@subsection edje_main_work 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
@@ -105,20 +66,7 @@ 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 example:
-@include edje_example.c
-
-The above example requires the following annotated source Edje file:
-@include edje_example.edc
-
-
-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
+part of the given group. See the example at @ref edje_main_intro_example.
Although simple, this example illustrates that animations and state
changes can be done from the Edje file itself without any requirement
@@ -127,8 +75,7 @@ in the C application.
Before digging into changing or creating your own Edje source (edc)
files, read the @ref edcref.
-
-@section history Edje History
+@subsection edje_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
@@ -148,63 +95,59 @@ basic GUI constructor.
Unlike Ebits, Edje separates the layout and behavior logic.
+@section edje_main_compiling How to compile
-@section Edje_Examples Examples on Edje's usage
+Edje is a library your application links to. The procedure for this is
+very simple. You simply have to compile your application with the
+appropriate compiler flags that the @c pkg-config script outputs. For
+example:
+
+Compiling C or C++ files into object files:
+
+@verbatim
+gcc -c -o main.o main.c `pkg-config --cflags edje`
+@endverbatim
+
+Linking object files into a binary executable:
+
+@verbatim
+gcc -o my_application main.o `pkg-config --libs edje`
+@endverbatim
+
+See @ref pkgconfig
+
+@section edje_main_next_steps Next Steps
+
+After you understood what Edje is and installed it in your system you
+should proceed understanding the programming interface for all
+objects, then see the specific for the most used elements. We'd
+recommend you to take a while to learn @ref Ecore, @ref Evas, @ref Eo
+and @ref Eina as they are the building blocks for Edje. There is a
+widget set built on top of Edje providing high level elements such as
+buttons, lists and selectors called Elementary
+(http://docs.enlightenment.org/auto/elementary/) as they will likely
+save you tons of work compared to using just Evas directly.
+
+Recommended reading:
+@li @ref edcref
+@li @ref Edje_General_Group
+@li @ref Edje_Object_Group
+@li @ref Edje_External_Group
+
+@section edje_main_intro_example Introductory Example
What follows is a list with various commented examples, covering a great
part of Edje's API:
-@note The example files are located at /Where/Enlightenment/is/installed/share/edje/examples
+@include edje_example.c
-- @ref Example_Edje_Basics
-- @ref tutorial_edje_basic2
-- @ref tutorial_edje_swallow
-- @ref tutorial_edje_swallow2
-- @ref tutorial_edje_table
-- @ref tutorial_edje_box
-- @ref tutorial_edje_box2
-- @ref tutorial_edje_color_class
-- @ref tutorial_edje_animations
-- @ref tutorial_edje_animations_2
-- @ref Example_Edje_Signals_Messages
-- @ref tutorial_edje_signals_2
-- @ref tutorial_edje_text
-- @ref tutorial_edje_drag
-- @ref tutorial_edje_perspective
+The above example requires the following annotated source Edje file:
+@include edje_example.edc
+
+
+More examples can be found at @ref edje_examples.
*/
-/**
-@page authors Authors
-@author Carsten Haitzler
-@author Tilman Sauerbeck (tilman at code-monkey de)
-@author ZigsMcKenzie
-@author Cedric BAIL
-@author Brian Mattern
-@author Mathieu Taillefumier
-@author Tristan
-@author Gustavo Lima Chaves
-@author Bruno Dilly
-@author Fabiano Fidêncio
-@author Jihoon Kim
-@author Tiago Falcão
-@author Davide Andreoli
-@author Sebastian Dransfeld
-@author Tom Hacohen
-@author Aharon Hillel
-@author Shilpa Singh
-@author Mike Blumenkrantz
-@author billiob (Boris Faure)
-@author Govindaraju SM
-@author Prince Kumar Dubey
-@author David Seikel
-@author Guilherme Íscaro
-
-Please contact to get in
-contact with the developers and maintainers.
-*/
-
-
/**
@example embryo_custom_state.edc
@@ -260,6 +203,7 @@ param in edje programs
/**
* @defgroup Edje_General_Group Edje General
+ * @ingroup Edje
*
* @brief This group discusses functions that have general purposes or affect Edje as a whole.
*
@@ -524,6 +468,7 @@ EAPI void edje_collection_cache_flush (void);
/**
* @defgroup Edje_External_Group Edje External
+ * @ingroup Edje
*
* @brief This group discusses functions of the external section of Edje.
*
@@ -3253,6 +3198,7 @@ EAPI const Edje_External_Type *edje_external_type_get (const char
/**
* @defgroup Edje_Object_Group Edje Object
+ * @ingroup Edje
*
* @brief This group discusses functions that deal with Edje layouts and its components
*