Enlightenment CVS committal
Author : technikolor
Project : e17
Module : docs
Dir : e17/docs/edjebook/xml
Modified Files:
bookinfo.xml edc_ref.xml edc_tour.xml edje_api.xml
guidelines.xml overview.xml positioning.xml preview.xml
programs.xml
Log Message:
Commiting a patch sent in by dan sinclair <[EMAIL PROTECTED]>.
Many thanx Dan.
===================================================================
RCS file: /cvsroot/enlightenment/e17/docs/edjebook/xml/bookinfo.xml,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -3 -r1.1 -r1.2
--- bookinfo.xml 20 Feb 2004 08:22:10 -0000 1.1
+++ bookinfo.xml 1 Apr 2004 09:58:59 -0000 1.2
@@ -40,8 +40,8 @@
<abstract>
<para>
A complete guide to designing interfaces using Edje and utilizing them
- effectively in your EVAS applications. Includes complete overview of Edje
- Data Collections (EDC) and Edje API, including sample code and reference
+ effectively in your EVAS applications. Includes a complete overview of Edje
+ Data Collections (EDC) and the Edje API, including sample code and reference
material. Utilizing Edje effectively can simplify and streamline application
development and make nearly any application completely skinable by even
non-programmers.
</para>
===================================================================
RCS file: /cvsroot/enlightenment/e17/docs/edjebook/xml/edc_ref.xml,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -3 -r1.4 -r1.5
--- edc_ref.xml 8 Mar 2004 20:16:43 -0000 1.4
+++ edc_ref.xml 1 Apr 2004 09:58:59 -0000 1.5
@@ -64,7 +64,7 @@
<entry>images</entry>
<entry>image,</entry>
<entry>"image" STORAGE_METHOD;</entry>
- <entry>Where storage method is of the following: COMP for lossless compressed, RAW
for lossless uncompressed, or LOSSY for lossy compressed follorwed by
+ <entry>Where storage method is of the following: COMP for lossless compressed, RAW
for lossless uncompressed, or LOSSY for lossy compressed followed by
the quality level (0-100)
ex: image, "button.png" LOSSY 85;
ex: image, "backdrop.jpg" RAW;</entry>
@@ -74,7 +74,7 @@
<entry>group</entry>
<entry>name,</entry>
<entry>"group_name";</entry>
- <entry>Name used to access individual interface in an EET</entry>
+ <entry>Name used to access an individual interface in an EET.</entry>
</row>
<row>
@@ -107,7 +107,7 @@
</entry>
<entry>"part_name";
</entry>
- <entry>Symbolic part name, used for later reference in EDC
+ <entry>Symbolic part name, used for later reference in EDC.
</entry>
</row>
@@ -118,7 +118,7 @@
</entry>
<entry>TYPE;
</entry>
- <entry>Where type is: IMAGE, RECT, TEXT or NONE. If no type is specified IMAGE is
the default type.
+ <entry>Where type is: IMAGE, RECT, TEXT or NONE. Defaults to IMAGE if no type is
specified.
</entry>
</row>
@@ -152,9 +152,8 @@
</entry>
<entry>0;
</entry>
- <entry>Boolean value specifying whether a part repeats an event to the part below
it. When repeat is set to 0 (off, the default) and two parts that acc
-ept events
- are on top of each other the top most object will recieve the event and not
any parts below it, turning repeat to 1 (on) will continue to send the
+ <entry>Boolean value specifying whether a part repeats an event to the part below
it. When repeat is set to 0 (off, the default) and two parts that accept events
+ are on top of each other the top most object will receive the event and not
the parts below it, turning repeat to 1 (on) will continue to send the
event down to
the next part below it.
</entry>
@@ -168,8 +167,7 @@
</entry>
<entry>"part";
</entry>
- <entry>Clip to the size of the specified part. Any amount of the current part that
exends beyond the size of the clipped to part will be clipped off. C
-lipped text parts
+ <entry>Clip to the size of the specified part. Any amount of the current part that
extends beyond the size of the clipped to part will be clipped off. Clipped text parts
always truncate the text string to "...".
</entry>
</row>
@@ -203,8 +201,7 @@
</entry>
<entry>"name" INDEX;
</entry>
- <entry>Descriptive name for the individual state, the default state must always be
named "default". The INDEX value is a double between 0.0 and 1.0 whic
-h indicates levels of completion, that defaults to 0.0. Multiple states can have the
same name yet with a different index value.
+ <entry>Descriptive name for the individual state, the default state must always be
named "default". The INDEX value is a double between 0.0 and 1.0 which indicates
levels of completion, the default is 0.0. Multiple states can have the same name yet
with a different index value.
ex: state, "default" 0.0;
</entry>
</row>
@@ -227,7 +224,7 @@
</entry>
<entry>HOR_VAL VER_VAL;
</entry>
- <entry>Specify alignment of the part within it's container as specified by
rel1/rel2. Values are specified as doubles from 0.0 (align left/top) to 1.0 (
+ <entry>Specify alignment of the part within its container as specified by
rel1/rel2. Values are specified as doubles from 0.0 (align left/top) to 1.0 (
align right/bottom).
ex: align, 0.5 0.5; (Aligns part in center of container)
ex: align, 0.0 1.0; (Aligns part to bottom left of container)
@@ -266,7 +263,7 @@
<entry>HOR_VAL VERT_VAL;
</entry>
<entry>Integer stepping values in integer pixels for horizontal (arg1) and vertical
(arg2) scaling. When stepping is enabled the width or/and height of
-the image will always be divisable by it's stepping value when scaled. Default
stepping values are 0 0 (ie: stepping disabled).
+the image will always be divisable by its stepping value when scaled. Default
stepping values are 0 0 (ie: stepping disabled).
ex: step, 20 1 (Image width must always be multple of 20, ie: 0, 20, 40, 60, etc.
Height can be any value)
</entry>
</row>
@@ -278,8 +275,7 @@
</entry>
<entry>MIN MAX;
</entry>
- <entry>Double min (arg1) and max (arg2) aspect ratio values. This controls the
aspect ratio (ratio of width to height) of a scaled part, typically image
-s. The default ratio is 0.0. If both values are the same the ratio is fixed.
+ <entry>Double min (arg1) and max (arg2) aspect ratio values. This controls the
aspect ratio (ratio of width to height) of a scaled part, typically images. The
default ratio is 0.0. If both values are the same the ratio is fixed.
ex: aspect, 1.0 5.0; (Minimum aspect of 1:1, maximum of 5:1 - Width:Height);
</entry>
</row>
@@ -291,8 +287,7 @@
</entry>
<entry>LEFT RIGHT TOP BOTTOM;
</entry>
- <entry>Border scaling values for an image part as specified in integer pixel
widths, for each four sides of an image. This will stop Edje from scaling t
-he outside edge of an image when scaling an image part.
+ <entry>Border scaling values for an image part as specified in integer pixel
widths, for each four sides of an image. This will stop Edje from scaling the outside
edge of an image when scaling an image part.
ex: border, 10 10 10 10; (Scale the edge of the image part 10 pixels on all sides)
</entry>
</row>
@@ -340,8 +335,7 @@
</entry>
<entry>HOR_VAL VERT_VAL;
</entry>
- <entry>Doubles representing the horizontal (arg1) and vertical (arg2) positioning
of top left corner (for rel1) or bottom right corner (for rel2) as rel
-ative to the part specified by the "to" keyword. If no "to" keyword is present, the
values are relative to the corners of the interface.
+ <entry>Doubles representing the horizontal (arg1) and vertical (arg2) positioning
of top left corner (for rel1) or bottom right corner (for rel2) as relative to the
part specified by the "to" keyword. If no "to" keyword is present, the values are
relative to the corners of the interface.
ex: relative, 0.0 1.0; (For rel1 with no "to": top left corner of part is positioned
at the left (0.0), bottom (1.0) corner of the interface.)
</entry>
</row>
@@ -353,7 +347,7 @@
</entry>
<entry>HORZ_OFF VERT_OFF;
</entry>
- <entry>Integers specifying deviation in pixels from the position as defined by the
relative keyword, both horizontally (arg1) and vertically (arg2)
+ <entry>Integers specifying deviation in pixels from the position as defined by the
relative keyword, both horizontally (arg1) and vertically (arg2).
ex: offset, 5 10; (Position 5 px to the right and 10 px down from the position as
stated by the relative keyword)
</entry>
</row>
@@ -377,8 +371,7 @@
</entry>
<entry>"part_name";
</entry>
- <entry>Specify another part as the reference to be used for the positioning of the
current part. Same as "to", but relativity applies only on the X axis
-.
+ <entry>Specify another part as the reference to be used for the positioning of the
current part. Same as "to", but relativity applies only on the X axis.
</entry>
</row>
@@ -389,8 +382,7 @@
</entry>
<entry>"part_name";
</entry>
- <entry>Specify another part as the reference to be used for the positioning of the
current part. Same as "to", but relativity applies only on the Y axi
-s.
+ <entry>Specify another part as the reference to be used for the positioning of the
current part. Same as "to", but relativity applies only on the Y axis.
</entry>
</row>
@@ -413,8 +405,7 @@
</entry>
<entry>"image_name";
</entry>
- <entry>Name of an image to be used in an animation loop. Images are dispay in the
order they are listed. There is no limit to the number of tweens tha
-t can be specified.
+ <entry>Name of an image to be used in an animation loop. Images are dispay in the
order they are listed. There is no limit to the number of tweens that can be
specified.
</entry>
</row>
@@ -438,8 +429,7 @@
</entry>
<entry>Doubles representing the horizontal (arg1) and vertical (arg2) position from
which a fill (tile) should start within it's container as defined by
rel1/rel2. Tiling
- then occurs in all directions from that point of origin. This is similar in
use to relativity by rel1 except that it is relative to the parts con
-tainer rather than
+ then occurs in all directions from that point of origin. This is similar in
use to relativity by rel1 except that it is relative to the parts container rather than
the whole interface.
ex: relative, 0.5 0.5; (part starts tiling from the middle of it's container)
</entry>
@@ -465,8 +455,7 @@
</entry>
<entry>HOR_VAL VERT_VAL;
</entry>
- <entry>Doubles representing the horizontal (arg1) and vertical (arg2) position of
the bottom right corner of a fill (tile). This is similar in use to r
-elativity by rel2 except that it is relative to the parts container rather than the
whole interface.
+ <entry>Doubles representing the horizontal (arg1) and vertical (arg2) position of
the bottom right corner of a fill (tile). This is similar in use to relativity by
rel2 except that it is relative to the parts container rather than the whole interface.
ex: relative, 1.0 1.0; (Tile fills entire space)
</entry>
</row>
@@ -478,8 +467,7 @@
</entry>
<entry>HOR_VAL VERT_VAL;
</entry>
- <entry>Integers specifying a pixel offset horizontally (arg1) and vertically (arg2)
from the relative position specified by size{relative,}. This is si
-milar in use to offset
+ <entry>Integers specifying a pixel offset horizontally (arg1) and vertically (arg2)
from the relative position specified by size{relative,}. This is similar in use to
offset
used in rel2.
</entry>
</row>
@@ -502,7 +490,7 @@
</entry>
<entry>"font_name";
</entry>
- <entry>Font used for text, where "font_name" is the name of the font file minus its
extension. Path to font is determined by your applications
+ <entry>Font used for text, where "font_name" is the name of the font file minus its
extension. The path to the font is determined by your applications
evas font path. ex: font, "Impact"; (Font used is Impact.ttf found in the
evas font path)
</entry>
</row>
@@ -536,8 +524,7 @@
</entry>
<entry>HOR_VAL VERT_VAL;
</entry>
- <entry>Boolean values specifying whether the current text string should define the
minimum size of the part, such that all future changes to the text st
-ring can
+ <entry>Boolean values specifying whether the current text string should define the
minimum size of the part, such that all future changes to the text string can
be no smaller both horizontally (arg1) and vertically (arg2).
</entry>
</row>
@@ -549,7 +536,7 @@
</entry>
<entry>0.5 0.5;
</entry>
- <entry>Alignment of text within its containers as defined by rel1/rel2,
horizontally (arg1) and vertically (arg2).
+ <entry>Alignment of text within its containers is defined by rel1/rel2,
horizontally (arg1) and vertically (arg2).
</entry>
</row>
@@ -571,7 +558,7 @@
</entry>
<entry>SIGNAL;
</entry>
- <entry>Specifies signal(s) that a should cause program to run. The signal recieved
must match the specified source to run. Signals may be globbed, but
+ <entry>Specifies signal(s) that should cause the program to run. The signal
received must match the specified source to run. Signals may be globbed, but
only
one signal keyword per program may be used.
ex: signal, "mouse,clicked,*"; (clicking any mouse button that matches source
starts program)
@@ -608,8 +595,7 @@
</entry>
<entry>TYPE LENGTH;
</entry>
- <entry>Defines how transistions occur using STATE_SET action. Where type is the
style of the transistion and length is a double specifying the number o
-f
+ <entry>Defines how transistions occur using STATE_SET action. Where type is the
style of the transistion and length is a double specifying the number of
seconds in which to preform the transistion. Valid types are: LINEAR,
SINUSOIDAL, ACCELERATE, and DECELERATE
</entry>
</row>
@@ -621,8 +607,7 @@
</entry>
<entry>"action-target";
</entry>
- <entry>Program or part on which the specified action acts. Multiple target
keywords may be specified, one per target. SIGNAL_EMITs do not have targets
-.
+ <entry>Program or part on which the specified action acts. Multiple target
keywords may be specified, one per target. SIGNAL_EMITs do not have targets.
</entry>
</row>
@@ -633,7 +618,7 @@
</entry>
<entry>"next-program";
</entry>
- <entry>Specifies a program run after the current program completes.
The source and signal parameters of a program run as an "after" are ignored. Multiple
"after" statements can be specified per program.
+ <entry>Specifies a program to run after the current program completes.
The source and signal parameters of a program run as an "after" are ignored.
Multiple "after" statements can be specified per program.
</entry>
</row>
===================================================================
RCS file: /cvsroot/enlightenment/e17/docs/edjebook/xml/edc_tour.xml,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -3 -r1.3 -r1.4
--- edc_tour.xml 8 Mar 2004 20:17:36 -0000 1.3
+++ edc_tour.xml 1 Apr 2004 09:58:59 -0000 1.4
@@ -8,10 +8,10 @@
be. When determining how to design your interface, it's common to use GIMP
as a layout tool, this is particularly helpful for designing your interface with
Edje as you can see exactly how each element is going to be positioned and relate
-to other parts of your interface, which is espcially helpful when learning Edje.
+to other parts of your interface, which is especially helpful when learning Edje.
Next, it's time to actually build your real interface. This starts by creating
a file typically labeled with a .edc extension. Once you've created your EDC,
-you will generate the EET that will be used by your application using edje_cc,
+you will generate the EET that will be used by your application. This is done using
<command>edje_cc</command>,
the Edje Collection Compiler. Edje_cc will pack your EDC plus all of the images
your interface will need into one tight compact EDC, and will even compress
images if you specified compression in your EDC. This generated EET will
@@ -24,7 +24,7 @@
</para>
<para>
-Before starting off with Edje on your own, you should look at the example in
+Before starting off with Edje on your own, you should look at the examples in
the Edje source tree. In the <filename class='directory'>edje/data</filename>
directory you will find a script named
<filename>e_logo.sh</filename>.
Run that script and an EET will be generated. The script simply runs
<command>edje_cc</command> with the appropriate
@@ -198,11 +198,11 @@
</para>
<para>
-The images section is the first section to examine. It simply contains a list of
images that we with to
+The images section is the first section to examine. It simply contains a list of
images that we wish to
include in our interface. Each image will have a line describing how to store it, in
the form: image, "filename" STORAGE_METHOD;.
The storage method is a description of how Edje should store the file in the
generated EET. Valid storage methods are COMP, RAW,
and LOSSY. RAW stores the image in raw format, note that this doesn't mean
unmodified format, a RAW stored PNG will
-be uncompressed and stored as the raw image, thus you tidy 1K PNG may be stode as an
8K raw image.
+be uncompressed and stored as the raw image, thus your tidy 1K PNG may be stode as an
8K raw image.
The COMP method will use lossless compression on your image. And the LOSSY method
will use a lossy compression on
your image. The LOSSY method is followed by an integer between 0 and 100, defining
the quality level.
</para>
@@ -213,7 +213,7 @@
applications interface or diffrent looks for your one interface, all in one EET for
easy distribution. Each group is given
a name, in this case "test". Any time you reference your EET you will specify both
the EET file name, and the group to use so
choose your name descriptively. The next two lines are the min and max size of our
interface in pixels. The arguments to
-min and max are horizontal size then the verital size. So our interface case a
minimum size of 32x32 and maximum of 1024x768.
+min and max are the horizontal size then the verital size. So our interface has a
minimum size of 32x32 and maximum of 1024x768.
</para>
<para>
@@ -229,24 +229,24 @@
A part will contain one or more description sections. Each description is a diffrent
state of our part. The descriptions
define how our part should look, what images or text the part uses, where it should
be positioned, how it should be tiled, etc.
In this case our background only needs one state, which we call default, using the
state keyword. The number following
-the state name defines an index value which is currently unused, simply use 0.0.
Next we see two sections define the
+the state name defines an index value which is currently unused, simply use 0.0.
Next we see two sections defining the
positioning of our part, rel1 and rel2. Each rel
section will contain the keywords relative and offset, and optionally to. If the to
keyword is omited then the position
is relative to the full size of the interface as described by min and max in the
group section. rel1 is the positioning of
the top left corner of the part and rel2 is the positioning of the bottom right
corner of the part. The relative keyword is followed by two doubles ranging from 0.0
to 1.0. As with min and max, the first
-value is the horizontal and the second is the vertical. The offset specified the
pixel deviation from the relative point.
+value is the horizontal and the second is the vertical. The offset specifies the
pixel deviation from the relative point.
In the case of our background, the top left (rel1) of our part (image) is relative to
the top left corner of the interface, with no
offset. The bottom right (rel2) of our part is relative to the bottom right of the
interface, offset by 1 pixel left and 1 pixel
-up. Therefore, this part fills the entire interface. More information about
positioning can before later in this guide. The last
+up. Therefore, this part fills the entire interface. More information about
positioning can be found later in this guide. The last
section in this parts description is the image section. This section describes which
images to use. One or more images
can be specified, the image that is first seen is denoted by the keyword normal.
More images can be added using the
-keyword "tween" to form animations, but we will discuse that more later.
+keyword "tween" to form animations, but we will discuss that in a later section.
</para>
<para>
While parts may seem confusing and complicated at first, hopefully you now can look
at the part we just reviewed and simply
-say that it's an image part named background that doesn't accept mouse events, fills
the interface completely using the
+say that it's an image part named background that doesn't accept mouse events, and
fills the interface completely using the
image background.png.
</para>
@@ -256,10 +256,10 @@
rectangle we will use as a button, or in otherwords, the unclicked state of our
button. The second state is the clicked
state. You'll notice that the default and clicked states look almost identical, the
only change is the color and name.
This means that when we change from state default to state clicked, the only thing
that changes is the color of the rectangle.
-States are changed using programs, which we will discuse later. You'll notice that
the descriptions contain min and max keywords,
+States are changed using programs, which we will discuss later. You'll notice that
the descriptions contain min and max keywords,
these are used to define the size of the part. If they are omited, like in the
background part, the part will fill the maximum
-ammount of avalible space (ie: the whole interface, as limited by rel1 and rel2).
The alignment keyword specifies alignment
-of our part within its avalible space (container). Values for align are again
horizontal alignment followed by verital alignment,
+amount of avalible space (ie: the whole interface, as limited by rel1 and rel2). The
alignment keyword specifies alignment
+of our part within its available space (container). Values for align are again
horizontal alignment followed by verital alignment,
using doubles. So in this case the rectangle will be an absolute 100x50 pixels, with
a container the size of the whole interface
(as defined by rel1/rel2), and is positioned in the middle of that container. No
matter how big or small the interface is the
100x50 pixel rectangle will always stay in exactly the middle of the screen and never
resize. The color keyword is applicable
@@ -274,12 +274,12 @@
the bottom right corner of the part by 1 pixel to the left and upwards from that
point. The text section describes the text
itself. The text keyword describes the text to display ("Press Me"), the font to use
("redensek"), the size of that font (14), and
the alignment of the text within the container as defined by rel1/rel2. The font
specified to be used must be added to
-your EVAS font path in your application, and the font name is the filename minus it's
extention (ie: .ttf).
+the EVAS font path in your application, and the font name is the filename minus it's
extention (ie: .ttf).
</para>
<para>
-A word about layering. There is not specific keyword for layering in EDCs on a
part-by-part basis. Each
-new part is layered on top of the previous. Therefore in our sample EDC the text is
rendered ontop of the button, which
+A word about layering. There is no specific keyword for layering in EDCs on a
part-by-part basis. Each
+new part is layered on top of the previous part. Therefore in our sample EDC the
text is rendered on top of the button, which
sits atop the background. If we had defined the button before the background it
would not have been visable. While
this is common sense for the mostpart, it can be a common cause of confusion when
modifying a large EDC if you aren't
careful. Whenever you modify or add parts to your EDCs check whats above and below
it.
@@ -289,27 +289,27 @@
The final section in our EDC is the programs section. Programs breath life into the
static parts that
make up our interface. Programs are largely based on the reception of signals.
Signals can be generated by user
interfaction, Edje itself, or an external force (usually your window manager). For
instance, a user generated signal would be
-mouse in (when the user moves their pointer over a part), or mouse down (user
depreses mouse button over a part).
+mouse in (when the user moves their pointer over a part), or mouse down (user
depresses a mouse button over a part).
An Edje generated signal would include a "load" signal (Edje loads the EET), or
"program,start" (when some other program starts running). An externally generated
signal would effect the entire Edje
interface, generally from a window manager, such as "move" (your interface window is
moved) or "show" (your interface is displayed).
</para>
<para>
-The first program in our example is to change the state of our button part when it is
clicked on. The program
-name is "button_click". The program is run when it recieves the signal
"mouse,down,1", meaning when the left mouse button is
+The first program in our example is to change the state of our button part when it is
clicked. The program
+name is "button_click". The program is run when it receives the signal
"mouse,down,1", meaning when the left mouse button is
depressed over your part that accepts mouse events the program activates. Signals
are globable, meaning if we
wanted the program to run when any mouse button is depressed on our part we could use
the signal "mouse,down,*", in fact
we could use the signal "*" meaning that ANY signal effecting the part would run the
program. The next keyword is source,
-which defines the part (or program) from which the signal will be recieved, in this
case button. Sources are also globable.
+which defines the part (or program) from which the signal will be received, in this
case button. Sources are also globable.
The next keyword is
-action, this what the program actually does. Actions can change part states, stop
the action of other programs, and emit
+action, this what the program actually does. Actions can change part states, stop
the action of other programs, or emit
signals. In this case the action STATE_SET still change state to "clicked". The
following double (0.0) is currently
-unused and should simply be set to 0.0. The target argument that follows is the part
or program on which the action acts
-apon. The final keyword, after, optionally defines another program to be run after
the current program completes.
+unused and should simply be set to 0.0. The target argument that follows is the part
or program on which the action acts.
+The final keyword, after, optionally defines another program to be run after the
current program completes.
When a signal is received all the programs which accept the incoming signal and match
the source will be run, and
in this way very often the keyword "after" is not required, however it can still be
used for some crafty purposes which we'll explore later.
-After's can also be used as a looping mechignism, by specifying the current program
to re-run after it completes, however it
+After's can also be used as a looping mechanism, by specifying the current program to
re-run after it completes, however it
should be noted that any signal specified for the program must be met on every run of
that program, even if it loops back
to itself.
</para>
@@ -318,7 +318,7 @@
Looking at the first program again, we can now clearly see that the program
"button_click" will be run when the left
mouse button is depressed on our "button" rectangle. It will change the state of the
target "button" to "clicked" (which will change the color
as noted earlier), and once it completes will run the "do_me" program. Thus, looking
at the next program "button_unclick" we can
-see that it will change the state of target "button" to the "default" state (back to
its origonal color) when the
+see that it will change the state of target "button" to the "default" state (back to
its original color) when the
left mouse button is released over the source part "button". Hence we have an
animated button! Typically images would be used instead
of simple rectangles, which would simply omit the color keyword and add an image
section to both states, one image for the default
state and one for the clicked state. Lastly we see that the after keyword is used to
run the program "stop_doing_me" after "button_unclick"
@@ -331,11 +331,11 @@
The third program as referenced by the "button_click" program. This program will
accept any signal (as denoted by a * for the
signal). The source is defined as a program in this case, rather than a part, so the
program will run when any signal is accepted
from the "button_click" program. The action defined is SIGNAL_EMIT, which will send
the specified signal, here "PANTS ON", which
-is typically used by your application code. The third argument of of action for
SIGNAL_EMIT is the source from which the signal came.
-In your application code this signal would be recieved by a callback handler, which
would call a specified function based on the recipt of
+is typically used by your application code. The third argument of the action for
SIGNAL_EMIT is the source from which the signal came.
+In your application code this signal would be received by a callback handler, which
would call a specified function based on the recipt of
a specified signal from a specific source. We'll learn more about these signals when
we discuse the Edje API later. The keyword
-"in" accepts two arguments, both doubles. "in" specifies a delay on running your
program, the first argument is the number of seconds
-to wait before running the program, and the second argument specifies a the maximum
random delay which is added to the first argument.
+"in" accepts two arguments, both doubles. The "in" keyword specifies a delay on
running your program, the first argument is the number of
+seconds to wait before running the program, and the second argument specifies the
maximum random delay which is added to the first argument.
This is useful when you want the program to wait for a random amount of time that is
at least a half a second but no more than 3 seconds,
which would be described as "in, 0.5 3.0;". Delays always occur before the action
specified by the program is preformed.
Our final keyword is after, which will run the program "do_me" after the current
program completes, which in this case is a loop.
@@ -352,9 +352,9 @@
<para>
You should now take the sample EDC above, and use Edje_CC to build an eet. You can
get the background image here: BACKGROUNDIMG.
Using the edje_cc build your EET like this: "edje_cc -v -id . sample.edc sample.eet",
putting the image in the same directory with the EDC.
-You should put the font "redensek.ttf" in a directory named "fonts/" where your EET
will be used with edje (the viewer) from.
+You should put the font "redensek.ttf" in a directory named "fonts/" where your EET
will be view with edje (the viewer).
You can then preview that EET with Edje, specifying the EET filename and the group
name: "edje sample.eet test". Play with the EDC
-alittle untill you think you are familar with the syntax, layout and basic
functionality of Edje EDCs.
+a little until you think you are familar with the syntax, layout and basic
functionality of Edje EDCs.
</para>
</section>
===================================================================
RCS file: /cvsroot/enlightenment/e17/docs/edjebook/xml/edje_api.xml,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -3 -r1.1 -r1.2
--- edje_api.xml 20 Feb 2004 08:22:10 -0000 1.1
+++ edje_api.xml 1 Apr 2004 09:58:59 -0000 1.2
@@ -89,7 +89,7 @@
application needs to catch that signal and then do something with it, this
functionality is provided by Edje signal callbacks.
The Edje API provides you with two calls, one to add and one to delete signal
callbacks: edje_object_signal_callback_add() and
edje_object_signal_callback_del(). Both functions take 4 arguments: the Evas_Object
(your edje), the signal thats emited,
-the source of that emission, and the function that should be called when the signal
is recieved.
+the source of that emission, and the function that should be called when the signal
is received.
These functions will not allow you to pass NULL arguments, and therefore if you want
to create callbacks for several sources that
emit the same signal you will need to add a seperate callback for each of the
sources. The add function allows one more
argument, a void pointer to any data you want passed to the callback function.
===================================================================
RCS file: /cvsroot/enlightenment/e17/docs/edjebook/xml/guidelines.xml,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -3 -r1.1 -r1.2
--- guidelines.xml 20 Feb 2004 08:22:10 -0000 1.1
+++ guidelines.xml 1 Apr 2004 09:58:59 -0000 1.2
@@ -3,7 +3,7 @@
<para>
The purpose of Edje is to abstract as completely as possible the design of the
interface from the application code. Always
-keep this in mind when using Edje. While at times Edje's API seems inadiquate or
frustrating in its lack of customization, it
+keep this in mind when using Edje. While at times Edje's API seems inadequate or
frustrating in its lack of customization, it
is this way for a reason: to keep you as a coder from taking power away from the
themer. If at any point the API seems like
a restriction realize that what you want to do is possible, but should be done in the
EDC not in the application code.
</para>
@@ -17,7 +17,7 @@
<title>Edje Spec Files</title>
<para>
-Once you have created you application and a default EDC you will want to make it as
easy as possible for other developers and
+Once you have created your application and a default EDC you will want to make it as
easy as possible for other developers and
themers to create new interfaces for you application. While developers can read your
code and figure out what does what, many
of the themers can not, therefore a standardized method of describing what the
application requires and provides should be utilized.
This is done by creating a flat text file named README.edje. Below is an example of
the format that should be used in your README.edje:
@@ -134,11 +134,11 @@
</figure>
<para>
-This scheme allows the themer to have an understanding of what functionality is
avalible and what
+This scheme allows the themer to have an understanding of what functionality is
available and what
parts will be accessed by the application code and therefore must exist, even if
hidden. A changelog
should be present to list the changes in the application that could effect themes
past and present.
A "Features and Notes" section is optional but allows a place to outline various
functionality of the application
-as well as notes from the coder to the themer as to now the app is intended to be
used, their wishes, etc.
+as well as notes from the coder to the themer as to how the app is intended to be
used, their wishes, etc.
This file should be present in the top level directory of your codebase.
</para>
@@ -161,13 +161,13 @@
<para>
An important consideration for themeing was how to deal with distribution of themes.
Due to the ugly nature of using
-renamed tarballs for data distribution Edb and then EET came to live. EET provides a
simplistic manner of distributing
-complete themes and interfaces in a convinient single file package. Because EET will
compress your images there is no need
+renamed tarballs for data distribution Edb and then EET came to life. EET provides a
simplistic manner of distributing
+complete themes and interfaces in a convenient single file package. Because EET will
compress your images there is no need
to re-compress an EET, though it is the distributers discretion to do so. When
hosting themes pre-compiled EETs should be provided.
-The images and source EDC does not, but it is recommended that you make it avalible
on request or in the same place as the EET
-using a simple and clear file convension such as: theme.eet and theme-src.tgz.
Providing the source gives back to the community
+The images and source EDC does not need to be provided, but it is recommended that
you make it avalible on request or in the same place
+as the EET using a simple and clear file convension such as: theme.eet and
theme-src.tgz. Providing the source gives back to the community
not only a nice theme but also a valuable learning tool for others. Themes should
<emphasis>not</emphasis> be distributed in
-tarballs as it defeats the purpose of single file, one step distribution.
+tarballs as it defeats the purpose of a single file, one step distribution.
</para>
</section>
===================================================================
RCS file: /cvsroot/enlightenment/e17/docs/edjebook/xml/overview.xml,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -3 -r1.1 -r1.2
--- overview.xml 20 Feb 2004 08:22:10 -0000 1.1
+++ overview.xml 1 Apr 2004 09:58:59 -0000 1.2
@@ -12,7 +12,7 @@
These EET's are generated from an Edje EDC file in which diffrent parts of the
interface
are described and laid out, and how those parts interact with your application. This
allows for the interface to be completely changed simply by creating a new EDC and
-generating from it the EET that your application can use. In more popular terms, Edje
+generating the EET for your application to use. In more popular terms, Edje
makes every application that uses it "skinable". Raster describes Edje as "an attempt
to find a middleground between themeing and programming without turning the theme
itself into just yet another program".
@@ -26,7 +26,7 @@
<para>
The Edje EDC contains every detail about your interface. An EDC is
a simple text file that uses C like syntax. The file is broken into
-three distinct section: images, data, and collections. The image section contains
+three distinct sections: images, data, and collections. The image section contains
a list of all the images your interface will use. When you compile/generate your
EDC into an EET all the images specified will be loaded into the EET itself allowing
you
to distribute your interface (or skin if you prefer) as a single file. When
@@ -40,16 +40,16 @@
<para>
The collections in an EDC are comprised of one or more groups. Each group
contains parts and programs. A part is a single element of your interface, such
-as a text element, or a rectangle, or an image. Each part is thuroughly described
+as a text element, or a rectangle, or an image. Each part is throughly described
for one or more states. For instance, an image part might actually have two images
-in it, each in a diffrent state, one for a normal state and one for a clicked (mouse
down)
+in it, each in a different state, one for a normal state and one for a clicked (mouse
down)
state. A part may have as many states defined as you like.
</para>
<para>
These parts are then referenced in the programs. Programs are descriptions about
how the interface should respond to both the user and the application code itself. A
-program can accept interface event (such as mouse button 1 down), and then change the
state of
+program can accept interface events (such as mouse button 1 down), and then change
the state of
a part described earlier (change to state clicked) to create an effect. Programs
can also emit signals to your application. In your application code you would define
a callback for that event. Each program is concise and distinct. For example, to
@@ -60,10 +60,10 @@
<para>
Because of the abstraction Edje provides, your applcation only needs to
-know the name of the EET to use, what signals it will recieve from
-the interface so that callbacks can be defined when that event is recieved, and
+know the name of the EET to use, what signals it will receive from
+the interface so that callbacks can be defined when that event is received, and
what text parts in the interface can be modified. This allows maximum flexability in
-interface design, including the ability to offload interface to graphic designers and
+interface design, including the ability to offload the interface to graphic designers
and
themers freeing the application coders, allowing users of the application to modify
the
interface without hacking or forking your project, and a much quicker prototyping and
design
tool than modifying your C application directly.
===================================================================
RCS file: /cvsroot/enlightenment/e17/docs/edjebook/xml/positioning.xml,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -3 -r1.1 -r1.2
--- positioning.xml 20 Feb 2004 08:22:10 -0000 1.1
+++ positioning.xml 1 Apr 2004 09:58:59 -0000 1.2
@@ -3,9 +3,9 @@
<para>
The Edje positioning model is based heavily on relativity, and is difficult for many
new users to adjust to. Simply put, every
-part defined is relative to something else and is positioned relative to it. If you
do not explicitly define what a part is
+part defined is relative to something else and is positioned relative to that thing.
If you do not explicitly define what a part is
relative to it is relative to the entire interface. The sections rel1 and rel2 are
present in every part description and
-define the positioning. Each part should be thought of as a container, and the
contents of the part whether may not neccisarily
+define the positioning. Each part should be thought of as a container, and the
contents of the part may not necessarily
fill the entire container. Thus we can think of the interface itself as a container,
which simply contains other containers.
rel1 defines the positioning of the top left corner of the part container, and rel2
defines the positioning of the bottom right
corner of the part container. Doubles are used with the keyword relative ranging
from 0.0 to 1.0 representing a percentage of left-to-right
@@ -24,7 +24,7 @@
On top I have provided an Edje compass which is a helpful tool to visualize
positioning. Looking at the compass, notice that the left and northern
directions approach 0.0 moving negatively, and that the right and southern directions
approach 1.0 moving in the positive direction. Again, this
is because everything starts from the top left corner of the parent container,
regardless if that parent container is the entire interface or just
-another part. So the part in the middle of our figure would be positioned starting
at roughtly 0.4 0.4, not 0.5 0.5. 0.5 0.5 would place
+another part. So the part in the middle of our figure would be positioned starting
at roughtly 0.4 0.4, not 0.5 0.5. A position of 0.5 0.5 would place
the top left corner of the part exactly in the middle of the interface, not center
entire part. To better illistrate this lets look at some
examples as you would see them in an EDC.
</para>
@@ -86,13 +86,13 @@
<para>The second part in the example above is very similar to the "background" part,
it is not relative
to anything, and therefore is relative to the whole interface. However, notice that
an offset is specified
-for both rel1 and rel2. These values are possition modifiers specified in pixels.
These offsets are based
+for both rel1 and rel2. These values are position modifiers specified in pixels.
These offsets are based
on the positioning defined by the relative keyword. Again, the two arguments specify
horizontal positioning
followed by vertical. So by using an offset in rel1 of 10 10, we're moving the top
left corner of the part
(rel1) by 10 pixels to the right and 10 pixels south of the position specified by
relative. In the same way,
rel2 is placed at the bottom right corner of the interface, and offset by 10 pixels
to the left (-10) and
-10 pixels north (-10). Remember that these values are negative because all
positioning origionates from the
-top left corner of the container, so in this case we move backward toward it making
the values negative.
+10 pixels north (-10). Remember that these values are negative because all
positioning originates from the
+top left corner of the container, so in this case we move backward thus making the
values negative.
</para>
<para>
@@ -108,8 +108,8 @@
<para>
To create a line of buttons in Edje we are presented with some positioning decisions
to make. Each button could
be positioned absolutely to the corners of the interface, or instead the first button
would be positioned absolutely and
-each following button positioned relative to the first. Which method is right for
your interface is important descision
-as it will effect the ammount of effort needed to modify the interface later if you
choose or if you move those parts using
+each following button positioned relative to the first. Which method is right for
your interface is an important decision
+as it will effect the amount of effort needed to modify the interface later or if you
move those parts using
a program. If you position each button relative to the first you only need to move
the first buttons position to move them
all as opposed to moving each button individually. In this way we can group parts
together to make them act in a unified
positioning manner.
@@ -163,30 +163,26 @@
</figure>
<para>In this example we have two buttons. Looking at "button1" we see it's top left
corner (rel1) is positioned at the top left
-corner of the interface (relative) and then offset 10 pixels to the right and 10
pixels south (offset). It's bottom right corner (rel2)
+corner of the interface (relative) and then offset 10 pixels to the right and 10
pixels south (offset). Its bottom right corner (rel2)
is relative to the top left corner of the interface as well, but then offset 30
pixels to the right and 20 pixels south. We position
-both corners from the top left corner instead of from both the top left and bottom
right corner of the interface because since we are using
-static offsets we want to ensure the button stays in the same place even if the
interface is resized. Notice we are not specifying the
+both corners from the top left corner instead of from both the top left and bottom
right corner of the interface. This is a result of using
+static offsets, we want to ensure the button stays in the same place even if the
interface is resized. Notice we are not specifying the
min and max size of either buttons, all sizing is happening based on the position of
the corners of that part. The result of the positioning
scheme used for "button1" is a container that stretches from the top left corner and
is 20 pixels wide and 10 pixels high. If we had specified
a min and max size for the part of 10 pixels the rectangle would only fill half of
the container, and unless an "align" keyword was used that rectangle
would start from the top left corner of the container like everything else, thus the
left side of the container would be filled with rect and the other
half of the container empty.</para>
-<para>Button2 in our example uses the "to" keyword in both rel1 and rel2. The top
left corner of "button2" is positioned at the right top corner of "butt
-on1",
-because rel1 is relative to "button1" and the relative keyword specifies that the top
left corner of this part is relative to 1.0 0.0 of it. An offset is
+<para>Button2 in our example uses the "to" keyword in both rel1 and rel2. The top
left corner of "button2" is positioned at the right top corner of "button1",
+because rel1 is relative to "button1" and the relative keyword specifies that the top
left corner of this part is relative to 1.0 0.0 of "button1". An offset is
also used, which moves the "button2" container to the right by 10 pixels
horizontally, which is going to act as the button spacing. The bottom right
corner (rel2) is again positioned relative to "button1" but this time relative to
"button1"s bottom right corner. An offset of 30 pixels is used which
-provides 10 pixels for our button spacing, and then another 20 pixels for the
containers width. In the end this gives us two buttons space 10 pixels apar
-t
-that are 20 by 10 pixels in size. If we wanted to add another button we'd make it
relative to "button2" so that each button is relative to the next which
- is
-positioned ultimately by the first button.
+provides 10 pixels for our button spacing, and then another 20 pixels for the
containers width. In the end this gives us two buttons spaced 10 pixels apart
+that are 20 by 10 pixels in size. If we wanted to add another button we'd make it
relative to "button2" so that each button is relative to the next all of
+which are positioned ultimately by the first button.
</para>
-<para>Suppose we wanted to create a button bar, but rather than using static buttons
like in the last example we simply wanted them to fill the width of t
-he
+<para>Suppose we wanted to create a button bar, but rather than using static buttons
like in the last example we simply wanted them to fill the width of the
interface completely reguardless of how large or small it was resized. In this case
we could use something like the following example.
</para>
@@ -238,11 +234,11 @@
<para>In this example we are creating two buttons and positioning them relative to
the interface. The first button defines its container
from the top left corner of the interface (rel1) over to the middle of the interface,
and 30 pixels south of the middle top (rel2).
The second buttons container starts half way across the top of the interface (rel1)
and extends the rest of the way across the interface and
-south by 30 pixels (rel2). So we have two buttons that fill the entire width of the
interface and is 30 pixels in height. No matter how
+south by 30 pixels (rel2). So we have two buttons that fill the entire width of the
interface and are 30 pixels in height. No matter how
thin or wide we resize the interface the button bar will look exactly as it
should.</para>
<para>If we wanted to modify the example to place the button bar on the bottom of the
interface we would change the veritcal parameter of the
relative keywords from 0.0 to 1.0 placing everything relative to the bottom of the
interface, leaving the horizontal parameters alone and then
-changing our offsets from a posative 30 pixels to a negative 30 pixels in order to
push back upward rather than down.</para>
+changing our offsets from a posative 30 pixels to a negative 30 pixels in order to
push them upward rather than down.</para>
</chapter>
===================================================================
RCS file: /cvsroot/enlightenment/e17/docs/edjebook/xml/preview.xml,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -3 -r1.1 -r1.2
--- preview.xml 20 Feb 2004 08:22:10 -0000 1.1
+++ preview.xml 1 Apr 2004 09:58:59 -0000 1.2
@@ -2,9 +2,9 @@
<title>The Edje Preview Program</title>
<para>
-The <command>edje</command> program serves provides an easy to use tool for
previewing, testing and debugging EDCs.
+The <command>edje</command> program provides an easy to use tool for previewing,
testing and debugging EDCs.
The tool accepts two arguments, the first is the name of the EET to use, the second
is an optional argument specifying
-the Edje group to use specified within the EDC. If no group name is supplied you
will be presented with a list of
+the Edje group to use within the EDC. If no group name is supplied you will be
presented with a list of
all the groups within the specified EET, you may click on one of the groups to
preview it.
</para>
===================================================================
RCS file: /cvsroot/enlightenment/e17/docs/edjebook/xml/programs.xml,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -3 -r1.1 -r1.2
--- programs.xml 20 Feb 2004 08:22:10 -0000 1.1
+++ programs.xml 1 Apr 2004 09:59:00 -0000 1.2
@@ -4,8 +4,8 @@
<para>Programs define how your interface reacts to events. These events can come
from Edje, user interaction, or
an external force like your window manager. All these events come to Edje as
signals. Signals from user interaction
would include mouse clicks, key presses and mouse movement. Signals from an external
source would include window
-moves, window resizes, window raises and lowers. And signals from Edje internally
would include programs starting or
-stopping, and the loading an EET. Each signal must come from some place, whether it
is a part or another program or
+moves, window resizes, or window raises and lowers. Signals from Edje internally
would include programs starting or
+stopping, or the loading of an EET. Each signal must come from some place, whether
it is a part or another program or
in the case of a window manager move anywhere. The place from which a signal come is
known as the source. If
a user left clicks on an image part named "button", a "mouse,clicked,1" signal is
generated from the source part "button".
</para>
-------------------------------------------------------
This SF.Net email is sponsored by: IBM Linux Tutorials
Free Linux tutorial presented by Daniel Robbins, President and CEO of
GenToo technologies. Learn everything from fundamentals to system
administration.http://ads.osdn.com/?ad_id=1470&alloc_id=3638&op=click
_______________________________________________
enlightenment-cvs mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs