EAPI Eina_Bool
_elm_widget_item_highlightable(Elm_Object_Item *item)
{
+ Eo *parent;
+ Eina_Bool can_highlight;
+
Elm_Widget_Item_Data *id = eo_data_scope_get(item, ELM_WIDGET_ITEM_CLASS);
if (!id) return EINA_FALSE;
if (!id->can_highlight) return EINA_FALSE;
- Evas_Object *widget = id->widget;
- Evas_Object *parent = widget;
- Elm_Widget_Smart_Data *wd;
- if (parent && eo_isa(parent, ELM_INTERFACE_ATSPI_ACCESSIBLE_MIXIN))
- {
- wd = eo_data_scope_get(parent, ELM_WIDGET_CLASS);
- if (!wd->can_highlight) return EINA_FALSE;
- }
- do
+
+ eo_do(item, parent = elm_interface_atspi_accessible_parent_get());
+ while (parent && !eo_isa(parent, ELM_ATSPI_APP_OBJECT_CLASS))
{
- parent = elm_widget_parent_get(parent);
- if (parent && eo_isa(parent, ELM_INTERFACE_ATSPI_ACCESSIBLE_MIXIN))
- {
- wd = eo_data_scope_get(parent, ELM_WIDGET_CLASS);
- if (!wd->can_highlight) return EINA_FALSE;
- }
+ eo_do(parent, can_highlight = elm_interface_atspi_accessible_can_highlight_get());
+ if (!can_highlight) return EINA_FALSE;
+ eo_do(parent, parent = elm_interface_atspi_accessible_parent_get());
}
- while (parent && (parent != elm_widget_top_get(widget)));
return EINA_TRUE;
}
//
EAPI Eina_Bool
_elm_widget_highlightable(Evas_Object *obj)
{
+ Eo *parent;
+ Eina_Bool can_highlight;
+
Elm_Widget_Smart_Data *wd = eo_data_scope_get(obj, ELM_WIDGET_CLASS);
if (!wd) return EINA_FALSE;
if (!wd->can_highlight) return EINA_FALSE;
- Evas_Object *parent = elm_widget_parent_get(obj);
- if (parent && eo_isa(parent, ELM_INTERFACE_ATSPI_ACCESSIBLE_MIXIN))
- {
- wd = eo_data_scope_get(parent, ELM_WIDGET_CLASS);
- if (!wd->can_highlight) return EINA_FALSE;
- }
- do
+
+ eo_do(obj, parent = elm_interface_atspi_accessible_parent_get());
+ while (parent && !eo_isa(parent, ELM_ATSPI_APP_OBJECT_CLASS))
{
- parent = elm_widget_parent_get(parent);
- if (parent && eo_isa(parent, ELM_INTERFACE_ATSPI_ACCESSIBLE_MIXIN))
- {
- wd = eo_data_scope_get(parent, ELM_WIDGET_CLASS);
- if (!wd->can_highlight) return EINA_FALSE;
- }
+ eo_do(parent, can_highlight = elm_interface_atspi_accessible_can_highlight_get());
+ if (!can_highlight) return EINA_FALSE;
+ eo_do(parent, parent = elm_interface_atspi_accessible_parent_get());
}
- while (parent && (parent != elm_widget_top_get(obj)));
return EINA_TRUE;
}
//