diff options
author | Lukasz Stanislawski <l.stanislaws@samsung.com> | 2017-06-16 14:58:22 +0200 |
---|---|---|
committer | Lukasz Stanislawski <l.stanislaws@samsung.com> | 2017-06-26 15:56:08 +0200 |
commit | e9871da2793c24e097b631596486f6c2af86daf1 (patch) | |
tree | f7fed63a14645ce131ef448bd5481e6139bdc2c0 | |
parent | 56b1843ac11258bc1ce9ecfa66eeb1bb47a29b21 (diff) | |
download | efl-devs/stanluk/refactor2.tar.gz |
elementary: move cache implementation of bridgedevs/stanluk/refactor2
Change-Id: Iabcfd7d4828be92b99b6f0a2153c5fb143353baf
-rw-r--r-- | src/Makefile_Elementary.am | 10 | ||||
-rw-r--r-- | src/lib/elementary/elm_atspi_adaptor.c | 66 | ||||
-rw-r--r-- | src/lib/elementary/elm_atspi_adaptor.eo | 16 | ||||
-rw-r--r-- | src/lib/elementary/elm_atspi_bridge.c | 10 | ||||
-rw-r--r-- | src/lib/elementary/elm_atspi_cache.c | 211 | ||||
-rw-r--r-- | src/lib/elementary/elm_atspi_cache.eo | 25 | ||||
-rw-r--r-- | src/lib/elementary/elm_atspi_dbus_reference_private.c | 54 | ||||
-rw-r--r-- | src/lib/elementary/elm_atspi_dbus_reference_private.h | 4 | ||||
-rw-r--r-- | src/lib/elementary/elm_interface_accessible_observer.eo | 8 | ||||
-rw-r--r-- | src/lib/elementary/elm_interface_atspi_accessible.eo | 10 |
10 files changed, 398 insertions, 16 deletions
diff --git a/src/Makefile_Elementary.am b/src/Makefile_Elementary.am index 4f20a7e935..4aaf725534 100644 --- a/src/Makefile_Elementary.am +++ b/src/Makefile_Elementary.am @@ -32,6 +32,7 @@ elm_public_eolian_files = \ lib/elementary/elm_index.eo \ lib/elementary/elm_interface_accessible_observer.eo \ lib/elementary/elm_interface_atspi_accessible.eo \ + lib/elementary/elm_atspi_adaptor.eo \ lib/elementary/elm_interface_atspi_action.eo \ lib/elementary/elm_interface_atspi_component.eo \ lib/elementary/elm_interface_atspi_text_editable.eo \ @@ -136,6 +137,10 @@ elm_public_eolian_files = \ elm_private_eolian_files = \ lib/elementary/elm_atspi_bridge.eo \ lib/elementary/elm_interface_accessible_observer.eo \ + lib/elementary/elm_atspi_status_monitor.eo \ + lib/elementary/elm_atspi_adaptor.eo \ + lib/elementary/elm_atspi_cache.eo \ + lib/elementary/elm_atspi_device_event_controller.eo \ lib/elementary/efl_ui_internal_text_interactive.eo \ lib/elementary/efl_ui_win_internal_part.eo \ tests/elementary/focus_test.eo \ @@ -146,8 +151,6 @@ elm_private_eolian_files = \ elm_legacy_eolian_files = \ lib/elementary/elm_access.eo \ lib/elementary/elm_actionslider.eo \ - lib/elementary/elm_atspi_status_monitor.eo \ - lib/elementary/elm_atspi_device_event_controller.eo \ lib/elementary/elm_box.eo \ lib/elementary/elm_bubble.eo \ lib/elementary/elm_diskselector.eo \ @@ -565,7 +568,6 @@ lib_elementary_libelementary_la_SOURCES = \ lib/elementary/elc_scrolled_entry.c \ lib/elementary/elm_access.c \ lib/elementary/elm_actionslider.c \ - lib/elementary/elm_atspi_adaptor.c \ lib/elementary/elm_atspi_app_object.c \ lib/elementary/elm_atspi_bridge.c \ lib/elementary/elm_atspi_cache.c \ @@ -573,7 +575,9 @@ lib_elementary_libelementary_la_SOURCES = \ lib/elementary/elm_atspi_plug.c \ lib/elementary/elm_atspi_proxy.c \ lib/elementary/elm_atspi_socket.c \ + lib/elementary/elm_atspi_adaptor.c \ lib/elementary/elm_atspi_status_monitor.c \ + lib/elementary/elm_atspi_dbus_reference_private.c \ lib/elementary/elm_bg.c \ lib/elementary/elm_box.c \ lib/elementary/elm_bubble.c \ diff --git a/src/lib/elementary/elm_atspi_adaptor.c b/src/lib/elementary/elm_atspi_adaptor.c index 090f2f0791..2df02f1730 100644 --- a/src/lib/elementary/elm_atspi_adaptor.c +++ b/src/lib/elementary/elm_atspi_adaptor.c @@ -2,3 +2,69 @@ # include "elementary_config.h" #endif +#define ELM_INTERFACE_ATSPI_ACCESSIBLE_PROTECTED +#include <Elementary.h> + +#include "elm_atspi_cache.eo.h" +#include "elm_atspi_cache.eo.legacy.h" +#include "elm_atspi_adaptor.eo.h" + +typedef struct _Elm_Atspi_Adaptor_Data +{ + Eldbus_Connection *conn; + + Eldbus_Signal_Handler *register_hdl; + Eldbus_Signal_Handler *unregister_hdl; + + unsigned long object_broadcast_mask; + unsigned long object_property_broadcast_mask; + unsigned long object_children_broadcast_mask; + unsigned long long object_state_broadcast_mask; + unsigned long long window_signal_broadcast_mask; + + struct { + Eldbus_Service_Interface *accessible; + Eldbus_Service_Interface *application; + Eldbus_Service_Interface *action; + Eldbus_Service_Interface *component; + Eldbus_Service_Interface *collection; + Eldbus_Service_Interface *editable_text; + Eldbus_Service_Interface *image; + Eldbus_Service_Interface *selection; + Eldbus_Service_Interface *text; + Eldbus_Service_Interface *value; + Eldbus_Service_Interface *socket; + } interfaces; +} Elm_Atspi_Adaptor_Data; + +EOLIAN static void +_elm_atspi_adaptor_event_handle(Elm_Atspi_Adaptor *adaptor, Elm_Atspi_Adaptor_Data *data, const Elm_Accessible_Event *accessible_event) +{ +} + +EOLIAN static Eo* +_elm_atspi_adaptor_efl_object_constructor(Elm_Atspi_Adaptor *adaptor, Elm_Atspi_Adaptor_Data *pd) +{ + return adaptor; +} + +EOLIAN static void +_elm_atspi_adaptor_constructor(Elm_Atspi_Adaptor *adaptor, Elm_Atspi_Adaptor_Data *pd, Eldbus_Connection *conn) +{ + pd->conn = eldbus_connection_ref(conn); + assert (pd->conn != NULL); + + //_register_interfaces(); + //_register_update_handlers(); +} + +EOLIAN static void +_elm_atspi_adaptor_efl_object_destructor(Elm_Atspi_Adaptor *adaptor, Elm_Atspi_Adaptor_Data *pd) +{ + //_unregister_interfaces(); + //unregister_update_handlers(); + eldbus_connection_unref(pd->conn); + //efl_unref(pd->cache); +} + +#include "elm_atspi_adaptor.eo.c" diff --git a/src/lib/elementary/elm_atspi_adaptor.eo b/src/lib/elementary/elm_atspi_adaptor.eo new file mode 100644 index 0000000000..1017bc47bd --- /dev/null +++ b/src/lib/elementary/elm_atspi_adaptor.eo @@ -0,0 +1,16 @@ +import elm_interface_atspi_accessible; + +class Elm.Atspi.Adaptor (Efl.Object) +{ + methods { + event_handle { + params { + @in event: const(ptr(Elm.Accessible.Event)); + } + } + } + implements { + Efl.Object.constructor; + Efl.Object.destructor; + } +} diff --git a/src/lib/elementary/elm_atspi_bridge.c b/src/lib/elementary/elm_atspi_bridge.c index 6c32834901..7d73ce47a2 100644 --- a/src/lib/elementary/elm_atspi_bridge.c +++ b/src/lib/elementary/elm_atspi_bridge.c @@ -23,6 +23,8 @@ #include "elm_atspi_status_monitor.eo.legacy.h" #include "elm_atspi_device_event_controller.eo.h" #include "elm_atspi_device_event_controller.eo.legacy.h" +#include "elm_atspi_adaptor.eo.h" +#include "elm_atspi_adaptor.eo.legacy.h" /* * Accessibility Bus info not defined in atspi-constants.h @@ -61,12 +63,12 @@ typedef struct _Elm_Atspi_Bridge_Data { - Elm_Atspi_Status_Monitor *monitor; - Elm_Atspi_Device_Event_Controller *device_event_controller; - // connection Eldbus_Connection *a11y_bus; + Elm_Atspi_Status_Monitor *monitor; + Elm_Atspi_Device_Event_Controller *device_event_controller; + Eldbus_Signal_Handler *register_hdl; Eldbus_Signal_Handler *unregister_hdl; @@ -4897,7 +4899,7 @@ _bridge_plug_unregister(Eo *bridge, Elm_Atspi_Plug *plug) ELM_ATSPI_BRIDGE_DATA_GET_OR_RETURN(bridge, pd); Eina_List *node; - if ((node = eina_list_data_find_list(pd->plugs, plug))) + if (node = eina_list_data_find_list(pd->plugs, plug)) { if (pd->connected) _bridge_object_unregister(bridge, plug); diff --git a/src/lib/elementary/elm_atspi_cache.c b/src/lib/elementary/elm_atspi_cache.c index e69de29bb2..57e2f79563 100644 --- a/src/lib/elementary/elm_atspi_cache.c +++ b/src/lib/elementary/elm_atspi_cache.c @@ -0,0 +1,211 @@ +#ifdef HAVE_CONFIG_H +# include "elementary_config.h" +#endif + +#include <Elementary.h> +#include <assert.h> + +typedef struct _Elm_Atspi_Cache_Data { + Eldbus_Connection *conn; + Eldbus_Service_Interface *cache_ifc; + Eina_Hash *cache; +} Elm_Atspi_Cache_Data; + +#include "atspi/atspi-constants.h" +#include "elm_priv.h" +#include "elm_atspi_cache.eo.h" + +#define CACHE_ITEM_SIGNATURE "((so)(so)(so)a(so)assusau)" +#define CACHE_INTERFACE_PATH "/org/a11y/atspi/cache" + +typedef enum _Atspi_Cache_Event_Type +{ + ATSPI_CACHE_EVENT_ACCESSIBLE_ADDED = 0, + ATSPI_CACHE_EVENT_ACCESSIBLE_REMOVED +} Atspi_Cache_Event_Type; + +static void +_iter_interfaces_append(Eldbus_Message_Iter *iter, const Eo *obj) +{ +} + +static void +_cache_item_reference_append(Eldbus_Connection *conn, Elm_Interface_Atspi_Accessible *object, Eldbus_Message_Iter *iter_array) +{ + Eldbus_Message_Iter *iter_struct, *iter_sub_array; + Elm_Atspi_State_Set states; + Elm_Atspi_Role role; + + role = elm_interface_atspi_accessible_role_get(object); + + iter_struct = eldbus_message_iter_container_new(iter_array, 'r', NULL); + EINA_SAFETY_ON_NULL_RETURN(iter_struct); + + /* Marshall object path */ + elm_atspi_dbus_object_reference_append(conn, iter_struct, object); + + /* Marshall root */ + elm_atspi_dbus_object_reference_append(conn, iter_struct, elm_interface_atspi_accessible_root_get(ELM_INTERFACE_ATSPI_ACCESSIBLE_MIXIN)); + + /* Marshall parent */ + Eo *parent = elm_interface_atspi_accessible_parent_get(object); + elm_atspi_dbus_object_reference_append(conn, iter_struct, parent); + + /* Marshall children */ + Eina_List *children_list = NULL, *l; + Eo *child; + + children_list = elm_interface_atspi_accessible_children_get(object); + iter_sub_array = eldbus_message_iter_container_new(iter_struct, 'a', "(so)"); + EINA_SAFETY_ON_NULL_GOTO(iter_sub_array, fail); + + EINA_LIST_FOREACH(children_list, l, child) + elm_atspi_dbus_object_reference_append(conn, iter_sub_array, child); + + eldbus_message_iter_container_close(iter_struct, iter_sub_array); + eina_list_free(children_list); + + /* Marshall interfaces */ + elm_atspi_dbus_object_interfaces_append(iter_struct, object); + + /* Marshall name */ + const char *name = NULL; + name = elm_interface_atspi_accessible_name_get(object); + if (!name) + name = ""; + + eldbus_message_iter_basic_append(iter_struct, 's', name); + + /* Marshall role */ + eldbus_message_iter_basic_append(iter_struct, 'u', role); + + /* Marshall description */ + const char* descritpion = NULL; + descritpion = elm_interface_atspi_accessible_description_get(object); + if (!descritpion) + descritpion = ""; + eldbus_message_iter_basic_append(iter_struct, 's', descritpion); + + /* Marshall state set */ + iter_sub_array = eldbus_message_iter_container_new(iter_struct, 'a', "u"); + EINA_SAFETY_ON_NULL_GOTO(iter_sub_array, fail); + + states = elm_interface_atspi_accessible_state_set_get(object); + + unsigned int s1 = states & 0xFFFFFFFF; + unsigned int s2 = (states >> 32) & 0xFFFFFFFF; + eldbus_message_iter_basic_append(iter_sub_array, 'u', s1); + eldbus_message_iter_basic_append(iter_sub_array, 'u', s2); + + eldbus_message_iter_container_close(iter_struct, iter_sub_array); + eldbus_message_iter_container_close(iter_array, iter_struct); + + return; + +fail: + if (iter_struct) eldbus_message_iter_del(iter_struct); +} + +static Eldbus_Message * +_cache_get_items(const Eldbus_Service_Interface *iface, const Eldbus_Message *msg) +{ + Eldbus_Message_Iter *iter, *iter_array; + Eldbus_Message *ret; + Eina_Iterator *cache_iterator; + Elm_Interface_Atspi_Accessible *accessible; + + Elm_Atspi_Cache_Data *cache_data = eldbus_service_object_data_get(iface, "data"); + if (!cache_data) return NULL; + + ret = eldbus_message_method_return_new(msg); + EINA_SAFETY_ON_NULL_RETURN_VAL(ret, NULL); + + iter = eldbus_message_iter_get(ret); + iter_array = eldbus_message_iter_container_new(iter, 'a', CACHE_ITEM_SIGNATURE); + EINA_SAFETY_ON_NULL_GOTO(iter_array, fail); + + cache_iterator = eina_hash_iterator_data_new(cache_data->cache); + EINA_SAFETY_ON_NULL_GOTO(iter_array, fail); + + if (eina_iterator_next(cache_iterator, &accessible)) + { + _cache_item_reference_append(cache_data->conn, accessible, iter_array); + } + + eina_iterator_free(cache_iterator); + eldbus_message_iter_container_close(iter, iter_array); + + return ret; +fail: + if (ret) eldbus_message_unref(ret); + return NULL; +} + +static const Eldbus_Method cache_methods[] = { + { "GetItems", NULL, ELDBUS_ARGS({CACHE_ITEM_SIGNATURE, "items"}), _cache_get_items, 0 }, + { NULL, NULL, NULL, NULL, 0 } +}; + +static const Eldbus_Signal cache_signals[] = { + [ATSPI_CACHE_EVENT_ACCESSIBLE_ADDED] = { "AddAccessible", ELDBUS_ARGS({"((so)(so)a(so)assusau)", "added"}), 0}, + [ATSPI_CACHE_EVENT_ACCESSIBLE_REMOVED] = { "RemoveAccessible", ELDBUS_ARGS({ "(so)", "removed" }), 0}, + {NULL, NULL, 0} +}; + +static const Eldbus_Service_Interface_Desc cache_iface_desc = { + ATSPI_DBUS_INTERFACE_CACHE, cache_methods, cache_signals, NULL, NULL, NULL +}; + +EOLIAN static Elm_Atspi_Cache* +_elm_atspi_cache_efl_object_constructor(Elm_Atspi_Cache *cache, Elm_Atspi_Cache_Data *pd) +{ + efl_constructor(efl_super(cache, ELM_ATSPI_CACHE_CLASS)); + + pd->cache_ifc = eldbus_service_interface_fallback_register(pd->conn, + CACHE_INTERFACE_PATH, + &cache_iface_desc); + eldbus_service_object_data_set(pd->cache_ifc, "data", pd); + + if (!pd->cache_ifc) + return NULL; + + pd->cache = eina_hash_pointer_new(NULL); + assert (pd->cache != NULL); + + return cache; +} + +EOLIAN static void +_elm_atspi_cache_constructor(Elm_Atspi_Cache *cache, Elm_Atspi_Cache_Data *pd, Eldbus_Connection *conn) +{ + pd->conn = elbus_connection_ref(conn); + assert (pd->conn != NULL); +} + +EOLIAN static void +_elm_atspi_cache_efl_object_destructor(Elm_Atspi_Cache *cache, Elm_Atspi_Cache_Data *pd) +{ + eina_hash_free(pd->cache); + eldbus_connection_unref(pd->conn); + efl_destructor(efl_super(cache, ELM_ATSPI_CACHE_CLASS)); +} + +EOLIAN static void +_elm_atspi_cache_add(Elm_Atspi_Cache *cache, Elm_Atspi_Cache_Data *pd, Elm_Interface_Atspi_Accessible *object) +{ + eina_hash_add(pd->cache, &object, object); +} + +EOLIAN static void +_elm_atspi_cache_remove(Elm_Atspi_Cache *cache, Elm_Atspi_Cache_Data *pd, Elm_Interface_Atspi_Accessible *object) +{ + eina_hash_del(pd->cache, &object, object); +} + +EOLIAN static Eina_Bool +_elm_atspi_cache_object_contains(Elm_Atspi_Cache *cache EINA_UNUSED, Elm_Atspi_Cache_Data *pd, Elm_Interface_Atspi_Accessible *obj) +{ + return eina_hash_find(pd->cache, &obj) != NULL ? EINA_TRUE : EINA_FALSE; +} + +#include "elm_atspi_cache.eo.c" diff --git a/src/lib/elementary/elm_atspi_cache.eo b/src/lib/elementary/elm_atspi_cache.eo new file mode 100644 index 0000000000..a65fa8a711 --- /dev/null +++ b/src/lib/elementary/elm_atspi_cache.eo @@ -0,0 +1,25 @@ +class Elm.Atspi.Cache (Efl.Object) +{ + methods { + add { + params { + @in access: Elm.Interface.Atspi_Accessible; + } + } + remove { + params { + @in access: Elm.Interface.Atspi_Accessible; + } + } + object_contains { + params { + @in access: Elm.Interface.Atspi_Accessible; + } + return: bool; + } + } + implements { + Efl.Object.constructor; + Efl.Object.destructor; + } +} diff --git a/src/lib/elementary/elm_atspi_dbus_reference_private.c b/src/lib/elementary/elm_atspi_dbus_reference_private.c new file mode 100644 index 0000000000..84916572a5 --- /dev/null +++ b/src/lib/elementary/elm_atspi_dbus_reference_private.c @@ -0,0 +1,54 @@ +#ifdef HAVE_CONFIG_H +# include "elementary_config.h" +#endif + +#include <Elementary.h> + +#include "elm_priv.h" +#include "atspi/atspi-constants.h" + +void elm_atspi_dbus_object_reference_append(Eldbus_Connection *conn, Eldbus_Message_Iter *iter, Elm_Interface_Atspi_Accessible *accessible) +{ + struct dbus_address addr; + ELM_ATSPI_BRIDGE_DATA_GET_OR_RETURN(bridge, pd); + Eldbus_Message_Iter *iter_struct = eldbus_message_iter_container_new(iter, 'r', NULL); + EINA_SAFETY_ON_NULL_RETURN(iter); + + _bridge_address_from_object(bridge, obj, &addr); + + eldbus_message_iter_basic_append(iter_struct, 's', addr.bus); + eldbus_message_iter_basic_append(iter_struct, 'o', addr.path); + eldbus_message_iter_container_close(iter, iter_struct); +} + +void elm_atspi_dbus_object_interfaces_append(Eldbus_Message_Iter *iter, const Eo *obj) +{ + Eldbus_Message_Iter *iter_array; + iter_array = eldbus_message_iter_container_new(iter, 'a', "s"); + if (!iter_array) return; + + if (efl_isa(obj, ELM_INTERFACE_ATSPI_ACCESSIBLE_MIXIN)) + { + eldbus_message_iter_basic_append(iter_array, 's', ATSPI_DBUS_INTERFACE_ACCESSIBLE); + eldbus_message_iter_basic_append(iter_array, 's', ATSPI_DBUS_INTERFACE_COLLECTION); + } + if (efl_isa(obj, ELM_INTERFACE_ATSPI_ACTION_MIXIN)) + eldbus_message_iter_basic_append(iter_array, 's', ATSPI_DBUS_INTERFACE_ACTION); + if (efl_isa(obj, ELM_ATSPI_APP_OBJECT_CLASS)) + eldbus_message_iter_basic_append(iter_array, 's', ATSPI_DBUS_INTERFACE_APPLICATION); + if (efl_isa(obj, ELM_INTERFACE_ATSPI_COMPONENT_MIXIN)) + eldbus_message_iter_basic_append(iter_array, 's', ATSPI_DBUS_INTERFACE_COMPONENT); + if (efl_isa(obj, ELM_INTERFACE_ATSPI_TEXT_EDITABLE_INTERFACE)) + eldbus_message_iter_basic_append(iter_array, 's', ATSPI_DBUS_INTERFACE_EDITABLE_TEXT); + if (efl_isa(obj, ELM_INTERFACE_ATSPI_IMAGE_MIXIN)) + eldbus_message_iter_basic_append(iter_array, 's', ATSPI_DBUS_INTERFACE_IMAGE); + if (efl_isa(obj, ELM_INTERFACE_ATSPI_SELECTION_INTERFACE)) + eldbus_message_iter_basic_append(iter_array, 's', ATSPI_DBUS_INTERFACE_SELECTION); + if (efl_isa(obj, ELM_INTERFACE_ATSPI_TEXT_INTERFACE)) + eldbus_message_iter_basic_append(iter_array, 's', ATSPI_DBUS_INTERFACE_TEXT); + if (efl_isa(obj, ELM_INTERFACE_ATSPI_VALUE_INTERFACE)) + eldbus_message_iter_basic_append(iter_array, 's', ATSPI_DBUS_INTERFACE_VALUE); + + eldbus_message_iter_container_close(iter, iter_array); +} + diff --git a/src/lib/elementary/elm_atspi_dbus_reference_private.h b/src/lib/elementary/elm_atspi_dbus_reference_private.h new file mode 100644 index 0000000000..fbd48e1f67 --- /dev/null +++ b/src/lib/elementary/elm_atspi_dbus_reference_private.h @@ -0,0 +1,4 @@ +void elm_atspi_dbus_object_reference_append(Eldbus_Connection *conn, Eldbus_Message_Iter *iter, Elm_Interface_Atspi_Accessible *accessible); + +void elm_atspi_dbus_object_interfaces_append(Eldbus_Message_Iter *iter, const Eo *obj); + diff --git a/src/lib/elementary/elm_interface_accessible_observer.eo b/src/lib/elementary/elm_interface_accessible_observer.eo index 55fbc82159..c804eeb215 100644 --- a/src/lib/elementary/elm_interface_accessible_observer.eo +++ b/src/lib/elementary/elm_interface_accessible_observer.eo @@ -1,11 +1,3 @@ -struct Elm.Accessible.Event -{ - [[Accessibility event]] - object: Elm.Interface.Atspi_Accessible; - desc: const(ptr(Efl.Event.Description)); - info: void_ptr; -} - interface Elm.Interface.Accessible_Observer () { [[Interface should be implemented by any object that requires listening diff --git a/src/lib/elementary/elm_interface_atspi_accessible.eo b/src/lib/elementary/elm_interface_atspi_accessible.eo index 5b806a3942..a75ea7afbe 100644 --- a/src/lib/elementary/elm_interface_atspi_accessible.eo +++ b/src/lib/elementary/elm_interface_atspi_accessible.eo @@ -220,6 +220,14 @@ struct Elm.Atspi.Relation objects: list<Efl.Object>; [[List with relation objects]] } +struct Elm.Accessible.Event +{ + [[Accessibility event]] + object: Elm.Interface.Atspi_Accessible; + desc: const(ptr(Efl.Event.Description)); + info: void_ptr; +} + type Elm.Atspi.Relation_Set: list<ptr(Elm.Atspi.Relation)>; [[Elementary AT-SPI relation set type]] mixin Elm.Interface.Atspi_Accessible (Efl.Interface, Efl.Object) @@ -337,7 +345,7 @@ mixin Elm.Interface.Atspi_Accessible (Efl.Interface, Efl.Object) } } event_emit @class @protected { - [[Emit event]] + [[Emit event]] params { @in accessible: Elm.Interface.Atspi_Accessible; [[Accessibility object.]] @in event: ptr(const(Efl.Event.Description)); [[Accessibility event type.]] |