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