summaryrefslogtreecommitdiff
path: root/src/lib/elementary/elm_interface_atspi_accessible.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/elementary/elm_interface_atspi_accessible.c')
-rw-r--r--src/lib/elementary/elm_interface_atspi_accessible.c43
1 files changed, 23 insertions, 20 deletions
diff --git a/src/lib/elementary/elm_interface_atspi_accessible.c b/src/lib/elementary/elm_interface_atspi_accessible.c
index 5537b1e19a..da27c07795 100644
--- a/src/lib/elementary/elm_interface_atspi_accessible.c
+++ b/src/lib/elementary/elm_interface_atspi_accessible.c
@@ -131,16 +131,11 @@ struct _Elm_Interface_Atspi_Accessible_Data
typedef struct _Elm_Interface_Atspi_Accessible_Data Elm_Interface_Atspi_Accessible_Data;
-struct Accessibility_Plugin
-{
- void *plugin_private_data;
-};
-
-static void _elm_interface_atspi_accessible_observers_notify(Eo *object);
+static void _elm_interface_atspi_accessible_observers_notify_created(Eo *object);
static Eo *root;
-static Eina_List *plugins;
+static Eina_List *observers;
EOLIAN static int
_elm_interface_atspi_accessible_index_in_parent_get(Eo *obj, Elm_Interface_Atspi_Accessible_Data *pd EINA_UNUSED)
@@ -515,6 +510,11 @@ _elm_interface_atspi_accessible_root_get(Eo *class EINA_UNUSED, void *pd EINA_UN
}
EOLIAN void
+_elm_interface_atspi_accessible_root_set(Eo *class EINA_UNUSED, void *pd EINA_UNUSED, Eo *root)
+{
+}
+
+EOLIAN void
_elm_interface_atspi_accessible_efl_object_destructor(Eo *obj, Elm_Interface_Atspi_Accessible_Data *pd)
{
efl_destructor(efl_super(obj, ELM_INTERFACE_ATSPI_ACCESSIBLE_MIXIN));
@@ -534,33 +534,36 @@ EOLIAN Eo *
_elm_interface_atspi_accessible_efl_object_constructor(Eo *obj, Elm_Interface_Atspi_Accessible_Data *pd)
{
pd->self = obj;
- _elm_interface_atspi_accessible_observers_notify(obj);
+ _elm_interface_atspi_accessible_observers_notify_created(obj);
return efl_constructor(efl_super(obj, ELM_INTERFACE_ATSPI_ACCESSIBLE_MIXIN));
}
-static void
-_elm_interface_atspi_accessible_observers_notify(Eo *object)
+static void _elm_interface_atspi_accessible_observers_notify_created(Eo *object)
{
- if (observers)
+ Eina_List *l;
+ Elm_Interface_Accessible_Observer *observer;
+
+ EINA_LIST_FOREACH(observers, l , observer)
{
- ERR("Query observer");
+ elm_interface_accessible_observer_on_created(observer, object);
}
}
EOLIAN void
-_elm_interface_atspi_accessible_observer_install(Eo *socket_class, void *data)
+_elm_interface_atspi_accessible_observer_install(Eo *socket_class, void *data,
+ Elm_Interface_Accessible_Observer *observer)
{
- ERR("Observer installed");
- observers = 0x1;
- if (!observers)
- observers = eina_array_new(1);
+ if (efl_isa(observer, ELM_INTERFACE_ACCESSIBLE_OBSERVER_INTERFACE))
+ observers = eina_list_append(observers, observer);
+ else
+ ERR("Incorrct type: (%s) do not implement %s",
+ efl_class_name_get(observer), efl_class_name_get(ELM_INTERFACE_ACCESSIBLE_OBSERVER_INTERFACE));
}
EOLIAN void
-_elm_interface_atspi_accessible_observer_uninstall(Eo *socket_class, void *data)
+_elm_interface_atspi_accessible_observer_uninstall(Eo *socket_class, void *data, Elm_Interface_Accessible_Observer *observer)
{
- ERR("Observer uninstalled");
- observers = NULL;
+ observers = eina_list_remove(observers, observer);
}
#include "elm_interface_atspi_accessible.eo.c"