jackdanielz pushed a commit to branch master.

http://git.enlightenment.org/core/elementary.git/commit/?id=6f72529b5b1fae6be29a619d6864cc6af15d2ade

commit 6f72529b5b1fae6be29a619d6864cc6af15d2ade
Author: Daniel Zaoui <[email protected]>
Date:   Thu Apr 3 08:52:20 2014 +0300

    Eolian: Integration of Win Access Object
---
 src/lib/Makefile.am              |  4 +++
 src/lib/elm_atspi_object.c       | 59 +++++++++++-----------------------------
 src/lib/elm_win_access_object.eo | 12 ++++++++
 3 files changed, 32 insertions(+), 43 deletions(-)

diff --git a/src/lib/Makefile.am b/src/lib/Makefile.am
index e38583f..8efafee 100644
--- a/src/lib/Makefile.am
+++ b/src/lib/Makefile.am
@@ -693,6 +693,8 @@ BUILT_SOURCES = \
                elm_web.eo.h \
                elm_widget_access_object.eo.c \
                elm_widget_access_object.eo.h \
+               elm_win_access_object.eo.c \
+               elm_win_access_object.eo.h \
                elm_win.eo.c \
                elm_win.eo.h
 
@@ -780,6 +782,7 @@ EXTRA_DIST += \
             elm_video.eo \
             elm_web.eo \
             elm_widget_access_object.eo \
+            elm_win_access_object.eo \
             elm_win.eo
 
 nodist_includesunstable_HEADERS = \
@@ -866,5 +869,6 @@ nodist_includesunstable_HEADERS = \
                                  elm_video.eo.h \
                                  elm_web.eo.h \
                                  elm_widget_access_object.eo.h \
+                                 elm_win_access_object.eo.h \
                                  elm_win.eo.h
 
diff --git a/src/lib/elm_atspi_object.c b/src/lib/elm_atspi_object.c
index 9a9e179..68cc3d4 100644
--- a/src/lib/elm_atspi_object.c
+++ b/src/lib/elm_atspi_object.c
@@ -582,8 +582,7 @@ _elm_app_access_object_elm_atspi_object_parent_get(Eo *obj 
EINA_UNUSED, void *_p
 
 // elm_win wrapper
 
-const Eo_Class *elm_atspi_win_obj_class_get(void) EINA_CONST;
-#define ELM_ATSPI_WIN_CLASS elm_atspi_win_obj_class_get()
+#include "elm_win_access_object.eo.h"
 
 static void
 _win_focused(void *data, Evas_Object *eo EINA_UNUSED, void *event_info 
EINA_UNUSED)
@@ -599,10 +598,10 @@ _win_unfocused(void *data, Evas_Object *eo EINA_UNUSED, 
void *event_info EINA_UN
    eo_do(ao, 
eo_event_callback_call(ELM_INTERFACE_ATSPI_WINDOW_EVENT_WINDOW_DEACTIVATED, 
NULL, NULL));
 }
 
-static void
-_win_constructor(Eo *obj, void *_pd EINA_UNUSED, va_list *list EINA_UNUSED)
+EOLIAN static void
+_elm_win_access_object_eo_base_constructor(Eo *obj, void *_pd EINA_UNUSED)
 {
-   eo_do_super(obj, ELM_ATSPI_WIN_CLASS, eo_constructor());
+   eo_do_super(obj, ELM_WIN_ACCESS_OBJECT_CLASS, eo_constructor());
    Evas_Object *evobj = NULL;
 
    eo_do(obj, elm_atspi_obj_object_get(&evobj));
@@ -611,59 +610,33 @@ _win_constructor(Eo *obj, void *_pd EINA_UNUSED, va_list 
*list EINA_UNUSED)
    evas_object_smart_callback_add(evobj, "unfocused", _win_unfocused, obj);
 }
 
-static void
-_win_destructor(Eo *obj, void *_pd EINA_UNUSED, va_list *list EINA_UNUSED)
+EOLIAN static void
+_elm_win_access_object_eo_base_destructor(Eo *obj, void *_pd EINA_UNUSED)
 {
    Elm_Atspi_Object *root = _elm_atspi_root_object_get();
    eo_do(root, eo_event_callback_call(ELM_ATSPI_OBJECT_EVENT_CHILD_REMOVED, 
obj, NULL));
 
-   eo_do_super(obj, ELM_ATSPI_WIN_CLASS, eo_destructor());
+   eo_do_super(obj, ELM_WIN_ACCESS_OBJECT_CLASS, eo_destructor());
 }
 
-static void
-_win_name_get(Eo *obj, void *_pd EINA_UNUSED, va_list *list EINA_UNUSED)
+EOLIAN static const char*
+_elm_win_access_object_elm_atspi_object_name_get(Eo *obj, void *_pd 
EINA_UNUSED)
 {
-   EO_PARAMETER_GET(const char **, ret, list);
    Evas_Object *evobj = NULL;
 
    eo_do(obj, elm_atspi_obj_object_get(&evobj));
-   EINA_SAFETY_ON_NULL_RETURN(evobj);
+   EINA_SAFETY_ON_NULL_RETURN_VAL(evobj, NULL);
 
-   if (ret) *ret = elm_win_title_get(evobj);
+   return elm_win_title_get(evobj);
 }
 
-static void
-_win_parent_get(Eo *obj EINA_UNUSED, void *_pd EINA_UNUSED, va_list *list 
EINA_UNUSED)
+EOLIAN static Elm_Atspi_Object*
+_elm_win_access_object_elm_atspi_object_parent_get(Eo *obj EINA_UNUSED, void 
*_pd EINA_UNUSED)
 {
-   EO_PARAMETER_GET(Elm_Atspi_Object **, ret, list);
-   if (ret) *ret = _elm_atspi_root_object_get();
+   return _elm_atspi_root_object_get();
 }
 
-static void
-_win_class_constructor(Eo_Class *klass)
-{
-   const Eo_Op_Func_Description func_desc[] = {
-        EO_OP_FUNC(EO_BASE_ID(EO_BASE_SUB_ID_CONSTRUCTOR), _win_constructor),
-        EO_OP_FUNC(EO_BASE_ID(EO_BASE_SUB_ID_DESTRUCTOR), _win_destructor),
-        EO_OP_FUNC(ELM_ATSPI_OBJ_ID(ELM_ATSPI_OBJ_SUB_ID_NAME_GET), 
_win_name_get),
-        EO_OP_FUNC(ELM_ATSPI_OBJ_ID(ELM_ATSPI_OBJ_SUB_ID_PARENT_GET), 
_win_parent_get),
-        EO_OP_FUNC_SENTINEL
-   };
-   eo_class_funcs_set(klass, func_desc);
-}
-
-static const Eo_Class_Description win_class_desc = {
-     EO_VERSION,
-     "Elm_Win_Access_Object",
-     EO_CLASS_TYPE_REGULAR,
-     EO_CLASS_DESCRIPTION_OPS(NULL, NULL, 0),
-     NULL,
-     0,
-     _win_class_constructor,
-     NULL
-};
-
-EO_DEFINE_CLASS(elm_atspi_win_obj_class_get, &win_class_desc, 
ELM_WIDGET_ACCESS_OBJECT_CLASS, ELM_INTERFACE_ATSPI_WINDOW_CLASS, NULL);
+#include "elm_win_access_object.eo.c"
 
 Elm_Atspi_Object*
 _elm_atspi_root_object_get(void)
@@ -696,7 +669,7 @@ _elm_atspi_factory_construct(Evas_Object *obj)
         return NULL;
      }
    else if (!strcmp(type, "elm_win"))
-     ret = eo_add(ELM_ATSPI_WIN_CLASS, obj);
+     ret = eo_add(ELM_WIN_ACCESS_OBJECT_CLASS, obj);
    else if (!strncmp(type, "elm_", 4)) // defaults to implementation for 
elm_widget class.
      ret = eo_add(ELM_WIDGET_ACCESS_OBJECT_CLASS, obj);
 
diff --git a/src/lib/elm_win_access_object.eo b/src/lib/elm_win_access_object.eo
new file mode 100644
index 0000000..65df830
--- /dev/null
+++ b/src/lib/elm_win_access_object.eo
@@ -0,0 +1,12 @@
+class Elm_Win_Access_Object (Elm_Widget_Access_Object, 
Elm_Interface_Atspi_Window)
+{
+   data:null;
+   implements {
+      Eo_Base::constructor;
+      Eo_Base::destructor;
+      Elm_Atspi_Object::name::get;
+      Elm_Atspi_Object::parent::get;
+   }
+
+}
+

-- 


Reply via email to