2. widget_atspi function added to genlist, gengrid. when item realized register object, on unrealize de-register object.
Change-Id: If691fb18c848fdba4f6e3482bf6a2ed25b3e53e9
Signed-off-by: Shilpa Singh <shilpa.singh@samsung.com>
_item_content_signals_emit(it);
}
-
//TIZEN ONLY(20151012): expose title as at-spi object
-static Eina_Bool
-_naviframe_atspi_bridge_on_connect_cb(void *data, Eo *obj EINA_UNUSED, const Eo_Event_Description *desc EINA_UNUSED, void *event_info EINA_UNUSED)
+static void
+_atspi_expose_title(Elm_Naviframe_Item_Data *it, Eina_Bool is_atspi)
{
- Elm_Naviframe_Item_Data *it = (Elm_Naviframe_Item_Data*)data;
- Evas_Object *part;
- Evas_Object *access;
-
- part = (Evas_Object*)edje_object_part_object_get(elm_layout_edje_get(VIEW(it)), TITLE_ACCESS_PART);
- if (part)
+ Evas_Object *part = NULL;
+ Evas_Object *access = NULL;
+ part = (Evas_Object*)edje_object_part_object_get(elm_layout_edje_get(VIEW(it)),
+ TITLE_ACCESS_PART);
+ if (!part) return;
+ if (is_atspi)
{
access = elm_access_object_register(part, VIEW(it));
_elm_access_callback_set(_elm_access_info_get(access),
ELM_ACCESS_INFO, _access_info_cb, it);
elm_atspi_accessible_role_set(access, ELM_ATSPI_ROLE_HEADING);
}
- return EINA_TRUE;
-}
-
-static Eina_Bool
-_naviframe_atspi_bridge_on_disconnect_cb(void *data, Eo *obj EINA_UNUSED, const Eo_Event_Description *desc EINA_UNUSED, void *event_info EINA_UNUSED)
-{
- Elm_Naviframe_Item_Data *it = (Elm_Naviframe_Item_Data*)data;
- Evas_Object *part;
- part = (Evas_Object*)edje_object_part_object_get(elm_layout_edje_get(VIEW(it)), TITLE_ACCESS_PART);
- elm_access_object_unregister( part );
- return EINA_TRUE;
-}
-
-static void
-_unregister_naviframe_atspi_bridge_callbacks(Elm_Naviframe_Item_Data *it)
-{
- eo_do(_elm_atspi_bridge_get(),
- eo_event_callback_del(ELM_ATSPI_BRIDGE_EVENT_CONNECTED, _naviframe_atspi_bridge_on_connect_cb, it));
- eo_do(_elm_atspi_bridge_get(),
- eo_event_callback_del(ELM_ATSPI_BRIDGE_EVENT_DISCONNECTED, _naviframe_atspi_bridge_on_disconnect_cb, it));
-}
-
-static void
-_atspi_expose_title(Elm_Naviframe_Item_Data *it, Eina_Bool is_atspi)
-{
- Eina_Bool connected = EINA_FALSE;
- _unregister_naviframe_atspi_bridge_callbacks(it);
- if (!is_atspi) return;
-
- // If bridge is connected expose it now
- eo_do(_elm_atspi_bridge_get(), connected = elm_obj_atspi_bridge_connected_get());
- if (connected)
- _naviframe_atspi_bridge_on_connect_cb(it, NULL, NULL, NULL);
-
- // Register for bridge connect/disconnect
- _unregister_naviframe_atspi_bridge_callbacks(it);
- eo_do(_elm_atspi_bridge_get(),
- eo_event_callback_add(ELM_ATSPI_BRIDGE_EVENT_CONNECTED, _naviframe_atspi_bridge_on_connect_cb, it));
- eo_do(_elm_atspi_bridge_get(),
- eo_event_callback_add(ELM_ATSPI_BRIDGE_EVENT_DISCONNECTED, _naviframe_atspi_bridge_on_disconnect_cb, it));
+ else
+ elm_access_object_unregister(part);
}
//
}
if(_elm_config->atspi_mode)
- eo_do(btn, elm_interface_atspi_accessible_name_set(N_("Navigate back")));
+ eo_do(btn, elm_interface_atspi_accessible_name_set(N_("Navigate back")));
return btn;
}
evas_object_del(sd->dummy_edje);
- // TIZEN_ONLY(20151012): Unregister callbacks for ATSPI bridge enable/disable
- _unregister_naviframe_atspi_bridge_callbacks(it);
- //
-
eo_do_super(obj, MY_CLASS, evas_obj_smart_del());
}
}
//
-static Eina_Bool
-_calendar_atspi_bridge_on_connect_cb(void *data, Eo *_obj EINA_UNUSED, const Eo_Event_Description *desc EINA_UNUSED, void *event_info EINA_UNUSED)
+//TIZEN_ONLY(20160822): When atspi mode is dynamically switched on/off,
+//register/unregister access objects accordingly.
+static void
+_atspi_expose_objects(Evas_Object *obj, Eina_Bool is_atspi)
{
- Evas_Object *obj = (Evas_Object*)data;
int day;
int maxdays;
char day_s[3];
int ii;
char pname[14];
Evas_Object *ao, *ac;
-
+ Evas_Object *access;
ELM_CALENDAR_DATA_GET(obj, sd);
- //TIZEN_ONLY(20160720): Exposing calendar's month name in accessibility tree.
- Evas_Object *part, *access;
- part = (Evas_Object*)edje_object_part_object_get(elm_layout_edje_get(obj), MONTH_ACCESS_PART);
- elm_access_object_unregister(part);
- if (part)
+ if (is_atspi)
{
- access = elm_access_object_register(part, obj);
- _elm_access_callback_set(_elm_access_info_get(access),
- ELM_ACCESS_INFO, _month_access_info_cb, obj);
- elm_atspi_accessible_role_set(access, ELM_ATSPI_ROLE_HEADING);
+ //TIZEN_ONLY(20160720): Exposing calendar's month name in accessibility tree.
+ Evas_Object *part, *access;
+ part = (Evas_Object*)edje_object_part_object_get(elm_layout_edje_get(obj), MONTH_ACCESS_PART);
+ elm_access_object_unregister(part);
+ if (part)
+ {
+ access = elm_access_object_register(part, obj);
+ _elm_access_callback_set(_elm_access_info_get(access),
+ ELM_ACCESS_INFO, _month_access_info_cb, obj);
+ elm_atspi_accessible_role_set(access, ELM_ATSPI_ROLE_HEADING);
+ }
+ //
+ day = 0;
+ maxdays = _maxdays_get(&sd->shown_time, 0);
+ for (ii = 0; ii < 42; ii++)
+ {
+ snprintf(pname, sizeof(pname), "cit_%i.access", ii);
+ ac = (Evas_Object*)edje_object_part_object_get(elm_layout_edje_get(obj), pname);
+ elm_access_object_unregister(ac);
+ if ((!day) && (ii == sd->first_day_it)) day = 1;
+ if ((day) && (day <= maxdays))
+ {
+ ao = elm_access_object_register(ac, obj);
+ elm_atspi_accessible_role_set(ao, ELM_ATSPI_ROLE_TABLE_CELL);
+ snprintf(day_s, sizeof(day_s), "%i", day++);
+ elm_access_info_set(ao, ELM_ACCESS_INFO, (const char*)day_s);
+ elm_access_info_cb_set(ao, ELM_ACCESS_CONTEXT_INFO, _localized_access_info_cb, "calendar item");
+ }
+ }
}
- //
- day = 0;
- maxdays = _maxdays_get(&sd->shown_time, 0);
- for (ii = 0; ii < 42; ii++)
- {
- snprintf(pname, sizeof(pname), "cit_%i.access", ii);
- ac = (Evas_Object*)edje_object_part_object_get(elm_layout_edje_get(obj), pname);
- elm_access_object_unregister(ac);
- if ((!day) && (ii == sd->first_day_it)) day = 1;
- if ((day) && (day <= maxdays))
+ else
+ {
+ //TIZEN_ONLY(20160720): Exposing calendar's month name in accessibility tree.
+ access = (Evas_Object*)edje_object_part_object_get(elm_layout_edje_get(obj), MONTH_ACCESS_PART);
+ elm_access_object_unregister(access);
+ //
+ for (ii = 0; ii < 42; ii++)
{
- ao = elm_access_object_register(ac, obj);
- elm_atspi_accessible_role_set(ao, ELM_ATSPI_ROLE_TABLE_CELL);
-
- snprintf(day_s, sizeof(day_s), "%i", day++);
- elm_access_info_set(ao, ELM_ACCESS_INFO, (const char*)day_s);
- elm_access_info_cb_set(ao, ELM_ACCESS_CONTEXT_INFO, _localized_access_info_cb, "calendar item");
+ snprintf(pname, sizeof(pname), "cit_%i.access", ii);
+ ac = (Evas_Object*)edje_object_part_object_get(elm_layout_edje_get(obj), pname);
+ elm_access_object_unregister(ac);
}
- }
- return EINA_TRUE;
-}
-
-static Eina_Bool
-_calendar_atspi_bridge_on_disconnect_cb(void *data, Eo *_obj EINA_UNUSED, const Eo_Event_Description *desc EINA_UNUSED, void *event_info EINA_UNUSED)
-{
- Evas_Object *obj = (Evas_Object*)data;
- int ii;
- char pname[14];
- Evas_Object *ac;
-
- //TIZEN_ONLY(20160720): Exposing calendar's month name in accessibility tree.
- Evas_Object *access;
- access = (Evas_Object*)edje_object_part_object_get(elm_layout_edje_get(obj), MONTH_ACCESS_PART);
- elm_access_object_unregister(access);
- //
-
- for (ii = 0; ii < 42; ii++)
- {
- snprintf(pname, sizeof(pname), "cit_%i.access", ii);
- ac = (Evas_Object*)edje_object_part_object_get(elm_layout_edje_get(obj), pname);
- elm_access_object_unregister(ac);
- }
- return EINA_TRUE;
-}
-
-static void
-_unregister_atspi_calendar_bridge_callbacks(Evas_Object *obj)
-{
- if (!_elm_config->atspi_mode) return;
-
- eo_do(_elm_atspi_bridge_get(),
- eo_event_callback_del(ELM_ATSPI_BRIDGE_EVENT_CONNECTED, _calendar_atspi_bridge_on_connect_cb, obj));
- eo_do(_elm_atspi_bridge_get(),
- eo_event_callback_del(ELM_ATSPI_BRIDGE_EVENT_DISCONNECTED, _calendar_atspi_bridge_on_disconnect_cb, obj));
-}
-
-static void
-_atspi_expose_objects(Evas_Object *obj, Eina_Bool is_atspi)
-{
- Eina_Bool connected = EINA_FALSE;
- // Register bridge connect/disconnect
- _unregister_atspi_calendar_bridge_callbacks(obj);
- if (is_atspi)
- {
- // If already connected register callendar buttons callbacks
- eo_do(_elm_atspi_bridge_get(), connected = elm_obj_atspi_bridge_connected_get());
- if (connected)
- _calendar_atspi_bridge_on_connect_cb(obj, NULL, NULL, NULL);
- eo_do(_elm_atspi_bridge_get(),
- eo_event_callback_add(ELM_ATSPI_BRIDGE_EVENT_CONNECTED,
- _calendar_atspi_bridge_on_connect_cb, obj));
- eo_do(_elm_atspi_bridge_get(),
- eo_event_callback_add(ELM_ATSPI_BRIDGE_EVENT_DISCONNECTED,
- _calendar_atspi_bridge_on_disconnect_cb, obj));
- }
+ }
}
//
for (i = 0; i < ELM_DAY_LAST; i++)
eina_stringshare_del(sd->weekdays[i]);
- // TIZEN_ONLY(20151012): Unregister callbacks for ATSPI bridge enable/disable
- _unregister_atspi_calendar_bridge_callbacks(sd->obj);
- //
-
eo_do_super(obj, MY_CLASS, evas_obj_smart_del());
}
{NULL, NULL}
};
-// TIZEN_ONLY(20151012): Unregister callbacks for ATSPI bridge enable/disable
-static void _unregister_flipselector_atspi_bridge_callbacks(Elm_Flipselector_Data *sd);
-//
static Eina_Bool _key_action_flip(Evas_Object *obj, const char *params);
static const Elm_Action key_actions[] = {
ecore_timer_del(sd->spin);
- // TIZEN_ONLY(20151012): Unregister callbacks for ATSPI bridge enable/disable
- _unregister_flipselector_atspi_bridge_callbacks(sd);
- //
-
eo_do_super(obj, MY_CLASS, evas_obj_smart_del());
}
return EINA_TRUE;
}
-//TIZEN ONLY(20151012): register callbacks for ATSPI bridge enable/disable
-static Eina_Bool
-_flipselector_atspi_bridge_on_connect_cb(void *data, Eo *obj EINA_UNUSED, const Eo_Event_Description *desc EINA_UNUSED, void *event_info EINA_UNUSED)
+//TIZEN_ONLY(20160822): When atspi mode is dynamically switched on/off,
+//register/unregister access objects accordingly.
+static void
+_atspi_expose_flipselector_top_bottom(Elm_Flipselector_Data *sd, Eina_Bool is_atspi)
{
- Elm_Flipselector_Data *sd = (Elm_Flipselector_Data*)data;
Evas_Object *btn1;
Evas_Object *btn2;
- btn1 = (Evas_Object*)edje_object_part_object_get(elm_layout_edje_get(sd->obj), "top_clipper");
- btn2 = (Evas_Object*)edje_object_part_object_get(elm_layout_edje_get(sd->obj), "bottom_clipper");
- if (btn1 && btn2)
+
+ if (is_atspi)
{
- sd->access_top_button = elm_access_object_register(btn1, sd->obj);
- sd->access_bottom_button = elm_access_object_register(btn2, sd->obj);
+ btn1 = (Evas_Object*)edje_object_part_object_get(elm_layout_edje_get(sd->obj), "top_clipper");
+ btn2 = (Evas_Object*)edje_object_part_object_get(elm_layout_edje_get(sd->obj), "bottom_clipper");
+ if (btn1 && btn2)
+ {
+ sd->access_top_button = elm_access_object_register(btn1, sd->obj);
+ sd->access_bottom_button = elm_access_object_register(btn2, sd->obj);
- elm_atspi_accessible_role_set(sd->access_top_button, ELM_ATSPI_ROLE_PUSH_BUTTON);
- elm_atspi_accessible_role_set(sd->access_bottom_button, ELM_ATSPI_ROLE_PUSH_BUTTON);
+ elm_atspi_accessible_role_set(sd->access_top_button, ELM_ATSPI_ROLE_PUSH_BUTTON);
+ elm_atspi_accessible_role_set(sd->access_bottom_button, ELM_ATSPI_ROLE_PUSH_BUTTON);
- elm_access_action_cb_set(sd->access_top_button, ELM_ACCESS_ACTION_ACTIVATE, _activate_top_cb, sd);
- elm_access_action_cb_set(sd->access_bottom_button, ELM_ACCESS_ACTION_ACTIVATE, _activate_bottom_cb, sd);
+ elm_access_action_cb_set(sd->access_top_button, ELM_ACCESS_ACTION_ACTIVATE, _activate_top_cb, sd);
+ elm_access_action_cb_set(sd->access_bottom_button, ELM_ACCESS_ACTION_ACTIVATE, _activate_bottom_cb, sd);
+ }
}
- return EINA_TRUE;
-}
-
-static Eina_Bool
-_flipselector_atspi_bridge_on_disconnect_cb(void *data, Eo *obj EINA_UNUSED, const Eo_Event_Description *desc EINA_UNUSED, void *event_info EINA_UNUSED)
-{
- Elm_Flipselector_Data *sd = (Elm_Flipselector_Data*)data;
- elm_access_object_unregister(sd->access_top_button);
- elm_access_object_unregister(sd->access_bottom_button);
- return EINA_TRUE;
-}
-
-static void
-_unregister_flipselector_atspi_bridge_callbacks(Elm_Flipselector_Data *sd)
-{
- if (!_elm_config->atspi_mode) return;
-
- eo_do(_elm_atspi_bridge_get(),
- eo_event_callback_del(ELM_ATSPI_BRIDGE_EVENT_CONNECTED, _flipselector_atspi_bridge_on_connect_cb, sd));
- eo_do(_elm_atspi_bridge_get(),
- eo_event_callback_del(ELM_ATSPI_BRIDGE_EVENT_DISCONNECTED, _flipselector_atspi_bridge_on_disconnect_cb, sd));
-}
-
-static void
-_atspi_expose_flipselector_top_bottom(Elm_Flipselector_Data *sd, Eina_Bool is_atspi)
-{
- Eina_Bool connected = EINA_FALSE;
-
- sd->access_top_button = NULL;
- sd->access_bottom_button = NULL;
-
- // UnRegister for ATSPI bridge enable/disable
- _unregister_flipselector_atspi_bridge_callbacks(sd);
-
- if (is_atspi)
+ else
{
- // Expose flipselector buttons
- eo_do(_elm_atspi_bridge_get(), connected = elm_obj_atspi_bridge_connected_get());
- if (connected)
- _flipselector_atspi_bridge_on_connect_cb(sd, NULL, NULL, NULL);
-
- eo_do(_elm_atspi_bridge_get(),
- eo_event_callback_add(ELM_ATSPI_BRIDGE_EVENT_CONNECTED,
- _flipselector_atspi_bridge_on_connect_cb, sd));
- eo_do(_elm_atspi_bridge_get(),
- eo_event_callback_add(ELM_ATSPI_BRIDGE_EVENT_DISCONNECTED,
- _flipselector_atspi_bridge_on_disconnect_cb, sd));
+ elm_access_object_unregister(sd->access_top_button);
+ elm_access_object_unregister(sd->access_bottom_button);
+ sd->access_top_button = NULL;
+ sd->access_bottom_button = NULL;
}
}
//
evas_event_thaw(evas_object_evas_get(WIDGET(it)));
evas_event_thaw_eval(evas_object_evas_get(WIDGET(it)));
+
+ if (_elm_config->atspi_mode)
+ {
+ elm_interface_atspi_accessible_removed(EO_OBJ(it));
+ elm_interface_atspi_accessible_children_changed_del_signal_emit(WIDGET(it), EO_OBJ(it));
+ }
}
static void
/* access */
if (_elm_config->access_mode) _access_widget_item_register(it);
+ if (_elm_config->atspi_mode)
+ {
+ elm_interface_atspi_accessible_added(EO_OBJ(it));
+ elm_interface_atspi_accessible_children_changed_added_signal_emit(sd->obj, EO_OBJ(it));
+ }
+
/* infate texts, contents and states of view object */
_view_inflate(VIEW(it), it, &it->texts, &it->contents);
_access_obj_process(sd, _elm_gengrid_smart_focus_next_enable);
}
+//TIZEN_ONLY(20160822): When atspi mode is dynamically switched on/off,
+//register/unregister access objects accordingly.
+EOLIAN static void
+_elm_gengrid_elm_widget_atspi(Eo *obj EINA_UNUSED, Elm_Gengrid_Data *sd, Eina_Bool is_atspi)
+{
+ Elm_Gen_Item *it;
+ Evas_Object *content = NULL;
+ Eina_List *l;
+
+ EINA_INLIST_FOREACH(sd->items, it)
+ {
+ if (!it->realized) continue;
+ if (is_atspi)
+ {
+ elm_interface_atspi_accessible_added(EO_OBJ(it));
+ elm_interface_atspi_accessible_children_changed_added_signal_emit(sd->obj, EO_OBJ(it));
+ elm_interface_atspi_accessible_name_changed_signal_emit(EO_OBJ(it));
+ EINA_LIST_FOREACH(it->contents, l, content)
+ {
+ if (eo_isa(content, ELM_INTERFACE_ATSPI_ACCESSIBLE_MIXIN))
+ eo_do(content, elm_interface_atspi_accessible_parent_set(EO_OBJ(it)));
+ }
+ }
+ else
+ {
+ elm_interface_atspi_accessible_removed(EO_OBJ(it));
+ elm_interface_atspi_accessible_children_changed_del_signal_emit(sd->obj, EO_OBJ(it));
+ }
+ }
+}
+//
+
EAPI Evas_Object *
elm_gengrid_add(Evas_Object *parent)
{
//ecore_job_del(sd->calc_job);
//sd->calc_job = ecore_job_add(_calc_job, obj);
- if (_elm_config->atspi_mode)
- {
- elm_interface_atspi_accessible_added(EO_OBJ(it));
- elm_interface_atspi_accessible_children_changed_added_signal_emit(sd->obj, EO_OBJ(it));
- }
-
return EO_OBJ(it);
}
//sd->calc_job = ecore_job_add(_calc_job, obj);
//
- if (_elm_config->atspi_mode)
- {
- elm_interface_atspi_accessible_added(EO_OBJ(it));
- elm_interface_atspi_accessible_children_changed_added_signal_emit(sd->obj, EO_OBJ(it));
- }
-
return EO_OBJ(it);
}
Elm.Widget.focus_next_manager_is;
Elm.Widget.focus_direction_manager_is;
Elm.Widget.access;
+ //TIZEN_ONLY(20160822): When atspi mode is dynamically switched on/off,
+ //register/unregister access objects accordingly.
+ Elm.Widget.atspi;
+ //
Elm.Widget.focus_next;
Elm.Widget.focus_direction;
Elm.Widget.on_focus;
}
*contents = eina_list_append(*contents, content);
- if (_elm_config->atspi_mode && eo_isa(content, ELM_INTERFACE_ATSPI_ACCESSIBLE_MIXIN))
- eo_do(content, elm_interface_atspi_accessible_parent_set(EO_OBJ(it)));
+
if (!edje_object_part_swallow(target, key, content))
{
ERR("%s (%p) can not be swallowed into %s",
//TIZEN_ONLY(20150709) Do not register children of MANAGES_DESCENDATS objects
if (_elm_config->atspi_mode)
- elm_interface_atspi_accessible_children_changed_added_signal_emit(sd->obj, EO_OBJ(it));
+ {
+ elm_interface_atspi_accessible_added(EO_OBJ(it));
+ elm_interface_atspi_accessible_children_changed_added_signal_emit(sd->obj, EO_OBJ(it));
+ }
//
/* access */
evas_object_geometry_get(sd->obj, NULL, NULL, &w, NULL);
if (w > 0) _requeue_idle_enterer(sd);
- if (_elm_config->atspi_mode)
- {
- elm_interface_atspi_accessible_added(EO_OBJ(it));
- elm_interface_atspi_accessible_children_changed_added_signal_emit(sd->obj, EO_OBJ(it));
- }
}
/* If the application wants to know the relative item, use
if (_elm_config->access_mode == ELM_ACCESS_MODE_ON)
_elm_access_widget_item_unregister(it->base);
+ //TIZEN_ONLY(20150709) Do not register children of MANAGES_DESCENDATS objects
+ if (_elm_config->atspi_mode)
+ {
+ elm_interface_atspi_accessible_removed(EO_OBJ(it));
+ elm_interface_atspi_accessible_children_changed_del_signal_emit(sd->obj, EO_OBJ(it));
+ }
+ //
+
// unswallow VIEW(it) first then manipulate VIEW(it)
_decorate_item_unrealize(it);
if (GL_IT(it)->wsd->decorate_all_mode) _decorate_all_item_unrealize(it);
_access_obj_process(sd, _elm_genlist_smart_focus_next_enable);
}
+//TIZEN_ONLY(20160822): When atspi mode is dynamically switched on/off,
+//register/unregister access objects accordingly.
+EOLIAN static void
+_elm_genlist_elm_widget_atspi(Eo *obj EINA_UNUSED, Elm_Genlist_Data *sd, Eina_Bool is_atspi)
+{
+ Item_Block *itb;
+ Eina_Bool done = EINA_FALSE;
+ Evas_Object *content = NULL;
+ Eina_List *l;
+
+ EINA_INLIST_FOREACH(sd->blocks, itb)
+ {
+ if (itb->realized)
+ {
+ Eina_List *l;
+ Elm_Gen_Item *it;
+
+ done = EINA_TRUE;
+ EINA_LIST_FOREACH(itb->items, l, it)
+ {
+ if (!it->realized || it->hide) continue;
+ if (is_atspi)
+ {
+ elm_interface_atspi_accessible_added(EO_OBJ(it));
+ elm_interface_atspi_accessible_children_changed_added_signal_emit(sd->obj, EO_OBJ(it));
+ EINA_LIST_FOREACH(it->contents, l, content)
+ {
+ if (eo_isa(content, ELM_INTERFACE_ATSPI_ACCESSIBLE_MIXIN))
+ {
+ eo_do(content, elm_interface_atspi_accessible_parent_set(EO_OBJ(it)));
+ elm_interface_atspi_accessible_children_changed_added_signal_emit(EO_OBJ(it), content);
+ }
+ }
+ elm_interface_atspi_accessible_name_changed_signal_emit(EO_OBJ(it));
+ }
+ else
+ {
+ elm_interface_atspi_accessible_removed(EO_OBJ(it));
+ elm_interface_atspi_accessible_children_changed_del_signal_emit(sd->obj, EO_OBJ(it));
+ }
+ }
+ }
+ else if (done) break;
+ }
+}
+//
+
EAPI Evas_Object *
elm_genlist_add(Evas_Object *parent)
{
Elm.Widget.focus_next_manager_is;
Elm.Widget.sub_object_add;
Elm.Widget.access;
+ //TIZEN_ONLY(20160822): When atspi mode is dynamically switched on/off,
+ //register/unregister access objects accordingly.
+ Elm.Widget.atspi;
+ //
Elm.Widget.focus_highlight_geometry_get;
Elm.Widget.focus_next;
Elm.Widget.on_focus;