path: root/src/lib/elementary/elm_widget.h (follow)
AgeCommit message (Collapse)Author
2017-11-07elm: Fix make check (code_widget)devs/woohyun/ui_propertyJean-Philippe Andre
elm_code_widget is causing a lot of trouble as it's relying on internal access to elementary, without being built as part of Many EAPI symbols are exported that shouldn't need to be, as they are only internals of elm.
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 events to EFL_UI_WIDGET_EVENT_XXXJean-Philippe Andre
This only affects the events (and the data type has an alias). Ref T5363
2017-10-17elm: Rename Elm.Activate to Efl.Ui.ActivateJean-Philippe Andre
Note: This is an EO-only beta API. Ref T5329
2017-10-16elm_widget: do not cache the providerMarcel Hollerbach
if turns out that caching the provider here is a problem, since a parent changing does not change the provided provider
2017-10-13efl_ui_focus: add parent_providerMarcel Hollerbach
thats just a little helper, where the logic to find and fetch the provider is bound to the position in the widget tree, this means that for example gengrid could change the way the logical parent is evalulated. (For example to map the logical parent to a item)
2017-10-10elm_widget: remove apis we dont need anymoreMarcel 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-18efl: Introduce Eina.Rect and switch EO APIs to itJean-Philippe Andre
It's a complex struct but defined in EO as a simple struct. ABI-wise it's equivalent to Eina_Rectangle. Some macros that use Eina_Rectangle also work on Eina_Rect out of the box, most of the code dealing with x,y,w,h will require no modifications either. But Eina_Rect provides direct access to a size or position 2d component, as well as the usual x,y,w,h. The field "rect" is provided as a convenience for code dealing with both Eina_Rectangle and Eina_Rect. We may or may not require it. Note: Size2D could use unsigned values but I have spotted a few places in the code that actually use -1 to indicate invalid size (as opposed to 0x0). @feature
2017-09-06elementary: atspi accessible name uses plain textShinwoo Kim
The markup information of accessible name is not necessary.
2017-09-02elm_widget: move the complete regsiter/unregister logicMarcel Hollerbach
We had here a little problem, state focus_state_eval function handled the unregisteration and consideration of the focus flags and then only called a helper function (which was a widget function), that then did the registeration in logical or regular mode. Elm scroller for example took that function overwrote it and did onyl permit logical registrations. Then again a evaluation of the focus state and flags took place, and the function considered elm_scroller should be registered as regular object, but found it to be logical. This lead to the problem that we permantently unregistered Elm.Scroller and registered it again as logical just to unregister it again. This was on the one side a performance downside. But also a bug since all items from within the Elm_Scrollers sub manager are getting reparent onto the parent, which means not the root of the scroller (the scroller itself) is the logical entrypoint to the widget but rather this reparented widget, which led to unexpected focus warps like described in T5923. tldr: this fixes T5923
2017-09-01widget: Forward focus_highlight_style to winJean-Philippe Andre
See the previous commits. All focus_highlight APIs are defined in the Widget class but only implemented at the Window level. For consistency I believe this call should also be forwarded to the window. The previous logic had absolutely no effect at all, except storing a stringshare. The day focus_highlight becomes widget-specific (i.e. each widget has its own highlight style) then this can be changed. Note: This will apply to legacy API as well. Ref T5363
2017-08-31widget: Fix legacy for focus_mouse_up_handle (EO)Jean-Philippe Andre
This removes the special code in the legacy API for elm_widget_focus_mouse_up_handle. Add an internal helper to find the first widget parent. And mark as protected. Apparently this functions is still required for the new focus manager. Ref T5363
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: Move item_loop_enabled to scrollable (EO)Jean-Philippe Andre
I was told that the scrollable interface is being redesigned for EO. This API definitely does not belong to the base Widget class, as it's quite specific to item-based scrollable widgets, such as lists and grids. Since Elm.Interface_Scrollable is itself being revamped, it is a good place to move that EO API for now. Ref T5363
2017-08-30widget: Use rectangle in show_regionJean-Philippe Andre
Also make it a property. It's asymmetric because of the force show argument, but the get is much cleaner. Ref T5363
2017-08-30widget: Remove scroll_lock from EOJean-Philippe Andre
1. Uniformize the API, which is now for internal use: This uses the same enum as scroller "movement_block" instead of 2 separate properties. Less APIs, more consistence. 2. Remove scroll_lock x/y from EO widget. I was told it is not going to exist in the upcoming scrollable interface. 3. Remove scroll hold/freeze getters. scroll hold/freeze push/pop are still there but it remains to be seen how the EO scrollable interface will exploit them. Right now they are full of bugs. Ref T5363
2017-08-30widget: Rename drag_lock to scroll_lock (EO)Jean-Philippe Andre
This also includes the drag_child_lock APIs. This had nothing to do with dragging beyond maybe the case where scrolling is done by thumbscroll (ie. finger drag). Note that the EAPI were called already scroll_lock, not drag_lock. Ref T5363
2017-08-30widget: Use rectangle on the stack for region_showJean-Philippe Andre
Follow @k-s recommendation and simply use rectangles on the stack rather than by pointer. Ref T5363
2017-08-29widget: Use rectangle for focus_hilightJean-Philippe Andre
Ref T5363
2017-08-29widget: Mark focus_region_show as protected (EO)Jean-Philippe Andre
This function is meant to be used by the widgets themselves, or internal features such as elm_access. Also remove const tag: this function call is definitely modifying the widget (panning around and all that). Ref T5363
2017-08-29widget: Simplify code with rectangle (EO)Jean-Philippe Andre
This replaces x,y,w,h with a rectangle in parts of the focus_region code. Ref T5363
2017-08-29widget: Rename hook "orientation" (EO)Jean-Philippe Andre
Renamed to on_orientation_update This internal / virtual function is in fact not overridden anywhere. Not sure it is necessary to expose it in EO API? Ref T5363
2017-08-23widget: Make sub_object add/del protected (EO)Jean-Philippe Andre
Also prefix with widget. I want to rename this as child rather than sub. It's inconsistent with the other parent/child hierarchies. Anyway the various hierarchies are confusing, so let's keep this name :) Ref T5363
2017-08-23widget: Remove focus_tree_unfocusable_handle (EO)Jean-Philippe Andre
Ref T5363
2017-08-23widget: Remove tooltip_add/del from EOJean-Philippe Andre
It's pretty much an internal function. NOTE: Tooltip API is not bound to EO (yet). Ref T5363
2017-08-23widget: Use EO function pointer for on_show_regionJean-Philippe Andre
This is as much a test of the EO function pointer as it is a clean up of this widget API.
2017-08-23widget: Remove unused legacy function nameJean-Philippe Andre
Ref T5363
2017-08-23win: Add Efl.Ui.Win_Inlined and remove parent2Jean-Philippe Andre
Inlined windows are the only use case for parent2. We might as well want to create a separate subclass for those special windows. Ref T5322 Ref T5363
2017-08-23widget: Remove parents_bounce from EOJean-Philippe Andre
It's specific to scroller and can be implemented there. Moved. Ref T5363
2017-08-23widget: Add eo event info inside widget_eventJean-Philippe Andre
This is an internal function that should probably become an overridable protected method, as it's required for proper event handling in widgets. Next step: use eo_event_info in the widgets implementations. Then remove legacy event struct. Ref T5363
2017-08-11elm_widget: do not reparent subobjs to top widget for non-elm objectsMike Blumenkrantz
this breaks handling of non-elm objects and makes it impossible to safely manage object lifetimes ref D3957 ref 62cf70034de38b17f2025e08f81b5758b3d6d6e3 @fix
2017-08-09elm: Prevent style/theme set after finalize (EO)Jean-Philippe Andre
This is only for EO obviously. style_set and theme_set should only be called when the object is being created, not after. On-the-fly style changes are complex to handle and in most cases it should be easy to simply repopulate the object after creating a new one with a new style. There are only a few cases where style_set is used long after creation of an object, like changing how a label slides, or in the evas 3d map examples. Menu seems to change the hover style a lot, so rewriting it in pure EO would need some extra work, maybe. Ref T5307 Ref T5363
2017-08-09elm: Cleanup theme and style set functionsJean-Philippe Andre
This makes efl_ui_layout_theme_set() return a Theme_Apply error code. The type is now public as Efl.Ui.Theme.Apply. Ref T5329 Ref T5363
2017-08-09widget: Remove scrollable_children from EOJean-Philippe Andre
It's an internal only function, which IMHO was not required and an overhead over the simple loop. Ref T5363
2017-08-09widget: Remove sub_obj arg to resize_object_setJean-Philippe Andre
This removes an argument that was false only for a single widget: naviframe. Hopefully this logic is now simpler, even though it involves a small hack within naviframe itself. Ref T5363
2017-07-24elm_widget: only emit events when there is really a changed managerMarcel Hollerbach
A manager change to NULL is to be used as "this object is not registered anymore" call, which will happen quite regular during shutdown.
2017-07-05Elm layout: only allow legacy for using NULL text partsDaniel Hirt
This is a follow-up to a4b79fdbe16e1495c187dc4f9da99924cf51e539. efl_part no longer supports NULL parts. NULL text parts are now aliased in legacy code beforehand. Signed-off-by: Jean-Philippe Andre <>
2017-06-30elm: Always pass valid part name inside part APIsJean-Philippe Andre
This affects the legacy content_set/get/unset part APIs. This should avoid some unwanted ERR messages in case an elm_object_ API is used on an elm widget that doesn't implement said API. What this does is request the widget for the name of the default part if NULL was passed in. Since some widgets are not elm_layout, they have to override the API themselves, which is why I made it an internal EO API (rather than a series of efl_isa()). In theory, part should never be NULL when reaching the internal implementation code in the widgets, at least for content. In EO, efl_part(obj, NULL) should be invalid. Ref T5629
2017-06-30elm_entry: use layout text/content aliases when text_set/get ↵Sungtaek Hong
content_set/get/unset Summary: - elm_entry has text part and it can be set by "guide". - However when using text_aliases_get, this cannot be found. - Add elm_obj_elm_layout_part_aliasing_eval() internal APIs to make entry use proper aliases. Test Plan: 1. Run elementary test 2. Observe search entry has guide text with "guide" part. 3. Run Entry 8. 4. Observe "" part also works. 5. Observe "icon" and "end" part works. Reviewers: id213sin, herdsman, jpeg Reviewed By: jpeg Subscribers: conr2d, cedric, jpeg Differential Revision:
2017-06-15widget: Move mirrored_automatic to Efl.Ui.BaseJean-Philippe Andre
This is, unlike what some of the documentation says, a public API on elm_object. Let's place it along mirrored for consistency, even if edje object will not implement it. Ref T5363
2017-06-15widget: Make cursor_add/del internalJean-Philippe Andre
This API is meant to be used internally to elm, not from outside. The public API only exposes part_cursor_set on layout, and a series of cursor EAPIs.
2017-06-14widget: Implement mirrored from Efl.Ui.BaseJean-Philippe Andre
Ref T5363
2017-06-12widget: Implement scale from Efl.Ui.BaseJean-Philippe Andre
2017-05-30elm_widget: optimize memory alignment for focus related fieldsJeeyong Um
2017-04-20elm_widget: update focus register workMarcel Hollerbach
now it trackes changes of the parent manager. And registers more reliable.
2017-04-20elm_widget: add logical parent to interfaceMarcel Hollerbach
and evaluate all values correctly and emit the correct events
2017-04-20elm_widget: enhance focus handling of the widgetMarcel Hollerbach
widgets will now use there widget parent as logical parent.
2017-04-20elm_widget: make it a efl_ui_focus_objectMarcel Hollerbach
it will register based on it can_focus flag