Commit Graph

100 Commits

Author SHA1 Message Date
Jean-Philippe Andre 64fd278c62 Evas filters: EO-ify the filters API
This creates the new interface
 Efl.Gfx.Filter

And the implementation is a mixin (evas_filter_mixin.c):
 Evas.Filter

All the filter rendering code has now been moved to this
new file. TODO: Merge image filtering.
2015-06-25 14:36:09 +09:00
Jean-Philippe Andre a18107309d Edje: Factorise filter code for TEXT and IMAGE
TODO: eo-ify the filter API properly and stabilize it.
2015-06-25 14:36:09 +09:00
Jean-Philippe Andre 225c0f937a Evas filters: Pass edje state name & value to the filters
From Edje, pass the current state info (name and value) as well
as the next state and the transition position when applicable.
2015-06-25 14:36:08 +09:00
perepelits.m 3671506ad3 edje: add of edje-3d to edje_calc.c
Summary: Adding of Mesh_Node, Light and Camera to _edje_part_recalc.

Reviewers: raster, Hermet, cedric

Reviewed By: cedric

Subscribers: cedric, artem.popov

Differential Revision: https://phab.enlightenment.org/D2639

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2015-06-22 11:17:29 +02:00
Jean-Philippe Andre 75ec3a7338 Edje: Add clip as a property of a part description
Since masking, for performance and themeing reasons, it becomes
interesting to be able to switch clippers on the fly. In particular,
switching from an IMAGE mask to a standard RECT clipper can save a
lot of power when masking is not required.

This new flag "description.clip_to" will behave a bit like a mix of
rel.to and visible:

- It points to a part by name, just like part.clip_to. This will
  override the clipper set by the part, or override the default clipper.

- Like "visible", it can not be interpolated between two values, so
  it will switch only at the end of a transition.

- By default there is no clip override, which means Edje will fallback
  to the part's clipper, if any, or the base (group's) clipper.

NOTE:
- Since a clipper that does not clip anything becomes a standard object,
  it is visible and rendered. This will in 99.999% cases not be the
  intended behaviour. Currently we can simply use a transparent RECT
  in order to always have something clipped by the clipper, but this is
  a hack and this will trigger rendering of masks in their surfaces even
  when they are not actually used.
  Ideally, there should be a flag indicating to Edje & Evas that an object
  should be considered a clipper in all situations, and never be rendered
  on screen.

TODO:
- Support Edje Edit
- Add Embryo & Lua functions
- Add support in edje_convert
- Add Edje/Evas flag to mark objects as "no_render"

@feature
2015-06-15 16:59:41 +09:00
Mike Blumenkrantz 172a0ccf0c edje: reformat all C files
this has been unreadable for years due to the french tabber.
2015-06-08 14:43:00 -04:00
Avi Levin b563efc52f edje: porting evas smart callbacks to eo
It's the first stage of replacing calls of evas_object_smart_callback_add/del/call
with eo_callback_add/del/call.
This will reduce the use of legacy events and callbacks lists in
smart_object which in turn will improve performance and reduce memory
use.
2015-06-07 09:55:41 +03:00
Sebastian Dransfeld 3433c1449e edje: rename variable
Give variable a name which better describes its purpose.
2015-05-11 13:34:10 +02:00
Cedric BAIL 7ba7ed4a1c efl: add Efl.Gfx.Fill and migrate Evas.Image to it. 2015-04-03 16:23:24 +02:00
Cedric BAIL 651436f410 efl: rename visibility to visible.
After discussion bindings and people in general prefer visible.

T2035
2015-04-03 16:23:19 +02:00
Cedric BAIL c08f8e26a6 efl: add Efl.Gfx.Base and fix inheritance for Evas_Object. 2015-04-03 16:23:17 +02:00
Andrii Kroitor 7271c99b3c edje_calc: fix SEGFAULT on new parts
Summary: new part added with edje_edit_part_add has NULL previous description

Reviewers: cedric, zmike, seoz, Hermet, raster

Subscribers: FurryMyad, cedric, reutskiy.v.v

Differential Revision: https://phab.enlightenment.org/D2272
2015-04-01 07:25:12 -04:00
Mike Blumenkrantz 89809bdf55 edje calc now more correctly forces recalc for child groups on state change
in the event of fixed size -> non-fixed size (eg. previous commit optimization),
this calc would no longer occur, so we need to queue it. also if fixed.w or
fixed.h changes value for a group part, we must recalc the group to ensure correct
sizing occurs
2015-03-31 23:31:11 -04:00
Mike Blumenkrantz 15f8d943aa edje calc no longer performs calculations for group parts of fixed size > 0
when I said > 0 in the last commit message, I was thinking ahead to this commit
which I knew I would later have to make, but had not yet written because I had not
spent the requisite number of hours debugging the code to know that I needed to
have the check in both the code and the commit message

ref 3a451650d2
2015-03-31 23:31:11 -04:00
Mike Blumenkrantz 20350a8006 edje calc no longer forces proxy part source calcs for currently-hidden proxies
this saves a bit of calc time when a proxy part is not currently visible
2015-03-31 19:16:54 -04:00
Mike Blumenkrantz 3a451650d2 edje calc no longer performs calculations for group parts of fixed size
if the min/max of a part are identical and > 0, the part's min size is guaranteed
to be this size. there is no need to perform expensive recursive calcs here
2015-03-31 19:16:54 -04:00
ChunEon Park df5f9f7c55 edje: apply scale prior to rotation
As my experience, this tranform is likely expected by user.
2015-03-02 20:19:49 +09:00
jiin.moon 4673dbeb4b edje: Adding the zoom effect of map to edje
Summary:
Support zoom effect of map in edje
@feature

Reviewers: Hermet

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D2068
2015-03-02 20:19:01 +09:00
ChunEon Park 382c41e42d edje: support anti_alias option
set anti_alias in part section.
default is enabled.

part { name: "test";
   type: XXX;
   anti_alias: 0;
   ...
}

@feature
2014-12-24 16:29:49 +09:00
ChunEon Park 956754ee57 edje/edje_calc: clean up code
remove duplicated.
2014-12-24 14:51:03 +09:00
Jaehwan Kim 8ea9bc7ba0 edje: Set the default image in image set.
If there's no suitable image in image set, set the first image among
the set.
2014-11-18 17:13:38 +09:00
Jaehwan Kim 9aba5eb346 edje_calc: fix image set bug.
When the image is changed, the border should be reseted.

@fix
2014-11-10 21:01:08 +09:00
Jaehwan Kim 495be8b294 edje_calc: add null check. 2014-10-31 15:15:39 +09:00
Jaehwan Kim 782c896f5a Edje_calc: set the image set border again after resize.
_edje_real_part_image_set can change the image of part,
if the part use the image that is set by image set.
If the image is changed, the border should be changed.

@fix
2014-10-28 15:50:41 +09:00
Jaehwan Kim c567f0ba9f edje: fix the image set bug.
Summary: Before using the parameter ep->param1.set, it should be set.

Test Plan:
 diff --git a/data/themes/edc/elm/button.edc b/data/themes/edc/elm/button.edc
 index 097ce85..34a2b98 100644
 --- a/data/themes/edc/elm/button.edc
 +++ b/data/themes/edc/elm/button.edc
@@ -3,6 +3,15 @@ group { name: "elm/button/base/default";
    alias: "elm/button/base/naviframe/back_btn/pager";
    images.image: "button_normal.png" COMP;
    images.image: "button_clicked.png" COMP;
+   images {
+      set {
+         name: "button_normal";
+         image {
+             image: "button_normal.png" COMP;
+             size: 0 0 9999 9999;
+         }
+      }
+   }
 #define ICON     1
 #define LABEL    2
 #define MASK     3
@@ -74,7 +83,7 @@ group { name: "elm/button/base/default";
    parts {
       image { "base"; nomouse;
          desc { "default";
-            image.normal: "button_normal.png";
+            image.normal: "button_normal";
             image.border: 4 4 3 5;
             image.middle: SOLID;
             rel1.offset: -1 0;

and print the value ep->param1.set about "base" part of "elm/button/base/default" group before it is used.
It has a NULL at first time.

Reviewers: raster, jinsol, herb, cedric

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D1516

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2014-10-18 13:56:38 +02:00
Cedric BAIL 41fab84f83 edje: make edje map have the same behavior has visibility.
It is in fact more coherent to follow the logic of visibility for map to.
So you don't require a specific state to finish your animation before turning
map off.
2014-08-21 16:10:54 +02:00
Tom Hacohen 69219fe1e2 Efl interface: Add image interface and start using it. 2014-08-21 11:02:11 +01:00
Jaehwan Kim 7e5d2606cc edje: Add dpi feature.
Summary:
This dpi is used to get the scale for each collection.
If each collection has a described dpi, it calculates a proper scale
based on the dpi and dpi which is described in the collection.

@feature

Test Plan:
If add dpi to collection of edc, the edje will save the value as the dpi of the collection.
For example, if the dpi of your device is 100, you just set dpi: 100 in the collection of edc.
If the edj is loaded in another device(dpi is 200), it will scaled 2 times.
It is possible that the described dpi of application and theme are different.
In that case, application and theme have a different scale.
It makes the edj that made in different environment works in one device.

Reviewers: seoz, zmike, JackDanielZ, Hermet, woohyun, cedric, raster

Reviewed By: raster

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D1190
2014-07-24 14:50:25 +09:00
Daniel Kolesa 43e2349203 eolian/generator: public api func name deduplication, spank tasn if it breaks 2014-06-20 17:09:03 +01:00
Tom Hacohen 0fc3279db9 Efl: Update code to use the new class names generated by eolian. 2014-06-03 11:28:01 +01:00
Mike Blumenkrantz 91bd7fa913 edje should only match swallow visibility if it's actually a group part
fixes visibility of actual swallow parts
2014-05-26 12:25:27 -04:00
Mike Blumenkrantz ceb13556b1 Revert "Revert "recursively hide edje group objects on edje hide""
This reverts commit b8ca758658.
2014-05-26 12:25:07 -04:00
Carsten Haitzler b8ca758658 Revert "recursively hide edje group objects on edje hide"
Unless you like your desktop to look something like:

http://www.enlightenment.org/ss/e-53834e0c0cb3c1.87889787.png

then this commit really needs reverting.

This reverts commit 385326b8e4.
2014-05-26 23:17:33 +09:00
zmike 385326b8e4 recursively hide edje group objects on edje hide
this massively improves edje performance when using groups, which previously would continue calculating their parts even when their parent object was hidden

CPU usage in my test case went from 20-30% to 1%.

@fix
2014-05-26 08:48:00 -04:00
Stefan Schmidt 9cfb050022 edje_calc: Document some intended fall through cases in switch-case
We share code here for different types. Make a note and also marked them as
false positive in coverity.

CID 1039377, CID 1039376
2014-05-16 15:00:10 +02:00
Jean-Philippe Andre 7bbdb68811 edje_calc: Fix invalid parameters during first calc
In particular, ellipsis is -1 by default in Evas, but at this
point (first layout calc), the parameters used for recalc are
incomplete and ellipsis would then be 0 by default (calloc).

As a consequence, Edje will call ellipsis_set(0) enabling
ellipsis even on objects that force "ellipsis: -1".

Solution: set all the parameters before entering text/tb calc.

I believe the other changes are only color and image padding
and should not affect recalc_single.
2014-05-15 16:07:00 +09:00
Jean-Philippe Andre 5bf1f0c918 edje_calc: Don't add padding twice to text objects
Text objects declared in Edje will see their padding added twice,
as the Evas_Object_Text itself contains the padding already.

This WILL break some EDC files. It's a bug nonetheless.

Should this be backported?
2014-05-14 14:44:47 +09:00
Jean-Philippe Andre 5b28726e0a edje_calc: Update some disabled code so it can compile
Yup, that's basically a no-op but allows other devs to test
the old behaviour of that function as it's still there:
_edje_part_recalc_single_text
2014-05-14 14:44:47 +09:00
Mike Blumenkrantz 894c36ff11 de-elipsis edje
the word is "ellipsis". it's bad enough that we have released misspelled api, but we can at least spell things correctly internally.
2014-05-13 16:20:41 -04:00
Mike Blumenkrantz 5f376fde36 edje now correctly supports text.source and text.text_source for swallowed parts
fix T1186
2014-04-25 10:52:15 -04:00
Yossi Kantor 2be615916a Eolian: Integration of Edje and Edje Edit 2014-03-24 08:14:30 +02:00
perepelits.m f9fe869d23 Edje_Edit: Add NULL-check
Summary:
Add NULL-check in:
         edje_edit_state_add
         _edje_edit_real_part_add
         _edje_part_recalc (edje_calc.c)

Reviewers: cedric, seoz, raster

Reviewed By: raster

CC: reutskiy.v.v, cedric

Differential Revision: https://phab.enlightenment.org/D567
2014-02-19 12:18:42 +09:00
Vyacheslav Reutskiy 793a1a5c1c edje: edje_calc - fix deffect by find the part description when 'approximate' is EINA_FALSE
Reviewers: cedric, raster, seoz

Reviewed By: cedric

CC: cedric

Differential Revision: https://phab.enlightenment.org/D495

Signed-off-by: Cedric BAIL <cedric.bail@samsung.com>
2014-02-07 12:16:21 +09:00
Vyacheslav Reutskiy 641d823cbb edje: edje_calc - update _edje_part_description_find
Add to fuction prototype new param: Eina_Bool approximation.
If need exact matching state name and value set EINA_FALSE to
'approximate'. In other cases used EINA_TRUE.

Reviewers: cedric, raster, seoz

CC: cedric

Differential Revision: https://phab.enlightenment.org/D400

Signed-off-by: Cedric BAIL <cedric.bail@samsung.com>
2013-12-23 10:47:32 +09:00
Carsten Haitzler c6119802d1 edje - lib - remove useless memset as later memcpy overwrites
this removes a useless memset that does nothing usefule as a later
memcpy (not far down from it) will overwrite it anyway.
2013-12-13 21:26:05 +09:00
Otavio Pontes afd8a238d1 Adding the cubic-bezier curve to edje transitions
Summary: Adding an option to use a cubic-bezier curve in edje transitions.

Reviewers: Sachiel, cedric, raster

Reviewed By: raster

CC: raster

Differential Revision: https://phab.enlightenment.org/D319
2013-12-02 15:02:40 +09:00
ChunEon Park 58368ea636 edje - fix the side effect introduced by 12aba0db5a
Now do recalc parts correctly when edje is moved.
2013-11-22 14:06:47 +09:00
ChunEon Park eea338764a edje - actually we don't need extra variable. 2013-11-21 13:50:19 +09:00
ChunEon Park 12aba0db5a edje - Fix to update map enabled part when edje object is moved. 2013-11-21 13:26:37 +09:00
ChunEon Park 035d573571 edje - cleaning the code.
keep our code convention.
2013-11-21 13:12:34 +09:00