Page MenuHomePhabricator

Cleanup elm_widget.eo
Open, HighPublic

Description

elm_widget.eo should be cleaned up. API that we don't want to expose should be made internal and it should finally be possible to develop new widget outside of elementary tree.

Taken from Woohyun's comment:

  1. Properties
    • Not Implemented By Other EO classes
      • (Efl UI Widget)
        • Elm.Widget.mirrored : efl_ui_base
        • Elm.Widget.disabled : efl_ui_widget
        • Elm.Widget.mirrored_automatic : if config will be supported only for efl_ui_xxx then, efl_ui_widget
        • Elm.Widget.scale : efl_ui_base
        • Elm.Widget.widget_parent : efl_ui_widget (protected api)
        • Elm.Widget.parent_widget : efl_ui_widget (I think either parent or parent_widget needs to be removed)
        • Elm.Widget.top : efl_ui_widget -> widget_top
        • Elm.Widget.hover_object : This is only for elm_hover. If elm_hover can handle it by itself, then we can remove
        • Elm.Widget.resize_object : efl_ui_widget --> fine as it is (sub_obj arg was removed)
      • (Accessiblity) : I will talk about this with Cinoo
        • Elm.Widget.highlight removed: internal for access (unstable)
        • Elm.Widget.parent_highlight removed: internal for access (unstable)
        • Elm.Widget.access_info efl_ui_widget
      • (Window)
        • Elm.Widget.parent2 : only for inlined image Window. moved out of widget class
      • (Focus) : Needs to be handled by bu5hm4n
        • Elm.Widget.highlight_ignore
        • Elm.Widget.focus_highlight_style
        • Elm.Widget.tree_unfocusable
        • Elm.Widget.focus_custom_chain
        • Elm.Widget.can_focus -> done
        • Elm.Widget.focus_region_show_mode
        • Elm.Widget.child_can_focus
        • Elm.Widget.focus_region
        • Elm.Widget.focus_order
        • Elm.Widget.can_focus_child_list
        • Elm.Widget.focused_object
        • Elm.Widget.focus_move_policy
        • Elm.Widget.focus_move_policy_automatic
      • (Layout Related) : efl_ui_layout (?)
        • Elm.Widget.style efl_ui_widget / set is protected and before finalize only
        • Elm.Widget.theme beta
        • Elm.Widget.highlight_in_theme internal - may need to be re-exposed as protected
        • Elm.Widget.access_highlight_in_theme internal - may need to be re-exposed as protected
        • Elm.Widget.theme_object - beta
        • Elm.Widget.orientation : It sends signal with orient_mode number -> on_orientation_update
        • Elm.Widget.orientation_mode_disabled : It just disables to emit orientation signal. OK
      • (show region function registering) : Not a property
        • Elm.Widget.on_show_region_hook (clean api w. function pointer)
      • (Translate) : efl_canvas_text ? efl_ui_text ? anyway Text related class needs to care
        • Elm.Widget.domain_part_text_translatable -> intf
        • Elm.Widget.domain_translatable_part_text -> intf
    • Implemented By Other EO classes
      • Elm.Widget.item_loop_enabled : No reason to be a property. following winsets need to implement this. -> moved
      • Elm.Widget.focused_item : If there will be no item in ui world ?? --> marked as beta for now
      • Elm.Widget.part_text : Following cases are that resize object is not the main edje object. I think, applying efl_part could be an answer for this.
  1. Methods
    • Not Implemented By Other EO classes
      • (Efl UI Widget)
        • Elm.Widget.cursor_add internal
        • Elm.Widget.cursor_del internal
        • Elm.Widget.event == Elm.Widget.widget_event
        • Elm.Widget.widget_event (clean api, uses Efl.Event, protected)
        • Elm.Widget.show_region -- see also T5319
        • Elm.Widget.show_region_get -- see also T5319
        • Elm.Widget.tooltip_add
        • Elm.Widget.tooltip_del
      • (Focus) : Needs to be handled by bu5hm4n
        • Elm.Widget.newest_focus_order_get
        • Elm.Widget.focus_next_object
        • Elm.Widget.focus_next_object_get
        • Elm.Widget.focus_next_item
        • Elm.Widget.focus_next_item_get
        • Elm.Widget.focus_tree_unfocusable_handle
        • Elm.Widget.focus_custom_chain_prepend
        • Elm.Widget.focus_cycle
        • Elm.Widget.focus_list_direction_get
        • Elm.Widget.focused_object_clear
        • Elm.Widget.focus_next_get
        • Elm.Widget.focus_restore
        • Elm.Widget.focus_direction_go
        • Elm.Widget.focus_custom_chain_unset
        • Elm.Widget.focus_steal
        • Elm.Widget.focus_hide_handle
        • Elm.Widget.focus_list_next_get
        • Elm.Widget.focus_mouse_up_handle
        • Elm.Widget.focus_direction_get
        • Elm.Widget.focus_region_show
        • Elm.Widget.focus_disabled_handle
        • Elm.Widget.focus_custom_chain_append
        • Elm.Widget.focus_reconfigure
      • (Layout Related) : efl_ui_layout (?)
        • Elm.Widget.part_text_translate
        • Elm.Widget.translatable_part_text_get
        • Elm.Widget.signal_callback_add --> only for Layout
        • Elm.Widget.signal_callback_del --> only for Layout
        • Elm.Widget.signal_emit --> only for Layout
      • (ETC)
        • Elm.Widget.name_find : this is used only for elm_access. can be removed
    • Implemented By Other EO classes
      • (ETC)
        • Elm.Widget.theme_apply - this is useful even for non layout widgets
        • Elm.Widget.disable - disabled property is already supported. Remove !!
        • Elm.Widget.sub_object_add - efl_ui_widget - fine as is
        • Elm.Widget.sub_object_del - efl-ui-widget - fine as is
        • Elm.Widget.focus_highlight_geometry_get - needs to be handled by bu5hm4n
        • Elm.Widget.focus_direction_manager_is - needs to be handled by bu5hm4n
        • Elm.Widget.on_focus - needs to be handled by bu5hm4n
        • Elm.Widget.on_focus_region - needs to be handled by bu5hm4n
        • Elm.Widget.focus_direction - needs to be handled by bu5hm4n
        • Elm.Widget.focus_next_manager_is - needs to be handled by bu5hm4n
        • Elm.Widget.focus_next - needs to be handled by bu5hm4n
        • Elm.Widget.focus_register - needs to be handled by bu5hm4n
        • Elm.Widget.translate : efl_canvas_text ? efl_ui_text ? anyway Text related class needs to care
        • Elm.Widget.activate - Cinoo - removed. access is unstable
        • Elm.Widget.access - Cinoo - removed. access is unstable
  1. Scrolling: T5319
    • @eunue, @eagleeye and @akanad are making proper scroll interface for "Scrollable Winsets"
      • Properties
        • Elm.Widget.drag_lock_y - removed
        • Elm.Widget.drag_lock_x - removed
        • Elm.Widget.drag_child_locked_y - internal
        • Elm.Widget.drag_child_locked_x - internal
        • Elm.Widget.scrollable_children - internal, moved out of widget
        • Elm.Widget.scroll_hold - removed (get is not useful api)
        • Elm.Widget.scroll_freeze - removed (get is not useful api)
        • Elm.Widget.parents_bounce (internal, specific to scroller)
      • Methods
        • Elm.Widget.scroll_hold_push
        • Elm.Widget.scroll_hold_pop
        • Elm.Widget.scroll_freeze_push
        • Elm.Widget.scroll_freeze_pop
  1. Others:
    • Rename to Efl.Ui:
      • Elm.Widget.Focus.State
    • Cleanup API?
      • Elm.Theme

Details

Commits
rEFL20570f74d32d: widget: Move on_focus_update to Focus.Object
rEFL116f24fd78b5: elm: Rename struct to Efl.Ui.Widget.Focus_State
rEFL5e69a7dc93bb: elm: Remove unused declarations in eo file
rEFL1b481f0ae85b: widget: Rename events to EFL_UI_WIDGET_EVENT_XXX
rEFL2f465e1fbbe5: widget: Rename EO APIs to efl_ui_widget_xxx
rEFL72f1fbf4f1ed: widget: Rename focus_region (EO)
rEFLf75d2e6be221: widget: Make focus_mouse_up_handle internal
rEFLc9f51e450b33: widget: Fix translation of default text parts
rEFL5f96c6fb4b09: widget: Remove domain_part_text_translatable from EO
rEFLe9dfcb44ffe3: widget: Implement translation API in layout
rEFL6d0957b0a546: widget: Rename focus_manager_factory to create
rEFL4e81df7cb2ee: widget: Forward focus_highlight_style to win
rEFLb40d8296ffe5: win: Move focus_highlight_animate to widget (EO)
rEFLc0d7ea4af0e8: widget: Rename on_focus to on_focus_update (EO)
rEFL0972c49438f4: win: Merge focus_highlight_style with widget (EO)
rEFL89492d859ba6: win: Merge focus with elm_widget's (EO)
rEFL94d671c9715f: widget: Fix legacy for focus_mouse_up_handle (EO)
rEFLb6bab481aa8c: widget: Mark old focus API as beta.
rEFLf90d0d150163: widget: Simplify & document "translate"
rEFLa2729d119d94: widget: Remove part_text from EO
rEFL692282e67a28: widget: Move item_loop_enabled to scrollable (EO)
rEFLc9fcdbc68cdd: widget: Mark some functions as protected
rEFLa82ab33bed4a: widget: Use rectangle in show_region
rEFL6bb9f4fd16a2: widget: Remove scroll_lock from EO
rEFLffa041fe58f6: scroll: Rename elm enum to efl.ui
rEFLc690469fcc9d: widget: Rename drag_lock to scroll_lock (EO)
rEFLac215dba0f0b: widget: Remove drag_child_locked APIs (EO)
rEFL00862c3c9c16: widget: Use rectangle on the stack for region_show
rEFLd8f1ea44fd3e: widget: Add protected tag to focus_highlight_geometry
rEFL8c1f771a67d3: widget: Use rectangle for focus_hilight
rEFLc6c1751fe3b8: widget: Mark focus_region_show as protected (EO)
rEFL233068c30c90: widget: Simplify code with rectangle (EO)
rEFLff3a723003da: widget: Improve access_info doc
rEFLd928ba989ad8: widget: Merge on_focus_region and focus_region_get
rEFL0a0bbe5fdad3: widget: Rename hook "access" (EO)
rEFL0e98f57d6d6b: widget: Rename hook "activate" (EO)
rEFL81042b8aabba: widget: Remove useless import in EO file
rEFL1610ed12a8fe: widget: Make theme_apply a protected function (EO)
rEFL6aa309ffb80a: widget: Rename hook "disable" (EO)
rEFL6e5e8e567b77: widget: Rename hook "orientation" (EO)
rEFL3f9c239b277c: widget: Make sub_object add/del protected (EO)
rEFL876ad2481515: widget: Remove name_find from EO
rEFL3f5f675c7465: widget: Reshuffle EO file for clarity
rEFLf1ab8c8fee7f: widget: Remove more functions from EO
rEFL8a2025179531: widget: Remove highlight_in_theme from EO
rEFL1d62f9dc7c67: widget: Remove some more functions from EO
rEFLfcae72b0e305: widget: Remove 2 focus APIs from EO
rEFL91f9f414718a: widget: Remove hover_object from EO
rEFL1a65b7018d5c: widget: Remove tree_unfocusable from EO
rEFL53c966b79044: widget: Rename top to widget_top (EO)
rEFL5e7de75914c1: widget: Remove focus_tree_unfocusable_handle (EO)
rEFLec264c500248: widget: Remove tooltip_add/del from EO
rEFL509ed86cdf58: widget: Remove unused legacy function name
rEFLe9dffa723d82: win: Add Efl.Ui.Win_Inlined and remove parent2
rEFL964fafe429fb: widget: Remove parents_bounce from EO
rEFL6a08d4c5199b: widget: Remove inexisting property parent_widget
rEFL3137c2c01ed9: widget: Clean up doc for focus & focus_allow
rEFLef4cbfc9ff51: widget: Clean up orientation_mode_disabled
rEFLc4ac58945576: widget: Remove all legacy event stuff in propagate
rEFL66d241eadf6c: elm: Process all input events with EO
rEFL069747b9def7: widget: Add eo event info inside widget_event
rEFLe8826062ebde: eo: Define Efl.Event in EO
rEFL47070c7d14bb: widget: Remove import edje_types from EO
rEFLe2fca6c454c1: elm: Prevent style/theme set after finalize (EO)
rEFLdee61f409730: elm: Cleanup theme and style set functions
rEFLf60c2083a463: layout: Remove unused import in EO file
rEFL10ec5f5f80bf: widget: Remove scrollable_children from EO
rEFL23555ae461bf: widget: Clean up doc about disabled
rEFL24500384362f: widget: Remove sub_obj arg to resize_object_set
rEFL76088133dca8: naviframe: Override resize_object_set
rEFL1dad7e3e0218: widget: Move signal functions to internal only
rEFL6bfbeff47e93: widget: Move mirrored_automatic to Efl.Ui.Base
rEFLed41adf7913b: widget: Implement mirrored from Efl.Ui.Base

Related Objects

StatusAssignedTask
OpenNone
Opencedric
Opensingh.amitesh
Resolvedsingh.amitesh
Resolvedsingh.amitesh
Resolvedsingh.amitesh
Resolvedsingh.amitesh
Resolvedsingh.amitesh
Opensingh.amitesh
OpenNone
Openjpeg
Resolvedwoohyun
Resolvedsingh.amitesh
ResolvedJaehyun_Cho
Resolvedzmike
OpenNone
Openeunue
Openeunue
OpenNone
Openherdsman
Openthiepha
Opencedric
Opensmohanty
Resolvedkimcinoo
Openfelipealmeida
Resolvedjpeg
Resolvedfelipealmeida
Opencedric
Openthiepha
Opencedric
Resolvedbu5hm4n
ResolvedCHAN
Opencedric
There are a very large number of changes, so older changes are hidden. Show Older Changes
jpeg updated the task description. (Show Details)Aug 8 2017, 3:02 AM
conr2d added a comment.Aug 8 2017, 3:08 AM

Won't we support 'style' for widgets not Efl.Ui.Layout? If theme_apply() is moved under layout, it would be difficult to add style feature to widgets not layout.

jpeg updated the task description. (Show Details)Aug 8 2017, 11:24 PM
jpeg added a comment.Aug 8 2017, 11:52 PM
In T5363#94082, @conr2d wrote:

Won't we support 'style' for widgets not Efl.Ui.Layout? If theme_apply() is moved under layout, it would be difficult to add style feature to widgets not layout.

No, I agree this should remain in Widget. But I still think this should print ERR when called on a non supporting object.

jpeg updated the task description. (Show Details)Aug 23 2017, 12:08 AM
jpeg updated the task description. (Show Details)Aug 23 2017, 12:10 AM
jpeg updated the task description. (Show Details)Aug 23 2017, 1:45 AM
jpeg updated the task description. (Show Details)Aug 30 2017, 1:44 AM
jpeg updated the task description. (Show Details)
jpeg added a comment.Oct 10 2017, 2:48 AM

This is in fact mostly done now. Remaining things to do:

  • Remove unnecessary beta APIs (old focus)
  • Rename to Efl.Ui.Widget
  • Clarify theme related APIs (theme and theme_object)
  • Clarify scroll API (hold/freeze)
jpeg updated the task description. (Show Details)Oct 17 2017, 7:22 PM
jpeg added a comment.Oct 23 2017, 9:52 PM

@bu5hm4n wants to remove most "on_blah" hook functions, by simply taking advantage of overrides. It's not yet sure whether this is possible (eg. on_show_region_hook has an extra argument besides 'this').

jpeg reassigned this task from jpeg to singh.amitesh.Dec 10 2017, 10:10 PM

We need to do a review of Elm.Widget and see what still needs work.

jpeg updated the task description. (Show Details)Jan 18 2018, 12:59 AM
zmike edited projects, added Restricted Project; removed efl.Jun 11 2018, 6:54 AM
zmike edited projects, added efl: widgets; removed Restricted Project.Jun 11 2018, 8:15 AM
zmike added a subscriber: zmike.

A #Goal ticket should not be set to a milestone.