forked from enlightenment/efl
elm_panel : add a toggled event triggered when panel toggled in any way.
Summary: There are 2 ways to toogle the panel, by using elm_panel_toggle API and by interaction such as flick or click on panel. This toggled event can help us to know the time when the panel toggled by all case. Reviewers: woohyun, kimcinoo, Hermet, jypark Subscribers: cedric, jpeg Differential Revision: https://phab.enlightenment.org/D4180
This commit is contained in:
parent
8fb2dca520
commit
f00c078b9b
|
@ -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
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -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.
|
||||
|
|
Loading…
Reference in New Issue