Commit Graph

64 Commits

Author SHA1 Message Date
Cedric BAIL 40bfd3933f edje: improve speed of color class lookup by using an Eina_Hash.
SVN revision: 75034
2012-08-09 08:27:04 +00:00
Cedric BAIL 0fe4412879 edje: rename VIRTUAL into SPACER and also fix Edje_Edit and inspector.
SVN revision: 72058
2012-06-13 03:21:31 +00:00
Cedric BAIL b0e087b6bf edje: morning speed of edje. Theme can now be a little bit lighter and faster.
NOTE: VIRTUAL part are almost like rectangle except they don't create any object
on the canvas. This part can't be visible, nor have any color, nor be used as a
clip, nor receive any event.


SVN revision: 71674
2012-06-04 02:57:15 +00:00
Cedric BAIL 35d8d1fef8 edje: add more protection during edje_emit.
SVN revision: 70894
2012-05-09 10:44:02 +00:00
Cedric BAIL b786fe1ced edje: automatically emit ['edje,change,file', 'edje'] when the file change on disk.
For the moment only edje_player use it. This means that when used with
edje_watch, you don't need any more to type any kind of command line
when you are testing value in your theme. As a side effect, this means
that their is a real use case to make edje_cc faster !



SVN revision: 70890
2012-05-09 09:16:52 +00:00
Vincent Torri 1ee506ccf7 Edje : Small fixes for edje doxygen doc
Patch by Jérôme Pinot


SVN revision: 69815
2012-03-31 07:53:47 +00:00
Cedric BAIL 70c734ebdd edje: add broadcast_signal: bool.
This make it possible to completly disable signal broadcasting as this
new behaviour broke Edje 1.0 file. It's also now possible to use the
same group in different part in the same parent group without any issue.

I am tempted to backport this patch to 1.1 branch as it would make it
play nicely with file coming from Edje 1.0.

Another issue that this patch fix is that I did increment the minor version
as we really have add a lot of addition since Edje 1.1 and Edje file build
with trunk may not play well anymore on Edje 1.1.


SVN revision: 67936
2012-02-14 14:07:39 +00:00
Cedric BAIL 6a169575e7 edje: finally found why we did so many call to stat.
NOTE: I am still wondering what is the cost difference between
forcing a request to eet_open and calling stat. If someone has some
time to benchmark, feel free to do so and report on e-devel ml.



SVN revision: 66902
2012-01-05 14:31:27 +00:00
Carsten Haitzler 5829d373c9 doxy -> .h
SVN revision: 58478
2011-04-08 07:45:46 +00:00
Cedric BAIL e25e933b32 edje: prevent file format break with trunk.
SVN revision: 58433
2011-04-07 12:34:18 +00:00
Cedric BAIL d0810de637 edje: add PROXY part.
example:

collections {
   group {
      name: "main";
      parts {
         part {
            name: "sub1";
            type: GROUP;
            source: "sub1";

            description {
               rel1.relative: 0.5 0.5;
               rel2.relative: 1.0 1.0;
            }
         }

         part {
            name: "pro2";
            type: PROXY;

            description {
               rel1.relative: 0.0 0.5;
               rel2.relative: 0.5 1.0;
               source: "sub1";
               color: 255 0 0 128;

               map {
                  on: 1;
                  smooth: 1;
                  rotation {
                     z: 30;
                  }
               }
            }
         }
      }
   }

   group {
      name: "sub1";
      parts {
         part {
            name: "rect";
            type: RECT;

            description {
               rel1.relative: 0.0 0.0;
               rel2.relative: 0.5 0.5;
               color: 255 0 0 255;

               map {
                  on: 1;
                  smooth: 1;
                  rotation {
                     z: -30;
                  }
               }
            }
         }

         part {
            name: "pro1";
            type: PROXY;

            description {
               rel1.relative: 0.5 0.0;
               rel2.relative: 1.0 0.7;
               color: 128 128 0 128;
               source: rect;
            }
         }
      }
   }
}




SVN revision: 57694
2011-03-11 17:46:29 +00:00
Tom Hacohen 5e33a75553 Edje: Added mirrored mode. Mirrored mode is used for UI-mirroring. It lets you mirror edje objects automatically (it also sends signals to the .edc code so you can do tweaks if you want), no need to create a special theme just for rtl layouts.
This is controlled by the two added API functions.
The changes in Elementary that utilize these functions will be committed soon.

SVN revision: 56635
2011-02-01 13:26:49 +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
Lucas De Marchi fa4e9c4f18 Formatting
SVN revision: 52133
2010-09-10 11:25:05 +00:00
Lucas De Marchi fe7cfb1e16 Refactor jumps
Instead of relying on the value of edf (and having to set it on all
places to NULL) jump to 'open' label on the only possible case of the
control flow.



SVN revision: 52132
2010-09-10 11:24:49 +00:00
Cedric BAIL 6e63db7303 * edje: cleanup collection early if the file is dangling.
SVN revision: 51991
2010-09-08 13:45:21 +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
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 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
Gustavo Lima Chaves 7a4e626074 [PATCH 1/3] checking if the pointer is null in edje_cache.c
SVN revision: 51255
2010-08-17 16:37:01 +00:00
Carsten Haitzler 8a86d6b5c8 that was never meant to be there!
SVN revision: 51231
2010-08-16 21:22:42 +00:00
Cedric BAIL c1436aac91 * edje: fix memory leak.
SVN revision: 51046
2010-08-12 15:05:56 +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
Lucas De Marchi 0a4617ae38 FORMATTING
* Remove vim modelines:
 find . -name '*.[chx]' -exec sed -i '/\/\*$/ {N;N;/ \* vim:ts/d}' \{\} \;
 find . -name '*.[chx]' -exec sed -i '/\/[\*\/] *vim:/d' \{\} \;

* Remove leading blank lines:
 find . -name '*.[cxh]' -exec sed -i '/./,$!d'

If you use vim, use this in your .vimrc:
set ts=8 sw=3 sts=8 expandtab cino=>5n-3f0^-2{2(0W1st0



SVN revision: 50816
2010-08-04 16:57:32 +00:00
Tiago Rezende Campos Falcao 87034f74ac Call only once the eina_list_last(_edje_file_cache)
SVN revision: 50768
2010-08-03 14:27:47 +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 83bb52f7c9 * edje: attempt to reduce code size by using more macro.
SVN revision: 50281
2010-07-16 13:58:35 +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
Carsten Haitzler 2049cf563c leake! fix!
SVN revision: 49445
2010-06-04 06:45:46 +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
Tiago Rezende Campos Falcao f824eac7ff _edje_file_hash can't be NULL in open_new
SVN revision: 47763
2010-04-05 14:05:21 +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
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 018a9dad66 * edje: Use Eina_Log.
Patch from Mathieu Taillefumier.


SVN revision: 44655
2009-12-22 13:46:00 +00:00
Vincent Torri e4bea597c7 Fix documentation
* update Doxyfile file
 * fix end of groups
 * fix some warnings
 * fix link in head.html for Edje API ref


SVN revision: 42794
2009-09-29 06:13:33 +00:00
Iván Briano 4e33c6fd65 Improve documentation for Evas, Ecore, Edje and Elementary.
Work by:
 - Thiago R. Masaki (mostly)
 - Fabiano Fidencio
 - Gustavo Lima


SVN revision: 42552
2009-09-17 22:38:35 +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 b405fecf1e * edje: Remove last set of Evas_Hash, and move to Eina_Bool.
SVN revision: 41068
2009-06-17 11:10:32 +00:00
Carsten Haitzler 95ea5ee0e1 fix corner case with edje - where u check for existens of parts in a edje but
never use a single object from it.



SVN revision: 40410
2009-04-27 02:41:33 +00:00
Cedric BAIL 136be96d28 Use small hash table insteed of bigger one. And move collection hash initialization a bit later.
SVN revision: 38186
2008-12-17 16:10:07 +00:00
Cedric BAIL e33474c92f Move to eina_hash. Nothing should break, but if you experience any unexpected behaviour
please ping me on #edevelop.



SVN revision: 38183
2008-12-17 14:26:47 +00:00
Gustavo Sverzut Barbieri 2f8f874b20 Shut up a bunch of warnings and fix some real errors.
SVN revision: 37954
2008-12-06 03:08:17 +00:00
Vincent Torri 0d8b00fdeb * move standard header files to source files
* remove gendoc


SVN revision: 37158
2008-10-26 17:18:19 +00:00
Cedric BAIL fa66dbf40a Remove Evas list from Edje and use Eina instead.
SVN revision: 36961
2008-10-22 11:34:42 +00:00
Cedric BAIL b489e1936b Switch evas_stringshare to eina_stringshare.
SVN revision: 36672
2008-10-15 14:11:11 +00:00
Davide Andreoli bae73a2b60 * Add top level data editing functions
* Also change edje_cache.c to don\'t free the data list when creating the data_cache 

SVN revision: 35987
2008-09-14 22:30:15 +00:00
doursse c5623c01b3 reorganize header files inclusion. Fix some problems when compiling on Windows
SVN revision: 34768
2008-06-07 10:06:14 +00:00
Carsten Haitzler e076a78519 cedric's eet and edje patches to use eet dictionaries for strings.
SVN revision: 33873
2008-03-01 06:38:09 +00:00