Edje now has some semblance of basic documentation.
SVN revision: 7090
This commit is contained in:
parent
8977499da7
commit
1e190a8ac4
|
@ -12,7 +12,7 @@
|
||||||
<table border=0 align=center><tr>
|
<table border=0 align=center><tr>
|
||||||
<td width=16><img src=edje_mini.png width=16 height=16 alt=E></td>
|
<td width=16><img src=edje_mini.png width=16 height=16 alt=E></td>
|
||||||
<td width=100% align=center>
|
<td width=100% align=center>
|
||||||
E : V : O : A : K
|
E : D : J : E
|
||||||
</td>
|
</td>
|
||||||
<td width=16><img src=edje_mini.png width=16 height=16 alt=E></td>
|
<td width=16><img src=edje_mini.png width=16 height=16 alt=E></td>
|
||||||
</tr></table>
|
</tr></table>
|
||||||
|
|
|
@ -13,9 +13,18 @@ These routines are used for Edje.
|
||||||
@author Carsten Haitzler <raster@rasterman.com>
|
@author Carsten Haitzler <raster@rasterman.com>
|
||||||
@date 2000-2002
|
@date 2000-2002
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@section intro What is Edje?
|
@section intro What is Edje?
|
||||||
|
|
||||||
A Graphical Design & Layout Library.
|
Edje is a complex graphical design & layout library.
|
||||||
|
|
||||||
It's purpose is to be a sequel to "Ebits" which to date has serviced the
|
It's purpose is to be a sequel to "Ebits" which to date has serviced the
|
||||||
needs of Enlightenment development for version 0.17. The original design
|
needs of Enlightenment development for version 0.17. The original design
|
||||||
|
@ -24,11 +33,11 @@ resulting use of them, thus Edje was born.
|
||||||
|
|
||||||
Edje is a more complex layout engine compared to Ebits. It doesn't pretend to
|
Edje is a more complex layout engine compared to Ebits. It doesn't pretend to
|
||||||
do containering and regular layout like a widget set. It still inherits the
|
do containering and regular layout like a widget set. It still inherits the
|
||||||
more simplistic layour ideas behind Ebits, but it now does them a lot more
|
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
|
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
|
ground than Ebits ever could. For the purposes of Enlightenment 0.17, Edje
|
||||||
should server all the purposes of creating visual elements (borders of
|
should serve all the purposes of creating visual elements (borders of
|
||||||
windows, scrollbars, etc.) and allow the deswigner the ability to animate,
|
windows, 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
|
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
|
GUI constructor. This library allows for multiple collections of Layouts in
|
||||||
one file, sharing the same image database and thus allowing a whole theme to
|
one file, sharing the same image database and thus allowing a whole theme to
|
||||||
|
@ -41,11 +50,11 @@ 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
|
names to point to the same part collection, allowing for the sharing of data
|
||||||
betwene display elements). Each part collection consists of a list of visual
|
betwene 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
|
parts, as well as a list of programs. A program is a conditionally run
|
||||||
program that if a particula event occurs (a button is pressed, a mouse enters
|
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
|
or leaves a part) will trigger an action that may affect other parts. In this
|
||||||
was a part collection can be "programmed" via its file as to hilight buttons
|
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
|
when the mouse passes over them or show hidden parts when a button is clicked
|
||||||
somewhere etc. The actions perfromed in changing from one state to another ar
|
somewhere etc. The actions performed in changing from one state to another ar
|
||||||
also allowed to transition over a period of time, allowing animation.
|
also allowed to transition over a period of time, allowing animation.
|
||||||
|
|
||||||
This separation and simplistic event driven style of programming can produce
|
This separation and simplistic event driven style of programming can produce
|
||||||
|
@ -54,6 +63,182 @@ more complex is likely the domain of an application or widget set that may
|
||||||
use Edje as a conveneient way of being able to configure parts of the display.
|
use Edje as a conveneient way of being able to configure parts of the display.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@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)
|
||||||
|
|
||||||
|
To fully build Edje and run the edje builder (edje_cc) you also need:
|
||||||
|
|
||||||
|
- Imlib2 (library)
|
||||||
|
|
||||||
|
Evas needs to be build with the PNG and EET image loades 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.
|
||||||
|
|
||||||
|
Eet has no options so just build and install it.
|
||||||
|
|
||||||
|
Imlib2 has options, but it will probably select the right ones when you build
|
||||||
|
and install it. You really want as many image loaders enabled as you can
|
||||||
|
manage. It's suggested at a minumum to have the PNG and JPEG loaders, but
|
||||||
|
include whatever loaders correspond to the image formats you want supported
|
||||||
|
for loading up and including into an Edje compiled file.
|
||||||
|
|
||||||
|
It is suggested right now that you get the latest CVS 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 requiremed libraries. Here is a
|
||||||
|
quick "cheat sheet" on how to get started.
|
||||||
|
|
||||||
|
@verbatim
|
||||||
|
1. You need Eet from the HEAD cvs branch (must be up-to-date)
|
||||||
|
|
||||||
|
cvs co e17/libs/eet
|
||||||
|
cd e17/libs/eet
|
||||||
|
./autogen.sh
|
||||||
|
./configure
|
||||||
|
make
|
||||||
|
sudo make install
|
||||||
|
cd
|
||||||
|
|
||||||
|
2. You need Evas from the HEAD branch built with eet loader support.
|
||||||
|
|
||||||
|
cvs co e17/libs/evas
|
||||||
|
cd e17/libs/evas
|
||||||
|
./autogen.sh
|
||||||
|
./configure \
|
||||||
|
--enable-software-x11 \
|
||||||
|
--enable-image-loader-png \
|
||||||
|
--enable-image-loader-jpeg \
|
||||||
|
--enable-image-loader-eet \
|
||||||
|
--enable-cpu-c \
|
||||||
|
--enable-cpu-mmx \
|
||||||
|
--enable-cpu-p2-only \
|
||||||
|
--enable-scale-smooth \
|
||||||
|
--enable-scale-sample \
|
||||||
|
--enable-convert-8-rgb-332 \
|
||||||
|
--enable-convert-8-rgb-666 \
|
||||||
|
--enable-convert-8-rgb-232 \
|
||||||
|
--enable-convert-8-rgb-222 \
|
||||||
|
--enable-convert-8-rgb-221 \
|
||||||
|
--enable-convert-8-rgb-121 \
|
||||||
|
--enable-convert-8-rgb-111 \
|
||||||
|
--enable-convert-16-rgb-565 \
|
||||||
|
--enable-convert-16-rgb-555 \
|
||||||
|
--enable-convert-16-rgb-rot-0 \
|
||||||
|
--enable-convert-16-rgb-rot-90 \
|
||||||
|
--enable-convert-16-rgb-rot-270 \
|
||||||
|
--enable-convert-32-rgb-8888 \
|
||||||
|
--enable-convert-32-rgbx-8888 \
|
||||||
|
--enable-convert-32-bgr-8888 \
|
||||||
|
--enable-convert-32-bgrx-8888 \
|
||||||
|
--enable-convert-32-rgb-rot-0 \
|
||||||
|
--enable-convert-32-rgb-rot-90 \
|
||||||
|
--enable-convert-32-rgb-rot-270
|
||||||
|
make
|
||||||
|
sudo make install
|
||||||
|
cd
|
||||||
|
|
||||||
|
3. You need Ecore from the SPLIT cvs branch
|
||||||
|
|
||||||
|
cvs co -r SPLIT e17/libs/ecore
|
||||||
|
cd e17/libs/ecore
|
||||||
|
./autogen.sh
|
||||||
|
./configure \
|
||||||
|
--enable-ecore-x \
|
||||||
|
--enable-ecore-evas \
|
||||||
|
--enable-ecore-job \
|
||||||
|
--enable-ecore-con \
|
||||||
|
--enable-ecore-ipc
|
||||||
|
make
|
||||||
|
sudo make install
|
||||||
|
cd
|
||||||
|
|
||||||
|
4. You need Imlib2 installed. any release from 1.0.0 and up will do.
|
||||||
|
|
||||||
|
@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 are missing data files. In
|
||||||
|
data/ there are data sets for you to look at as examples. To try one out do:
|
||||||
|
|
||||||
|
@verbatim
|
||||||
|
cd data
|
||||||
|
./e_logo.sh
|
||||||
|
|
||||||
|
edje ./e_logo.eet test
|
||||||
|
@endverbatim
|
||||||
|
|
||||||
|
The edje test program/viewer is able to view multiple edje data sets. The
|
||||||
|
following will view 3 of them at once in the one window (which you can resize
|
||||||
|
to give you more space to move and resize the edje data sets around):
|
||||||
|
|
||||||
|
@verbatim
|
||||||
|
edje ./e_logo.eet test ./e_logo.eet test ./e_logo.eet test
|
||||||
|
@endverbatim
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@section details So how does this all work?
|
||||||
|
|
||||||
|
Edje inernally holds a geometry state machine and state graph of what is
|
||||||
|
visible, not, where, at what size, with what colours etc. This is described
|
||||||
|
to Edje from an Edje .eet file containing this information. These files can
|
||||||
|
be produced by using edje_cc to take a text file (a .edc file) and "compile"
|
||||||
|
an aoutput .eet file that contains this information, images and any other
|
||||||
|
data needed.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@todo See src/lib/edje_private.h for a list of FIXME's
|
||||||
@todo Complete documentation of API
|
@todo Complete documentation of API
|
||||||
|
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -11,6 +11,8 @@
|
||||||
#include <fnmatch.h>
|
#include <fnmatch.h>
|
||||||
|
|
||||||
/* FIXME:
|
/* FIXME:
|
||||||
|
* add a smooth scale option to fill params
|
||||||
|
* make signals names etc. consistent (ie "program,start" not "action,start")
|
||||||
* reference count programs since the tmp lists can be screwed if a program is ended by another
|
* reference count programs since the tmp lists can be screwed if a program is ended by another
|
||||||
* need "random" signals and events for hooking to, and "random" durations
|
* need "random" signals and events for hooking to, and "random" durations
|
||||||
* free stuff - no more leaks
|
* free stuff - no more leaks
|
||||||
|
@ -42,6 +44,7 @@
|
||||||
* audit edje for corrupt/bad input files
|
* audit edje for corrupt/bad input files
|
||||||
* ? somehow handle double click?
|
* ? somehow handle double click?
|
||||||
* ? add numeric params to conditions for progs (ranges etc.)
|
* ? add numeric params to conditions for progs (ranges etc.)
|
||||||
|
* ? containering for multiple children? (hbox, vbox, table, wrapping list)
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue