path: root/src/lib/edje (follow)
AgeCommit message (Collapse)Author
2019-02-13Remove individual class BETA guardsXavi Artigas
Summary: Eolian adds a per-class BETA guard (like EFL_UI_WIN_BETA) to any method tagged as @beta. This means that any app (and the EFL code) wanting to use BETA features has to enable them class by class, which is cumbersome. This commit replaces the individual guards with the global EFL_BETA_API_SUPPORT guard, so apps only need to define one symbol to access BETA features. Any usage of the per-class guards has been removed from the EFL code and examples. When building EFL the global guard is defined by configure, so all EFL methods already have access to BETA API. Efl_Core.h and Efl_Ui.h no longer define EFL_BETA_API_SUPPORT. Apps wanting to use BETA API have to define this symbol before including any EFL header (It has been added to the examples requiring it). Test Plan: make && make check && make examples still work, but there's a lot less #defines in the code Reviewers: zmike, bu5hm4n, q66 Reviewed By: q66 Subscribers: cedric, #reviewers, #committers Tags: #efl Maniphest Tasks: T6788 Differential Revision:
2019-02-13eolian: drop class function overridingMarcel Hollerbach
Until this commit eo did class functions as part of the vtable, which enabled those functions to be overwritten in classes inheriting another class. However in task T7675 we decided that this is not really good for bindings, as most OOP languages do not support this sort of feature. After this commit eolian realizes class function completly outside of the vtable, the c-symbol that is the class funciton is now just directly redirecting to a implementation, without the involvement of the vtable. This also means a change to the syntax created by eo: Calling before: class_function(CLASS_A); Calling after: class_function(); Implementation before: class_function(const Eo *obj, void *pd) { ... } Implementation after: class_function(void) { ... } This fixes T7675. Co-authored-by: lauromauro <> Reviewed-by: Daniel Kolesa <> Differential Revision:
2019-02-13edje: add missing NULL checksJaeun Choi
2019-02-13edje: add missing NULL checkJaeun Choi
2019-02-11edje: apply maps to textblock cursors and backgroundsMike Blumenkrantz
when a map is applied to an edje part, it is expected that all components of the part respect the map attributes. this requires that, in the case of textblock parts, all the sub-parts which are internal to the textblock (entry) object also go through the map populate and apply codepaths fix T4977 @fix Reviewed-by: Cedric BAIL <> Differential Revision:
2019-02-11efl_gfx_color_class: make this a mixin and move color_class_code hereMike Blumenkrantz
Summary: color_class_code seems to only have been added to efl_gfx_color in order to share the hex conversion code, but this is trivial to do when it's in another class and makes the api more sensible ref T7559 Reviewers: segfaultxavi, bu5hm4n, cedric Reviewed By: segfaultxavi Subscribers: #reviewers, #committers Tags: #efl_api Maniphest Tasks: T7559 Differential Revision:
2019-02-06edje: migrate Eo API to use Eo callback instead of opaque type.Cedric BAIL
Summary: Depends on D7869 Reviewers: zmike, q66, segfaultxavi, bu5hm4n Reviewed By: zmike Subscribers: #reviewers, #committers Tags: #efl Maniphest Tasks: T7671 Differential Revision:
2019-02-06edje: make legacy edje call rely directly on edje internal.Cedric BAIL
Reviewers: zmike, q66, segfaultxavi, bu5hm4n Reviewed By: zmike Subscribers: #reviewers, #committers Tags: #efl Maniphest Tasks: T7671 Differential Revision:
2019-01-30efl.text_markup: move cursor-related methods to efl.text_markup_interactiveMike Blumenkrantz
many users of the markup property are not interactive text cases, so splitting off the interactive methods resolves a number of unimplemented method issues ref T5719 Differential Revision:
2019-01-28docs: Fix assorted typos in legacy documentationXavi Artigas
Samsung reported a long list of typos in our legacy docs, this fixes them.
2019-01-26efl: introduce efl_ui_direction_readonlyMarcel Hollerbach
the readonly mixin implement the efl_ui_direction interface and prints a error in case it is written. ref T5719 Reviewed-by: Cedric BAIL <> Reviewed-by: Xavi Artigas <> Differential Revision:
2019-01-26edje: implement container apiMarcel Hollerbach
the container api returns the number of added swallows. the content iterator returns a iterator over all swallowed objects. The reason this is only for swallows is that the interface explicitly mentions UI elements at the count. Since i am believing the the result of the count operation should mirror to the amount of elements in the iterator, the iterator only returns swallowed objects. ref T5719 Reviewed-by: Cedric BAIL <> Differential Revision:
2019-01-18edje: convert var timer list to inlistDerek Foreman
Since these are only ever on one list, inlist is better. Signed-off-by: Derek Foreman <> Reviewed-by: Mike Blumenkrantz <> Reviewed-by: Cedric BAIL <> Differential Revision:
2019-01-18edje: Use EINA_LIST_FREE instead of hand coded variantDerek Foreman
Minor simplification, should be no functional change. Signed-off-by: Derek Foreman <> Reviewed-by: Mike Blumenkrantz <> Reviewed-by: Cedric BAIL <> Differential Revision:
2019-01-18efl: convert all classes to the new eolian syntaxMarcel Hollerbach
ref T7459 Reviewed-by: Daniel Kolesa <> Reviewed-by: Xavi Artigas <> Differential Revision:
2019-01-15edje: Remove _edje_animators listDerek Foreman
I guess this used to do something... Now it's a list that we never add anything to but frequently try to remove things from. Signed-off-by: Derek Foreman <> Reviewed-by: Cedric BAIL <> Reviewed-by: Chris Michael <> Differential Revision:
2019-01-09edje - stop trying to access ready deleted exrt/group swallow objectsCarsten Haitzler (Rasterman)
_edje_real_part_swallow_clear() would try and manipulate already deleted group/external objects (not manually swallowed ones) thus causing safety noise. @fix.
2019-01-02efl: rename Efl.Ui.Base -> Efl.Ui.I18n as that is really what it does.Cedric BAIL
Reviewed-by: Xavi Artigas <> Differential Revision:
2018-12-18silence most left over compiler warningsJérémy Zurcher
Summary: silence -Wshadow -Wunused-variable -Wunused-parameter Reviewers: segfaultxavi Reviewed By: segfaultxavi Subscribers: segfaultxavi, cedric, #reviewers, #committers Tags: #efl Differential Revision:
2018-12-03meson: use eolian_gen with -SMarcel Hollerbach
this ensures that eolian does not parse installed .eo files Differential Revision:
2018-11-22Remove duplicated interface inheritance in eoYeongjong Lee
Summary: Delete unnecessary interface inheritance Efl.Ui.Base ==> Efl.Ui.Widget - Efl.Canvas.Group - Efl.Canvas.Object - Efl.Ui.Base Efl.Text_Cursor ==> Efl.Text_Markup - Efl.Text_Cursor Efl.Pack_Layout ==> Efl.Ui.Box - Efl.Pack_Layout Efl.Ui.Translatable ==> Efl.Ui.Layout - Efl.Ui.Widget - Efl.Ui.Translatable Efl.Part ==> Efl.Ui.Widget - Efl.Part Efl.Ui.View ==> Efl.Ui.Layout.Object - Efl.Ui.View Efl.Access.Value ==> Efl.Ui.Spin - Efl.Access.Value Efl.Gfx.Buffer ==> Efl.Canvas.Image_Internal - Efl.Gfx.Buffer Efl.Canvas.Pointer ==> Efl.Ui.Widget - Efl.Canvas.Group - Efl.Canvas.Object - Efl.Canvas.Pointer Efl.Gfx.Size_Hint ==> Efl.Ui.Widget - Efl.Canvas.Group - Efl.Canvas.Object - Efl.Gfx.Size_Hint Test Plan: make check Reviewers: Jaehyun_Cho, Hermet, woohyun, segfaultxavi Reviewed By: Jaehyun_Cho, segfaultxavi Subscribers: segfaultxavi, cedric, #reviewers, #committers Tags: #efl Differential Revision:
2018-11-14edje: fix an overflow issue for state valuesYoungbok Shin
Summary: Whenever _edje_recalc_do() is called, a state value of Edje structure is increased. This increased value will be stored in Edje_Real_Part and Edje_Real_Part_State for calculation optimazation. But, once the state value is overflowed, it ruins calculation logic. @fix Test Plan: Run an Edje file which has infinite animation for over an hour. I'll attach an example to phab. Reviewers: raster, cedric, woohyun, Hermet Reviewed By: Hermet Subscribers: #reviewers, #committers Tags: #efl Differential Revision:
2018-11-09edje util - handle missing case in switchCarsten Haitzler (Rasterman)
2018-11-09edje entry - be clearer and more efficient on string appendingCarsten Haitzler (Rasterman)
using strncpy with strlen of the string you append is pointless. again... strcpy will do - but use memcpy to be exact and pre-compute sizing etc. only once. fixes warnings.
2018-11-09edje calc - wanr - move fallthrough tag to just before next caseCarsten Haitzler (Rasterman)
fixes warning for it not being there... no bug here though
2018-11-09edje calc - warn - fix warn about initting all fields of calc paramsCarsten Haitzler (Rasterman)
2018-11-09edje load - warn - fix buffer trucn warningCarsten Haitzler (Rasterman)
2018-11-09edje edit - warn - use bigger buffer to avoid buf trunc warningsCarsten Haitzler (Rasterman)
2018-11-09edje modules - warn - use proper hash free func prototypeCarsten Haitzler (Rasterman)
2018-11-09edje program - warn - handle theoretical null seat stringCarsten Haitzler (Rasterman)
2018-11-06Canvas layout: support more Efl.Text.* with efl_partDaniel Hirt
This adds many Efl.Text.* that are useful for manipulating the underlying TEXTBLOCK object's propeties using efl_part. This has been implemented as part of the "user-defined" properties of the layout part, so that the changes on the part persist across load of different groups. Note that text styles have precedence over the TEXTBLOCK (Canvas.Text) object's properties. if an edc provides a style, the properties it manipulates as part of the "base:" string would not be affected by this API. In general, this helps reducing the amount of styles for objects (or modes of the same objects) that share the same setup, but are different in some properties (e.g. ellipsis, wrap etc). @feature Canvas layout: add text part "expand" property This adds "expansion modes", which are essentially the same as min/max hints in the edje part's 'description.text' fields. The user can then customize his widget to different modes without being forced to create a new edje group in the theme. Note that there is an added check in case one of the min/max text flags are provided from the theme. In such case, all flags from this new API will be ignored. This fortifies misuse where the flags are set both in theme and the API. @feature
2018-10-24meson: add eolian custom dependencies supportDaniel Kolesa
This uses the meson/ninja depfile functionality + eolian to make sure proper dependencies between generated files and .eo files are managed, to ensure consistent re-generation of all generated files that are affected upon .eo file modification. For custom rules with multiple outputs, Ninja currently does not support depfiles. Therefore, split those into two custom rules so that the depfiles functionality can be enabled. While this is ugly and slows down the process a little by having to invoke Eolian twice instead of once, it has to be done and it's still better than what we had in Autotools anyway. Differential revision: D7187 Fixes T6700.
2018-10-02here comes mesonMarcel Hollerbach
a new shiny buildtool that currently completes in the total of ~ 4 min.. 1 min. conf time 2:30 min. build time Where autotools takes: 1:50 min. conf time 3:40 min. build time. meson was taken because it went quite good for enlightenment, and is a traction gaining system that is also used by other mayor projects. Additionally, the DSL that is defined my meson makes the configuration of the builds a lot easier to read. Further informations can be gathered from the README.meson Right now, bindings & windows support are missing. It is highly recommented to use meson 0.48 due to optimizations in meson that reduced the time the meson call would need. Co-authored-by: Mike Blumenkrantz <> Differential Revision: Depends on D7011
2018-09-28edje: call recalc in part_text_get if there is no available text dataYeongjong Lee
Summary: If edje_text_get is called before any edje_text_set function call, it return null, because rp->typedata.text->text is only set by edje_text_set function. If there is no available text data, find it from rp(edc). ref 7bbf18a950c027a365fea1b88e8dc3f16bb81abe Test Plan: make check Reviewers: zmike, id213sin, herdsman Reviewed By: id213sin Subscribers: Hermet, cedric, #reviewers, #committers Tags: #efl Differential Revision:
2018-09-21edje: add missing eina_deprecated to apis.Hermet Park
Subscribers: cedric, #reviewers, #committers Tags: #efl Differential Revision:
2018-09-21Edje: update doc.Hermet Park
Summary: fix and add missing doxygen conent. Subscribers: cedric, #reviewers, #committers Tags: #efl Differential Revision:
2018-09-17edje: Remove hack codeSubodhKumar
Summary: special calculation for textblock is for fit calculation. This is obvious from code that fit is being calculated before text is actually been set to textblock. I am not sure whether this is intentional or mistake but it make sense to calculate fit after text is being set so that formatted and native calculation can be proper. @fix Test Plan: NA Reviewers: cedric, zmike, herdsman, devilhorns Subscribers: stefan_schmidt, #reviewers, #committers, shilpasingh Tags: #efl Differential Revision:
2018-09-10efl: Remove unnecessary abstract/class inheritanceJaehyun Cho
Summary: Remove unnecessary abstract and class inheritance from eo file because those abstracts and classes are duplicate. e.g. if class B (class A) in B.eo file, then class C (class A, class B) in C.eo file. Reviewers: woohyun, felipealmeida, Hermet, bu5hm4n Reviewed By: Hermet, bu5hm4n Subscribers: bu5hm4n, cedric, segfaultxavi, q66, #reviewers, lauromoura, #committers Tags: #efl Differential Revision:
2018-09-10Revert "evas vg: changed "vg object" to "vg""Hermet Park
This reverts commit ec69abed9d63e7876238dffc4b0d3398d1cd1be1. Ooops, I didn't intended this patch. @#!@#!@#!@#
2018-09-10evas vg: changed "vg object" to "vg"Hermet Park
Summary: Following our naming rule, rename to like other primitives. i.e. efl_canvas_rect, efl_canvas_image, efl_canvas_vg ... Subscribers: cedric, #reviewers, #committers Tags: #efl Differential Revision:
2018-09-05Revert "efl: Remove unnecessary abstract/class inheritance"Jaehyun Cho
This reverts commit 4067fafe07c4d22ac2e2672921c268ae8866029f. As commented on D6982, the original patch changes the widget's behavior. e.g. Efl.Ui.Win cannot be called with Efl.Config_Gloabal APIs. Elm.Combobox cannot provide events of Button and Hover. Until the above changes are resolved, the original patch is reverted.
2018-09-05efl: Remove unnecessary abstract/class inheritanceJaehyun Cho
Summary: Remove unnecessary abstract and class inheritance from eo file because those abstracts and classes are duplicate. e.g. if class B (class A) in B.eo file, then class C (class A, class B) in C.eo file. Reviewers: woohyun, felipealmeida, Hermet Reviewed By: Hermet Subscribers: cedric, segfaultxavi, q66, #reviewers, lauromoura, #committers Tags: #efl Differential Revision:
2018-09-04edje_calc: remove unused variableYeongjong Lee
Summary: those variables should be removed at 05e3e450e5ecb67f80c1be3df8ab7a08e8d33da2 Reviewers: eagleeye Subscribers: cedric, #reviewers, #committers Tags: #efl Differential Revision:
2018-08-31docs: Fix typos in API reference doc and comments.Yeongjong Lee
Reviewers: Hermet, segfaultxavi Reviewed By: Hermet, segfaultxavi Subscribers: cedric, #reviewers, #committers Tags: #efl Differential Revision:
2018-08-31efl: vector is no more beta version.Hermet Park
2018-08-30docs: Fix typos and some wrong expressions in API reference doc.Myoungwoon Roy, Kim
Summary: I had fixed some typos and some wrong expressions in API reference doc Test Plan: N/A Reviewers: raster, zmike, Hermet, segfaultxavi Reviewed By: Hermet Subscribers: cedric, #reviewers, #committers Tags: #efl Differential Revision:
2018-08-29evas: call evas_find before safety checkYeongjong Lee
Summary: edje_edit_object_add edje_object_add emotion_object_add evas_object_xxx_add These APIs had allowed to set parent to EFL_CANVAS_OBJECT(Evas_Object) before 8bb11a17. we should call evas_find before safety check for backward compatibility. Test Plan: win = elm_win_add(NULL, "main", ELM_WIN_BASIC); 1. `rect = evas_object_rectangle_add(evas_object_evas_get(win));` 2. `rect = evas_object_rectangle_add(win);` Check that 1. and 2. works. Reviewers: Hermet, zmike Reviewed By: Hermet Subscribers: cedric, #reviewers, CHAN, #committers Tags: #efl Differential Revision:
2018-08-20evas textblock: add/apply cursor cluster APIs based on grapheme clusterYoungbok Shin
Summary: Add a feature for moving cursor over a grapheme cluster. It is applied to edje_entry.c and elm_entry.c for improving cursor handling just like other modern text editors. ex) gedit The patch on Evas needs to update libunibreak library. So, the patch will update libunibreak, too. @feature Test Plan: 1. Put "ഹലോ" in your entry. 2. Your cursor can reach at the end of text from the beginning only in 2 right key event with this feature. Reviewers: raster, cedric, jpeg, herdsman, zmike, devilhorns Reviewed By: herdsman, zmike Subscribers: #reviewers, #committers, zmike, bowonryu, woohyun Tags: #efl Differential Revision:
2018-08-16evas: check evas class instead of using evas_findYeongjong Lee
Summary: A object that is not evas class shouldn't use evas_find. it may occurs segfault. ref c2e8b492b18bdecc2300ad051ba1406e40ad068f Test Plan: Evas *evas = evas_new(); evas_free(evas); evas_object_line_add(evas); Check weather there is segfault. Reviewers: Hermet, raster, zmike Reviewed By: zmike Subscribers: cedric, #reviewers, #committers, zmike Tags: #efl Differential Revision:
2018-08-16edje/multisense: always return muted=true if multisense is disabledMike Blumenkrantz
Summary: there is no sound when multisense is disabled, so this is functionally equivalent to the audio being muted Reviewers: devilhorns Reviewed By: devilhorns Subscribers: cedric, #reviewers, #committers Tags: #efl_layout_engine Differential Revision: