Summary: we do not have to change several place for updating.
Reviewers: Hermet, jsuya, herb
Reviewed By: Hermet
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D12282
Change-Id: I655345e11ff6fbf85d5f02e6d1f600a4da6cae68
return ret;
}
+Eina_Rect
+_efl_access_component_screen_coords_extents_get(const Eo *obj, Eina_Rect r)
+{
+ Ecore_Evas *ee = ecore_evas_ecore_evas_get(evas_object_evas_get(obj));
+ if (ee)
+ {
+ int ee_x = 0, ee_y = 0;
+ ecore_evas_geometry_get(ee, &ee_x, &ee_y, NULL, NULL);
+ r.x += ee_x;
+ r.y += ee_y;
+ }
+
+ return r;
+}
+
EOLIAN static Eina_Rect
_efl_access_component_extents_get(const Eo *obj, Efl_Access_Component_Data *_pd EINA_UNUSED, Eina_Bool screen_coords)
{
r = efl_gfx_entity_geometry_get(obj);
if (screen_coords)
{
- Ecore_Evas *ee = ecore_evas_ecore_evas_get(evas_object_evas_get(obj));
- if (ee)
- {
- int ee_x = 0, ee_y = 0;
- ecore_evas_geometry_get(ee, &ee_x, &ee_y, NULL, NULL);
- r.x += ee_x;
- r.y += ee_y;
- }
+ r = _efl_access_component_screen_coords_extents_get(obj, r);
}
return r;
}
EOLIAN static Eina_Rect
_efl_ui_image_efl_access_component_extents_get(const Eo *obj, Efl_Ui_Image_Data *sd EINA_UNUSED, Eina_Bool screen_coords)
{
- int ee_x, ee_y;
Eina_Rect r;
Evas_Object *image = elm_image_object_get(obj);
evas_object_geometry_get(image, &r.x, &r.y, NULL, NULL);
if (screen_coords)
{
- Ecore_Evas *ee = ecore_evas_ecore_evas_get(evas_object_evas_get(image));
- if (!ee) return r;
- ecore_evas_geometry_get(ee, &ee_x, &ee_y, NULL, NULL);
- r.x += ee_x;
- r.y += ee_y;
+ r = _efl_access_component_screen_coords_extents_get(obj, r);
}
elm_image_object_size_get(obj, &r.w, &r.h);
return r;
_elm_widget_item_efl_access_component_extents_get(const Eo *obj EINA_UNUSED, Elm_Widget_Item_Data *sd EINA_UNUSED, Eina_Bool screen_coords)
{
Eina_Rect r = EINA_RECT(-1, -1, -1, -1);
- int ee_x, ee_y;
if (!sd->view) return r;
r = efl_gfx_entity_geometry_get(sd->view);
if (screen_coords)
{
- Ecore_Evas *ee = ecore_evas_ecore_evas_get(evas_object_evas_get(sd->view));
- if (ee)
- {
- ecore_evas_geometry_get(ee, &ee_x, &ee_y, NULL, NULL);
- r.x += ee_x;
- r.y += ee_y;
- }
+ r = _efl_access_component_screen_coords_extents_get(obj, r);
}
return r;
}
_efl_ui_win_efl_access_component_extents_get(const Eo *obj, Efl_Ui_Win_Data *_pd EINA_UNUSED, Eina_Bool screen_coords)
{
Eina_Rect r;
- int ee_x, ee_y;
r = efl_gfx_entity_geometry_get(obj);
r.x = r.y = 0;
if (screen_coords)
{
- Ecore_Evas *ee = ecore_evas_ecore_evas_get(evas_object_evas_get(obj));
- if (ee)
- {
- ecore_evas_geometry_get(ee, &ee_x, &ee_y, NULL, NULL);
- r.x += ee_x;
- r.y += ee_y;
- }
+ r = _efl_access_component_screen_coords_extents_get(obj, r);
}
return r;
}
void _efl_access_shutdown(void);
+Eina_Rect _efl_access_component_screen_coords_extents_get(const Eo *obj, Eina_Rect r);
/* Combobox: no proper support for Efl.Part API yet. */
void _elm_combobox_part_text_set(Eo *obj, const char * part, const char *label);