From 6864495c993ce38cd0768b98eb41c617b32935e8 Mon Sep 17 00:00:00 2001 From: Jean-Philippe Andre Date: Mon, 7 Aug 2017 16:13:38 +0900 Subject: [PATCH] elm: Move elm_layout_sizing_eval to legacy elm_layout_sizing_eval() marks an object as requiring recalc. Unfortunately, it's been massively abused by various widgets into actually doing the calc, or the min calc. So we end up with one API that has 3 different definitions depending on the widget type: 1. Mark as requiring recalc (correct, respects doc, elm_layout) 2. Calculate min size and other size hints 3. Actually do some geometry modification I believe we need to clarify these 3 requirements into 3 very clear and specific APIs in elementary. Right now we have similar functions in evas for 1 (evas_object_smart_changed) and 3 (smart_calculate). But their exact definition also isn't necessarily what we want for elementary. Another clear problem is that layout_eval does not do any calculation (in theory), so the "eval" word is a bit of a stretch here. Once we're sure about the exact API we want, we can add this back to EO and make it work across our EO widgets. For now let's just keep the legacy API, and its EO overrides, as is. Ref T5315 --- src/lib/elementary/efl_ui_button.c | 1 + src/lib/elementary/efl_ui_button.eo | 1 - src/lib/elementary/efl_ui_clock.c | 1 + src/lib/elementary/efl_ui_clock.eo | 1 - src/lib/elementary/efl_ui_panes.c | 2 +- src/lib/elementary/efl_ui_progressbar.c | 1 + src/lib/elementary/efl_ui_progressbar.eo | 1 - src/lib/elementary/efl_ui_slider.c | 1 + src/lib/elementary/efl_ui_slider.eo | 1 - src/lib/elementary/efl_ui_text.c | 1 + src/lib/elementary/efl_ui_text.eo | 1 - src/lib/elementary/efl_ui_video.c | 1 + src/lib/elementary/efl_ui_video.eo | 1 - src/lib/elementary/elc_ctxpopup.c | 1 + src/lib/elementary/elc_fileselector_entry.c | 1 + src/lib/elementary/elc_multibuttonentry.c | 1 + src/lib/elementary/elc_naviframe.c | 1 + src/lib/elementary/elc_player.c | 1 + src/lib/elementary/elc_popup.c | 1 + src/lib/elementary/elm_actionslider.c | 1 + src/lib/elementary/elm_actionslider.eo | 1 - src/lib/elementary/elm_bg.c | 1 + src/lib/elementary/elm_bg.eo | 1 - src/lib/elementary/elm_bubble.c | 1 + src/lib/elementary/elm_bubble.eo | 1 - src/lib/elementary/elm_calendar.c | 1 + src/lib/elementary/elm_calendar.eo | 1 - src/lib/elementary/elm_colorselector.c | 1 + src/lib/elementary/elm_colorselector.eo | 1 - src/lib/elementary/elm_ctxpopup.eo | 1 - src/lib/elementary/elm_dayselector.c | 1 + src/lib/elementary/elm_dayselector.eo | 1 - src/lib/elementary/elm_entry.c | 3 ++- src/lib/elementary/elm_entry.eo | 1 - src/lib/elementary/elm_fileselector_entry.eo | 1 - src/lib/elementary/elm_flipselector.c | 1 + src/lib/elementary/elm_flipselector.eo | 1 - src/lib/elementary/elm_gengrid.c | 1 + src/lib/elementary/elm_gengrid.eo | 1 - src/lib/elementary/elm_genlist.c | 1 + src/lib/elementary/elm_genlist.eo | 1 - src/lib/elementary/elm_hover.c | 1 + src/lib/elementary/elm_hover.eo | 1 - src/lib/elementary/elm_index.c | 1 + src/lib/elementary/elm_index.eo | 1 - src/lib/elementary/elm_inwin.c | 1 + src/lib/elementary/elm_inwin.eo | 1 - src/lib/elementary/elm_label.c | 1 + src/lib/elementary/elm_label.eo | 1 - src/lib/elementary/elm_layout.c | 11 +++++--- src/lib/elementary/elm_layout.eo | 35 ------------------------- src/lib/elementary/elm_layout_legacy.h | 39 ++++++++++++++++++++++++++++ src/lib/elementary/elm_list.c | 1 + src/lib/elementary/elm_list.eo | 1 - src/lib/elementary/elm_multibuttonentry.eo | 1 - src/lib/elementary/elm_naviframe.eo | 1 - src/lib/elementary/elm_panel.c | 1 + src/lib/elementary/elm_panel.eo | 1 - src/lib/elementary/elm_player.eo | 1 - src/lib/elementary/elm_popup.eo | 1 - src/lib/elementary/elm_priv.h | 4 +++ src/lib/elementary/elm_scroller.c | 1 + src/lib/elementary/elm_scroller.eo | 1 - src/lib/elementary/elm_segment_control.c | 1 + src/lib/elementary/elm_segment_control.eo | 1 - src/lib/elementary/elm_separator.c | 1 + src/lib/elementary/elm_separator.eo | 1 - src/lib/elementary/elm_slideshow.c | 1 + src/lib/elementary/elm_slideshow.eo | 1 - src/lib/elementary/elm_spinner.c | 1 + src/lib/elementary/elm_spinner.eo | 1 - 71 files changed, 86 insertions(+), 73 deletions(-) diff --git a/src/lib/elementary/efl_ui_button.c b/src/lib/elementary/efl_ui_button.c index 1a3c8fb..2a0ea7b 100644 --- a/src/lib/elementary/efl_ui_button.c +++ b/src/lib/elementary/efl_ui_button.c @@ -487,6 +487,7 @@ ELM_LAYOUT_TEXT_ALIASES_IMPLEMENT() #define EFL_UI_BUTTON_EXTRA_OPS \ ELM_LAYOUT_CONTENT_ALIASES_OPS(), \ ELM_LAYOUT_TEXT_ALIASES_OPS(), \ + ELM_LAYOUT_SIZING_EVAL_OPS(efl_ui_button), \ EFL_CANVAS_GROUP_ADD_OPS(efl_ui_button) #include "efl_ui_button.eo.c" diff --git a/src/lib/elementary/efl_ui_button.eo b/src/lib/elementary/efl_ui_button.eo index 3fb19f8..83fea41 100644 --- a/src/lib/elementary/efl_ui_button.eo +++ b/src/lib/elementary/efl_ui_button.eo @@ -22,7 +22,6 @@ class Efl.Ui.Button (Elm.Layout, Efl.Ui.Clickable, Efl.Ui.Autorepeat, Efl.Text, Elm.Widget.theme_apply; Elm.Widget.sub_object_del; Elm.Widget.widget_event; - Elm.Layout.sizing_eval; Elm.Interface.Atspi_Widget_Action.elm_actions { get; } Efl.Part.part; Efl.Text.text { get; set; } diff --git a/src/lib/elementary/efl_ui_clock.c b/src/lib/elementary/efl_ui_clock.c index b93ed4b..98bd90b 100644 --- a/src/lib/elementary/efl_ui_clock.c +++ b/src/lib/elementary/efl_ui_clock.c @@ -1205,6 +1205,7 @@ _efl_ui_clock_class_constructor(Efl_Class *klass) /* Internal EO APIs and hidden overrides */ #define EFL_UI_CLOCK_EXTRA_OPS \ + ELM_LAYOUT_SIZING_EVAL_OPS(efl_ui_clock), \ EFL_CANVAS_GROUP_ADD_DEL_OPS(efl_ui_clock) #include "efl_ui_clock.eo.c" diff --git a/src/lib/elementary/efl_ui_clock.eo b/src/lib/elementary/efl_ui_clock.eo index 9ac84ad..67bc072 100644 --- a/src/lib/elementary/efl_ui_clock.eo +++ b/src/lib/elementary/efl_ui_clock.eo @@ -250,7 +250,6 @@ class Efl.Ui.Clock (Elm.Layout) Elm.Widget.disable; Elm.Widget.on_focus; Elm.Widget.translate; - Elm.Layout.sizing_eval; } events { changed; [[Called when clock changed]] diff --git a/src/lib/elementary/efl_ui_panes.c b/src/lib/elementary/efl_ui_panes.c index 4149d87..3b9a97a 100644 --- a/src/lib/elementary/efl_ui_panes.c +++ b/src/lib/elementary/efl_ui_panes.c @@ -555,7 +555,7 @@ _efl_ui_panes_class_constructor(Efl_Class *klass) /* Internal EO APIs and hidden overrides */ -ELM_LAYOUT_CONTENT_ALIASES_IMPLEMENT() +ELM_LAYOUT_CONTENT_ALIASES_IMPLEMENT(); #define EFL_UI_PANES_EXTRA_OPS \ EFL_CANVAS_GROUP_ADD_OPS(efl_ui_panes), \ diff --git a/src/lib/elementary/efl_ui_progressbar.c b/src/lib/elementary/efl_ui_progressbar.c index df573d0..56a332f 100644 --- a/src/lib/elementary/efl_ui_progressbar.c +++ b/src/lib/elementary/efl_ui_progressbar.c @@ -686,6 +686,7 @@ ELM_LAYOUT_TEXT_ALIASES_IMPLEMENT() #define EFL_UI_PROGRESSBAR_EXTRA_OPS \ ELM_LAYOUT_CONTENT_ALIASES_OPS(), \ ELM_LAYOUT_TEXT_ALIASES_OPS(), \ + ELM_LAYOUT_SIZING_EVAL_OPS(efl_ui_progressbar), \ EFL_CANVAS_GROUP_ADD_DEL_OPS(efl_ui_progressbar) #include "efl_ui_progressbar.eo.c" diff --git a/src/lib/elementary/efl_ui_progressbar.eo b/src/lib/elementary/efl_ui_progressbar.eo index 3791f30..4b3c019 100644 --- a/src/lib/elementary/efl_ui_progressbar.eo +++ b/src/lib/elementary/efl_ui_progressbar.eo @@ -54,7 +54,6 @@ class Efl.Ui.Progressbar (Elm.Layout, Efl.Ui.Range, Elm.Widget.focus_next_manager_is; Elm.Widget.focus_direction_manager_is; Elm.Widget.sub_object_del; - Elm.Layout.sizing_eval; Efl.Ui.Range.span_size { get; set; } Efl.Ui.Range.range_value { get; set; } Efl.Ui.Range.range_unit_format { get; set; } diff --git a/src/lib/elementary/efl_ui_slider.c b/src/lib/elementary/efl_ui_slider.c index ed78fbf..b8445e1 100644 --- a/src/lib/elementary/efl_ui_slider.c +++ b/src/lib/elementary/efl_ui_slider.c @@ -1788,6 +1788,7 @@ ELM_LAYOUT_TEXT_ALIASES_IMPLEMENT() #define EFL_UI_SLIDER_EXTRA_OPS \ ELM_LAYOUT_CONTENT_ALIASES_OPS(), \ ELM_LAYOUT_TEXT_ALIASES_OPS(), \ + ELM_LAYOUT_SIZING_EVAL_OPS(efl_ui_slider), \ EFL_CANVAS_GROUP_ADD_DEL_OPS(efl_ui_slider) #include "efl_ui_slider.eo.c" diff --git a/src/lib/elementary/efl_ui_slider.eo b/src/lib/elementary/efl_ui_slider.eo index ab63a50..83c86c3 100644 --- a/src/lib/elementary/efl_ui_slider.eo +++ b/src/lib/elementary/efl_ui_slider.eo @@ -122,7 +122,6 @@ class Efl.Ui.Slider (Elm.Layout, Efl.Ui.Range, Elm.Widget.focus_direction_manager_is; Elm.Widget.on_focus; Elm.Widget.widget_event; - Elm.Layout.sizing_eval; Efl.Ui.Range.span_size { get; set; } Efl.Ui.Range.range_value { get; set; } Efl.Ui.Range.range_unit_format { get; set; } diff --git a/src/lib/elementary/efl_ui_text.c b/src/lib/elementary/efl_ui_text.c index 311a5be..05a97b7 100644 --- a/src/lib/elementary/efl_ui_text.c +++ b/src/lib/elementary/efl_ui_text.c @@ -5341,6 +5341,7 @@ ELM_LAYOUT_CONTENT_ALIASES_IMPLEMENT() #define EFL_UI_TEXT_EXTRA_OPS \ EFL_CANVAS_GROUP_ADD_DEL_OPS(efl_ui_text), \ + ELM_LAYOUT_SIZING_EVAL_OPS(efl_ui_text), \ ELM_LAYOUT_CONTENT_ALIASES_OPS() #include "efl_ui_text.eo.c" diff --git a/src/lib/elementary/efl_ui_text.eo b/src/lib/elementary/efl_ui_text.eo index 94abc9d..086af59 100644 --- a/src/lib/elementary/efl_ui_text.eo +++ b/src/lib/elementary/efl_ui_text.eo @@ -415,7 +415,6 @@ class Efl.Ui.Text (Elm.Layout, Elm.Interface_Scrollable, Efl.Ui.Clickable, Elm.Widget.disable; Elm.Widget.sub_object_del; Elm.Widget.focus_next_manager_is; - Elm.Layout.sizing_eval; Elm.Interface_Scrollable.policy { set; } Elm.Interface_Scrollable.bounce_allow { set; } Elm.Interface.Atspi_Accessible.state_set { get; } diff --git a/src/lib/elementary/efl_ui_video.c b/src/lib/elementary/efl_ui_video.c index d816001..fc71e24 100644 --- a/src/lib/elementary/efl_ui_video.c +++ b/src/lib/elementary/efl_ui_video.c @@ -473,6 +473,7 @@ elm_video_play_position_get(const Evas_Object *obj) /* Internal EO APIs and hidden overrides */ #define EFL_UI_VIDEO_EXTRA_OPS \ + ELM_LAYOUT_SIZING_EVAL_OPS(efl_ui_video), \ EFL_CANVAS_GROUP_ADD_DEL_OPS(efl_ui_video) #include "efl_ui_video.eo.c" diff --git a/src/lib/elementary/efl_ui_video.eo b/src/lib/elementary/efl_ui_video.eo index 37a0386..4102da4 100644 --- a/src/lib/elementary/efl_ui_video.eo +++ b/src/lib/elementary/efl_ui_video.eo @@ -67,7 +67,6 @@ class Efl.Ui.Video (Elm.Layout, Efl.File, Elm.Widget.focus_next_manager_is; Elm.Widget.focus_direction_manager_is; Elm.Widget.widget_event; - Elm.Layout.sizing_eval; Elm.Interface.Atspi_Widget_Action.elm_actions { get; } } } diff --git a/src/lib/elementary/elc_ctxpopup.c b/src/lib/elementary/elc_ctxpopup.c index 71de4ff..4d10170 100644 --- a/src/lib/elementary/elc_ctxpopup.c +++ b/src/lib/elementary/elc_ctxpopup.c @@ -1585,6 +1585,7 @@ ELM_PART_CONTENT_DEFAULT_SET(elm_ctxpopup, "default") /* Internal EO APIs and hidden overrides */ #define ELM_CTXPOPUP_EXTRA_OPS \ + ELM_LAYOUT_SIZING_EVAL_OPS(elm_ctxpopup), \ ELM_PART_CONTENT_DEFAULT_OPS(elm_ctxpopup), \ EFL_CANVAS_GROUP_ADD_DEL_OPS(elm_ctxpopup) diff --git a/src/lib/elementary/elc_fileselector_entry.c b/src/lib/elementary/elc_fileselector_entry.c index c95f193..e25feba 100644 --- a/src/lib/elementary/elc_fileselector_entry.c +++ b/src/lib/elementary/elc_fileselector_entry.c @@ -690,6 +690,7 @@ ELM_PART_CONTENT_DEFAULT_SET(elm_fileselector_entry, "button icon") #define ELM_FILESELECTOR_ENTRY_EXTRA_OPS \ ELM_PART_CONTENT_DEFAULT_OPS(elm_fileselector_entry), \ + ELM_LAYOUT_SIZING_EVAL_OPS(elm_fileselector_entry), \ EFL_CANVAS_GROUP_ADD_DEL_OPS(elm_fileselector_entry) #include "elm_fileselector_entry.eo.c" diff --git a/src/lib/elementary/elc_multibuttonentry.c b/src/lib/elementary/elc_multibuttonentry.c index 4458a83..22b5937 100644 --- a/src/lib/elementary/elc_multibuttonentry.c +++ b/src/lib/elementary/elc_multibuttonentry.c @@ -2143,6 +2143,7 @@ ELM_PART_OVERRIDE_TEXT_GET(elm_multibuttonentry, ELM_MULTIBUTTONENTRY, ELM_LAYOU /* Internal EO APIs and hidden overrides */ #define ELM_MULTIBUTTONENTRY_EXTRA_OPS \ + ELM_LAYOUT_SIZING_EVAL_OPS(elm_multibuttonentry), \ EFL_CANVAS_GROUP_ADD_DEL_OPS(elm_multibuttonentry) #include "elm_multibuttonentry_item.eo.c" diff --git a/src/lib/elementary/elc_naviframe.c b/src/lib/elementary/elc_naviframe.c index 20213e3..89042e0 100644 --- a/src/lib/elementary/elc_naviframe.c +++ b/src/lib/elementary/elc_naviframe.c @@ -2082,6 +2082,7 @@ ELM_PART_OVERRIDE_TEXT_GET(elm_naviframe, ELM_NAVIFRAME, ELM_LAYOUT, Elm_Navifra /* Internal EO APIs and hidden overrides */ #define ELM_NAVIFRAME_EXTRA_OPS \ + ELM_LAYOUT_SIZING_EVAL_OPS(elm_naviframe), \ EFL_CANVAS_GROUP_ADD_DEL_OPS(elm_naviframe) #include "elm_naviframe_item.eo.c" diff --git a/src/lib/elementary/elc_player.c b/src/lib/elementary/elc_player.c index 3fde611..63f57f0 100644 --- a/src/lib/elementary/elc_player.c +++ b/src/lib/elementary/elc_player.c @@ -718,6 +718,7 @@ ELM_PART_CONTENT_DEFAULT_SET(elm_player, "video") #define ELM_PLAYER_EXTRA_OPS \ ELM_PART_CONTENT_DEFAULT_OPS(elm_player), \ + ELM_LAYOUT_SIZING_EVAL_OPS(elm_player), \ EFL_CANVAS_GROUP_ADD_DEL_OPS(elm_player) #include "elm_player.eo.c" diff --git a/src/lib/elementary/elc_popup.c b/src/lib/elementary/elc_popup.c index e936a4e..7f10f45 100644 --- a/src/lib/elementary/elc_popup.c +++ b/src/lib/elementary/elc_popup.c @@ -1944,6 +1944,7 @@ ELM_PART_CONTENT_DEFAULT_SET(elm_popup, "default") #define ELM_POPUP_EXTRA_OPS \ ELM_PART_CONTENT_DEFAULT_OPS(elm_popup), \ + ELM_LAYOUT_SIZING_EVAL_OPS(elm_popup), \ EFL_CANVAS_GROUP_ADD_DEL_OPS(elm_popup) #include "elm_popup.eo.c" diff --git a/src/lib/elementary/elm_actionslider.c b/src/lib/elementary/elm_actionslider.c index 0a60c36..a7cc0f3 100644 --- a/src/lib/elementary/elm_actionslider.c +++ b/src/lib/elementary/elm_actionslider.c @@ -672,6 +672,7 @@ ELM_LAYOUT_TEXT_ALIASES_IMPLEMENT() #define ELM_ACTIONSLIDER_EXTRA_OPS \ ELM_LAYOUT_TEXT_ALIASES_OPS(), \ + ELM_LAYOUT_SIZING_EVAL_OPS(elm_actionslider), \ EFL_CANVAS_GROUP_ADD_OPS(elm_actionslider) #include "elm_actionslider.eo.c" diff --git a/src/lib/elementary/elm_actionslider.eo b/src/lib/elementary/elm_actionslider.eo index 6d0be32..d91d576 100644 --- a/src/lib/elementary/elm_actionslider.eo +++ b/src/lib/elementary/elm_actionslider.eo @@ -74,7 +74,6 @@ class Elm.Actionslider (Elm.Layout, Efl.Ui.Selectable) Elm.Widget.focus_next_manager_is; Elm.Widget.focus_direction_manager_is; Elm.Widget.theme_apply; - Elm.Layout.sizing_eval; Efl.Part.part; } events { diff --git a/src/lib/elementary/elm_bg.c b/src/lib/elementary/elm_bg.c index 3386f7e..073dc1e 100644 --- a/src/lib/elementary/elm_bg.c +++ b/src/lib/elementary/elm_bg.c @@ -286,6 +286,7 @@ ELM_LAYOUT_CONTENT_ALIASES_IMPLEMENT() #define ELM_BG_EXTRA_OPS \ ELM_LAYOUT_CONTENT_ALIASES_OPS(), \ + ELM_LAYOUT_SIZING_EVAL_OPS(elm_bg), \ EFL_CANVAS_GROUP_ADD_OPS(elm_bg) #include "elm_bg.eo.c" diff --git a/src/lib/elementary/elm_bg.eo b/src/lib/elementary/elm_bg.eo index 8ec3915..2431d16 100644 --- a/src/lib/elementary/elm_bg.eo +++ b/src/lib/elementary/elm_bg.eo @@ -96,7 +96,6 @@ class Elm.Bg (Elm.Layout, Efl.File) implements { class.constructor; Efl.Object.constructor; - Elm.Layout.sizing_eval; Efl.File.file { get; set; } } } diff --git a/src/lib/elementary/elm_bubble.c b/src/lib/elementary/elm_bubble.c index d58ac97..a7dc0a6 100644 --- a/src/lib/elementary/elm_bubble.c +++ b/src/lib/elementary/elm_bubble.c @@ -294,6 +294,7 @@ ELM_LAYOUT_TEXT_ALIASES_IMPLEMENT() #define ELM_BUBBLE_EXTRA_OPS \ ELM_LAYOUT_CONTENT_ALIASES_OPS(), \ ELM_LAYOUT_TEXT_ALIASES_OPS(), \ + ELM_LAYOUT_SIZING_EVAL_OPS(elm_bubble), \ EFL_CANVAS_GROUP_ADD_OPS(elm_bubble) #include "elm_bubble.eo.c" diff --git a/src/lib/elementary/elm_bubble.eo b/src/lib/elementary/elm_bubble.eo index ff0bd7c..cd3fc90 100644 --- a/src/lib/elementary/elm_bubble.eo +++ b/src/lib/elementary/elm_bubble.eo @@ -43,7 +43,6 @@ class Elm.Bubble (Elm.Layout, Efl.Ui.Clickable) Elm.Widget.focus_next; Elm.Widget.focus_direction_manager_is; Elm.Widget.access; - Elm.Layout.sizing_eval; Efl.Part.part; } } diff --git a/src/lib/elementary/elm_calendar.c b/src/lib/elementary/elm_calendar.c index ed80c45..ecab313 100644 --- a/src/lib/elementary/elm_calendar.c +++ b/src/lib/elementary/elm_calendar.c @@ -2341,6 +2341,7 @@ _elm_calendar_elm_interface_atspi_widget_action_elm_actions_get(Eo *obj EINA_UNU /* Internal EO APIs and hidden overrides */ #define ELM_CALENDAR_EXTRA_OPS \ + ELM_LAYOUT_SIZING_EVAL_OPS(elm_calendar), \ EFL_CANVAS_GROUP_ADD_DEL_OPS(elm_calendar) #include "elm_calendar.eo.c" diff --git a/src/lib/elementary/elm_calendar.eo b/src/lib/elementary/elm_calendar.eo index 0db7e22..4e30747 100644 --- a/src/lib/elementary/elm_calendar.eo +++ b/src/lib/elementary/elm_calendar.eo @@ -419,7 +419,6 @@ class Elm.Calendar (Elm.Layout, Elm.Interface.Atspi_Widget_Action) Elm.Widget.focus_next; Elm.Widget.on_focus; Elm.Widget.widget_event; - Elm.Layout.sizing_eval; Elm.Interface.Atspi_Widget_Action.elm_actions { get; } } events { diff --git a/src/lib/elementary/elm_colorselector.c b/src/lib/elementary/elm_colorselector.c index 5744118..334c2ee 100644 --- a/src/lib/elementary/elm_colorselector.c +++ b/src/lib/elementary/elm_colorselector.c @@ -2730,6 +2730,7 @@ _elm_color_item_elm_interface_atspi_accessible_name_get(Eo *eo_it, Elm_Color_Ite /* Internal EO APIs and hidden overrides */ #define ELM_COLORSELECTOR_EXTRA_OPS \ + ELM_LAYOUT_SIZING_EVAL_OPS(elm_colorselector), \ EFL_CANVAS_GROUP_ADD_DEL_OPS(elm_colorselector) #include "elm_colorselector.eo.c" diff --git a/src/lib/elementary/elm_colorselector.eo b/src/lib/elementary/elm_colorselector.eo index 9371384..dd5ef04 100644 --- a/src/lib/elementary/elm_colorselector.eo +++ b/src/lib/elementary/elm_colorselector.eo @@ -115,7 +115,6 @@ class Elm.Colorselector (Elm.Layout, Elm.Interface.Atspi_Widget_Action, Elm.Widget.focus_highlight_geometry_get; Elm.Widget.access; Elm.Widget.widget_event; - Elm.Layout.sizing_eval; Elm.Interface.Atspi_Widget_Action.elm_actions { get; } Elm.Interface.Atspi_Accessible.children { get; } } diff --git a/src/lib/elementary/elm_ctxpopup.eo b/src/lib/elementary/elm_ctxpopup.eo index e2eff85..dae494b 100644 --- a/src/lib/elementary/elm_ctxpopup.eo +++ b/src/lib/elementary/elm_ctxpopup.eo @@ -168,7 +168,6 @@ class Elm.Ctxpopup (Elm.Layout, Elm.Interface.Atspi_Widget_Action, Efl.Ui.Menu.first_item { get; } Efl.Ui.Menu.last_item { get; } Efl.Ui.Menu.items { get; } - Elm.Layout.sizing_eval; Elm.Interface.Atspi_Widget_Action.elm_actions { get; } Elm.Interface.Atspi_Accessible.state_set { get; } Efl.Orientation.orientation { get; set; } diff --git a/src/lib/elementary/elm_dayselector.c b/src/lib/elementary/elm_dayselector.c index 20911c4..0f64016 100644 --- a/src/lib/elementary/elm_dayselector.c +++ b/src/lib/elementary/elm_dayselector.c @@ -619,6 +619,7 @@ ELM_PART_OVERRIDE_CONTENT_UNSET(elm_dayselector, ELM_DAYSELECTOR, ELM_LAYOUT, El /* Internal EO APIs and hidden overrides */ #define ELM_DAYSELECTOR_EXTRA_OPS \ + ELM_LAYOUT_SIZING_EVAL_OPS(elm_dayselector), \ EFL_CANVAS_GROUP_ADD_DEL_OPS(elm_dayselector) #include "elm_dayselector.eo.c" diff --git a/src/lib/elementary/elm_dayselector.eo b/src/lib/elementary/elm_dayselector.eo index 5c74719..c89cdce 100644 --- a/src/lib/elementary/elm_dayselector.eo +++ b/src/lib/elementary/elm_dayselector.eo @@ -154,7 +154,6 @@ class Elm.Dayselector (Elm.Layout) Elm.Widget.theme_apply; Elm.Widget.focus_direction_manager_is; Elm.Widget.translate; - Elm.Layout.sizing_eval; Efl.Part.part; } events { diff --git a/src/lib/elementary/elm_entry.c b/src/lib/elementary/elm_entry.c index 292680c..eef46a5 100644 --- a/src/lib/elementary/elm_entry.c +++ b/src/lib/elementary/elm_entry.c @@ -6079,6 +6079,7 @@ ELM_LAYOUT_TEXT_ALIASES_IMPLEMENT() ELM_PART_CONTENT_DEFAULT_OPS(elm_entry), \ EFL_CANVAS_GROUP_ADD_DEL_OPS(elm_entry), \ ELM_LAYOUT_CONTENT_ALIASES_OPS(), \ - ELM_LAYOUT_TEXT_ALIASES_OPS() + ELM_LAYOUT_TEXT_ALIASES_OPS(), \ + ELM_LAYOUT_SIZING_EVAL_OPS(elm_entry) #include "elm_entry.eo.c" diff --git a/src/lib/elementary/elm_entry.eo b/src/lib/elementary/elm_entry.eo index 72f2d5a..74450e1 100644 --- a/src/lib/elementary/elm_entry.eo +++ b/src/lib/elementary/elm_entry.eo @@ -965,7 +965,6 @@ class Elm.Entry (Elm.Layout, Elm.Interface_Scrollable, Efl.Ui.Clickable, Elm.Widget.disable; Elm.Widget.sub_object_del; Elm.Widget.focus_next_manager_is; - Elm.Layout.sizing_eval; Elm.Interface_Scrollable.policy { set; } Elm.Interface_Scrollable.bounce_allow { set; } Elm.Interface.Atspi_Accessible.state_set { get; } diff --git a/src/lib/elementary/elm_fileselector_entry.eo b/src/lib/elementary/elm_fileselector_entry.eo index 50667a9..d3cb592 100644 --- a/src/lib/elementary/elm_fileselector_entry.eo +++ b/src/lib/elementary/elm_fileselector_entry.eo @@ -11,7 +11,6 @@ class Elm.Fileselector_Entry (Elm.Layout, Elm.Interface.Fileselector, Elm.Widget.focus_next; Elm.Widget.disable; Elm.Widget.focus_direction_manager_is; - Elm.Layout.sizing_eval; Elm.Interface.Fileselector.selected_model_get; Elm.Interface.Fileselector.selected_model_set; Elm.Interface.Fileselector.folder_only { get; set; } diff --git a/src/lib/elementary/elm_flipselector.c b/src/lib/elementary/elm_flipselector.c index 8864277..b259710 100644 --- a/src/lib/elementary/elm_flipselector.c +++ b/src/lib/elementary/elm_flipselector.c @@ -929,6 +929,7 @@ _elm_flipselector_elm_interface_atspi_widget_action_elm_actions_get(Eo *obj EINA /* Internal EO APIs and hidden overrides */ #define ELM_FLIPSELECTOR_EXTRA_OPS \ + ELM_LAYOUT_SIZING_EVAL_OPS(elm_flipselector), \ EFL_CANVAS_GROUP_ADD_DEL_OPS(elm_flipselector) #include "elm_flipselector_item.eo.c" diff --git a/src/lib/elementary/elm_flipselector.eo b/src/lib/elementary/elm_flipselector.eo index 1367c04..f478bc5 100644 --- a/src/lib/elementary/elm_flipselector.eo +++ b/src/lib/elementary/elm_flipselector.eo @@ -131,7 +131,6 @@ class Elm.Flipselector (Elm.Layout, Efl.Ui.Spin, Elm.Widget.focus_next_manager_is; Elm.Widget.focus_direction_manager_is; Elm.Widget.widget_event; - Elm.Layout.sizing_eval; Efl.Ui.Spin.min_max { get; set; } Efl.Ui.Spin.step { get; set; } Efl.Ui.Spin.value { get; set; } diff --git a/src/lib/elementary/elm_gengrid.c b/src/lib/elementary/elm_gengrid.c index 57acad4..3c00629 100644 --- a/src/lib/elementary/elm_gengrid.c +++ b/src/lib/elementary/elm_gengrid.c @@ -5733,6 +5733,7 @@ _elm_gengrid_elm_interface_atspi_selection_child_deselect(Eo *obj EINA_UNUSED, E /* Internal EO APIs and hidden overrides */ #define ELM_GENGRID_EXTRA_OPS \ + ELM_LAYOUT_SIZING_EVAL_OPS(elm_gengrid), \ EFL_CANVAS_GROUP_ADD_DEL_OPS(elm_gengrid) #include "elm_gengrid.eo.c" diff --git a/src/lib/elementary/elm_gengrid.eo b/src/lib/elementary/elm_gengrid.eo index db6674a..16697a9 100644 --- a/src/lib/elementary/elm_gengrid.eo +++ b/src/lib/elementary/elm_gengrid.eo @@ -559,7 +559,6 @@ class Elm.Gengrid (Elm.Layout, Elm.Interface_Scrollable, Elm.Widget.focus_highlight_geometry_get; Elm.Widget.focused_item { get; } Elm.Widget.item_loop_enabled { get; set; } - Elm.Layout.sizing_eval; Elm.Interface_Scrollable.bounce_allow { set; } Elm.Interface_Scrollable.policy { get; set; } Elm.Interface.Atspi_Accessible.children { get; } diff --git a/src/lib/elementary/elm_genlist.c b/src/lib/elementary/elm_genlist.c index 38b5d6b..bd0dab9 100644 --- a/src/lib/elementary/elm_genlist.c +++ b/src/lib/elementary/elm_genlist.c @@ -8711,6 +8711,7 @@ _elm_genlist_elm_interface_atspi_selection_child_deselect(Eo *obj EINA_UNUSED, E /* Internal EO APIs and hidden overrides */ #define ELM_GENLIST_EXTRA_OPS \ + ELM_LAYOUT_SIZING_EVAL_OPS(elm_genlist), \ EFL_CANVAS_GROUP_ADD_DEL_OPS(elm_genlist) #define ELM_GENLIST_PAN_EXTRA_OPS \ diff --git a/src/lib/elementary/elm_genlist.eo b/src/lib/elementary/elm_genlist.eo index 9d08cd4..56abb93 100644 --- a/src/lib/elementary/elm_genlist.eo +++ b/src/lib/elementary/elm_genlist.eo @@ -544,7 +544,6 @@ class Elm.Genlist (Elm.Layout, Elm.Interface_Scrollable, Efl.Ui.Clickable, Elm.Widget.widget_event; Elm.Widget.focused_item { get; } Elm.Widget.item_loop_enabled { get; set; } - Elm.Layout.sizing_eval; Elm.Interface_Scrollable.bounce_allow { get; set; } Elm.Interface_Scrollable.policy { get; set; } Elm.Interface.Atspi_Accessible.children { get; } diff --git a/src/lib/elementary/elm_hover.c b/src/lib/elementary/elm_hover.c index 5d944e6..b464fe5 100644 --- a/src/lib/elementary/elm_hover.c +++ b/src/lib/elementary/elm_hover.c @@ -907,6 +907,7 @@ ELM_PART_OVERRIDE_CONTENT_UNSET(elm_hover, ELM_HOVER, ELM_LAYOUT, Elm_Hover_Data #define ELM_HOVER_EXTRA_OPS \ EFL_CANVAS_GROUP_ADD_DEL_OPS(elm_hover), \ + ELM_LAYOUT_SIZING_EVAL_OPS(elm_hover), \ _ELM_LAYOUT_ALIASES_OPS(elm_hover, content) #include "elm_hover.eo.c" diff --git a/src/lib/elementary/elm_hover.eo b/src/lib/elementary/elm_hover.eo index 3fd9f02..f28beb9 100644 --- a/src/lib/elementary/elm_hover.eo +++ b/src/lib/elementary/elm_hover.eo @@ -71,7 +71,6 @@ class Elm.Hover (Elm.Layout, Efl.Ui.Clickable, Elm.Interface.Atspi_Widget_Action Elm.Widget.focus_next_manager_is; Elm.Widget.sub_object_del; Elm.Widget.focus_manager_factory; - Elm.Layout.sizing_eval; Elm.Interface.Atspi_Widget_Action.elm_actions { get; } Efl.Part.part; } diff --git a/src/lib/elementary/elm_index.c b/src/lib/elementary/elm_index.c index 1f013ed..b314662 100644 --- a/src/lib/elementary/elm_index.c +++ b/src/lib/elementary/elm_index.c @@ -1766,6 +1766,7 @@ _elm_index_item_elm_interface_atspi_widget_action_elm_actions_get(Eo *eo_it EINA /* Internal EO APIs and hidden overrides */ #define ELM_INDEX_EXTRA_OPS \ + ELM_LAYOUT_SIZING_EVAL_OPS(elm_index), \ EFL_CANVAS_GROUP_ADD_DEL_OPS(elm_index) #include "elm_index_item.eo.c" diff --git a/src/lib/elementary/elm_index.eo b/src/lib/elementary/elm_index.eo index bbff132..98e5d75 100644 --- a/src/lib/elementary/elm_index.eo +++ b/src/lib/elementary/elm_index.eo @@ -227,7 +227,6 @@ class Elm.Index (Elm.Layout, Efl.Orientation, Elm.Widget.access; Elm.Widget.focus_next; Efl.Orientation.orientation { get; set; } - Elm.Layout.sizing_eval; Elm.Interface.Atspi_Accessible.children { get; } } events { diff --git a/src/lib/elementary/elm_inwin.c b/src/lib/elementary/elm_inwin.c index 05cdbea..188155a 100644 --- a/src/lib/elementary/elm_inwin.c +++ b/src/lib/elementary/elm_inwin.c @@ -222,6 +222,7 @@ ELM_LAYOUT_CONTENT_ALIASES_IMPLEMENT() #define ELM_INWIN_EXTRA_OPS \ EFL_CANVAS_GROUP_ADD_OPS(elm_inwin), \ + ELM_LAYOUT_SIZING_EVAL_OPS(elm_inwin), \ ELM_LAYOUT_CONTENT_ALIASES_OPS() #include "elm_inwin.eo.c" diff --git a/src/lib/elementary/elm_inwin.eo b/src/lib/elementary/elm_inwin.eo index c8a8bbf..37e1bb5 100644 --- a/src/lib/elementary/elm_inwin.eo +++ b/src/lib/elementary/elm_inwin.eo @@ -25,7 +25,6 @@ class Elm.Inwin (Elm.Layout, Efl.Ui.Focus.Manager) Elm.Widget.focus_next_manager_is; Elm.Widget.focus_next; Elm.Widget.focus_manager_factory; - Elm.Layout.sizing_eval; Efl.Gfx.visible { set; } Efl.Ui.Focus.Manager.move; } diff --git a/src/lib/elementary/elm_label.c b/src/lib/elementary/elm_label.c index b488ce9..ed0ac85 100644 --- a/src/lib/elementary/elm_label.c +++ b/src/lib/elementary/elm_label.c @@ -643,6 +643,7 @@ ELM_PART_OVERRIDE_TEXT_SET(elm_label, ELM_LABEL, ELM_LAYOUT, Elm_Label_Data, Elm /* Internal EO APIs and hidden overrides */ #define ELM_LABEL_EXTRA_OPS \ + ELM_LAYOUT_SIZING_EVAL_OPS(elm_label), \ EFL_CANVAS_GROUP_ADD_OPS(elm_label) #include "elm_label.eo.c" diff --git a/src/lib/elementary/elm_label.eo b/src/lib/elementary/elm_label.eo index bfb4a41..a79995e 100644 --- a/src/lib/elementary/elm_label.eo +++ b/src/lib/elementary/elm_label.eo @@ -127,7 +127,6 @@ class Elm.Label (Elm.Layout) Elm.Widget.focus_next_manager_is; Elm.Widget.focus_direction_manager_is; Elm.Widget.theme_apply; - Elm.Layout.sizing_eval; Efl.Part.part; } events { diff --git a/src/lib/elementary/elm_layout.c b/src/lib/elementary/elm_layout.c index 790860f..249f019 100644 --- a/src/lib/elementary/elm_layout.c +++ b/src/lib/elementary/elm_layout.c @@ -1645,7 +1645,7 @@ _elm_layout_efl_canvas_layout_group_group_size_max_get(Eo *obj, Elm_Layout_Smart * queued up and only flag the object as 'changed'. when it comes to * Evas's rendering phase, it will be addressed, finally (see * _elm_layout_smart_calculate()). */ -EOLIAN static void +static void _elm_layout_sizing_eval(Eo *obj, Elm_Layout_Smart_Data *sd) { if (sd->frozen) return; @@ -1655,9 +1655,12 @@ _elm_layout_sizing_eval(Eo *obj, Elm_Layout_Smart_Data *sd) evas_object_smart_changed(obj); } -EOLIAN static void -_elm_layout_sizing_restricted_eval(Eo *obj, Elm_Layout_Smart_Data *sd, Eina_Bool w, Eina_Bool h) +EAPI void +elm_layout_sizing_restricted_eval(Eo *obj, Eina_Bool w, Eina_Bool h) { + Elm_Layout_Smart_Data *sd = efl_data_scope_safe_get(obj, MY_CLASS); + + if (!sd) return; sd->restricted_calc_w = !!w; sd->restricted_calc_h = !!h; @@ -2570,6 +2573,7 @@ ELM_PART_IMPLEMENT_TEXT_GET(elm_layout, ELM_LAYOUT, Elm_Layout_Smart_Data, Elm_P /* Internal EO APIs and hidden overrides */ +EAPI EFL_VOID_FUNC_BODY(elm_layout_sizing_eval) EFL_FUNC_BODY_CONST(elm_layout_text_aliases_get, const Elm_Layout_Part_Alias_Description *, NULL) EFL_FUNC_BODY_CONST(elm_layout_content_aliases_get, const Elm_Layout_Part_Alias_Description *, NULL) @@ -2582,6 +2586,7 @@ ELM_LAYOUT_TEXT_ALIASES_IMPLEMENT() ELM_PART_TEXT_DEFAULT_OPS(elm_layout), \ ELM_LAYOUT_CONTENT_ALIASES_OPS(), \ ELM_LAYOUT_TEXT_ALIASES_OPS(), \ + EFL_OBJECT_OP_FUNC(elm_layout_sizing_eval, _elm_layout_sizing_eval), \ EFL_OBJECT_OP_FUNC(efl_dbg_info_get, _elm_layout_efl_object_dbg_info_get) #include "elm_layout.eo.c" diff --git a/src/lib/elementary/elm_layout.eo b/src/lib/elementary/elm_layout.eo index d2b5e3a..4e254fe 100644 --- a/src/lib/elementary/elm_layout.eo +++ b/src/lib/elementary/elm_layout.eo @@ -36,41 +36,6 @@ class Elm.Layout (Elm.Widget, Efl.Part, Efl.Container, Efl.File, style: string("default"); [[The style to used, eg "default".]] } } - sizing_eval { - [[Eval sizing. - - Manually forces a sizing re-evaluation. This is useful when the - minimum size required by the edje theme of this layout has - changed. The change on the minimum size required by the edje - theme is not immediately reported to the elementary layout, - so one needs to call this function in order to tell the widget - (layout) that it needs to reevaluate its own size. - - The minimum size of the theme is calculated based on minimum - size of parts, the size of elements inside containers like box - and table, etc. All of this can change due to state changes, - and that's when this function should be called. - - Also note that a standard signal of "size,eval" "elm" emitted - from the edje object will cause this to happen too. - ]] - } - sizing_restricted_eval { - [[Request sizing reevaluation, restricted to current width and/or - height. - - Useful mostly when there are TEXTBLOCK parts defining the height - of the object and nothing else restricting it to a minimum width. - Calling this function will restrict the minimum size in the Edje - calculation to whatever size it the layout has at the moment. - - @since 1.8 - ]] - params { - @in width: bool; [[Restrict minimum size to the current width.]] - @in height: bool; [[Restrict minimum size ot the current height.]] - } - } } implements { class.constructor; diff --git a/src/lib/elementary/elm_layout_legacy.h b/src/lib/elementary/elm_layout_legacy.h index c894e41..361926c 100644 --- a/src/lib/elementary/elm_layout_legacy.h +++ b/src/lib/elementary/elm_layout_legacy.h @@ -56,6 +56,45 @@ EAPI Evas_Object *elm_layout_add(Evas_Object *parent); EAPI const char *elm_layout_data_get(const Evas_Object *obj, const char *key); /** + * @brief Eval sizing. + * + * Manually forces a sizing re-evaluation. This is useful when the minimum size + * required by the edje theme of this layout has changed. The change on the + * minimum size required by the edje theme is not immediately reported to the + * elementary layout, so one needs to call this function in order to tell the + * widget (layout) that it needs to reevaluate its own size. + * + * The minimum size of the theme is calculated based on minimum size of parts, + * the size of elements inside containers like box and table, etc. All of this + * can change due to state changes, and that's when this function should be + * called. + * + * Also note that a standard signal of "size,eval" "elm" emitted from the edje + * object will cause this to happen too. + * + * @ingroup Elm_Layout + */ +EAPI void elm_layout_sizing_eval(Evas_Object *obj); + +/** + * @brief Request sizing reevaluation, restricted to current width and/or + * height. + * + * Useful mostly when there are TEXTBLOCK parts defining the height of the + * object and nothing else restricting it to a minimum width. Calling this + * function will restrict the minimum size in the Edje calculation to whatever + * size it the layout has at the moment. + * + * @param[in] width Restrict minimum size to the current width. + * @param[in] height Restrict minimum size ot the current height. + * + * @since 1.8 + * + * @ingroup Elm_Layout + */ +EAPI void elm_layout_sizing_restricted_eval(Elm_Layout *obj, Eina_Bool width, Eina_Bool height); + +/** * @brief Add a callback for a (Edje) signal emitted by a layout widget's * underlying Edje object. * diff --git a/src/lib/elementary/elm_list.c b/src/lib/elementary/elm_list.c index 4544984..64af470 100644 --- a/src/lib/elementary/elm_list.c +++ b/src/lib/elementary/elm_list.c @@ -3298,6 +3298,7 @@ _elm_list_elm_interface_atspi_selection_child_deselect(Eo *obj EINA_UNUSED, Elm_ /* Internal EO APIs and hidden overrides */ #define ELM_LIST_EXTRA_OPS \ + ELM_LAYOUT_SIZING_EVAL_OPS(elm_list), \ EFL_CANVAS_GROUP_ADD_DEL_OPS(elm_list) #include "elm_list.eo.c" diff --git a/src/lib/elementary/elm_list.eo b/src/lib/elementary/elm_list.eo index 27cc281..bb80170 100644 --- a/src/lib/elementary/elm_list.eo +++ b/src/lib/elementary/elm_list.eo @@ -446,7 +446,6 @@ class Elm.List (Elm.Layout, Elm.Interface_Scrollable, Elm.Widget.widget_event; Elm.Widget.focused_item { get; } Elm.Widget.item_loop_enabled { get; set; } - Elm.Layout.sizing_eval; Elm.Interface_Scrollable.policy { set; } Elm.Interface.Atspi_Widget_Action.elm_actions { get; } Elm.Interface.Atspi_Accessible.children { get; } diff --git a/src/lib/elementary/elm_multibuttonentry.eo b/src/lib/elementary/elm_multibuttonentry.eo index bc32aef..4b994ad 100644 --- a/src/lib/elementary/elm_multibuttonentry.eo +++ b/src/lib/elementary/elm_multibuttonentry.eo @@ -187,7 +187,6 @@ class Elm.Multibuttonentry (Elm.Layout) Elm.Widget.on_focus; Elm.Widget.translate; Elm.Widget.widget_event; - Elm.Layout.sizing_eval; Elm.Interface.Atspi_Accessible.children { get; } Efl.Part.part; } diff --git a/src/lib/elementary/elm_naviframe.eo b/src/lib/elementary/elm_naviframe.eo index 1e91480..a837565 100644 --- a/src/lib/elementary/elm_naviframe.eo +++ b/src/lib/elementary/elm_naviframe.eo @@ -153,7 +153,6 @@ class Elm.Naviframe (Elm.Layout, Elm.Interface.Atspi_Widget_Action) Elm.Widget.theme_apply; Elm.Widget.widget_event; Efl.Canvas.Layout_Signal.signal_emit; - Elm.Layout.sizing_eval; Elm.Interface.Atspi_Widget_Action.elm_actions { get; } Efl.Part.part; } diff --git a/src/lib/elementary/elm_panel.c b/src/lib/elementary/elm_panel.c index bcbe0fd..892fb89 100644 --- a/src/lib/elementary/elm_panel.c +++ b/src/lib/elementary/elm_panel.c @@ -1497,6 +1497,7 @@ ELM_PART_IMPLEMENT_CONTENT_UNSET(elm_panel, ELM_PANEL, Elm_Panel_Data, Elm_Part_ /* Internal EO APIs and hidden overrides */ #define ELM_PANEL_EXTRA_OPS \ + ELM_LAYOUT_SIZING_EVAL_OPS(elm_panel), \ EFL_CANVAS_GROUP_ADD_DEL_OPS(elm_panel) #include "elm_panel.eo.c" diff --git a/src/lib/elementary/elm_panel.eo b/src/lib/elementary/elm_panel.eo index 7631a02..202c6ca 100644 --- a/src/lib/elementary/elm_panel.eo +++ b/src/lib/elementary/elm_panel.eo @@ -86,7 +86,6 @@ class Elm.Panel (Elm.Layout, Elm.Interface_Scrollable, Elm.Widget.access; Elm.Widget.widget_event; Elm.Widget.on_focus_region; - Elm.Layout.sizing_eval; Elm.Interface.Atspi_Widget_Action.elm_actions { get; } Efl.Part.part; } diff --git a/src/lib/elementary/elm_player.eo b/src/lib/elementary/elm_player.eo index 8f6d84f..a1544b2 100644 --- a/src/lib/elementary/elm_player.eo +++ b/src/lib/elementary/elm_player.eo @@ -9,7 +9,6 @@ class Elm.Player (Elm.Layout, Elm.Interface.Atspi_Widget_Action) Efl.Object.constructor; Elm.Widget.theme_apply; Elm.Widget.widget_event; - Elm.Layout.sizing_eval; Elm.Interface.Atspi_Widget_Action.elm_actions { get; } Efl.Part.part; } diff --git a/src/lib/elementary/elm_popup.eo b/src/lib/elementary/elm_popup.eo index b043b71..168a9a4 100644 --- a/src/lib/elementary/elm_popup.eo +++ b/src/lib/elementary/elm_popup.eo @@ -178,7 +178,6 @@ class Elm.Popup (Elm.Layout, Elm.Interface.Atspi_Widget_Action) Elm.Widget.translate; Elm.Widget.sub_object_del; Elm.Widget.widget_event; - Elm.Layout.sizing_eval; Efl.Canvas.Layout_Signal.signal_emit; Elm.Interface.Atspi_Widget_Action.elm_actions { get; } Elm.Interface.Atspi_Accessible.state_set { get; } diff --git a/src/lib/elementary/elm_priv.h b/src/lib/elementary/elm_priv.h index 8f53bb1..3da811a 100644 --- a/src/lib/elementary/elm_priv.h +++ b/src/lib/elementary/elm_priv.h @@ -620,6 +620,7 @@ void *_elm_entry_signal_callback_del_legacy(Eo *obj, const char *emission, const /* Internal EO APIs */ const Elm_Layout_Part_Alias_Description *elm_layout_content_aliases_get(const Eo *obj); const Elm_Layout_Part_Alias_Description *elm_layout_text_aliases_get(const Eo *obj); +//void elm_layout_sizing_eval_eoapi(Eo *obj); #define _ELM_LAYOUT_ALIASES_IMPLEMENT(_pfx, _typ) \ static const Elm_Layout_Part_Alias_Description * \ @@ -637,4 +638,7 @@ const Elm_Layout_Part_Alias_Description *elm_layout_text_aliases_get(const Eo *o #define ELM_LAYOUT_CONTENT_ALIASES_OPS() _ELM_LAYOUT_ALIASES_OPS(MY_CLASS_PFX, content) #define ELM_LAYOUT_TEXT_ALIASES_OPS() _ELM_LAYOUT_ALIASES_OPS(MY_CLASS_PFX, text) +#define ELM_LAYOUT_SIZING_EVAL_OPS(_pfx) \ + EFL_OBJECT_OP_FUNC(elm_layout_sizing_eval, _##_pfx##_elm_layout_sizing_eval) + #endif diff --git a/src/lib/elementary/elm_scroller.c b/src/lib/elementary/elm_scroller.c index 7e98eeb..5c35902 100644 --- a/src/lib/elementary/elm_scroller.c +++ b/src/lib/elementary/elm_scroller.c @@ -1490,6 +1490,7 @@ ELM_PART_CONTENT_DEFAULT_SET(elm_scroller, "default") #define ELM_SCROLLER_EXTRA_OPS \ ELM_PART_CONTENT_DEFAULT_OPS(elm_scroller), \ + ELM_LAYOUT_SIZING_EVAL_OPS(elm_scroller), \ EFL_CANVAS_GROUP_ADD_OPS(elm_scroller) #include "elm_scroller.eo.c" diff --git a/src/lib/elementary/elm_scroller.eo b/src/lib/elementary/elm_scroller.eo index 2bb9c3c..92a8fab 100644 --- a/src/lib/elementary/elm_scroller.eo +++ b/src/lib/elementary/elm_scroller.eo @@ -55,7 +55,6 @@ class Elm.Scroller (Elm.Layout, Elm.Interface_Scrollable, Elm.Widget.focus_direction; Elm.Widget.sub_object_del; Elm.Widget.widget_event; - Elm.Layout.sizing_eval; Elm.Interface_Scrollable.page_size { set; } Elm.Interface_Scrollable.policy { set; } Elm.Interface_Scrollable.single_direction { get; set; } diff --git a/src/lib/elementary/elm_segment_control.c b/src/lib/elementary/elm_segment_control.c index f651277..1d91307 100644 --- a/src/lib/elementary/elm_segment_control.c +++ b/src/lib/elementary/elm_segment_control.c @@ -844,6 +844,7 @@ _elm_segment_control_class_constructor(Efl_Class *klass) /* Internal EO APIs and hidden overrides */ #define ELM_SEGMENT_CONTROL_EXTRA_OPS \ + ELM_LAYOUT_SIZING_EVAL_OPS(elm_segment_control), \ EFL_CANVAS_GROUP_ADD_DEL_OPS(elm_segment_control) #include "elm_segment_control_item.eo.c" diff --git a/src/lib/elementary/elm_segment_control.eo b/src/lib/elementary/elm_segment_control.eo index 357fb22..a7c7b2d 100644 --- a/src/lib/elementary/elm_segment_control.eo +++ b/src/lib/elementary/elm_segment_control.eo @@ -143,7 +143,6 @@ class Elm.Segment_Control (Elm.Layout) Elm.Widget.access; Elm.Widget.disable; Elm.Widget.translate; - Elm.Layout.sizing_eval; } events { changed; [[Called when segment control changed]] diff --git a/src/lib/elementary/elm_separator.c b/src/lib/elementary/elm_separator.c index 288765c..78060f4 100644 --- a/src/lib/elementary/elm_separator.c +++ b/src/lib/elementary/elm_separator.c @@ -145,6 +145,7 @@ _elm_separator_class_constructor(Efl_Class *klass) /* Internal EO APIs and hidden overrides */ #define ELM_SEPARATOR_EXTRA_OPS \ + ELM_LAYOUT_SIZING_EVAL_OPS(elm_separator), \ EFL_CANVAS_GROUP_ADD_OPS(elm_separator) #include "elm_separator.eo.c" diff --git a/src/lib/elementary/elm_separator.eo b/src/lib/elementary/elm_separator.eo index 545fa87..38b6bd5 100644 --- a/src/lib/elementary/elm_separator.eo +++ b/src/lib/elementary/elm_separator.eo @@ -10,6 +10,5 @@ class Elm.Separator (Elm.Layout, Efl.Orientation) Elm.Widget.focus_direction_manager_is; Elm.Widget.theme_apply; Efl.Orientation.orientation { get; set; } - Elm.Layout.sizing_eval; } } diff --git a/src/lib/elementary/elm_slideshow.c b/src/lib/elementary/elm_slideshow.c index ed8e68d..dd1bb75 100644 --- a/src/lib/elementary/elm_slideshow.c +++ b/src/lib/elementary/elm_slideshow.c @@ -737,6 +737,7 @@ _elm_slideshow_elm_interface_atspi_widget_action_elm_actions_get(Eo *obj EINA_UN /* Internal EO APIs and hidden overrides */ #define ELM_SLIDESHOW_EXTRA_OPS \ + ELM_LAYOUT_SIZING_EVAL_OPS(elm_slideshow), \ EFL_CANVAS_GROUP_ADD_DEL_OPS(elm_slideshow) #include "elm_slideshow_item.eo.c" diff --git a/src/lib/elementary/elm_slideshow.eo b/src/lib/elementary/elm_slideshow.eo index 136fb87..cb445a7 100644 --- a/src/lib/elementary/elm_slideshow.eo +++ b/src/lib/elementary/elm_slideshow.eo @@ -307,7 +307,6 @@ class Elm.Slideshow (Elm.Layout, Elm.Interface.Atspi_Widget_Action) Elm.Widget.focus_next_manager_is; Elm.Widget.focus_direction_manager_is; Elm.Widget.widget_event; - Elm.Layout.sizing_eval; Elm.Interface.Atspi_Widget_Action.elm_actions { get; } } events { diff --git a/src/lib/elementary/elm_spinner.c b/src/lib/elementary/elm_spinner.c index afd72a0..0ea3e38 100644 --- a/src/lib/elementary/elm_spinner.c +++ b/src/lib/elementary/elm_spinner.c @@ -1766,6 +1766,7 @@ _elm_spinner_elm_interface_atspi_accessible_name_get(Eo *obj, Elm_Spinner_Data * /* Internal EO APIs and hidden overrides */ #define ELM_SPINNER_EXTRA_OPS \ + ELM_LAYOUT_SIZING_EVAL_OPS(elm_spinner), \ EFL_CANVAS_GROUP_ADD_DEL_OPS(elm_spinner) #include "elm_spinner.eo.c" diff --git a/src/lib/elementary/elm_spinner.eo b/src/lib/elementary/elm_spinner.eo index c2c0406..0b1e1bd 100644 --- a/src/lib/elementary/elm_spinner.eo +++ b/src/lib/elementary/elm_spinner.eo @@ -154,7 +154,6 @@ class Elm.Spinner (Elm.Layout, Efl.Ui.Spin, Elm.Widget.focus_direction; Elm.Widget.on_focus; Elm.Widget.widget_event; - Elm.Layout.sizing_eval; Efl.Ui.Spin.min_max { get; set; } Efl.Ui.Spin.step { get; set; } Efl.Ui.Spin.value { get; set; } -- 2.7.4