From 0e98f57d6d6b1527d8040d79101cfeb2089bbb3e Mon Sep 17 00:00:00 2001 From: Jean-Philippe Andre Date: Thu, 24 Aug 2017 15:21:59 +0900 Subject: [PATCH] widget: Rename hook "activate" (EO) This is for accessibility only. Protected function. Also marked as beta as elm_access isn't going to be stable in EO (yet). Ref T5363 --- src/lib/elementary/efl_ui_button.c | 3 ++- src/lib/elementary/efl_ui_button.eo | 2 +- src/lib/elementary/efl_ui_check.c | 3 ++- src/lib/elementary/efl_ui_check.eo | 2 +- src/lib/elementary/efl_ui_radio.c | 3 ++- src/lib/elementary/efl_ui_radio.eo | 2 +- src/lib/elementary/efl_ui_slider.c | 3 ++- src/lib/elementary/efl_ui_slider.eo | 2 +- src/lib/elementary/efl_ui_text.c | 3 ++- src/lib/elementary/efl_ui_text.eo | 2 +- src/lib/elementary/elm_access.c | 3 ++- src/lib/elementary/elm_access.eo | 2 +- src/lib/elementary/elm_entry.c | 3 ++- src/lib/elementary/elm_entry.eo | 2 +- src/lib/elementary/elm_general.eot | 12 ++++++++++++ src/lib/elementary/elm_scroller.c | 3 ++- src/lib/elementary/elm_scroller.eo | 2 +- src/lib/elementary/elm_widget.c | 4 ++-- src/lib/elementary/elm_widget.eo | 21 +++++++-------------- 19 files changed, 45 insertions(+), 32 deletions(-) diff --git a/src/lib/elementary/efl_ui_button.c b/src/lib/elementary/efl_ui_button.c index b3a5c5d53d..c954b05cc9 100644 --- a/src/lib/elementary/efl_ui_button.c +++ b/src/lib/elementary/efl_ui_button.c @@ -5,6 +5,7 @@ #define ELM_INTERFACE_ATSPI_WIDGET_ACTION_PROTECTED #define ELM_INTERFACE_ATSPI_ACCESSIBLE_PROTECTED #define ELM_LAYOUT_PROTECTED +#define ELM_WIDGET_BETA #include #include "elm_priv.h" @@ -88,7 +89,7 @@ _efl_ui_button_elm_layout_sizing_eval(Eo *obj, Efl_Ui_Button_Data *_pd EINA_UNUS } EOLIAN static Eina_Bool -_efl_ui_button_elm_widget_activate(Eo *obj, Efl_Ui_Button_Data *_pd EINA_UNUSED, Elm_Activate act) +_efl_ui_button_elm_widget_on_access_activate(Eo *obj, Efl_Ui_Button_Data *_pd EINA_UNUSED, Elm_Activate act) { if (elm_widget_disabled_get(obj)) return EINA_FALSE; if (act != ELM_ACTIVATE_DEFAULT) return EINA_FALSE; diff --git a/src/lib/elementary/efl_ui_button.eo b/src/lib/elementary/efl_ui_button.eo index 81fd2504f9..1065d14b3d 100644 --- a/src/lib/elementary/efl_ui_button.eo +++ b/src/lib/elementary/efl_ui_button.eo @@ -16,7 +16,7 @@ class Efl.Ui.Button (Efl.Ui.Layout, Efl.Ui.Clickable, Efl.Ui.Autorepeat, Efl.Tex Efl.Ui.Autorepeat.autorepeat_gap_timeout { set; get; } Efl.Ui.Autorepeat.autorepeat_enabled { set; get; } Efl.Ui.Autorepeat.autorepeat_supported { get;} - Elm.Widget.activate; + Elm.Widget.on_access_activate; Elm.Widget.focus_next_manager_is; Elm.Widget.focus_direction_manager_is; Elm.Widget.theme_apply; diff --git a/src/lib/elementary/efl_ui_check.c b/src/lib/elementary/efl_ui_check.c index 8359e085f5..badcd34168 100644 --- a/src/lib/elementary/efl_ui_check.c +++ b/src/lib/elementary/efl_ui_check.c @@ -6,6 +6,7 @@ #define ELM_INTERFACE_ATSPI_WIDGET_ACTION_PROTECTED #define ELM_LAYOUT_PROTECTED #define EFL_UI_NSTATE_PROTECTED +#define ELM_WIDGET_BETA #include #include "elm_priv.h" @@ -132,7 +133,7 @@ _efl_ui_check_elm_widget_widget_sub_object_del(Eo *obj, Efl_Ui_Check_Data *_pd E } EOLIAN static Eina_Bool -_efl_ui_check_elm_widget_activate(Eo *obj EINA_UNUSED, Efl_Ui_Check_Data *_pd EINA_UNUSED, Elm_Activate act) +_efl_ui_check_elm_widget_on_access_activate(Eo *obj EINA_UNUSED, Efl_Ui_Check_Data *_pd EINA_UNUSED, Elm_Activate act) { if (elm_widget_disabled_get(obj)) return EINA_FALSE; if (act != ELM_ACTIVATE_DEFAULT) return EINA_FALSE; diff --git a/src/lib/elementary/efl_ui_check.eo b/src/lib/elementary/efl_ui_check.eo index 0dc5f1303e..fd2ad47ea5 100644 --- a/src/lib/elementary/efl_ui_check.eo +++ b/src/lib/elementary/efl_ui_check.eo @@ -23,7 +23,7 @@ class Efl.Ui.Check (Efl.Ui.Nstate, Elm.Interface.Atspi_Widget_Action) implements { class.constructor; Efl.Object.constructor; - Elm.Widget.activate; + Elm.Widget.on_access_activate; Elm.Widget.theme_apply; Elm.Widget.widget_sub_object_del; Elm.Widget.widget_event; diff --git a/src/lib/elementary/efl_ui_radio.c b/src/lib/elementary/efl_ui_radio.c index 97c9e51bd5..9d5145c4ab 100644 --- a/src/lib/elementary/efl_ui_radio.c +++ b/src/lib/elementary/efl_ui_radio.c @@ -5,6 +5,7 @@ #define ELM_INTERFACE_ATSPI_ACCESSIBLE_PROTECTED #define ELM_INTERFACE_ATSPI_WIDGET_ACTION_PROTECTED #define ELM_LAYOUT_PROTECTED +#define ELM_WIDGET_BETA #include @@ -345,7 +346,7 @@ _efl_ui_radio_selected_object_get(Eo *obj EINA_UNUSED, Efl_Ui_Radio_Data *sd) } EOLIAN static Eina_Bool -_efl_ui_radio_elm_widget_activate(Eo *obj, Efl_Ui_Radio_Data *_pd EINA_UNUSED, Elm_Activate act) +_efl_ui_radio_elm_widget_on_access_activate(Eo *obj, Efl_Ui_Radio_Data *_pd EINA_UNUSED, Elm_Activate act) { if (elm_widget_disabled_get(obj)) return EINA_FALSE; if (act != ELM_ACTIVATE_DEFAULT) return EINA_FALSE; diff --git a/src/lib/elementary/efl_ui_radio.eo b/src/lib/elementary/efl_ui_radio.eo index 9106f1122a..8d6c4cff1f 100644 --- a/src/lib/elementary/efl_ui_radio.eo +++ b/src/lib/elementary/efl_ui_radio.eo @@ -78,7 +78,7 @@ class Efl.Ui.Radio (Efl.Ui.Check, Elm.Interface.Atspi_Widget_Action) class.constructor; Efl.Object.constructor; Elm.Widget.theme_apply; - Elm.Widget.activate; + Elm.Widget.on_access_activate; Elm.Widget.widget_event; Elm.Interface.Atspi_Accessible.state_set { get; } Elm.Interface.Atspi_Widget_Action.elm_actions { get; } diff --git a/src/lib/elementary/efl_ui_slider.c b/src/lib/elementary/efl_ui_slider.c index aa8c5d3fa3..79de252e9a 100644 --- a/src/lib/elementary/efl_ui_slider.c +++ b/src/lib/elementary/efl_ui_slider.c @@ -6,6 +6,7 @@ #define ELM_INTERFACE_ATSPI_WIDGET_ACTION_PROTECTED #define ELM_INTERFACE_ATSPI_VALUE_PROTECTED #define ELM_LAYOUT_PROTECTED +#define ELM_WIDGET_BETA #include @@ -601,7 +602,7 @@ _efl_ui_slider_elm_widget_widget_event(Eo *obj, Efl_Ui_Slider_Data *sd, const Ef } EOLIAN static Eina_Bool -_efl_ui_slider_elm_widget_activate(Eo *obj, Efl_Ui_Slider_Data *sd, Elm_Activate act) +_efl_ui_slider_elm_widget_on_access_activate(Eo *obj, Efl_Ui_Slider_Data *sd, Elm_Activate act) { if (elm_widget_disabled_get(obj)) return EINA_FALSE; if (act == ELM_ACTIVATE_DEFAULT) return EINA_FALSE; diff --git a/src/lib/elementary/efl_ui_slider.eo b/src/lib/elementary/efl_ui_slider.eo index b549703ad0..ccb1559d85 100644 --- a/src/lib/elementary/efl_ui_slider.eo +++ b/src/lib/elementary/efl_ui_slider.eo @@ -116,7 +116,7 @@ class Efl.Ui.Slider (Efl.Ui.Layout, Efl.Ui.Range, Efl.Ui.Direction, Efl.Object.constructor; Efl.Canvas.Group.group_calculate; Elm.Widget.theme_apply; - Elm.Widget.activate; + Elm.Widget.on_access_activate; Elm.Widget.focus_next_manager_is; Elm.Widget.focus_direction_manager_is; Elm.Widget.on_focus; diff --git a/src/lib/elementary/efl_ui_text.c b/src/lib/elementary/efl_ui_text.c index c03f54d7bb..25ea11aa82 100644 --- a/src/lib/elementary/efl_ui_text.c +++ b/src/lib/elementary/efl_ui_text.c @@ -6,6 +6,7 @@ #define ELM_INTERFACE_ATSPI_TEXT_PROTECTED #define ELM_INTERFACE_ATSPI_TEXT_EDITABLE_PROTECTED #define ELM_LAYOUT_PROTECTED +#define ELM_WIDGET_BETA #include #include @@ -3994,7 +3995,7 @@ _efl_ui_text_anchor_hover_end(Eo *obj EINA_UNUSED, Efl_Ui_Text_Data *sd) /* END - ANCHOR HOVER */ EOLIAN static Eina_Bool -_efl_ui_text_elm_widget_activate(Eo *obj, Efl_Ui_Text_Data *_pd EINA_UNUSED, Elm_Activate act) +_efl_ui_text_elm_widget_on_access_activate(Eo *obj, Efl_Ui_Text_Data *_pd EINA_UNUSED, Elm_Activate act) { if (act != ELM_ACTIVATE_DEFAULT) return EINA_FALSE; diff --git a/src/lib/elementary/efl_ui_text.eo b/src/lib/elementary/efl_ui_text.eo index 66993e4811..5898439d33 100644 --- a/src/lib/elementary/efl_ui_text.eo +++ b/src/lib/elementary/efl_ui_text.eo @@ -407,7 +407,7 @@ class Efl.Ui.Text (Efl.Ui.Layout, Elm.Interface_Scrollable, Efl.Ui.Clickable, Efl.Canvas.Layout_Signal.signal_callback_add; Efl.Canvas.Layout_Signal.signal_callback_del; Efl.Canvas.Layout_Signal.signal_emit; - Elm.Widget.activate; + Elm.Widget.on_access_activate; Elm.Widget.focus_direction_manager_is; Elm.Widget.theme_apply; Elm.Widget.on_focus; diff --git a/src/lib/elementary/elm_access.c b/src/lib/elementary/elm_access.c index 88d06bed59..c68256938c 100644 --- a/src/lib/elementary/elm_access.c +++ b/src/lib/elementary/elm_access.c @@ -4,6 +4,7 @@ #define ELM_INTERFACE_ATSPI_ACCESSIBLE_PROTECTED #define ELM_INTERFACE_ATSPI_WIDGET_ACTION_PROTECTED +#define ELM_WIDGET_BETA #include #include "elm_priv.h" @@ -84,7 +85,7 @@ _access_action_callback_call(Evas_Object *obj, } EOLIAN static Eina_Bool -_elm_access_elm_widget_activate(Eo *obj, void *_pd EINA_UNUSED, Elm_Activate act) +_elm_access_elm_widget_on_access_activate(Eo *obj, void *_pd EINA_UNUSED, Elm_Activate act) { int type = ELM_ACCESS_ACTION_FIRST; diff --git a/src/lib/elementary/elm_access.eo b/src/lib/elementary/elm_access.eo index 5c8fb31823..8932f881af 100644 --- a/src/lib/elementary/elm_access.eo +++ b/src/lib/elementary/elm_access.eo @@ -7,7 +7,7 @@ class Elm.Access (Elm.Widget, Elm.Interface.Atspi_Widget_Action) implements { class.constructor; Efl.Object.constructor; - Elm.Widget.activate; + Elm.Widget.on_access_activate; Elm.Widget.on_focus; Elm.Interface.Atspi_Widget_Action.elm_actions { get; } Elm.Interface.Atspi_Accessible.state_set { get; } diff --git a/src/lib/elementary/elm_entry.c b/src/lib/elementary/elm_entry.c index c1e9abb77e..686c9ca56f 100644 --- a/src/lib/elementary/elm_entry.c +++ b/src/lib/elementary/elm_entry.c @@ -6,6 +6,7 @@ #define ELM_INTERFACE_ATSPI_TEXT_PROTECTED #define ELM_INTERFACE_ATSPI_TEXT_EDITABLE_PROTECTED #define ELM_LAYOUT_PROTECTED +#define ELM_WIDGET_BETA #include #include @@ -5421,7 +5422,7 @@ _elm_entry_anchor_hover_end(Eo *obj EINA_UNUSED, Elm_Entry_Data *sd) /* END - ANCHOR HOVER */ EOLIAN static Eina_Bool -_elm_entry_elm_widget_activate(Eo *obj, Elm_Entry_Data *_pd EINA_UNUSED, Elm_Activate act) +_elm_entry_elm_widget_on_access_activate(Eo *obj, Elm_Entry_Data *_pd EINA_UNUSED, Elm_Activate act) { if (act != ELM_ACTIVATE_DEFAULT) return EINA_FALSE; diff --git a/src/lib/elementary/elm_entry.eo b/src/lib/elementary/elm_entry.eo index 87a9ebe0ab..88d26d7ccf 100644 --- a/src/lib/elementary/elm_entry.eo +++ b/src/lib/elementary/elm_entry.eo @@ -957,7 +957,7 @@ class Elm.Entry (Efl.Ui.Layout, Elm.Interface_Scrollable, Efl.Ui.Clickable, Efl.Canvas.Layout_Signal.signal_callback_add; Efl.Canvas.Layout_Signal.signal_callback_del; Efl.Canvas.Layout_Signal.signal_emit; - Elm.Widget.activate; + Elm.Widget.on_access_activate; Elm.Widget.focus_direction_manager_is; Elm.Widget.theme_apply; Elm.Widget.on_focus; diff --git a/src/lib/elementary/elm_general.eot b/src/lib/elementary/elm_general.eot index cf52477d71..2c6ffb65c0 100644 --- a/src/lib/elementary/elm_general.eot +++ b/src/lib/elementary/elm_general.eot @@ -203,3 +203,15 @@ enum Elm.Icon.Type file, [[Icon is of type file]] standard [[Icon is of type standard]] } + +/* 'on_access_activate' is beta API in the Widget class */ +enum Elm.Activate +{ + [[Accessibility ]] + default = 0, [[Activate default]] + up, [[Activate up]] + down, [[Activate down]] + right, [[Activate right]] + left, [[Activate left]] + back, [[Activate back]] +} diff --git a/src/lib/elementary/elm_scroller.c b/src/lib/elementary/elm_scroller.c index 02c79bd8b2..662b141fc2 100644 --- a/src/lib/elementary/elm_scroller.c +++ b/src/lib/elementary/elm_scroller.c @@ -4,6 +4,7 @@ #define ELM_INTERFACE_ATSPI_ACCESSIBLE_PROTECTED #define ELM_INTERFACE_ATSPI_WIDGET_ACTION_PROTECTED +#define ELM_WIDGET_BETA #include @@ -262,7 +263,7 @@ _key_action_move(Evas_Object *obj, const char *params) } EOLIAN static Eina_Bool -_elm_scroller_elm_widget_activate(Eo *obj, Elm_Scroller_Data *_pd EINA_UNUSED, Elm_Activate act) +_elm_scroller_elm_widget_on_access_activate(Eo *obj, Elm_Scroller_Data *_pd EINA_UNUSED, Elm_Activate act) { Evas_Coord x = 0; Evas_Coord y = 0; diff --git a/src/lib/elementary/elm_scroller.eo b/src/lib/elementary/elm_scroller.eo index 430b4cf148..48f3f74754 100644 --- a/src/lib/elementary/elm_scroller.eo +++ b/src/lib/elementary/elm_scroller.eo @@ -48,7 +48,7 @@ class Elm.Scroller (Efl.Ui.Layout, Elm.Interface_Scrollable, Efl.Container.content { get; set; } Efl.Container.content_unset; Elm.Widget.theme_apply; - Elm.Widget.activate; + Elm.Widget.on_access_activate; Elm.Widget.focus_next_manager_is; Elm.Widget.focus_direction_manager_is; Elm.Widget.focus_next; diff --git a/src/lib/elementary/elm_widget.c b/src/lib/elementary/elm_widget.c index 61e83f7f16..02b9635740 100644 --- a/src/lib/elementary/elm_widget.c +++ b/src/lib/elementary/elm_widget.c @@ -4550,7 +4550,7 @@ elm_widget_activate(Evas_Object *obj, Elm_Activate act) ret = EINA_FALSE; - ret = elm_obj_widget_activate(obj, act); + ret = elm_obj_widget_on_access_activate(obj, act); if (ret) return; @@ -6241,7 +6241,7 @@ _elm_widget_focus_direction_manager_is(Eo *obj EINA_UNUSED, Elm_Widget_Smart_Dat } EOLIAN static Eina_Bool -_elm_widget_activate(Eo *obj EINA_UNUSED, Elm_Widget_Smart_Data *_pd EINA_UNUSED, Elm_Activate act EINA_UNUSED) +_elm_widget_on_access_activate(Eo *obj EINA_UNUSED, Elm_Widget_Smart_Data *_pd EINA_UNUSED, Elm_Activate act EINA_UNUSED) { WRN("The %s widget does not implement the \"activate\" functions.", efl_class_name_get(efl_class_get(obj))); diff --git a/src/lib/elementary/elm_widget.eo b/src/lib/elementary/elm_widget.eo index 8b4343cd88..0e3b350d20 100644 --- a/src/lib/elementary/elm_widget.eo +++ b/src/lib/elementary/elm_widget.eo @@ -8,17 +8,6 @@ function Efl.Ui.Scrollable_On_Show_Region } }; -enum Elm.Activate -{ - [[ Used in 'Virtual' function @Elm.Widget.activate. ]] - default = 0, [[Activate default]] - up, [[Activate up]] - down, [[Activate down]] - right, [[Activate right]] - left, [[Activate left]] - back, [[Activate back]] -} - struct @extern Elm.Theme; [[Elementary theme]] abstract Elm.Widget (Efl.Canvas.Group, Elm.Interface.Atspi_Accessible, @@ -411,10 +400,14 @@ abstract Elm.Widget (Efl.Canvas.Group, Elm.Interface.Atspi_Accessible, return: Efl.Ui.Theme.Apply; [[Indicates success, and if the current theme or default theme was used.]] } - activate { - [['Virtual' function to activate widget.]] + on_access_activate @protected @beta { + [[Hook function called when widget is activated through accessibility. + + This meant to be overridden by subclasses to support accessibility. + This is an unstable API. + ]] params { - @in act: Elm.Activate; [[Activate]] + @in act: Elm.Activate; [[Type of activation.]] } return: bool; [[$true on success, $false otherwise]] legacy: null; /* the legacy API has not the same number of parameter to we don't generate it. */