Commit Graph

248 Commits

Author SHA1 Message Date
Cedric BAIL fc20b4541e * edje: Use fixed point for tween too.
SVN revision: 46429
2010-02-24 15:37:16 +00:00
Carsten Haitzler beb1b3820c oooh that was bad! oops. fix!
SVN revision: 46423
2010-02-24 05:47:23 +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 1ddbe5c5b1 ahhh and if parts are images.. use the right uv coords.
SVN revision: 46384
2010-02-23 07:56:59 +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 ea37c003f3 docs++
SVN revision: 46342
2010-02-21 09:39:58 +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 d590d0dbb0 * edje: Fix a warning.
Please review as I am not sure why this code was written as the beginning.


SVN revision: 46318
2010-02-19 18:43:08 +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
Cedric BAIL 06f7da42f9 * edje: Fix fixed point use in map.
Note: ep->description_pos is a FLOAT_T.


SVN revision: 46245
2010-02-17 13:21:50 +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
Sebastian Dransfeld 3a0af1226e make clang happy
SVN revision: 45194
2010-01-15 19:57:17 +00:00
Cedric BAIL 0d6cb5f95e * edje: Fix edje drag with fixed point enabled.
SVN revision: 45060
2010-01-12 15:37:39 +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 47ffb13f27 * edje: Fix Edje_Box use with fixed point.
SVN revision: 44650
2009-12-22 12:38:38 +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
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 8b2bd0c079 * remove unused parameters (except in edje_lua.c, as i don't know the current status)
* remove unused variables


SVN revision: 41957
2009-08-24 16:40:42 +00:00
Vincent Torri b4ddae48b8 typo
SVN revision: 41942
2009-08-23 15:37:20 +00:00
Cedric BAIL 9abdbe30af * edje: Fix tween when comming from same state.
SVN revision: 41844
2009-08-17 15:16:23 +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
Cedric BAIL eff22017dc * edje_calc: Cleanup calc structure.
SVN revision: 41744
2009-08-13 16:13:49 +00:00
Gustavo Sverzut Barbieri 4a514076ad NULL sfont as it might be used earlier.
if sfont=something was given to _edje_text_class_font_get(), sfont
might be untouched there and old pointer was being freed, resulting in
double free. So make sure we're using the correct pointer there.



SVN revision: 41714
2009-08-12 17:57:34 +00:00
Cedric BAIL 3fe43bff2c * edje: Starting refactor of edje_recalc_single.
SVN revision: 41706
2009-08-12 14:13:17 +00:00
Cedric BAIL d16bbd3953 * edje: Make Edje_Real_Part_Drag a pointer. Win 100 bytes per states.
SVN revision: 41685
2009-08-11 12:47:00 +00:00
Cedric BAIL 9807d2e4c8 * edje: More cleanup of Edje_Real_Part.
SVN revision: 41683
2009-08-11 10:32:21 +00:00
Cedric BAIL 7f9a41a824 * edje: Add a cache for _edje_part_recalc_single.
WARNING: THIS CAN CAUSE RENDERING GLITCH AND OTHER WEIRD BEHAVIOUR WITH
	YOUR EDJE FILE. PLEASE REPORT ANY ALIEN STUFF.

	Note: This patch cache the result of _edje_part_recalc_single, until
	any relative part are moved, the object is resized or some property
	are changed (like during text set or color class set).

	Note: Be carefull when you call edje_object_size_min_restricted_calc,
	it's really an inderect heavy user of _edje_part_recalc_single and
	I wasn't able to bring it down.

	Note: This patch use more RAM, around 480 bytes per Edje state, so I
	don't recommand using it on a Desktop with a lot of CPU power.


SVN revision: 41663
2009-08-10 15:16:51 +00:00
Cedric BAIL ee729dd97f * edje: Oops, not the right one.
SVN revision: 41658
2009-08-10 12:38:39 +00:00
Cedric BAIL db0247c644 * edje_recalc: Reduce use of stack.
SVN revision: 41656
2009-08-10 11:52:46 +00:00
Cedric BAIL 854f360739 * edje: Reduce sizeof (Edje_Calc_Params).
Note: It doesn't really impact edje memory foot print yet. But in
	the plan to do a computation cache inside edje, this structure
	will be used a lot (I am planning to do this feature at some point,
	but no ETA yet, and be reassured it will be optionnal so we can
	choose between CPU load or memory load).

	Note: As I was looking for similar area of improvements,
	Edje_Part_Description could really use an union to reduce it's size,
	but as we load this structure directly from an Eet file, we need
	union in Eet first. And this should be part of a comming Edje file
	format break.



SVN revision: 41652
2009-08-10 09:56:19 +00:00
Vincent Torri 84be18a101 typo
SVN revision: 41299
2009-07-11 06:07:11 +00:00
Gustavo Sverzut Barbieri 5959578954 fix minor glitches with edje box.
still missing:
  * box.max
  * proper handling of min/max, need to behave like text.



SVN revision: 41297
2009-07-10 23:13:09 +00:00
Carsten Haitzler 85cef43263 mirko - thanks. spotted a crahs when magic debug is disabled
SVN revision: 40875
2009-06-03 13:17:06 +00:00
Carsten Haitzler e6de097425 allow scale_hint to be added to items in edje
SVN revision: 40537
2009-05-07 13:30:18 +00:00
Carsten Haitzler 0d02c7a79a use more rediculously big double
SVN revision: 40525
2009-05-06 12:41:23 +00:00
Gustavo Sverzut Barbieri d2a587c21f recalculate table if it is dirty.
SVN revision: 40407
2009-04-27 02:36:56 +00:00
Carsten Haitzler 75e9c7fa98 fix calc - do not reset calc_only flag! it wanst set by the calc_do!
SVN revision: 40326
2009-04-23 12:42:53 +00:00
Gustavo Sverzut Barbieri 071ad5b4aa minor optimizations to box recalculation.
just recalculate when required, and just mark as required when layout
really changes.



SVN revision: 39299
2009-02-28 20:04:55 +00:00
Viktor Kojouharov 0a544a09d3 'box.min' for the edje box
SVN revision: 39298
2009-02-28 19:38:35 +00:00
Carsten Haitzler c1af94ee4c in theory.. support middle solid/default/none changes in evas
SVN revision: 39001
2009-02-12 13:39:15 +00:00
Carsten Haitzler 6f2cb19f03 fix some min size calc and aspect calc issues.
SVN revision: 38994
2009-02-11 11:48:15 +00:00
Gustavo Sverzut Barbieri 2e809f845f Interpolate text font size.
Often requested for animations that want to grow or shrink text
quickly. This is a faster alternative to using geometry with rel1/rel2
and "text.fit: 1 1;" since it does not need to figure out which size
fits better into that object.

I tested and it does not seem to introduce any regression. Also
checked with scale and text_class variations.



SVN revision: 38958
2009-02-05 18:15:34 +00:00
Carsten Haitzler b6f51da478 allow individual objects to have differing scaling factors (object scale
overrides edje global scale)



SVN revision: 38908
2009-02-03 05:07:58 +00:00
Iván Briano 7f3dfc66f2 And finally, edje table goes in
SVN revision: 38204
2008-12-18 02:43:20 +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 300c7b814c try to avoid infinite recalc loop.
as reported, elicity triggers an infinite loop by calling
edje_object_part_geometry_get(), which in turns calls
_edje_recalc_do() which in turns calls the elicit code that requests
edje_object_part_geometry_get() and since it's still marked as
"dirty", it enters the loop...

the real fix is just the move of ed->dirty = 0; before calling
recalcs, but I also unmarked object as need_recalculate so we can even
avoid requesting object to recalculate from evas.



SVN revision: 38139
2008-12-14 16:30:29 +00:00
Iván Briano 0ee4d07727 Edje Box in. Have fun with it.
SVN revision: 37783
2008-11-24 05:15:15 +00:00
Sebastian Dransfeld b2fa64de52 Formatting
SVN revision: 37626
2008-11-14 17:35:05 +00:00
Gustavo Sverzut Barbieri f53febde32 Edje postponed calculations.
This makes use of new Evas_Smart_Class calculate() callback to
postpone calculations until render time, possible saving lots of
calculations to happen.

It is another try, with Cedric's changes to force recalculations when
requried (ie: just before doing some edje_object_*_get()), let's see
if this one solve found issues.



SVN revision: 37620
2008-11-14 11:06:15 +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 ba9c2d3942 Use common eina convertion code.
SVN revision: 36841
2008-10-20 09:11:19 +00:00
Carsten Haitzler 195093cde5 fix edje smart move to update extra objs for entry.
SVN revision: 36753
2008-10-17 14:39:47 +00:00
Carsten Haitzler af9a085880 and more entry support.
SVN revision: 36665
2008-10-15 09:58:25 +00:00
Carsten Haitzler ce0d40cae7 editable textblocks... a start (definitely not there yet)
SVN revision: 36611
2008-10-13 09:19:04 +00:00
Gustavo Sverzut Barbieri fb44db2211 Revert edje_smart_calculate_v4_r2, it breaks e17 shelf resize.
Not ready yet, reverting...



SVN revision: 36031
2008-09-17 01:50:16 +00:00
Gustavo Sverzut Barbieri d044a0245a More svn:ignore
SVN revision: 36026
2008-09-16 19:44:20 +00:00
Cedric BAIL fd5de88682 Only update Evas_Object geometry when they are visible. This should prevent
them from being put in the evas_render_update phase.

I did extensively test this patch since a few month and didn't notice any
bug with it in my apps, nor in E. But please report anything that goes wrong
for you after this version.



SVN revision: 35944
2008-09-11 11:18:33 +00:00
Cedric BAIL 35fca3f9dd Replace big serie of if, with a cleaner switch.
SVN revision: 35943
2008-09-11 11:15:39 +00:00
Carsten Haitzler aaa724d23c ok still doesnt work - FASTFREEZE shoudl work.. but dont.
SVN revision: 35925
2008-09-10 07:17:24 +00:00
Carsten Haitzler 673efdedd5 fix scaling on edje_scale - works with smnall sizes now too. problem is
really i was chasing a freeze/thaw problem. something is up.



SVN revision: 35922
2008-09-10 06:39:57 +00:00
Gustavo Sverzut Barbieri 0a75de51f0 Revert edje calculate optimizations.
Edje is tricky, it's event processing is too weird and Cedric's
changes to make it work are not working as expected. Edje freezes
itself while processing signals, but in mouse down cb it forces
recalculate, which seems was previously ignored, but now they are not.

We should look at how to fix this and then re-apply this patch.



SVN revision: 35908
2008-09-09 23:41:42 +00:00
Carsten Haitzler 23e2c9e035 support an edje scaling factor. parts can selectively say "yes.. scale me!"
:)... this allows e etc. to adapt to massivelyt different dpi screens with
slickness that even svg can't get to... why? you scale just what NEEDS
scaling (text, button sizes, and other limiting elements). other bits like
borders, padding etc. can remain pixel-perfect and thus the look is amazing.
pixel-perfect drawing with scalable adapting.



SVN revision: 35895
2008-09-09 14:13:34 +00:00
Gustavo Sverzut Barbieri 58a49c2f69 Add calculate callback to Evas_Smart_Class.
Some people is using it for some time now without problems, so I'm
adding it to SVN to get some broader use. Remember to recompile ALL
libraries that depend on Evas as it will change the
EVAS_SMART_CLASS_VERSION and old classes will fail to load.

This will also change Edje so it will postpone _edje_recalc() to
render time, calculate() callback, however some methods will force
early recalculation.



SVN revision: 35860
2008-09-07 01:25:49 +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 0e4c0eb8ec cedric small speedups patches for edje back in - minus the ones that break
things. (0004).


SVN revision: 34234
2008-04-10 08:58:19 +00:00
Carsten Haitzler ff6fb2e3bf actually. these patches broke illume! aaak! revert.!
SVN revision: 34180
2008-04-03 19:27:53 +00:00
Carsten Haitzler 48deca9592 1. cedrics patches for speedups. they breka nothing.
2. fix mouse in/out and other event flags stuff again.


SVN revision: 34174
2008-04-03 18:18:36 +00:00
Carsten Haitzler 368f148fef use hold event and emit hold,on and hold,off
SVN revision: 34161
2008-03-31 21:38:51 +00:00
doursse 8e386e3f73 remove trailing spaces
SVN revision: 34101
2008-03-24 08:22:01 +00:00
Gustavo Sverzut Barbieri 08bfdacdee Bugfix and refactor get of font based on text_class.
Edje tries to copy original style to font provided by text_class if
this have no style.

However code was supposing that text_class font always had more than
one occurrence, these separated with ',' and did not check if this is
not the case, so "e = strchr(',', tok);" was returning NULL and all
the math were using negative values.

The fix now does the proper checking, avoid one useless alloca() and
the respective copy, also doing the copies with memcpy() since sizes
are already known.

Refactory was done to make code simpler and also avoid having it
copied 3 times.


SVN revision: 33869
2008-02-29 21:43:55 +00:00
Gustavo Sverzut Barbieri da7eabb809 Just update dragable parameters if part is dragable.
SVN revision: 33867
2008-02-29 03:39:31 +00:00
Gustavo Sverzut Barbieri 621d8f73af Optimize interpolation.
Check if values actually differ before interpolating them, this will
avoid useless math for (x1 - (x1 - x2) * p) when x1 and x2 are equal.

Also don't interpolate values that doesn't make sense to the part,
like color2 and color3 for non-text.

TODO: Refactor edje part description into more object-oriented
fashion, with a struct with just the common parts followed by an union
of structs for special objects, these would contain specific bits for
each part type. This would save us a bit of memory and then we can
more easily refactor code isolating common and specific parts, making
code smaller and easier to handle.


SVN revision: 33861
2008-02-27 19:03:19 +00:00
Gustavo Sverzut Barbieri b5d880093f Avoid using anonymous for often used structs.
My last patch fixed the compile problem, but really, we should use the
same struct for things that look/work the same, like rectangle,
position, etc.

This new patch brings that change back and add some named structs
(also typedef'ed so it conforms to E naming schema).

This commit just changes the header and adds an example of
benefit. Later I'll provide a more intrusive patch that reorganize
structures to make even better use of this.


SVN revision: 33860
2008-02-27 16:03:23 +00:00
Gustavo Sverzut Barbieri 09148d57c4 Fix my introduced bug in cedric's patch.
SVN revision: 33859
2008-02-27 15:21:16 +00:00
Gustavo Sverzut Barbieri 0d9ff479d2 Avoid useless huge implicit memcpy.
The "simple" block:

   p3 = p1;

was doing an implicity memcpy() responsible for about 1% of processing
time when no animation happens.

Patch by Cedric BAIL.


SVN revision: 33858
2008-02-27 14:27:10 +00:00
Gustavo Sverzut Barbieri e618b1d188 Cleanup edje calc and fixes textblock "visible" use.
Patch by Cedric BAIL, with minor formating/style fixes.


SVN revision: 33803
2008-02-21 18:35:27 +00:00
Carsten Haitzler 540db93949 textblock max size option in
SVN revision: 33528
2008-01-19 01:00:14 +00:00
Gustavo Sverzut Barbieri 3500a5c059 Fix calculation of maximum values for swallow parts.
Due my last change, the code was broken by edjes without a group
min/max, this happens because edje_object_size_max_get() returns
100000 for these objects, and this was being used as object maximum
size.

Current fix is a hack: just check for this value, now known as
EDJE_INF_MAX_*, but the real solution would be to return 0 (or -1) and
check for it in other parts of the code, but it's harder to get right.


SVN revision: 32123
2007-10-19 19:31:42 +00:00
Carsten Haitzler 412d44f90f bizarre - text sources were broken - but never appeared in e - somehow they
worked. fixed.


SVN revision: 32078
2007-10-14 23:54:27 +00:00
Gustavo Sverzut Barbieri 403afe21fc Fix edje calculation of max width for swallowed parts.
If you have a SWALLOW part taking the whole window and then swallow an
object with max set using edje_extern_object_max_size_set() it will
not take effect due the comparison of ep->swallow_params.max.w < -1
(desc->max.w is -1 in this case).


SVN revision: 32029
2007-10-09 15:30:26 +00:00
Carsten Haitzler b329369cf0 fix up edje to calc using the same font as the textclass.
SVN revision: 31748
2007-09-17 11:33:16 +00:00
Gustavo Sverzut Barbieri 5193a28bba Fix segfault with part_recalc when no image_dir was specified.
This avoid crashes with buggy edje files: if you forget to specify
type: RECT and don't provide any "images.image" in edje, it crashes.


SVN revision: 31689
2007-09-12 15:12:07 +00:00
doursse 974152be16 remove trailingspaces
SVN revision: 31657
2007-09-08 18:31:56 +00:00
Carsten Haitzler a0d1f47563 DONT set color - bad. see comments
SVN revision: 31105
2007-08-01 14:34:10 +00:00
Peter Wehrfritz 6e37525b54 use a lookup table
SVN revision: 30673
2007-07-08 17:52:39 +00:00
Peter Wehrfritz 256b9de930 add support for glow, far shadow and far soft shadow for text parts
SVN revision: 30629
2007-07-06 23:33:42 +00:00
Gustavo Sverzut Barbieri 973d46b643 If object is swallow, apply color changes to swallowed object. Ack by rephorm.
SVN revision: 30628
2007-07-06 23:27:33 +00:00
rephorm 982ad090be add cedric bail's fill.type patch.
you can now include "type: TILE;" in the fill block to tile an image part at the size of its image data


SVN revision: 30624
2007-07-06 22:36:40 +00:00
rephorm d4a055585b Add GROUP Parts to edje.
These can be used to automatically swallow in another group from the same file.

Parts within child groups can be referred to by a ':' separated 'full path' of
part names. Any API functions that take a part name will now accept a full path
also.

Signals emitted by child objects will be repeated up to the parents with the
source changed to be the path relative to the receiving object.  E.g in the
example below, a mouse moving over the lower light green rectangle would result
in the parent object recieving a "mouse,move" signal with source "bot:inner".

**** NEW RESTRICTION ****  part names should no longer include a ':' character.
This is not yet enforced by edje_cc, but will cause the part to be inaccessible
from the API.

Example EDC:

collections {
  group {
    name: "parent";
    parts {
      part {
        name: "top";
        type: GROUP;
        source: "child";
        description {
          state: "default" 0.0;
          rel2.relative: 1 0.5;
        }
      }
      part {
        name: "bot";
        type: GROUP;
        source: "child";
        description {
          state: "default" 0.0;
          rel1.relative: 0 0.5;
        }
      }
    }
  }
  group {
    name: "child";
    parts {
      part {
        name: "base";
        type: RECT;
        description {
          state: "default" 0.0;
          color: 160 208 8 255;
        }
      }
      part {
        name: "inner";
        type: RECT;
        description {
          state: "default" 0.0;
          rel1.offset: 10 10;
          rel2.offset: -11 -11;
          color: 210 228 76 255;
        }
      }
    }
  }
}


SVN revision: 30087
2007-05-27 05:28:07 +00:00
rephorm e954849ee1 Remove part list, using table everywhere instead
SVN revision: 30085
2007-05-26 23:57:21 +00:00
rephorm 8a17d1986e only clear and re-apply gradients when the spectrum actually changes
SVN revision: 30065
2007-05-24 04:34:41 +00:00
rephorm 65ec1b5633 if requested scroll size is less than min, use min size.
SVN revision: 30064
2007-05-24 03:41:04 +00:00