Commit Graph

349 Commits

Author SHA1 Message Date
Gustavo Sverzut Barbieri abc87fd449 Adding a transition layout animation for edje box.
Perform an animation when changing the layout from an edje box.

By: Otavio Pontes <otavio@profusion.mobi>

-------

Sample EDC:

{{{

collections {
   group {
      name: "main";
      min: 500 500;
      max: 500 500;
      parts {
         part {
            name: "bg";
            type: RECT;
            description {
               color: 255 255 255 255;
               rel1 { relative: 0.0 0.0; }
               rel2 { relative: 1.0 1.0; }
            }
         }
         part {
            name: "box1";
            type: BOX;
            description {
               state: "default" 0.0;
               box {
                  layout: vertical;
                  padding: 0 0;
               }
               rel1 {
                  relative: 0.0 0.0;
               }
               rel2 {
                  relative: 1.0 1.0;
               }
            }
            description {
               state: "default" 0.1;
               inherit: "default" 0.0;
               box {
                  padding: 10 10;
                  layout: horizontal;
               }
            }
            description {
               state: "default" 0.2;
               inherit: "default" 0.0;
               box {
                  layout: vertical;
               }
               rel1 {
                  relative: 0.0 0.0;
                  offset: 100 100;
               }
               rel2 {
                  relative: 1.0 1.0;
               }
            }
            box {
               items {
                  item {
                     name: "rect1";
                     type: GROUP;
                     source: "grp_rect1";
                     weight: 1.0 1.0;
                     align: -1 -1;
                  }
                  item {
                     name: "rect2";
                     type: GROUP;
                     source: "grp_rect2";
                     weight: 1.0 1.0;
                     align: -1 -1;
                  }
               }
            }
         }
      }
      programs {
         program {
            name: "change_layout";
            signal: "mouse,clicked,1";
            source: "box1";
            action: STATE_SET "default" 0.1;
            target: "box1";
            transition: LINEAR 5.0;
            after: "change_back";
         }
         program {
            name: "change_back";
            action: STATE_SET "default" 0.2;
            target: "box1";
            transition: LINEAR 5.0;
         }
     }
   }
   group {
      name: "grp_rect1";
      parts {
         part {
            name: "r1";
            type: RECT;
            description {
               state: "default" 0.0;
               color: 255 0 0 255;
               rel1 { relative: 0.0 0.0; }
               rel2 { relative: 1.0 1.0; }
            }
            description {
               state: "default" 0.1;
               inherit: "default" 0.0;
               color: 255 0 0 255;
            }
         }
      }
   }
   group {
      name: "grp_rect2";
      parts {
         part {
            name: "r2";
            type: RECT;
            description {
               state: "default" 0.0;
               color: 0 255 0 255;
               rel1 { relative: 0.0 0.0; }
               rel2 { relative: 1.0 1.0; }
            }
            description {
               state: "default" 0.1;
               color: 0 0 255 255;
            }
         }
      }
   }
}

}}}



SVN revision: 52871
2010-09-29 00:28:54 +00:00
Vincent Torri 1e1bb3b6a4 Put everything in edje_private. It should fix a compilation
bug on Windows

SVN revision: 52736
2010-09-25 17:10:33 +00:00
Iván Briano 14187a92d3 Don't include Edje_Edit.h in edje_private.h and make it obvious at compile time that this API is not meant to be used outside of editors.
SVN revision: 52593
2010-09-22 14:52:23 +00:00
Cedric BAIL 8102552b7a * edje: cleanup aspect code and reduce memory presure.
SVN revision: 52304
2010-09-15 14:15:23 +00:00
Carsten Haitzler c1c7e901f5 CEEEEEEEEEDRICCCCCCCCCCCCCCCC!
borked e conf panel. unbork. disable aspect.



SVN revision: 52273
2010-09-14 22:32:34 +00:00
Cedric BAIL d1203fc0ca * edje: fix edje use of aspect when constrained by min or max.
NOTE: If you have swallow or parts that where constrained by min and
	max, and you used aspect on them, expect change on your layout.


SVN revision: 52244
2010-09-14 15:36:16 +00:00
Lucas De Marchi 3bec660090 Fix common misspellings
Following misspellings were fixed:

ammount->amount
arbitary->arbitrary
begining->beginning
carefull->careful
choosen->chosen
commited->committed
endig->ending
existance->existence
existant->existent
isnt->isn't
occured->occurred
postion->position
rougly->roughly
runing->running
shouldnt->shouldn't
soem->some
succesfully->successfully
succesful->successful
sucessful->successful
tranformed->transformed
usefull->useful
wehn->when
wich->which



SVN revision: 51988
2010-09-08 11:50:05 +00:00
Brett Nash 4bf9ee3df3 Merge branch 'elmdnd'
Conflicts:
	trunk/TMP/st/elementary/.gitignore

SVN revision: 51935
2010-09-07 06:56:16 +00:00
Carsten Haitzler fa19a2685b evil after alloca
SVN revision: 51639
2010-08-25 10:38:15 +00:00
Carsten Haitzler 195960ebac compile in windows again - i think. eapi hackery.
SVN revision: 51638
2010-08-25 10:37:08 +00:00
Cedric BAIL 800b1af09e * edje: add file minor version field.
It will show a warning when loading file that may use feature from
	newer edje (show up with EINA_LOG_LEVEL=2 in the env).

	Please don't forget to increase it when you add feature to edje
	file format without breaking backward compatibility.


SVN revision: 51636
2010-08-25 09:56:20 +00:00
Carsten Haitzler f54f39eb39 alloca header fix for edje.
SVN revision: 51634
2010-08-25 09:25:36 +00:00
Carsten Haitzler 5e36f9979b nuke old obsolete lua stuff - except edje_lua.c. let it dangle with
the actual lua code in it entirely not being compiled just as reference until
it's killed off.



SVN revision: 51622
2010-08-25 01:09:44 +00:00
Lucas De Marchi 5a8a8c9014 Convert (hopefully) all comparisons to NULL
Apply badzero.cocci, badnull.coci and badnull2.cocci

This should convert all cases where there's a comparison to NULL to simpler
forms. This patch applies the following transformations:

code before patch               ||code after patch
===============================================================

return a == NULL;                 return !a;

return a != NULL;                 return !!a;

func(a == NULL);                  func(!a);

func(a != NULL);                  func(!!a);

b = a == NULL;                    b = !a;

b = a != NULL;                    b = !!a;

b = a == NULL ? c : d;            b = !a ? c : d;

b = a != NULL ? c : d;            b = a ? c : d;


other cases:

a == NULL                         !a
a != NULL                         a




SVN revision: 51487
2010-08-21 13:52:25 +00:00
Mike Blumenkrantz bba476aa91 char* -> const char*
Patch by Fabiano "I'm smoking crack" Fidêncio


SVN revision: 51152
2010-08-16 03:50:27 +00:00
Carsten Haitzler c657fd3904 and add to header too.
SVN revision: 51146
2010-08-16 02:04:46 +00:00
Cedric BAIL 1d1a36047b * edje: remove edje_convert use in edje_cc.
SVN revision: 51134
2010-08-15 18:14:33 +00:00
Iván Briano 9c3dabedc9 constifying (Edje_String)->str
SVN revision: 51097
2010-08-13 20:39:43 +00:00
Cedric BAIL 74fe3f6247 * edje: only link edje_convert with eina and eet.
SVN revision: 51051
2010-08-12 16:32:12 +00:00
Cedric BAIL 2623367732 * edje: fix some memleak issue.
SVN revision: 51033
2010-08-12 12:58:54 +00:00
Cedric BAIL d4bf64d1c2 * edje: move code around.
SVN revision: 51016
2010-08-11 18:29:41 +00:00
Iván Briano b8b8381576 No need for path in font_directory, and use the right key to store/find them
SVN revision: 50999
2010-08-11 14:24:03 +00:00
Cedric BAIL 33af18dfd1 * edje: fix eapi declaration.
SVN revision: 50946
2010-08-09 22:21:36 +00:00
Cedric BAIL 7d69e96bfe * edje: use mempool for Edje_Part and Edje_Part_Description_*.
SVN revision: 50944
2010-08-09 21:08:08 +00:00
Cedric BAIL 9ecc1354c6 * edje: new file format.
WARNING ! WARNING ! WARNING ! WARNING !
	Old file format is not readable by edje directly. If you have old edje
	file that you want to convert, use edje_convert. Their is no way back.

	Recompile your file as soon as possible. Please report any issue you
	spot as this is a huge and needed change.



SVN revision: 50936
2010-08-09 17:34:03 +00:00
Cedric BAIL 0df8a2e7a8 * edje: move code around.
SVN revision: 50858
2010-08-06 11:07:47 +00:00
Cedric BAIL c94ae93096 * edje: split programs type in different stack for later speed improvements.
SVN revision: 50810
2010-08-04 14:25:40 +00:00
Cedric BAIL 74f7480e41 * edje: fix some issue during destruction of edje_part_description,
and move tweens to an array.


SVN revision: 50765
2010-08-03 12:58:31 +00:00
Jonathan Atton 6e1ada9850 Edje: now we can refer to the content of a external type
SVN revision: 50730
2010-08-01 17:27:31 +00:00
Cedric BAIL e773bc9246 * edje: change memory layout that will become the new file format.
NOTE: I tried this change with all the apps and theme I had, but maybe
	i missed some bug. Please report any strange behaviour.


SVN revision: 50641
2010-07-29 12:02:36 +00:00
Cedric BAIL 05a03bd60c * edje: fix constness warning.
SVN revision: 50368
2010-07-19 16:41:19 +00:00
Cedric BAIL 793c66b5dc * edje: last move of properties in the right structure.
SVN revision: 50284
2010-07-16 16:00:26 +00:00
Cedric BAIL 93ea3f4e52 * edje: move all structures outside of Edje_Part_Description.
SVN revision: 50283
2010-07-16 14:24:57 +00:00
Cedric BAIL 04ffefa9e5 * edje: move image specific properties to their own structure.
SVN revision: 50282
2010-07-16 14:13:38 +00:00
Cedric BAIL 83bb52f7c9 * edje: attempt to reduce code size by using more macro.
SVN revision: 50281
2010-07-16 13:58:35 +00:00
Cedric BAIL 30d35eb1ba * edje: start to split structure content.
SVN revision: 50279
2010-07-16 11:37:58 +00:00
Cedric BAIL 9685d5d369 * edje: count each type of description.
SVN revision: 50267
2010-07-15 13:38:07 +00:00
Cedric BAIL b49c2411bd * edje: when gradient meet dodo. Yes, they are gone !
SVN revision: 50223
2010-07-13 15:47:19 +00:00
Carsten Haitzler 519ca3be8b lua2 getting gooooooooooooooood. message method still needs work.
SVN revision: 50139
2010-07-09 05:12:35 +00:00
Carsten Haitzler ba9137e404 more time calls.
SVN revision: 50091
2010-07-07 02:40:46 +00:00
Cedric BAIL 9560d51241 * edje: Add alias for part too. This should help designer to
provide the right part name and still use GROUP and BOX.


SVN revision: 50001
2010-07-02 16:56:42 +00:00
Cedric BAIL 4e30cb2411 * edje: move structure from Eina_List to array now that Eet support
them.


SVN revision: 49936
2010-06-29 13:48:03 +00:00
Cedric BAIL 5da985c981 * edje: add an cache for group exist test.
SVN revision: 49928
2010-06-28 17:18:47 +00:00
Cedric BAIL e17a4089df * edje: This is the first commit of a rewrite of edje file
internal representation.

	The objectiv is to simplify code, consume less CPU and memory
	without loosing feature. Please report any breakage when you
	see them. It will take a few weeks before we change the file
	layout, during that time the load time may increase.


SVN revision: 49922
2010-06-28 13:56:30 +00:00
Cedric BAIL 73ac5cdc95 * edje: remove warning due to API change in Ecore.
SVN revision: 49830
2010-06-24 16:16:50 +00:00
Cedric BAIL 1ebbbd7d37 * edje: improve the way to target children of box and table.
You can now adress them with somethin like part[name]:subpart
	or part[index]:subpart in all signal emit code and API that
	require a part to be specified.

	TODO: we need to add this index/name information when a signal
	is emitted from a subpart.


SVN revision: 49614
2010-06-10 15:40:51 +00:00
Carsten Haitzler 2049cf563c leake! fix!
SVN revision: 49445
2010-06-04 06:45:46 +00:00
Cedric BAIL 83e505b5c6 * edje: Add image set support.
Ease support of Freedesktop multiple size image.

	Sample:
	-------

	images {
		..
	       	set {
			name: "image_name_used";
  			image {
				image: "500x500.png" LOSSY 90;
     				size: 201 201 500 500;
  			}
  			image {
				image: "200x200.png" COMP;
     				size: 51 51 200 200;
  			}
  			image {
				image: "50x50.png" COMP;
     				size: 11 11 50 50;
  			}
  			image {
				image: "10x10.png" COMP;
     				size: 0 0 10 10;
  			}
		}
		..
	}



SVN revision: 49369
2010-06-01 13:31:07 +00:00
Carsten Haitzler cc621a2685 not fully done string insert approval cb for entry
SVN revision: 49276
2010-05-29 06:40:56 +00:00
Carsten Haitzler 685fadf869 item provider callback... add!
SVN revision: 48329
2010-04-26 14:55:45 +00:00
Iván Briano 3c61844af1 Make the Edje Smart inheritable.
Pretty much moving some things around and extending the smart class
to allow overloading some common functions. Edje_Edit will make use
of this.


SVN revision: 47841
2010-04-08 19:21:54 +00:00
Carsten Haitzler 12012ef38a ok tested - it. new lua disabled for now (not ready). old lua still there.
SVN revision: 47783
2010-04-06 11:32:09 +00:00
Carsten Haitzler 8babebf48e an ongoing lua cleanup. existing lua is there and works for the most part.
but it could be much much much cleaner/better so i started a minimalist redo.
it's temporarily enabled right now. will disable soon to do in the background.



SVN revision: 47782
2010-04-06 11:26:32 +00:00
Carsten Haitzler 77a55c3fd8 aaah well... 1. fix segv with edje_match stuff is deep child cleans up
pattersn - ref them.
2. edje lua... beating it into shape. slowly bit by bit.



SVN revision: 47685
2010-04-02 11:05:53 +00:00
Carsten Haitzler 6b60d6d1ee avoid errors - calling more lua calls afre the pcall failed... bad!
SVN revision: 47619
2010-03-31 10:02:51 +00:00
Gustavo Sverzut Barbieri 71d603c360 new program action PARAM_COPY, awesome crazy stuff! :-)
Edje got a new program action called PARAM_COPY in the form:

   action: PARAM_COPY "src_part" "src_param" "dst_part" "dst_param";

This will copy the parameter "src_param" from part "src_part" to
parameter "dst_param" of part "dst_part".

So far so good, why the "crazy" in the first line? Because this also:
  * do type conversion!
  * set properties of native parts, not just EXTERNAL!

The type conversion allows one to get an integer and display that in a
text property, or get an string and convert into a float.

The set of native parts is quite simple, basically a map of Edje.h
edje_object_part_*_set(). With that one can set the string to be used
by a TEXT, or set drag page/step/size/value! (page/step increments are
not supported at the moment, if it is worth, they may be supported in
future).

Sample EDC:

{{{

  // test.edc, compile with edje_cc and run with edje_player

   externals {
      external: "elm";
   }
   collections {
      group { name: "main";
         parts {
            part { name: "bg"; type: RECT;
               description { state: "default" 0.0;
                  color: 255 255 255 255;
               }
            }
            part { name: "entry"; type: EXTERNAL;
               source: "elm/scrolled_entry";
               description { state: "default" 0.0;
                  rel2.relative: 1.0 0.5;
               }
            }
            part { name: "display"; type: TEXT;
               description { state: "default" 0.0;
                  color: 0 128 0 255;
                  rel1.relative: 0.0 0.5;
                  text { font: "Sans"; size: 16; }
               }
            }
            programs {
               program {
                  signal: "changed";
                  source: "entry";
                  action: PARAM_COPY "entry" "text" "display" "text";
               }
            }
         }
      }
   }

}}}



SVN revision: 47500
2010-03-27 01:26:10 +00:00
Gustavo Sverzut Barbieri cfecbc912b Edje EXTERNAL API break, for good.
I'm now introducing a couple of goodies to make externals more useful,
they are:

 * add: extra parameter with the part name. This may be used by
   external objects to emit signals in the name of that part.

 * param_set/param_get: set parameters at runtime, given their names
   and types. This avoids requiring users to get the actual object and
   call methods. This abstraction is also good because it let one uses
   Elementary without even linking to it ;-) (this have limits, like
   complex types are not supported).  Right now this is just exposed
   to C, but goal is to have it exposed in Embryo and Lua as well.

 * translate: new method to translate previously strings that are
   specified statically, such as the parameters names.


Four new functions got added to the Edje API:

 * edje_object_part_external_object_get() so we don't have to abuse
   edje_object_part_swallow_get()

 * edje_object_part_external_param_set() and
   edje_object_part_external_param_get() that call the external type's
   functions.

 * edje_external_param_type_str() to convert types to string and
   provide nicer debugs :-)


TODO:
  * expose external_param_set()/external_param_get() to Embryo and Lua.




SVN revision: 47456
2010-03-25 18:05:42 +00:00
Carsten Haitzler cbde94b4e3 calls for entry users to use.
SVN revision: 47126
2010-03-11 06:34:20 +00:00
Gustavo Sverzut Barbieri fcb71a4b3b Edje now uses Eina_Bool where it should.
SVN revision: 46646
2010-02-28 15:57:17 +00:00
Gustavo Sverzut Barbieri 19a99eecab Edje needs to detect files changed on disk before considering cache.
If file changed on disc (mtime), then make the reference dangling so
it is not reused anymore on subsequent open. If it is in cache, just
free it as it is not useful anymore.

This solves the following problem:


     edje_object_file_set(ed, path, group);
     ecore_file_cp(new_gen_file, path);
     edje_object_file_set(ed, path, group); /* still uses the old one! */


By: Bruno Dilly <bdilly@profusion.mobi>




SVN revision: 46548
2010-02-27 03:47:04 +00:00
Cedric BAIL fc20b4541e * edje: Use fixed point for tween too.
SVN revision: 46429
2010-02-24 15:37:16 +00:00
Cedric BAIL 3eaea2b9fa * edje: Fix naming for amalgamation and make static functions
that should.


SVN revision: 46394
2010-02-23 15:55:04 +00:00
Cedric BAIL 51de26862a * edje: Add more focus event in edje. A start for a focus layout work.
SVN revision: 46389
2010-02-23 13:39:19 +00:00
Carsten Haitzler 79b6821f90 fix moving edje obj aroudn with maps in it.
SVN revision: 46385
2010-02-23 08:37:30 +00:00
Carsten Haitzler a952803f13 aaaah missing map smooth and alpha flags.
SVN revision: 46383
2010-02-23 05:45:24 +00:00
Carsten Haitzler 3243fb1170 add embryo to manipulate map stuff.
SVN revision: 46343
2010-02-21 10:55:45 +00:00
Carsten Haitzler e89c590b0d add border_scale option for images - image border will scale based on edje
scale factors. this is independant of scale: per part.



SVN revision: 46341
2010-02-21 06:53:44 +00:00
Cedric BAIL e4ee012951 * edje: Change filter_state to filter and give the possibility to
filter from another part than the event source.



SVN revision: 46316
2010-02-19 18:30:46 +00:00
Carsten Haitzler e2bc27fb44 interp properly and make perspective api work.. untested yet...
SVN revision: 46302
2010-02-19 06:28:03 +00:00
Gustavo Sverzut Barbieri 1ad4337878 proper shutdown of entries.
* must disconnect connected callbacks, particularly those to
   canvas. The object we previously connect will die anyway, but
   canvas continues alive, dispatching its
   EVAS_CALLBACK_CANVAS_FOCUS_IN and EVAS_CALLBACK_CANVAS_FOCUS_OUT,
   causing nasty segmentation faults!

 * must call _edje_clean_objects() *AFTER* the entry is shut
   down. Otherwise ed->evas will be NULL and
   evas_event_callback_del_full() will fail. I left extra checks on
   those, since this call will return the given data (in our case
   "ed") and NULL when callback connection was not found.

 * flag existence of entries and if they were already initalized and
   shutdown before, avoid redoing such work.

This fixes a stupid crash that bugged editje for a while now.



SVN revision: 46263
2010-02-17 23:43:31 +00:00
Carsten Haitzler 3c71b10522 add back face cull option.
SVN revision: 46217
2010-02-16 16:36:16 +00:00
Carsten Haitzler bf293931a1 map support in edje - first cut, missing features like back-face culling.
also no dependency tracking etc. etc.



SVN revision: 46216
2010-02-16 16:20:15 +00:00
Carsten Haitzler 04ca0cb31e fix freeze/thaw to use less ... cpu.
SVN revision: 46181
2010-02-15 06:40:58 +00:00
Gustavo Sverzut Barbieri 97ebfc5f2b proper error logging for _edje_lua_error()
ERR() should not be used there, because _edje_lua_error() is already
an error logging function. Instead we should call eina_log_print()
directly, handling the source of the error.



SVN revision: 46058
2010-02-10 20:23:27 +00:00
Cedric BAIL 397b718cf1 * edje: Add filter_state to program.
Patch from "Tristan <blunderer@gmail.com>".


SVN revision: 46048
2010-02-10 15:07:17 +00:00
Tiago Rezende Campos Falcao 2ab186175e Save font filename in eet. By Masaki
Author:    Thiago Ribeiro Masaki <masaki at profusion.mobi>

SVN revision: 45869
2010-02-04 14:34:06 +00:00
Sebastian Dransfeld 79b1c3728a Ecore_Str.h -> Eina
SVN revision: 45748
2010-01-30 22:29:31 +00:00
Cedric BAIL 44193541f7 * ecore: Move ecore_job inside ecore.
Patch from Albin "Lutin" Tonnerre <albin.tonnerre@gmail.com>.


SVN revision: 45570
2010-01-25 21:59:21 +00:00
Gustavo Lima Chaves 2cca9e9b62 Fixing program addition on edje_edit: data was missing for the globs.
On regressions, please contact me.



SVN revision: 45340
2010-01-19 20:14:14 +00:00
Iván Briano 953835bad8 Add 'api' keyword to parts and programs.
Not used yet, stay tuned.

Patch by Thiago Masaki


SVN revision: 44912
2010-01-05 19:26:18 +00:00
Cedric BAIL 6ce037b8a3 * edje: Fix embryo with fixed point and table align.
SVN revision: 44794
2009-12-30 15:51:41 +00:00
Cedric BAIL 018a9dad66 * edje: Use Eina_Log.
Patch from Mathieu Taillefumier.


SVN revision: 44655
2009-12-22 13:46:00 +00:00
Cedric BAIL b32c9a3eae * edje: Add Fixed Point Math support to Edje.
You can try it by passing --enable-fixed-point to the configure. It
	will produce an ABI/API compatible Edje library that use internally
	Eina_F32p32 instead of double. It will load Eina_F32p32 instead of
	double from eet file (thanks to eet ability to convert them on the
	fly), so edje file are compatible between fixed point and floating
	point version.

	This patch touch almost all internal calc of Edje, I did test it with
	elementary_test, enlightenment and all my test apps, but it could
	certainly break some of your preferred Edje file. If you see any
	unexpected behaviour please report them to me as soon as possible.

	Note: For devs, I put few macros in edje_private.h that should now
	be used when doing calc in Edje, please use them so that Fixed Point
	doesn't break in the futur.


SVN revision: 44323
2009-12-09 15:44:54 +00:00
Carsten Haitzler 4d42a6d2db warnings--
SVN revision: 44306
2009-12-09 05:46:02 +00:00
Cedric BAIL c76b578b37 * edje: Add edje_object_preload, it will force the preload of all
image embeded inside an edje and send a signal ("preload,done", "")
	at the end.


SVN revision: 44186
2009-12-04 16:20:40 +00:00
Carsten Haitzler 6f1873f87d add lots of cursor con trol api's
SVN revision: 44087
2009-12-01 11:02:46 +00:00
Gustavo Sverzut Barbieri d40d8d123d edje external support, part 1.
Patch by Fabiano Fidêncio <fidencio@profusion.mobi>



SVN revision: 43927
2009-11-23 15:03:19 +00:00
Carsten Haitzler 3b07a3d255 fix segv on obj del - didnt remove callbacks!
SVN revision: 43596
2009-11-09 23:47:42 +00:00
Iván Briano 2ba79e04af Some more stuff in externals, little api change there, may change some more later.
SVN revision: 43379
2009-10-31 18:07:08 +00:00
Iván Briano 22952844c4 and bring external back now that the file was added
SVN revision: 43306
2009-10-27 01:08:19 +00:00
Carsten Haitzler d3fd0c30cb REVERT! broke edje.
try again and dont forget to add edje_external.c! (and any others needing
adding)



SVN revision: 43304
2009-10-27 00:27:50 +00:00
Iván Briano 68756f92b2 External objects support by Brian 'rephorm' Mattern
Since we are on a freeze, the patch goes on updated to current svn, but without changing its API. After the freeze some things will be added, and some will change :)


SVN revision: 43302
2009-10-26 21:33:56 +00:00
Vincent Torri 1c7fa1c81b rename _edje_edd_setup() and _edje_edd_free() to respectively
_edje_edd_init() and _edje_edd_shutdown() to follow standard
naming convention


SVN revision: 42978
2009-10-09 05:17:19 +00:00
Carsten Haitzler facd02ffdc and delete size change hints cb if unswallowed
SVN revision: 42951
2009-10-08 03:49:51 +00:00
Iván Briano ed7064edcc Move some defines to enum and expose them.
Move to Eina_Bool.
Return success for rename of group and part to the same name.

Patch by Tiago Rezende Campos Falcão


SVN revision: 42506
2009-09-16 03:37:28 +00:00
Cedric BAIL 06f76b1e87 * edje: Fix calc.
SVN revision: 41840
2009-08-17 14:00:44 +00:00
Cedric BAIL 6c7f8ce84c * edje: Remove warning, mainly due to lua merge.
SVN revision: 41838
2009-08-17 11:32:56 +00:00
Hanspeter Portner da75132793 From: "Hanspeter Portner" <ventosus@airpost.net>
This concerns Ticket #109: Add Lua support for Edje

It adds Lua as scripting facility to Edje, letting Embryo untouched.
It should be easier to use and be more flexible than Embryo, imho ;-)

---
The patch
---

Lua 5.1 is used in sandboxed mode. Lua byte code is not
platform/architecture independent, Lua code is saved as text in the Edje
container and parsed at load time, therefore.

The patch goes in two directions

1) Analogous to Embryo for scripting logic, messaging and custom states.
The same things are implemented as in Embryo:

    - messaging from and to C
        - manual creation of timers, animators, pollers for custom events /
            animations
                - manual manipulation of Edje parts by means of the public
                    edje_object_part_* and internal functions and custom states
                    
                        -> those routines are actually implemented as Lua
bindings to
    functions in Edje.h and Ecore.h
        -> the implementation is done in an object oriented way, so that the
            interface gives the feel of an object description language, pretty
                similar to EDC itself
                    -> combining custom states and custom animators allows
for fancy
    animations and transitions, e.g circular/spline translations or
        complex/conditional transitions, etc.
            -> this is just the same as Embryo does, but implemented in Lua, so
                nothing new here, actually
                
                2) Dynamic object creation and manipulation
                
                    - this interface stems from the 'script_only' objects in
Edje. Those
    objects are a kind of scriptable Edje counterparts to Evas_Smart
        objects. The infrastructure for Embryo is already there, but has
            never been used
                - I added this in Lua and added some first bindings to
experiment
    with
        - I thought it would be useful to allow for a limited dynamic
            creation of ui parts
                - We can create instances of groups from within the same Edje
                    container and use them just like the main Edje object as
stated in
    1)
        - And there are some stand-alone bindings to dynamically create
            Evas_Image, Evas_Table, Evas_Line, Evas_Polygon as examples
            
                -> this may be useful to decouple the program from the ui
even more,
    to be able to do things that have to be done in the program itself
        atm, but actually belong to the user interface, but need dynamic
            creation of objects or complex interactions
                -> those objects are manipulated manually with Lua bindings
to the
    corresponding edje_object_* and evas_object_* functions
    
    ---
    Discussion points
    ---
    
    Both stuff in 1) & 2) is functioning, but needs testing, feedback,
    improvements, ...
    
    Stuff in 1) can already fully replace Embryo scripting with Lua
    scripting. There still is space for improvements/additions, though.
    
    Of the stuff in 2), I think it may only make sense to add the dynamic
    creation of groups defined in the same Edje container.  Dynamic creation
    of other Evas_Objects makes not much sense, as most of them can already
    be used as Edje parts and be manipulated with custom states (apart from
    polygons and lines) and it would make the whole theming potentially more
    programing-like and much more susceptible for errors, etc.
    
    Would this be useful, or drop it all?
    
    The scripting should be there just for logic, conditionals, custom
    states and animations, not for a whole dynamic canvas, imho.
    
    There is a patch around with EXTERNAL Edje parts. Seems to be a better,
    faster, more secure way to extend Edje with custom objects.
    
    There would be the possibility of precompiling Lua code at compile time
    (edje_cc) for faster loading, but we would have to patch and run our own
    Lua version.
    The Lua parser is pretty fast, though, and using
    byte-converted/endianness-swapped byte-code does only pay off for Lua
    chunks of some kilo lines.
    Byte code also occupies much more space than text in the final Edje
    container, as it includes debug symbols.
    
    ---
    
    Cedric and Vincent told me, that the plan was to replace Embryo totally
    by Lua before the official release of Edje at the end of the year? So it
    would make sense to bring Lua to svn soon and look how it fits in, test,
    debug, adapt it further to the themers needs, decide on its final shape,
    GATHER SOME PEOPLE TO HELP ;-)
    
    ---
    
    The Lua enhanced Edje is in sync with svn and can be get directly here
       git clone git://repo.or.cz/edje_lua.git
          cd edje_lua
             git checkout -b lua_patch origin/lua_patch
             
             or apply the attached patch
             
             There are also some examples to show the usage of the things
mentioned
above
    - showcase.edj: shows usage of custom animators, custom states,
        messaging and the script_only object
            - test.edj: test cases of script usage and bindings (custom states,
                custom transitions, tween_states, animators, timers,
object_parts),
    but most of it are experimental script_only objects
    
    http://didgmo.sourceforge.net/showcase.edj
    http://didgmo.sourceforge.net/test.edj
    
    The source of showcase.edc is attached, too, to just have a glimpse at
    Lua inside of EDC
    
    ---
    
    So, what do you guys think?
    
    Thanks and sry for the looong mail, hehe ;-)



SVN revision: 41802
2009-08-16 02:34:02 +00:00
Cedric BAIL 7df190d264 * edje_calc: Major cleanup.
- Edje_Real_Part use less memory.
		- Edje_Real_Part and Edje_Real_Part_State now use a mempool.
		- When both param1 and param2 are the same, only recalc param1.
		- Don't compute Edje_Real_Part more than one time per edje_recalc_do.



SVN revision: 41771
2009-08-14 17:19:42 +00:00
Cedric BAIL d894444135 * edje_calc: Use 20 bytes less per Edje_Calc_Params.
SVN revision: 41745
2009-08-13 16:28:17 +00:00