diff --git a/legacy/elementary/src/lib/elm_widget.c b/legacy/elementary/src/lib/elm_widget.c index 4bb2a5956c..1763bc505b 100644 --- a/legacy/elementary/src/lib/elm_widget.c +++ b/legacy/elementary/src/lib/elm_widget.c @@ -5702,5 +5702,61 @@ _elm_widget_elm_interface_atspi_accessible_relation_set_get(Eo *obj, Elm_Widget_ return list; } +EOLIAN static void +_elm_widget_item_elm_interface_atspi_component_extents_get(Eo *obj EINA_UNUSED, Elm_Widget_Item_Data *sd EINA_UNUSED, Eina_Bool screen_coords, int *x, int *y, int *w, int *h) +{ + int ee_x, ee_y; + + if (!sd->view) + { + if (x) *x = -1; + if (y) *y = -1; + if (w) *w = -1; + if (h) *h = -1; + return; + } + + evas_object_geometry_get(sd->view, x, y, w, h); + if (screen_coords) + { + Ecore_Evas *ee = ecore_evas_ecore_evas_get(evas_object_evas_get(sd->view)); + if (!ee) return; + ecore_evas_geometry_get(ee, &ee_x, &ee_y, NULL, NULL); + if (x) *x += ee_x; + if (y) *y += ee_y; + } +} + +EOLIAN static Eina_Bool +_elm_widget_item_elm_interface_atspi_component_extents_set(Eo *obj EINA_UNUSED, Elm_Widget_Item_Data *sd EINA_UNUSED, Eina_Bool screen_coords EINA_UNUSED, int x EINA_UNUSED, int y EINA_UNUSED, int w EINA_UNUSED, int h EINA_UNUSED) +{ + return EINA_FALSE; +} + +EOLIAN static int +_elm_widget_item_elm_interface_atspi_component_layer_get(Eo *obj EINA_UNUSED, Elm_Widget_Item_Data *sd EINA_UNUSED) +{ + if (!sd->view) + return -1; + return evas_object_layer_get(sd->view); +} + +EOLIAN static Eina_Bool +_elm_widget_item_elm_interface_atspi_component_focus_grab(Eo *obj EINA_UNUSED, Elm_Widget_Item_Data *_pd EINA_UNUSED) +{ + elm_object_item_focus_set(obj, EINA_TRUE); + return elm_object_item_focus_get(obj); +} + +EOLIAN static double +_elm_widget_item_elm_interface_atspi_component_alpha_get(Eo *obj EINA_UNUSED, Elm_Widget_Item_Data *sd EINA_UNUSED) +{ + int alpha; + + if (!sd->view) return -1.0; + evas_object_color_get(sd->view, NULL, NULL, NULL, &alpha); + return (double)alpha / 255.0; +} + #include "elm_widget_item.eo.c" #include "elm_widget.eo.c" diff --git a/legacy/elementary/src/lib/elm_widget_item.eo b/legacy/elementary/src/lib/elm_widget_item.eo index c40ce28112..771edac5b0 100644 --- a/legacy/elementary/src/lib/elm_widget_item.eo +++ b/legacy/elementary/src/lib/elm_widget_item.eo @@ -1,4 +1,5 @@ -class Elm.Widget_Item(Eo.Base, Elm_Interface_Atspi_Accessible) +class Elm.Widget_Item(Eo.Base, Elm_Interface_Atspi_Accessible, + Elm_Interface_Atspi_Component) { eo_prefix: elm_wdg_item; legacy_prefix: elm_object_item; @@ -729,5 +730,10 @@ class Elm.Widget_Item(Eo.Base, Elm_Interface_Atspi_Accessible) Elm_Interface_Atspi_Accessible.role.set; Elm_Interface_Atspi_Accessible.state_set.get; Elm_Interface_Atspi_Accessible.parent.get; + Elm_Interface_Atspi_Component.extents.get; + Elm_Interface_Atspi_Component.extents.set; + Elm_Interface_Atspi_Component.alpha.get; + Elm_Interface_Atspi_Component.layer.get; + Elm_Interface_Atspi_Component.focus_grab; } }