From 1c0916ef03549eb742f635f29c4340b0989839a6 Mon Sep 17 00:00:00 2001 From: Cedric Bail Date: Sun, 15 Sep 2019 14:38:03 -0700 Subject: [PATCH] elementary: factorize all events emitted by a Efl.Ui.Collection into their own interface. For most event it is actually meaningful to share them with Efl.Ui.Collection_View so let's do it. Differential Revision: https://phab.enlightenment.org/D9956 --- src/lib/elementary/Efl_Ui.h | 1 + src/lib/elementary/efl_ui_collection.eo | 11 ++--------- src/lib/elementary/efl_ui_collection_events.eo | 12 ++++++++++++ src/lib/elementary/efl_ui_item.c | 2 ++ src/lib/elementary/meson.build | 1 + 5 files changed, 18 insertions(+), 9 deletions(-) create mode 100644 src/lib/elementary/efl_ui_collection_events.eo diff --git a/src/lib/elementary/Efl_Ui.h b/src/lib/elementary/Efl_Ui.h index a4285ef04f..53c10adfcf 100644 --- a/src/lib/elementary/Efl_Ui.h +++ b/src/lib/elementary/Efl_Ui.h @@ -307,6 +307,7 @@ typedef Eo Efl_Ui_Spotlight_Indicator; # include # include # include +# include # include # include # include diff --git a/src/lib/elementary/efl_ui_collection.eo b/src/lib/elementary/efl_ui_collection.eo index f040fd87bc..4a320c362a 100644 --- a/src/lib/elementary/efl_ui_collection.eo +++ b/src/lib/elementary/efl_ui_collection.eo @@ -3,7 +3,8 @@ class Efl.Ui.Collection extends Efl.Ui.Layout_Base implements Efl.Ui.Layout_Orientable, Efl.Ui.Multi_Selectable, Efl.Ui.Focus.Manager_Sub, - Efl.Ui.Widget_Focus_Manager + Efl.Ui.Widget_Focus_Manager, + Efl.Ui.Collection_Events composites Efl.Ui.Scrollable, Efl.Ui.Scrollbar, @@ -25,7 +26,6 @@ class Efl.Ui.Collection extends Efl.Ui.Layout_Base implements Items inside this widget can be selected according to the @Efl.Ui.Multi_Selectable.select_mode policy, and the selection can be retrieved with @Efl.Ui.Multi_Selectable.selected_items_get. ]] - event_prefix:efl_ui; methods { item_scroll { [[Brings the passed item into the viewport.]] @@ -90,12 +90,5 @@ class Efl.Ui.Collection extends Efl.Ui.Layout_Base implements Efl.Ui.Multi_Selectable.unselect_range; Efl.Ui.Single_Selectable.fallback_selection {get; set;} } - events { - item,pressed : Efl.Ui.Item; [[A $press event occurred over an item.]] - item,unpressed : Efl.Ui.Item; [[An $unpress event occurred over an item.]] - item,longpressed : Efl.Ui.Item; [[A $longpressed event occurred over an item.]] - item,clicked : Efl.Ui.Item; [[A $clicked event occurred over an item.]] - item,clicked,any : Efl.Ui.Item; [[A $clicked,any event occurred over an item.]] - } } diff --git a/src/lib/elementary/efl_ui_collection_events.eo b/src/lib/elementary/efl_ui_collection_events.eo new file mode 100644 index 0000000000..653172564b --- /dev/null +++ b/src/lib/elementary/efl_ui_collection_events.eo @@ -0,0 +1,12 @@ +interface @beta Efl.Ui.Collection_Events +{ + [[Shared sets of events between @Efl.Ui.Collection and @Efl.Ui.Collection_View.]] + event_prefix: efl_ui; + events { + item,pressed : Efl.Ui.Item; [[A $press event occurred over an item.]] + item,unpressed : Efl.Ui.Item; [[An $unpress event occurred over an item.]] + item,longpressed : Efl.Ui.Item; [[A $longpressed event occurred over an item.]] + item,clicked : Efl.Ui.Item; [[A $clicked event occurred over an item.]] + item,clicked,any : Efl.Ui.Item; [[A $clicked,any event occurred over an item.]] + } +} \ No newline at end of file diff --git a/src/lib/elementary/efl_ui_item.c b/src/lib/elementary/efl_ui_item.c index 1b0c4f1a46..b454555497 100644 --- a/src/lib/elementary/efl_ui_item.c +++ b/src/lib/elementary/efl_ui_item.c @@ -214,3 +214,5 @@ ELM_WIDGET_KEY_DOWN_DEFAULT_IMPLEMENT(efl_ui_item, Efl_Ui_Item_Data) #include "efl_ui_selectable.eo.c" #include "efl_ui_multi_selectable.eo.c" #include "efl_ui_single_selectable.eo.c" +#include "efl_ui_collection_events.eo.c" + diff --git a/src/lib/elementary/meson.build b/src/lib/elementary/meson.build index 3770fe9448..a1c001a7bb 100644 --- a/src/lib/elementary/meson.build +++ b/src/lib/elementary/meson.build @@ -173,6 +173,7 @@ pub_eo_files = [ 'efl_ui_relative_layout.eo', 'efl_ui_action_connector.eo', 'efl_ui_format.eo', + 'efl_ui_collection_events.eo', 'efl_ui_collection.eo', 'efl_ui_position_manager_entity.eo', 'efl_ui_position_manager_list.eo',