efl_ui_selectable: split this up

i dont know why, but something got badly mixed up, the selection APIs
for text and item ended up in the same interface, which seems ... weird
?
This commit splits that up into container_selectable and
text_selectable, there is no future plan on my list for text_selection.
The rest of this series is working towards removing
container_selectable, replacing it with a new interface. However, the
interface will stay until list_view is replaced.

The changes in the legacy code are removing the efl.ui.selection
interface from it, item emission is not depending on the inherited
interfaces, additionally, this interface does not provide any API, so
this should not be an issue.

ref T7766

Reviewed-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Differential Revision: https://phab.enlightenment.org/D9498
This commit is contained in:
Marcel Hollerbach 2019-08-05 18:35:13 +02:00
parent 53649030db
commit fc12e7721f
21 changed files with 38 additions and 28 deletions

View File

@ -107,7 +107,8 @@ typedef Efl_Gfx_Path_Command_Type Efl_Gfx_Path_Command;
#include "interfaces/efl_ui_scrollable.eo.h" #include "interfaces/efl_ui_scrollable.eo.h"
#include "interfaces/efl_ui_scrollbar.eo.h" #include "interfaces/efl_ui_scrollbar.eo.h"
#include "interfaces/efl_ui_scrollable_interactive.eo.h" #include "interfaces/efl_ui_scrollable_interactive.eo.h"
#include "interfaces/efl_ui_selectable.eo.h" #include "interfaces/efl_ui_text_selectable.eo.h"
#include "interfaces/efl_ui_container_selectable.eo.h"
#include "interfaces/efl_ui_multi_selectable.eo.h" #include "interfaces/efl_ui_multi_selectable.eo.h"
#include "interfaces/efl_ui_zoom.eo.h" #include "interfaces/efl_ui_zoom.eo.h"

View File

@ -75,7 +75,8 @@
#include "interfaces/efl_ui_scrollable.eo.c" #include "interfaces/efl_ui_scrollable.eo.c"
#include "interfaces/efl_ui_scrollable_interactive.eo.c" #include "interfaces/efl_ui_scrollable_interactive.eo.c"
#include "interfaces/efl_ui_scrollbar.eo.c" #include "interfaces/efl_ui_scrollbar.eo.c"
#include "interfaces/efl_ui_selectable.eo.c" #include "interfaces/efl_ui_container_selectable.eo.c"
#include "interfaces/efl_ui_text_selectable.eo.c"
#include "interfaces/efl_ui_multi_selectable.eo.c" #include "interfaces/efl_ui_multi_selectable.eo.c"
#include "interfaces/efl_ui_zoom.eo.c" #include "interfaces/efl_ui_zoom.eo.c"

View File

@ -0,0 +1,11 @@
interface @beta Efl.Ui.Container_Selectable
{
[[Temporare interface, this is here until collection_view lands]]
event_prefix: efl_ui;
events {
/* FIXME: Called with multiple types of event_info! */
item,selected: Efl.Object; [[Called when selected]]
/* FIXME: Called with multiple types of event_info! */
item,unselected: Efl.Object; [[Called when no longer selected]]
}
}

View File

@ -1,12 +1,8 @@
interface @beta Efl.Ui.Selectable interface @beta Efl.Ui.Text_Selectable
{ {
[[Efl UI selectable interface]] [[Efl UI text selectable interface]]
event_prefix: efl_ui; event_prefix: efl_ui;
events { events {
/* FIXME: Called with multiple types of event_info! */
item,selected: Efl.Object; [[Called when selected]]
/* FIXME: Called with multiple types of event_info! */
item,unselected: Efl.Object; [[Called when no longer selected]]
selection,paste: void; [[Called when selection is pasted]] selection,paste: void; [[Called when selection is pasted]]
selection,copy: void; [[Called when selection is copied]] selection,copy: void; [[Called when selection is copied]]
selection,cut: void; [[Called when selection is cut]] selection,cut: void; [[Called when selection is cut]]

View File

@ -11,7 +11,8 @@ pub_legacy_eo_files = [
'efl_ui_scrollable.eo', 'efl_ui_scrollable.eo',
'efl_ui_scrollable_interactive.eo', 'efl_ui_scrollable_interactive.eo',
'efl_ui_scrollbar.eo', 'efl_ui_scrollbar.eo',
'efl_ui_selectable.eo', 'efl_ui_container_selectable.eo',
'efl_ui_text_selectable.eo',
'efl_ui_zoom.eo', 'efl_ui_zoom.eo',
] ]

View File

@ -3,7 +3,7 @@ class @beta Efl.Ui.Collection extends Efl.Ui.Layout_Base implements
Efl.Ui.Scrollbar, Efl.Ui.Scrollbar,
Efl.Pack_Linear, Efl.Pack_Layout, Efl.Pack_Linear, Efl.Pack_Layout,
Efl.Ui.Layout_Orientable, Efl.Ui.Layout_Orientable,
Efl.Ui.Selectable, Efl.Ui.Container_Selectable,
Efl.Ui.Multi_Selectable, Efl.Ui.Multi_Selectable,
Efl.Ui.Focus.Manager_Sub, Efl.Ui.Focus.Manager_Sub,
Efl.Ui.Widget_Focus_Manager Efl.Ui.Widget_Focus_Manager

View File

@ -1,4 +1,4 @@
abstract @beta Efl.Ui.Item extends Efl.Ui.Layout_Base implements Efl.Ui.Selectable, Efl.Input.Clickable abstract @beta Efl.Ui.Item extends Efl.Ui.Layout_Base implements Efl.Ui.Container_Selectable, Efl.Input.Clickable
{ {
[[Selectable Item abstraction. [[Selectable Item abstraction.
@ -6,7 +6,7 @@ abstract @beta Efl.Ui.Item extends Efl.Ui.Layout_Base implements Efl.Ui.Selectab
like @Efl.Ui.List or @Efl.Ui.Grid, for example. like @Efl.Ui.List or @Efl.Ui.Grid, for example.
@Efl.Ui.Item provides user interaction through the @Efl.Input.Clickable mixin. @Efl.Ui.Item provides user interaction through the @Efl.Input.Clickable mixin.
Items can be pressed, long-pressed, etc, and appropriate events are generated. Items can be pressed, long-pressed, etc, and appropriate events are generated.
@Efl.Ui.Item also implements the @Efl.Ui.Selectable interface, meaning that "selected" and @Efl.Ui.Item also implements the @Efl.Ui.Container_Selectable interface, meaning that "selected" and
"unselected" events are automatically generated. "unselected" events are automatically generated.
Classes inheriting from this one only need to deal with the visual representation of the widget. Classes inheriting from this one only need to deal with the visual representation of the widget.
@ -15,8 +15,8 @@ abstract @beta Efl.Ui.Item extends Efl.Ui.Layout_Base implements Efl.Ui.Selectab
Some events are converted to edje signals so the theme can react to them: Some events are converted to edje signals so the theme can react to them:
@[Efl.Input.Clickable.pressed] -> "efl,state,pressed", @[Efl.Input.Clickable.pressed] -> "efl,state,pressed",
@[Efl.Input.Clickable.unpressed] -> "efl,state,unpressed", @[Efl.Input.Clickable.unpressed] -> "efl,state,unpressed",
@[Efl.Ui.Selectable.item,selected] -> "efl,state,selected", @[Efl.Ui.Container_Selectable.item,selected] -> "efl,state,selected",
@[Efl.Ui.Selectable.item,unselected] -> "efl,state,unselected". @[Efl.Ui.Container_Selectable.item,unselected] -> "efl,state,unselected".
]] ]]
methods { methods {
@property index { @property index {

View File

@ -9,7 +9,7 @@ struct @beta Efl.Ui.List_View_Item_Event
} }
class @beta Efl.Ui.List_View extends Efl.Ui.Layout_Base implements Efl.Ui.Scrollable_Interactive, Efl.Ui.Scrollbar, class @beta Efl.Ui.List_View extends Efl.Ui.Layout_Base implements Efl.Ui.Scrollable_Interactive, Efl.Ui.Scrollbar,
Efl.Access.Widget.Action, Efl.Access.Selection, Efl.Ui.Focus.Composition, Efl.Ui.Focus.Manager_Sub, Efl.Access.Widget.Action, Efl.Access.Selection, Efl.Ui.Focus.Composition, Efl.Ui.Focus.Manager_Sub,
Efl.Ui.Selectable, Efl.Ui.List_View_Model, Efl.Ui.Widget_Focus_Manager Efl.Ui.Container_Selectable, Efl.Ui.List_View_Model, Efl.Ui.Widget_Focus_Manager
{ {
methods { methods {
@property homogeneous { @property homogeneous {

View File

@ -3,7 +3,7 @@ import elm_general;
class @beta Efl.Ui.Text extends Efl.Ui.Layout_Base implements Efl.Input.Clickable, class @beta Efl.Ui.Text extends Efl.Ui.Layout_Base implements Efl.Input.Clickable,
Efl.Access.Text, Efl.Access.Editable.Text, Efl.File, Efl.Access.Text, Efl.Access.Editable.Text, Efl.File,
Efl.Ui.Selectable, Efl.Text_Interactive, Efl.Text_Markup Efl.Ui.Text_Selectable, Efl.Text_Interactive, Efl.Text_Markup
{ {
[[A flexible text widget which can be static (as a label) or editable by [[A flexible text widget which can be static (as a label) or editable by
the user (as a text entry). It provides all sorts of editing facilities the user (as a text entry). It provides all sorts of editing facilities

View File

@ -631,7 +631,7 @@ static const Efl_Class_Description _elm_combobox_class_desc = {
NULL NULL
}; };
EFL_DEFINE_CLASS(elm_combobox_class_get, &_elm_combobox_class_desc, EFL_UI_BUTTON_CLASS, EFL_UI_SELECTABLE_INTERFACE, EFL_ACCESS_WIDGET_ACTION_MIXIN, ELM_ENTRY_CLASS, ELM_GENLIST_CLASS, ELM_HOVER_CLASS, EFL_UI_LEGACY_INTERFACE, NULL); EFL_DEFINE_CLASS(elm_combobox_class_get, &_elm_combobox_class_desc, EFL_UI_BUTTON_CLASS, EFL_ACCESS_WIDGET_ACTION_MIXIN, ELM_ENTRY_CLASS, ELM_GENLIST_CLASS, ELM_HOVER_CLASS, EFL_UI_LEGACY_INTERFACE, NULL);
EAPI Eina_Bool EAPI Eina_Bool
elm_combobox_expanded_get(const Elm_Combobox *obj) elm_combobox_expanded_get(const Elm_Combobox *obj)

View File

@ -77,6 +77,6 @@ static const Efl_Class_Description _elm_actionslider_class_desc = {
NULL NULL
}; };
EFL_DEFINE_CLASS(elm_actionslider_class_get, &_elm_actionslider_class_desc, EFL_UI_LAYOUT_BASE_CLASS, EFL_UI_SELECTABLE_INTERFACE, ELM_LAYOUT_MIXIN, EFL_UI_LEGACY_INTERFACE, NULL); EFL_DEFINE_CLASS(elm_actionslider_class_get, &_elm_actionslider_class_desc, EFL_UI_LAYOUT_BASE_CLASS, ELM_LAYOUT_MIXIN, EFL_UI_LEGACY_INTERFACE, NULL);
#include "elm_actionslider_eo.legacy.c" #include "elm_actionslider_eo.legacy.c"

View File

@ -222,6 +222,6 @@ static const Efl_Class_Description _elm_diskselector_class_desc = {
NULL NULL
}; };
EFL_DEFINE_CLASS(elm_diskselector_class_get, &_elm_diskselector_class_desc, EFL_UI_WIDGET_CLASS, ELM_INTERFACE_SCROLLABLE_MIXIN, EFL_ACCESS_WIDGET_ACTION_MIXIN, EFL_INPUT_CLICKABLE_MIXIN, EFL_UI_SCROLLABLE_INTERFACE, EFL_UI_SELECTABLE_INTERFACE, EFL_UI_LEGACY_INTERFACE, NULL); EFL_DEFINE_CLASS(elm_diskselector_class_get, &_elm_diskselector_class_desc, EFL_UI_WIDGET_CLASS, ELM_INTERFACE_SCROLLABLE_MIXIN, EFL_ACCESS_WIDGET_ACTION_MIXIN, EFL_INPUT_CLICKABLE_MIXIN, EFL_UI_SCROLLABLE_INTERFACE, EFL_UI_LEGACY_INTERFACE, NULL);
#include "elm_diskselector_eo.legacy.c" #include "elm_diskselector_eo.legacy.c"

View File

@ -1188,6 +1188,6 @@ static const Efl_Class_Description _elm_entry_class_desc = {
NULL NULL
}; };
EFL_DEFINE_CLASS(elm_entry_class_get, &_elm_entry_class_desc, EFL_UI_LAYOUT_BASE_CLASS, ELM_INTERFACE_SCROLLABLE_MIXIN, EFL_INPUT_CLICKABLE_MIXIN, EFL_ACCESS_TEXT_INTERFACE, EFL_ACCESS_EDITABLE_TEXT_INTERFACE, EFL_FILE_MIXIN, EFL_UI_SELECTABLE_INTERFACE, EFL_UI_SCROLLABLE_INTERFACE, EFL_ACCESS_WIDGET_ACTION_MIXIN, ELM_LAYOUT_MIXIN, EFL_UI_LEGACY_INTERFACE, NULL); EFL_DEFINE_CLASS(elm_entry_class_get, &_elm_entry_class_desc, EFL_UI_LAYOUT_BASE_CLASS, ELM_INTERFACE_SCROLLABLE_MIXIN, EFL_INPUT_CLICKABLE_MIXIN, EFL_ACCESS_TEXT_INTERFACE, EFL_ACCESS_EDITABLE_TEXT_INTERFACE, EFL_FILE_MIXIN, EFL_UI_SCROLLABLE_INTERFACE, EFL_ACCESS_WIDGET_ACTION_MIXIN, ELM_LAYOUT_MIXIN, EFL_UI_LEGACY_INTERFACE, NULL);
#include "elm_entry_eo.legacy.c" #include "elm_entry_eo.legacy.c"

View File

@ -88,4 +88,4 @@ static const Efl_Class_Description _elm_fileselector_entry_class_desc = {
NULL NULL
}; };
EFL_DEFINE_CLASS(elm_fileselector_entry_class_get, &_elm_fileselector_entry_class_desc, EFL_UI_LAYOUT_BASE_CLASS, ELM_INTERFACE_FILESELECTOR_INTERFACE, EFL_INPUT_CLICKABLE_MIXIN, EFL_UI_SELECTABLE_INTERFACE, ELM_LAYOUT_MIXIN, EFL_UI_LEGACY_INTERFACE, NULL); EFL_DEFINE_CLASS(elm_fileselector_entry_class_get, &_elm_fileselector_entry_class_desc, EFL_UI_LAYOUT_BASE_CLASS, ELM_INTERFACE_FILESELECTOR_INTERFACE, EFL_INPUT_CLICKABLE_MIXIN, ELM_LAYOUT_MIXIN, EFL_UI_LEGACY_INTERFACE, NULL);

View File

@ -202,6 +202,6 @@ static const Efl_Class_Description _elm_fileselector_class_desc = {
_elm_fileselector_class_destructor _elm_fileselector_class_destructor
}; };
EFL_DEFINE_CLASS(elm_fileselector_class_get, &_elm_fileselector_class_desc, EFL_UI_LAYOUT_BASE_CLASS, ELM_INTERFACE_FILESELECTOR_INTERFACE, EFL_ACCESS_WIDGET_ACTION_MIXIN, EFL_UI_FOCUS_COMPOSITION_MIXIN, EFL_INPUT_CLICKABLE_MIXIN, EFL_UI_SELECTABLE_INTERFACE, ELM_LAYOUT_MIXIN, EFL_UI_LEGACY_INTERFACE, NULL); EFL_DEFINE_CLASS(elm_fileselector_class_get, &_elm_fileselector_class_desc, EFL_UI_LAYOUT_BASE_CLASS, ELM_INTERFACE_FILESELECTOR_INTERFACE, EFL_ACCESS_WIDGET_ACTION_MIXIN, EFL_UI_FOCUS_COMPOSITION_MIXIN, EFL_INPUT_CLICKABLE_MIXIN, ELM_LAYOUT_MIXIN, EFL_UI_LEGACY_INTERFACE, NULL);
#include "elm_fileselector_eo.legacy.c" #include "elm_fileselector_eo.legacy.c"

View File

@ -154,6 +154,6 @@ static const Efl_Class_Description _elm_flipselector_class_desc = {
NULL NULL
}; };
EFL_DEFINE_CLASS(elm_flipselector_class_get, &_elm_flipselector_class_desc, EFL_UI_LAYOUT_BASE_CLASS, EFL_UI_RANGE_INTERACTIVE_INTERFACE, EFL_ACCESS_WIDGET_ACTION_MIXIN, EFL_UI_SELECTABLE_INTERFACE, ELM_LAYOUT_MIXIN, EFL_UI_LEGACY_INTERFACE, NULL); EFL_DEFINE_CLASS(elm_flipselector_class_get, &_elm_flipselector_class_desc, EFL_UI_LAYOUT_BASE_CLASS, EFL_UI_RANGE_INTERACTIVE_INTERFACE, EFL_ACCESS_WIDGET_ACTION_MIXIN, ELM_LAYOUT_MIXIN, EFL_UI_LEGACY_INTERFACE, NULL);
#include "elm_flipselector_eo.legacy.c" #include "elm_flipselector_eo.legacy.c"

View File

@ -681,6 +681,6 @@ static const Efl_Class_Description _elm_genlist_class_desc = {
NULL NULL
}; };
EFL_DEFINE_CLASS(elm_genlist_class_get, &_elm_genlist_class_desc, EFL_UI_LAYOUT_BASE_CLASS, ELM_INTERFACE_SCROLLABLE_MIXIN, EFL_INPUT_CLICKABLE_MIXIN, EFL_ACCESS_WIDGET_ACTION_MIXIN, EFL_ACCESS_SELECTION_INTERFACE, EFL_UI_SELECTABLE_INTERFACE, ELM_LAYOUT_MIXIN, EFL_UI_LEGACY_INTERFACE, ELM_WIDGET_ITEM_CONTAINER_INTERFACE, NULL); EFL_DEFINE_CLASS(elm_genlist_class_get, &_elm_genlist_class_desc, EFL_UI_LAYOUT_BASE_CLASS, ELM_INTERFACE_SCROLLABLE_MIXIN, EFL_INPUT_CLICKABLE_MIXIN, EFL_ACCESS_WIDGET_ACTION_MIXIN, EFL_ACCESS_SELECTION_INTERFACE, ELM_LAYOUT_MIXIN, EFL_UI_LEGACY_INTERFACE, ELM_WIDGET_ITEM_CONTAINER_INTERFACE, NULL);
#include "elm_genlist_eo.legacy.c" #include "elm_genlist_eo.legacy.c"

View File

@ -189,6 +189,6 @@ static const Efl_Class_Description _elm_hoversel_class_desc = {
NULL NULL
}; };
EFL_DEFINE_CLASS(elm_hoversel_class_get, &_elm_hoversel_class_desc, EFL_UI_BUTTON_LEGACY_CLASS, EFL_UI_SELECTABLE_INTERFACE, EFL_INPUT_CLICKABLE_MIXIN, EFL_ACCESS_WIDGET_ACTION_MIXIN, ELM_LAYOUT_MIXIN, EFL_UI_LEGACY_INTERFACE, NULL); EFL_DEFINE_CLASS(elm_hoversel_class_get, &_elm_hoversel_class_desc, EFL_UI_BUTTON_LEGACY_CLASS, EFL_INPUT_CLICKABLE_MIXIN, EFL_ACCESS_WIDGET_ACTION_MIXIN, ELM_LAYOUT_MIXIN, EFL_UI_LEGACY_INTERFACE, NULL);
#include "elm_hoversel_eo.legacy.c" #include "elm_hoversel_eo.legacy.c"

View File

@ -322,6 +322,6 @@ static const Efl_Class_Description _elm_index_class_desc = {
NULL NULL
}; };
EFL_DEFINE_CLASS(elm_index_class_get, &_elm_index_class_desc, EFL_UI_LAYOUT_BASE_CLASS, EFL_UI_LAYOUT_ORIENTABLE_INTERFACE, EFL_INPUT_CLICKABLE_MIXIN, EFL_UI_SELECTABLE_INTERFACE, ELM_LAYOUT_MIXIN, EFL_UI_LEGACY_INTERFACE, NULL); EFL_DEFINE_CLASS(elm_index_class_get, &_elm_index_class_desc, EFL_UI_LAYOUT_BASE_CLASS, EFL_UI_LAYOUT_ORIENTABLE_INTERFACE, EFL_INPUT_CLICKABLE_MIXIN, ELM_LAYOUT_MIXIN, EFL_UI_LEGACY_INTERFACE, NULL);
#include "elm_index_eo.legacy.c" #include "elm_index_eo.legacy.c"

View File

@ -363,6 +363,6 @@ static const Efl_Class_Description _elm_list_class_desc = {
NULL NULL
}; };
EFL_DEFINE_CLASS(elm_list_class_get, &_elm_list_class_desc, EFL_UI_LAYOUT_BASE_CLASS, ELM_INTERFACE_SCROLLABLE_MIXIN, EFL_ACCESS_WIDGET_ACTION_MIXIN, EFL_ACCESS_SELECTION_INTERFACE, EFL_ACCESS_OBJECT_MIXIN, EFL_INPUT_CLICKABLE_MIXIN, EFL_UI_SELECTABLE_INTERFACE, ELM_LAYOUT_MIXIN, EFL_UI_LEGACY_INTERFACE, ELM_WIDGET_ITEM_CONTAINER_INTERFACE, NULL); EFL_DEFINE_CLASS(elm_list_class_get, &_elm_list_class_desc, EFL_UI_LAYOUT_BASE_CLASS, ELM_INTERFACE_SCROLLABLE_MIXIN, EFL_ACCESS_WIDGET_ACTION_MIXIN, EFL_ACCESS_SELECTION_INTERFACE, EFL_ACCESS_OBJECT_MIXIN, EFL_INPUT_CLICKABLE_MIXIN, ELM_LAYOUT_MIXIN, EFL_UI_LEGACY_INTERFACE, ELM_WIDGET_ITEM_CONTAINER_INTERFACE, NULL);
#include "elm_list_eo.legacy.c" #include "elm_list_eo.legacy.c"

View File

@ -372,6 +372,6 @@ static const Efl_Class_Description _elm_toolbar_class_desc = {
NULL NULL
}; };
EFL_DEFINE_CLASS(elm_toolbar_class_get, &_elm_toolbar_class_desc, EFL_UI_WIDGET_CLASS, EFL_UI_FOCUS_COMPOSITION_MIXIN, ELM_INTERFACE_SCROLLABLE_MIXIN, EFL_UI_LAYOUT_ORIENTABLE_INTERFACE, EFL_ACCESS_WIDGET_ACTION_MIXIN, EFL_ACCESS_SELECTION_INTERFACE, EFL_ACCESS_OBJECT_MIXIN, EFL_INPUT_CLICKABLE_MIXIN, EFL_UI_SELECTABLE_INTERFACE, EFL_UI_LEGACY_INTERFACE, ELM_WIDGET_ITEM_CONTAINER_INTERFACE, NULL); EFL_DEFINE_CLASS(elm_toolbar_class_get, &_elm_toolbar_class_desc, EFL_UI_WIDGET_CLASS, EFL_UI_FOCUS_COMPOSITION_MIXIN, ELM_INTERFACE_SCROLLABLE_MIXIN, EFL_UI_LAYOUT_ORIENTABLE_INTERFACE, EFL_ACCESS_WIDGET_ACTION_MIXIN, EFL_ACCESS_SELECTION_INTERFACE, EFL_ACCESS_OBJECT_MIXIN, EFL_INPUT_CLICKABLE_MIXIN, EFL_UI_LEGACY_INTERFACE, ELM_WIDGET_ITEM_CONTAINER_INTERFACE, NULL);
#include "elm_toolbar_eo.legacy.c" #include "elm_toolbar_eo.legacy.c"