diff --git a/src/lib/elementary/elm_panel.c b/src/lib/elementary/elm_panel.c index 826e8c3f22..6b66825de9 100644 --- a/src/lib/elementary/elm_panel.c +++ b/src/lib/elementary/elm_panel.c @@ -22,9 +22,11 @@ static const char ACCESS_OUTLINE_PART[] = "access.outline"; +static const char SIG_TOGGLED[] = "toggled"; static const char SIG_SCROLL[] = "scroll"; static const Evas_Smart_Cb_Description _smart_callbacks[] = { + {SIG_TOGGLED, ""}, {SIG_SCROLL, ""}, {SIG_LAYOUT_FOCUSED, ""}, /**< handled by elm_layout */ {SIG_LAYOUT_UNFOCUSED, ""}, /**< handled by elm_layout */ @@ -496,6 +498,8 @@ _panel_toggle(void *data EINA_UNUSED, edje_object_message_signal_process(wd->resize_obj); } + + efl_event_callback_call(obj, ELM_PANEL_EVENT_TOGGLED, NULL); } static Eina_Bool @@ -568,7 +572,11 @@ _state_sync(Evas_Object *obj) if (open) { - if (sd->hidden) sd->hidden = EINA_FALSE; + if (sd->hidden) + { + sd->hidden = EINA_FALSE; + efl_event_callback_call(obj, ELM_PANEL_EVENT_TOGGLED, NULL); + } elm_interface_scrollable_single_direction_set (obj, ELM_SCROLLER_SINGLE_DIRECTION_HARD); @@ -585,7 +593,11 @@ _state_sync(Evas_Object *obj) } else { - if (!sd->hidden) sd->hidden = EINA_TRUE; + if (!sd->hidden) + { + sd->hidden = EINA_TRUE; + efl_event_callback_call(obj, ELM_PANEL_EVENT_TOGGLED, NULL); + } if (horizontal) elm_interface_scrollable_movement_block_set diff --git a/src/lib/elementary/elm_panel.eo b/src/lib/elementary/elm_panel.eo index 0a0d1c6c5d..98df79a482 100644 --- a/src/lib/elementary/elm_panel.eo +++ b/src/lib/elementary/elm_panel.eo @@ -13,6 +13,7 @@ class Elm.Panel (Elm.Layout, Elm.Interface_Scrollable, { legacy_prefix: elm_panel; eo_prefix: elm_obj_panel; + event_prefix: elm_panel; methods { @property orient { set { @@ -84,4 +85,8 @@ class Elm.Panel (Elm.Layout, Elm.Interface_Scrollable, Elm.Interface.Atspi_Widget_Action.elm_actions.get; Efl.Part.part; } + events { + toggled; + } + } diff --git a/src/lib/elementary/elm_panel.h b/src/lib/elementary/elm_panel.h index 1a9c5d06be..9dde7785f4 100644 --- a/src/lib/elementary/elm_panel.h +++ b/src/lib/elementary/elm_panel.h @@ -23,6 +23,7 @@ * * This widget emits the following signals, besides the ones sent from * @ref Layout: + * @li @c "toggled" : When the panel has been toggled. (since 1.18) * @li @c "scroll" : When the content has been scrolled (moved). (since 1.10) * This signal is emitted only when the panel is scrollable. * Elm_Panel_Scroll_Info will be passed by @p event_info argument.