about summary refs log tree commit diff stats
path: root/src/tools/gtkclass.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/tools/gtkclass.c')
-rwxr-xr-xsrc/tools/gtkclass.c84
1 files changed, 84 insertions, 0 deletions
diff --git a/src/tools/gtkclass.c b/src/tools/gtkclass.c
index 12c7797c..e271f87d 100755
--- a/src/tools/gtkclass.c
+++ b/src/tools/gtkclass.c
@@ -1415,6 +1415,90 @@ static void bridgeGtkMenuBar2Class(my_GtkMenuBar2Class_t* class)
 
 #undef SUPERGO
 
+// ----- AtkObjectClass ------
+// wrapper x86 -> natives of callbacks
+WRAPPER(AtkObject, get_name, void*, (void* accessible), 1, accessible);
+WRAPPER(AtkObject, get_description, void*, (void* accessible), 1, accessible);
+WRAPPER(AtkObject, get_parent, void*, (void* accessible), 1, accessible);
+WRAPPER(AtkObject, get_n_children, int, (void* accessible), 1, accessible);
+WRAPPER(AtkObject, ref_child, void*, (void* accessible, int i), 2, accessible, i);
+WRAPPER(AtkObject, get_index_in_parent, int, (void* accessible), 1, accessible);
+WRAPPER(AtkObject, ref_relation_set, void*, (void* accessible), 1, accessible);
+WRAPPER(AtkObject, get_role, int, (void* accessible), 1, accessible);
+WRAPPER(AtkObject, get_layer, int, (void* accessible), 1, accessible);
+WRAPPER(AtkObject, get_mdi_zorder, int, (void* accessible), 1, accessible);
+WRAPPER(AtkObject, ref_state_set, void*, (void* accessible), 1, accessible);
+WRAPPER(AtkObject, set_name, void, (void* accessible, void* name), 2, accessible, name);
+WRAPPER(AtkObject, set_description, void, (void* accessible, void* description), 2, accessible, description);
+WRAPPER(AtkObject, set_parent, void, (void* accessible, void* parent), 2, accessible, parent);
+WRAPPER(AtkObject, set_role, void, (void* accessible, int role), 2, accessible, role);
+WRAPPER(AtkObject, connect_property_change_handler, uint32_t, (void* accessible, void* handler), 2, accessible, AddCheckBridge(my_bridge, vFpp, handler, 0, NULL));
+WRAPPER(AtkObject, remove_property_change_handler, void, (void* accessible, uint32_t handler_id), 2, accessible, handler_id);
+WRAPPER(AtkObject, initialize, void, (void* accessible, void* data), 2, accessible, data);
+WRAPPER(AtkObject, children_changed, void, (void* accessible, uint32_t change_index, void* changed_child), 3, accessible, change_index, changed_child);
+WRAPPER(AtkObject, focus_event, void, (void* accessible, int focus_in), 2, accessible, focus_in);
+WRAPPER(AtkObject, property_change, void, (void* accessible, void* values), 2, accessible, values);
+WRAPPER(AtkObject, state_change, void, (void* accessible, void* name, int state_set), 3, accessible, name, state_set);
+WRAPPER(AtkObject, visible_data_changed, void, (void* accessible), 1, accessible);
+WRAPPER(AtkObject, active_descendant_changed, void, (void* accessible, void* child), 2, accessible, child);
+WRAPPER(AtkObject, get_attributes, void*, (void* accessible), 1, accessible);
+WRAPPER(AtkObject, get_object_locale, void*, (void* accessible), 1, accessible);
+
+#define SUPERGO() \
+    GO(get_name, pFp);                          \
+    GO(get_description, pFp);                   \
+    GO(get_parent, pFp);                        \
+    GO(get_n_children, iFp);                    \
+    GO(ref_child, pFpi);                        \
+    GO(get_index_in_parent, iFp);               \
+    GO(ref_relation_set, pFp);                  \
+    GO(get_role, iFp);                          \
+    GO(get_layer, iFp);                         \
+    GO(get_mdi_zorder, iFp);                    \
+    GO(ref_state_set, pFp);                     \
+    GO(set_name, vFpp);                         \
+    GO(set_description, vFpp);                  \
+    GO(set_parent, vFpp);                       \
+    GO(set_role, vFpi);                         \
+    GO(connect_property_change_handler, uFpp);  \
+    GO(remove_property_change_handler, vFpu);   \
+    GO(initialize, vFpp);                       \
+    GO(children_changed, vFpup);                \
+    GO(focus_event, vFpi);                      \
+    GO(property_change, vFpp);                  \
+    GO(state_change, vFppi);                    \
+    GO(visible_data_changed, vFp);              \
+    GO(active_descendant_changed, vFpp);        \
+    GO(get_attributes, pFp);                    \
+    GO(get_object_locale, pFp);                 \
+
+// wrap (so bridge all calls, just in case)
+static void wrapAtkObjectClass(my_AtkObjectClass_t* class)
+{
+    wrapGObjectClass(&class->parent);
+    #define GO(A, W) class->A = reverse_##A##_AtkObject (W, class->A)
+    SUPERGO()
+    #undef GO
+}
+// unwrap (and use callback if not a native call anymore)
+static void unwrapAtkObjectClass(my_AtkObjectClass_t* class)
+{   
+    unwrapGObjectClass(&class->parent);
+    #define GO(A, W)   class->A = find_##A##_AtkObject (class->A)
+    SUPERGO()
+    #undef GO
+}
+// autobridge
+static void bridgeAtkObjectClass(my_AtkObjectClass_t* class)
+{
+    bridgeGObjectClass(&class->parent);
+    #define GO(A, W) autobridge_##A##_AtkObject (W, class->A)
+    SUPERGO()
+    #undef GO
+}
+
+#undef SUPERGO
+
 // No more wrap/unwrap
 #undef WRAPPER
 #undef FIND