[ATSPI]: When atspi mode is dynamically switched on/off, register/unregister access... 67/84167/6
authorShilpa Singh <shilpa.singh@samsung.com>
Mon, 22 Aug 2016 13:32:39 +0000 (19:02 +0530)
committershilpa singh <shilpa.singh@samsung.com>
Fri, 2 Sep 2016 05:59:08 +0000 (22:59 -0700)
Change-Id: I6002a78672bbf4d1a6d6c278484caaee43017c19
Signed-off-by: Shilpa Singh <shilpa.singh@samsung.com>
src/lib/elm_index.c
src/lib/elm_index.eo
src/lib/elm_list.c
src/lib/elm_list.eo
src/lib/elm_toolbar.c
src/lib/elm_toolbar.eo

index b13240a..bfcfc06 100644 (file)
@@ -1278,6 +1278,30 @@ _elm_index_elm_widget_access(Eo *obj, Elm_Index_Data *_pd EINA_UNUSED, Eina_Bool
    _access_obj_process(obj, _elm_index_smart_focus_next_enable);
 }
 
+//TIZEN_ONLY(20160822): When atspi mode is dynamically switched on/off,
+//register/unregister access objects accordingly.
+EOLIAN static void
+_elm_index_elm_widget_atspi(Eo *obj, Elm_Index_Data *_pd, Eina_Bool is_atspi)
+{
+   Eina_List *elist = NULL;
+   Elm_Object_Item *eo_it;
+
+   EINA_LIST_FOREACH(_pd->items, elist, eo_it)
+     {
+        if (is_atspi)
+          {
+             elm_interface_atspi_accessible_added(eo_it);
+             elm_interface_atspi_accessible_children_changed_added_signal_emit(obj, eo_it);
+          }
+        else
+          {
+             elm_interface_atspi_accessible_removed(eo_it);
+             elm_interface_atspi_accessible_children_changed_del_signal_emit(obj, eo_it);
+          }
+     }
+}
+//
+
 EAPI Evas_Object *
 elm_index_add(Evas_Object *parent)
 {
index 770b1ea..f29c994 100644 (file)
@@ -241,6 +241,10 @@ class Elm.Index (Elm.Layout, Evas.Clickable_Interface, Evas.Selectable_Interface
       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.Layout.sizing_eval;
       //TIZEN_ONLY(20150716) : improve atspi support
index 67d394f..0645ad5 100644 (file)
@@ -2586,6 +2586,33 @@ _elm_list_elm_widget_access(Eo *obj EINA_UNUSED, Elm_List_Data *sd, Eina_Bool ac
      }
 }
 
+//TIZEN_ONLY(20160822): When atspi mode is dynamically switched on/off,
+//register/unregister access objects accordingly.
+EOLIAN static void
+_elm_list_elm_widget_atspi(Eo *obj EINA_UNUSED, Elm_List_Data *sd, Eina_Bool is_atspi)
+{
+   Eina_List *elist = NULL;
+   Elm_Object_Item *eo_it;
+
+   EINA_LIST_FOREACH(sd->items, elist, eo_it)
+     {
+        if (is_atspi)
+          {
+             ELM_LIST_ITEM_DATA_GET(eo_it, it);
+             if (it->icon) eo_do(it->icon, elm_interface_atspi_accessible_parent_set(eo_it));
+             if (it->end) eo_do(it->end, elm_interface_atspi_accessible_parent_set(eo_it));
+             elm_interface_atspi_accessible_added(eo_it);
+             elm_interface_atspi_accessible_children_changed_added_signal_emit(obj, eo_it);
+          }
+        else
+          {
+             elm_interface_atspi_accessible_removed(eo_it);
+             elm_interface_atspi_accessible_children_changed_del_signal_emit(obj, eo_it);
+          }
+     }
+}
+//
+
 EAPI Evas_Object *
 elm_list_add(Evas_Object *parent)
 {
index b86116b..d14ba8a 100644 (file)
@@ -436,6 +436,10 @@ class Elm.List (Elm.Layout, Elm_Interface_Scrollable,
       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_highlight_geometry_get;
       Elm.Widget.focus_next;
       Elm.Widget.disable;
index 38fb8e1..95b93db 100644 (file)
@@ -2591,9 +2591,6 @@ _item_new(Evas_Object *obj,
    if (_elm_config->access_mode == ELM_ACCESS_MODE_ON)
      _access_widget_item_register(it);
 
-   eo_do(icon_obj, elm_interface_atspi_accessible_parent_set(VIEW(it)));
-   eo_do(VIEW(it), elm_interface_atspi_accessible_parent_set(eo_it));
-
    if (_item_icon_set(icon_obj, "toolbar/", icon))
      {
         it->icon = icon_obj;
@@ -2660,7 +2657,7 @@ _item_new(Evas_Object *obj,
      _item_select(it);
 
    if (_elm_config->atspi_mode)
-        elm_interface_atspi_accessible_added(eo_it);
+     elm_interface_atspi_accessible_added(eo_it);
 
    return it;
 }
@@ -3128,6 +3125,30 @@ _elm_toolbar_elm_widget_access(Eo *obj EINA_UNUSED, Elm_Toolbar_Data *sd, Eina_B
    _access_obj_process(sd, _elm_toolbar_smart_focus_next_enable);
 }
 
+//TIZEN_ONLY(20160822): When atspi mode is dynamically switched on/off,
+//register/unregister access objects accordingly.
+EOLIAN static void
+_elm_toolbar_elm_widget_atspi(Eo *obj EINA_UNUSED, Elm_Toolbar_Data *sd, Eina_Bool is_atspi)
+{
+   Elm_Toolbar_Item_Data *it;
+
+   EINA_INLIST_FOREACH (sd->items, it)
+     {
+        if (is_atspi)
+          {
+             if (it->icon) eo_do(it->icon, elm_interface_atspi_accessible_parent_set(EO_OBJ(it)));
+             elm_interface_atspi_accessible_added(EO_OBJ(it));
+             elm_interface_atspi_accessible_children_changed_added_signal_emit(obj, EO_OBJ(it));
+          }
+        else
+          {
+             elm_interface_atspi_accessible_removed(EO_OBJ(it));
+             elm_interface_atspi_accessible_children_changed_del_signal_emit(obj, EO_OBJ(it));
+          }
+     }
+}
+//
+
 static void
 _elm_toolbar_coordinates_adjust(Elm_Toolbar_Item_Data *it,
                                 Evas_Coord *x,
index 7d27c15..1d23226 100644 (file)
@@ -375,6 +375,10 @@ class Elm.Toolbar (Elm.Widget, Elm_Interface_Scrollable,
       Evas.Object_Smart.resize;
       Elm.Widget.focus_next_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.theme_apply;
       Elm.Widget.on_focus;