path: root/efl/edje
diff options
authorDave Andreoli <>2015-01-31 17:14:42 +0100
committerDave Andreoli <>2015-01-31 17:14:42 +0100
commit24025e6d817299eceb6d65fe03a240e6eb538b43 (patch)
treef4508f6f6621d82d0039a02c81e6b27a89c2947d /efl/edje
parent1d8ffd1ed4b921f4526cebad2275e66546463dd6 (diff)
Restructured edje docs
Diffstat (limited to 'efl/edje')
1 files changed, 10 insertions, 91 deletions
diff --git a/efl/edje/efl.edje.pyx b/efl/edje/efl.edje.pyx
index ba28804..310acdb 100644
--- a/efl/edje/efl.edje.pyx
+++ b/efl/edje/efl.edje.pyx
@@ -17,97 +17,16 @@
17 17
18""" 18"""
19 19
20:mod:`edje` Module 20:mod:`efl.edje` Module
21##################### 21######################
22 22
23 23Classes
24What is Edje? 24=======
25============= 25
26 26.. toctree::
27Edje is a complex graphical design & layout library. 27
28 28 class-edje.rst
29It doesn't intend to do containing and regular layout like a widget 29
30set, but it is the base for such components. Based on the requirements
31of Enlightenment 0.17, Edje should serve all the purposes of creating
32visual elements (borders of windows, buttons, scrollbars, etc.) and
33allow the designer the ability to animate, layout and control the look
34and feel of any program using Edje as its basic GUI constructor. This
35library allows for multiple collections of Layouts in one file,
36sharing the same image and font database and thus allowing a whole
37theme to be conveniently packaged into 1 file and shipped around.
39Edje separates the layout and behavior logic. Edje files ship with an
40image and font database, used by all the parts in all the collections
41to source graphical data. It has a directory of logical part names
42pointing to the part collection entry ID in the file (thus allowing
43for multiple logical names to point to the same part collection,
44allowing for the sharing of data between display elements). Each part
45collection consists of a list of visual parts, as well as a list of
46programs. A program is a conditionally run program that if a
47particular event occurs (a button is pressed, a mouse enters or leaves
48a part) will trigger an action that may affect other parts. In this
49way a part collection can be "programmed" via its file as to hilight
50buttons when the mouse passes over them or show hidden parts when a
51button is clicked somewhere etc. The actions performed in changing
52from one state to another are also allowed to transition over a period
53of time, allowing animation. Programs and animations can be run in
56This separation and simplistic event driven style of programming can produce
57almost any look and feel one could want for basic visual elements. Anything
58more complex is likely the domain of an application or widget set that may
59use Edje as a convenient way of being able to configure parts of the display.
62So how does this all work?
65Edje internally holds a geometry state machine and state graph of what is
66visible, not, where, at what size, with what colors etc. This is described
67to Edje from an Edje .edj file containing this information. These files can
68be produced by using edje_cc to take a text file (a .edc file) and "compile"
69an output .edj file that contains this information, images and any other
70data needed.
72The application using Edje will then create an object in its Evas
73canvas and set the bundle file to use, specifying the **group** name to
74use. Edje will load such information and create all the required
75children objects with the specified properties as defined in each
76**part** of the given **group**.
78Edje is an important EFL component because it makes easy to split logic and
79UI, usually used as theme engine but can be much more powerful than just
80changing some random images or text fonts.
82Edje also provides scripting through Embryo and communication can be
83done using messages and signals.
85.. seealso::
86 Before digging into changing or creating your own Edje source (edc)
87 files, read the `Edje Data Collection reference
88 <
89 Buil d/artifact/doc/html/edcref.html>`_ .
92Signals from the edje object
94You can debug signals and messagges by capturing all of them, example::
96 def sig_dbg(obj, emission, source):
97 print(obj, emission, source)
99 def msg_dbg(obj, msg):
100 print(obj, msg)
102 my_edje.signal_callback_add("*", "*", sig_dbg)
103 my_edje.message_handler_set(msg_dbg)
106Inheritance diagram
109.. inheritance-diagram:: efl.edje
110 :parts: 2
111 30
112""" 31"""
113 32