path: root/doc/edje/edje.rst
diff options
authorDave Andreoli <>2015-01-18 19:07:06 +0100
committerDave Andreoli <>2015-01-18 19:07:06 +0100
commit660c0a7e5131d3b68f1ff1adbf317b5983cd3046 (patch)
tree557a8241259357aebe68857add6c3d1067db6808 /doc/edje/edje.rst
parent928f802ed453aa54d246331baaba862bfbeff0a4 (diff)
Huge documentation work
Improved structure, contents and style for better readability
Diffstat (limited to 'doc/edje/edje.rst')
1 files changed, 1 insertions, 79 deletions
diff --git a/doc/edje/edje.rst b/doc/edje/edje.rst
index 6ff3bc1..e21c1cc 100644
--- a/doc/edje/edje.rst
+++ b/doc/edje/edje.rst
@@ -1,80 +1,2 @@
1 1
2What is Edje? 2.. automodule:: efl.edje
5Edje is a complex graphical design & layout library.
7It doesn't intend to do containing and regular layout like a widget
8set, but it is the base for such components. Based on the requirements
9of Enlightenment 0.17, Edje should serve all the purposes of creating
10visual elements (borders of windows, buttons, scrollbars, etc.) and
11allow the designer the ability to animate, layout and control the look
12and feel of any program using Edje as its basic GUI constructor. This
13library allows for multiple collections of Layouts in one file,
14sharing the same image and font database and thus allowing a whole
15theme to be conveniently packaged into 1 file and shipped around.
17Edje separates the layout and behavior logic. Edje files ship with an
18image and font database, used by all the parts in all the collections
19to source graphical data. It has a directory of logical part names
20pointing to the part collection entry ID in the file (thus allowing
21for multiple logical names to point to the same part collection,
22allowing for the sharing of data between display elements). Each part
23collection consists of a list of visual parts, as well as a list of
24programs. A program is a conditionally run program that if a
25particular event occurs (a button is pressed, a mouse enters or leaves
26a part) will trigger an action that may affect other parts. In this
27way a part collection can be "programmed" via its file as to hilight
28buttons when the mouse passes over them or show hidden parts when a
29button is clicked somewhere etc. The actions performed in changing
30from one state to another are also allowed to transition over a period
31of time, allowing animation. Programs and animations can be run in
34This separation and simplistic event driven style of programming can produce
35almost any look and feel one could want for basic visual elements. Anything
36more complex is likely the domain of an application or widget set that may
37use Edje as a convenient way of being able to configure parts of the display.
40So how does this all work?
43Edje internally holds a geometry state machine and state graph of what is
44visible, not, where, at what size, with what colors etc. This is described
45to Edje from an Edje .edj file containing this information. These files can
46be produced by using edje_cc to take a text file (a .edc file) and "compile"
47an output .edj file that contains this information, images and any other
48data needed.
50The application using Edje will then create an object in its Evas
51canvas and set the bundle file to use, specifying the **group** name to
52use. Edje will load such information and create all the required
53children objects with the specified properties as defined in each
54**part** of the given **group**.
56Although simple, this example illustrates that animations and state
57changes can be done from the Edje file itself without any requirement
58in the Python application.
60Before digging into changing or creating your own Edje source (edc)
61files, read the @ref edcref.
64API Reference
67.. toctree::
68 :maxdepth: 4
70 edje_module
71 edje_object
74Inheritance diagram
77.. inheritance-diagram::
78 efl.edje
79 :parts: 2