path: root/src/lib/elementary/elc_naviframe.c (follow)
AgeCommit message (Collapse)Author
2019-08-23elm: fix macro for group_calc function namingMike Blumenkrantz
this should be efl_canvas_group_group_calculate to match eolian function naming no functional changes Reviewed-by: Marcel Hollerbach <> Differential Revision:
2019-07-30elm/efl_ui: remove elm_layout_sizing_eval implementationsMike Blumenkrantz
Summary: historically there have been two methods of calculating sizes in elm: * elm_layout_sizing_eval * evas_object_smart_calculate (now efl_canvas_group_calculate) the former was used to set size hints on widgets, while the latter was used to perform internal size calcs for the widget. for things to work correctly, these functions had to be triggered in just the right order at just the right time. many hard-to-fix bugs related to widget sizing over the years have been the result of this split this patch removes elm_layout_sizing_eval implementations so that all widgets perform both internal size calcs and size hint setting all in the same function, ensuring that these are always in sync the result is that in the vast majority of cases, far fewer recalcs happen for widgets, and they are quicker to achieve their final size Depends on D9438 Reviewers: bu5hm4n Reviewed By: bu5hm4n Subscribers: bu5hm4n, cedric, #reviewers, #committers Tags: #efl_widgets Maniphest Tasks: T8059 Differential Revision:
2019-07-29efl_input_clickable: rename efl_ui_clickable to efl_input_clickableWooHyun Jung
Summary: Renamed all efl_ui_clickable_XXX to efl_input_clickable_XXX based on the discussion in T7847 ref T7847 T7976 Reviewers: zmike, bu5hm4n, segfaultxavi Reviewed By: segfaultxavi Subscribers: cedric, #reviewers, #committers Tags: #efl Maniphest Tasks: T7976, T7847 Differential Revision:
2019-05-13elementary: do not emit new events in legacyMarcel Hollerbach
Summary: This commits prepares the tree in order to mess with the events in the Efl.Ui.Clickable event. Events which have been emitted in a none legacy widget, are now emitted either with evas, when the widget is legacy due to inheritance. Or via the normal event and normal event functions. In case the widget is a legacy only widget (not used at all in the new api), then the events are for now emitted with evas_object_smart_callback_call. Cases where event handlers have been added to legacy widgets, smart events are now used, and not the eo one anymore. ref T7844 Depends on D8813 Reviewers: cedric, zmike, segfaultxavi Reviewed By: zmike Subscribers: #reviewers, #committers Tags: #efl Maniphest Tasks: T7844 Differential Revision:
2019-05-02Fix for invalid ATSPI role on naviframe page elementRadoslaw Cybulski
ATSPI role page_tab was set on invalid object and thus ignored. Reviewed-by: Marcel Hollerbach <> Differential Revision:
2019-04-18ui.widget: remove elm_widget_sub_object_parent_add from each of widgetsYeongjong Lee
since commit a1addad60e, To add myself as a sub object of parent object will be done in Efl.Ui.Widget constructor. Reviewed-by: Marcel Hollerbach <> Differential Revision:
2019-03-07elm_naviframe*: remove all legacy usage from eo filesMike Blumenkrantz
this takes the current generated output from eolian for legacy code in efl and adds it to the tree, then removes legacy references from the corresponding eo files. in the case where the entire eo file was for a legacy object, that eo file has been removed from the tree ref T7724 Reviewed-by: Cedric BAIL <> Differential Revision:
2019-03-04efl.ui: remove Efl.Ui.Theme_Apply_ErrorMike Blumenkrantz
Summary: now that the error codes have been change to be compatible with eina_error, this can be removed and will work through eina_error naturally fix T7718 Depends on D8067 Reviewers: cedric Reviewed By: cedric Subscribers: cedric, #reviewers, #committers Tags: #efl_api Maniphest Tasks: T7718 Differential Revision:
2019-03-04efl.ui: Efl.Ui.Theme_Apply_Result -> Efl.Ui.Theme_Apply_ErrorMike Blumenkrantz
Summary: this swaps the values of "no error" and "error" in order to maintain consistency with the rest of efl where the zero value means "no error" Depends on D8060 Reviewers: cedric Reviewed By: cedric Subscribers: segfaultxavi, cedric, #reviewers, #committers Tags: #efl_api Differential Revision:
2019-02-21interfaces: move animator,tick to efl.canvas.object and remove efl.animatorMike Blumenkrantz
Summary: this interface only contains a single event which is implemented only by the canvas object ref T7561 Reviewers: cedric, segfaultxavi Reviewed By: segfaultxavi Subscribers: #reviewers, #committers Tags: #efl Maniphest Tasks: T7561 Differential Revision:
2019-01-02elementary: rename Efl.Ui.Translatable -> Efl.Ui.L10nCedric BAIL
If we are to choose Efl.Ui.I18n for the internationalization support, the localization API should be named accordingly L10n. Reviewed-by: Xavi Artigas <> Differential Revision:
2018-11-21elementary: Reduce EO calls by using geometry_setChris Michael
This patch reduces EO calls by using evas_object_geometry_set rather than calling move & resize.
2018-11-20efl_ui_theme: Introduce Efl.Ui.Theme classJaehyun Cho
Summary: Efl.Ui.Theme class is required to support language bindings. Efl.Ui.Theme works based on current elm_theme features. This patch fixes T7357. Reviewers: segfaultxavi, cedric, lauromoura, woohyun, zmike, SanghyeonLee Reviewed By: segfaultxavi, SanghyeonLee Subscribers: SanghyeonLee, herdsman, #reviewers, #committers Tags: #efl Maniphest Tasks: T7357 Differential Revision:
2018-11-15elm: update widgets that have documented focus and unfocused eventsMarcel Hollerbach
this emits focus and unfocus on those widgets. fixes T7386 Depends on D7124 Differential Revision:
2018-11-09elm naviframe - fix buffer size handling and strncatCarsten Haitzler (Rasterman)
strncat where the size passed is tghe size of the string is pointless. it is strcat. so chekc before the strcat... and be simpler and honest
2018-10-26elc_naviframe: Fix to show prev item when top item is deletedJaehyun Cho
When top item is deleted, previous item should be shown.
2018-08-13elm/naviframe: implement invalidate method for naviframe itemsMike Blumenkrantz
Summary: move most of the _item_free() calls to the invalidate method and unset some delete callbacks on content items to avoid invalid calls during deletion calling any of this during the object destructor is invalid because the parent object can no longer be accessed at this time fix T7236 Reviewers: Jaehyun_Cho Reviewed By: Jaehyun_Cho Subscribers: #reviewers, stefan_schmidt, cedric, #committers Tags: #efl_widgets Maniphest Tasks: T7236 Differential Revision:
2018-06-25elc_naviframe: Wrap calls to edje_object_part_object_get withChris Michael
Summary: freeze/thaw @ref T6884 Depends on D6413 Reviewers: zmike, ManMower Reviewed By: zmike Subscribers: cedric, #committers Tags: #efl Maniphest Tasks: T6884 Differential Revision:
2018-05-24elementary: due to lifecycle difference between legacy object and unified ↵Cedric BAIL
object, we need to track their lifecycle more explicitely. It is my understanding that some items view are created with efl_add directly and manipulate VIEW directly with Eo new API. This clash with the inconsistent behavior that evas_object_del expect. To work around this, we track object life by explictely relying on efl_wref_add while holding the pointer to the object.
2018-05-24efl: major rewrite of efl_part.Cedric BAIL
The interface efl_part_get should not be directly called from C, but the efl_part wrapper should. It rely on efl_noref to properly destroy the object. Binding can control the lifecycle of the reference the way they want by either calling the wrapper or efl_part_get directly. It also means that the ugly ___efl_auto_unref_set doesn't need to be exposed outside of EFL anymore. Differential Revision:
2018-04-24Efl.Gfx.Entity (from Efl.Gfx)Xavi Artigas
Ref Reviewed-by: Cedric Bail <>
2018-04-24Efl.Access.Object (from Efl.Access)Xavi Artigas
Ref Reviewed-by: Cedric Bail <>
2018-04-17eolian gen: enable constness generation on property getter implsDaniel Kolesa
This changes a lot of things all across the EFL. Previously, methods tagged @const had both their external prototype and internal impl generated with const on object, while property getters only had const on the external API. This is now changed and it all has const everywhere. Ref T6859.
2018-02-15Efl.Access: resolve more name conflictsMike Blumenkrantz
children -> access_children type -> access_type
2018-02-15naviframe: remove 'style' propertyMike Blumenkrantz
2018-02-15efl_widget_item: remove 'del'Mike Blumenkrantz
this now uses regular efl_del
2018-02-15efl.access: name -> i18n_nameMike Blumenkrantz
2018-01-16efl_ui_focus: merge efl_ui_focus_user and efl_ui_focus_object into one mixinYeongjong Lee
Summary: focus_user and focus_object are similar classes. by merging them into one mixin, we can maintain consistency. Test Plan: make check Reviewers: bu5hm4n Subscribers: cedric, Jaehyun_Cho, woohyun, jpeg Differential Revision:
2018-01-08widget: rename elm widget to Efl.Ui.Widget.Amitesh Singh
2017-12-05efl_ui_focus_user/object: fix api duplicationMarcel Hollerbach
just like the commit before, this fixes duplicated api names
2017-12-05edje: rename intf Efl.Canvas.Layout.Signal to Efl.Layout.SignalAmitesh Singh
2017-11-16elm: Define and rename internal atspi struct in EOJean-Philippe Andre
This thing is used by only 2 EO APIs that are marked as @beta. I wonder if the @beta tag or the ptr() expression made it work for eolian, because it simply wasn't defined in EO. I'm renaming it just so that it's more consistent with the new names used by atspi (and EO API in general).
2017-11-16elm: Rename elm_interface_atspi_widget_action mixinLukasz Stanislawski
Reviewers: jpeg Subscribers: jenkins, cedric, jpeg Differential Revision:
2017-11-13elc_naviframe.c: Append title, subtitle while reading title and subtitle in ↵Shilpa Singh
naviframe. Summary: read title along with naviframe item title and subtitle along with naviframe subtitle. Test Plan: In accessibility mode, when naviframe title area is focused, The text title and subtitle should be read out along with item's title and subtitle. Reviewers: kimcinoo Reviewed By: kimcinoo Subscribers: cedric, govi, rajeshps, jpeg Differential Revision:
2017-11-07elm: Create legacy widgets with elm_legacy_addJean-Philippe Andre
This will be used to solve issues around style_set: if the widget is legacy or pure eo we may need to select a different style. So in the constructor we need to know whether we are legacy or eo. Note that calling style_set in finalize only is too late as we would lose information such as efl_text_set() called inside efl_add().
2017-10-24widget: Rename EO APIs to efl_ui_widget_xxxJean-Philippe Andre
This only changes the eo_prefix for APIs. Ref T5363
2017-10-19elm: rename Elm_Interface_Atspi_Accessible interfaceLukasz Stanislawski
Subscribers: cedric, jpeg Differential Revision:
2017-10-10elm_naviframe: remove old api!Marcel Hollerbach
2017-09-26widget: Implement translation API in layoutJean-Philippe Andre
This moves the API entry points from Widget to Layout parts. I don't think the other widgets support translation, but that is easy to fix. The actual code implementation remains in elm_widget.c. Legacy-only widgets are covered by Part_Legacy, while all EO widgets that have text inherit from Layout (except Win but I don't think the window title was translatable in legacy). This removes 2/3 remaining part APIs from Widget. Ref T5363
2017-09-26elm: Introduce interface Efl.Ui.TranslatableJean-Philippe Andre
This will be used to replace the part translation API in Elm.Widget. It should work for both parts and non-parts (ie. the main text of a button, for instance). For now I'm taking the following approach: - All efl_text_set/get strings are untranslatable, i.e. get() returns the visible string, set replaces and can not be translated. - translatable_text_set/get needs to be used to enable automatic translation, which in turns calls efl_text_set to modify the visible string. Thus, translatable applications will have to use efl_ui_translatable_text_set a lot more than efl_text_set, unless they translate strings application-side. Note that some other frameworks take a simpler approach equivalent to calling efl_text_set() with an already translated text. This prevents runtime language changes of the application, unless the application handles them specifically.
2017-09-21elm: Move base implementation for efl_part in widgetJean-Philippe Andre
This means that ALL part handles inherit from the base part class Efl.Ui.Widget.Part. Layout is the only exception where Efl.Part is specially overridden. This is a first step towards generic part APIs, including background in all widgets.
2017-09-13edje/elm: Rename _internal_ to _part_ (EO)Jean-Philippe Andre
In Edje and Elementary, we have part objects, which are what is returned by the interface efl_part(). Those objects can't be of an opaque type as this doesn't work nicely with strongly typed languages such as C++ or C#. In JS, Lua, C the types are weak and mostly runtime-based so it doesn't matter much. As a consequence, the documentation and the types need to look nice in this EO API. Thus, we remove the abusive term "internal" and explicitly call all those classes "part" something. Eventually we want the types to be declared in the EO file so bindings (C#, C++, ...) can generate the proper access methods, returning the best possible types. Note that right now a few of those part types are used in the legacy API but don't actually need to be exposed externally. This is kind of a mega commit that does all the renaming at once, but it's really just a big sed operation. The power of good IDEs :) Ref T5315 Ref T5306
2017-09-06naviframe: Fix to finish transition for newly pushed itemJaehyun Cho
Suppose naviframe top item is "A" and a new item "B" is newly pushed. In this case, if "A" is deleted by elm_object_item_del() before transition for "B" is started, then signal for "B" is also not sent and "B" does not become visible. The above issue happened if the transition effect was implemented by using deferred signals (i.e. "pushed,deferred" and "popped,deferred"). To resolve the above issue, the signal only for the deleted item is not sent. Suppose naviframe top item is "A" and a new item "B" is newly pushed. In this case, if "B" is deleted by elm_object_item_del() before transition for "B" is started, then signal for "A" is still sent and "A" becomes invisible. To resolve the above issue, if the deleted item is the top item and it is in the middle of item push, then all the signals related to the deleted item are not sent.
2017-09-06Revert "naviframe: Fix to finish transition for newly pushed item"Jaehyun Cho
This reverts commit 8574128b67d336e796ca0f0abc9b97e65f7799d4.
2017-09-04naviframe: Fix to finish transition for newly pushed itemJaehyun Cho
If current item was deleted while new item was pushed, then the signals for the newly pushed item was not sent. The above issue happened if the transition effect was implemented by using deferred signals (i.e. "pushed,deferred" and "popped,deferred"). To resolve the above issue, the signals only for the deleted item is not sent.
2017-08-31naviframe: Fix to load default style if the given style does not existJaehyun Cho
Naviframe item theme name is combined with item style name and widget style name. Therefore, if the item theme name is not found, then "item/basic" item style name should be loaded as a default item style name.
2017-08-31widget: Mark old focus API as beta.Jean-Philippe Andre
It's not beta. It's about to die. Also, move #define ELM_WIDGET_BETA to the common header file, as it is consequently required by ALL widgets. :( Ping @bu5hm4n :) Ref T5363
2017-08-30widget: Simplify & document "translate"Jean-Philippe Andre
This is a protected function. It doesn't need to return anything, as all implementation just returned true, always. Also, the legacy API was just a wrapper doing nothing special (except verify that we have a widget, which the recursive code already does). Tested with fr_FR :) Ref T5363
2017-08-29widget: Rename hook "access" (EO)Jean-Philippe Andre
This is also another protected and beta API. Meant to be overridden by subclasses, but belongs to a still unstable API. The difference between the internal legacy and the EO API is really bad. Same as with activate (previous commit). Ref T5363
2017-08-23elm: Use a macro to handle key bindingsJean-Philippe Andre
This factorizes the code and makes most widgets handle key down events in the same way: - check that the object is not disabled, event is not on hold - figure out the key binding based on the class name - mark event as on hold The class name is usually MY_CLASS_NAME but in some cases it was MY_CLASS_NAME_LEGACY which may be different from the EO class name (eg. elm_win vs. Efl.Ui.Win). In that case the key bindings are broken. This breaks key bindings for the following widgets: - Win (focus) - Image ("clicked") - Video (move, play) This fixes key bindings for the following widgets: - Nstate Some widgets remain broken: - Photocam / Efl.Ui.Image.Zoomable A patch will be applied to restore the key bindings for the above breaks.