forked from enlightenment/efl
60 lines
2.6 KiB
C
60 lines
2.6 KiB
C
/**
|
|
@file
|
|
@brief Edje Graphical Design Library
|
|
|
|
These routines are used for Edje.
|
|
*/
|
|
|
|
/**
|
|
|
|
@mainpage Edje Library Documentation
|
|
@image html edje.png
|
|
@version 0.0.1
|
|
@author Carsten Haitzler <raster@rasterman.com>
|
|
@date 2000-2002
|
|
|
|
@section intro What is Edje?
|
|
|
|
A Graphical Design & Layout Library.
|
|
|
|
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
|
|
paramteres under which Ebits came about were a lot more restricted than the
|
|
resulting use of them, thus Edje was born.
|
|
|
|
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
|
|
more simplistic layour ideas behind Ebits, but it now does them a lot 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
|
|
should server all the purposes of creating visual elements (borders of
|
|
windows, scrollbars, etc.) and allow the deswigner the ability to animate,
|
|
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
|
|
one file, sharing the same image database and thus allowing a whole theme to
|
|
be conveneintly packaged into 1 file and shipped around.
|
|
|
|
Edje, unlike Ebits, separates the layout and behavior logic. Edje files ship
|
|
with an image database, used by all the parts in all the collections to
|
|
source graphical data. It has a directory of logical part names pointing to
|
|
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
|
|
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
|
|
program that if a particula event occurs (a button is pressed, a mouse enters
|
|
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
|
|
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
|
|
also allowed to transition over a period of time, allowing animation.
|
|
|
|
This separation and simplistic event driven style of programming can produce
|
|
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 conveneient way of being able to configure parts of the display.
|
|
|
|
|
|
@todo Complete documentation of API
|
|
|
|
*/
|