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')
-rw-r--r--src/tools/gtkclass.c1122
1 files changed, 603 insertions, 519 deletions
diff --git a/src/tools/gtkclass.c b/src/tools/gtkclass.c
index 22474a2f..269d8429 100644
--- a/src/tools/gtkclass.c
+++ b/src/tools/gtkclass.c
@@ -58,12 +58,12 @@ GO(10)	\
 GO(11)	\
 GO(12)
 
-#define WRAPPED(A, NAME, RET, DEF, N, ...)  \
+#define WRAPPED(A, NAME, RET, DEF, FMT, ...)  \
 static uintptr_t my_##NAME##_fct_##A = 0;   \
 static RET my_##NAME##_##A DEF              \
 {                                           \
     printf_log(LOG_DEBUG, "Calling " #NAME "_" #A " wrapper\n");             \
-    return (RET)RunFunction(my_context, my_##NAME##_fct_##A, N, __VA_ARGS__);\
+    return (RET)RunFunctionFmt(my_##NAME##_fct_##A, FMT, __VA_ARGS__);\
 }
 
 #define FIND(A, NAME) \
@@ -117,32 +117,32 @@ static void autobridge_##NAME##_##A(wrapper_t W, void* fct)         \
         return;                                                     \
     Dl_info info;                                                   \
     if(dladdr(fct, &info))                                          \
-        AddAutomaticBridge(thread_get_emu(), my_bridge, W, fct, 0); \
-}
-
-#define WRAPPER(A, NAME, RET, DEF, N, ...)          \
-WRAPPED(0, NAME##_##A, RET, DEF, N, __VA_ARGS__)    \
-WRAPPED(1, NAME##_##A, RET, DEF, N, __VA_ARGS__)    \
-WRAPPED(2, NAME##_##A, RET, DEF, N, __VA_ARGS__)    \
-WRAPPED(3, NAME##_##A, RET, DEF, N, __VA_ARGS__)    \
-WRAPPED(4, NAME##_##A, RET, DEF, N, __VA_ARGS__)    \
-WRAPPED(5, NAME##_##A, RET, DEF, N, __VA_ARGS__)    \
-WRAPPED(6, NAME##_##A, RET, DEF, N, __VA_ARGS__)    \
-WRAPPED(7, NAME##_##A, RET, DEF, N, __VA_ARGS__)    \
+        AddAutomaticBridge(thread_get_emu(), my_bridge, W, fct, 0, #NAME "_" #A); \
+}
+
+#define WRAPPER(A, NAME, RET, DEF, FMT, ...)        \
+WRAPPED(0, NAME##_##A, RET, DEF, FMT, __VA_ARGS__)  \
+WRAPPED(1, NAME##_##A, RET, DEF, FMT, __VA_ARGS__)  \
+WRAPPED(2, NAME##_##A, RET, DEF, FMT, __VA_ARGS__)  \
+WRAPPED(3, NAME##_##A, RET, DEF, FMT, __VA_ARGS__)  \
+WRAPPED(4, NAME##_##A, RET, DEF, FMT, __VA_ARGS__)  \
+WRAPPED(5, NAME##_##A, RET, DEF, FMT, __VA_ARGS__)  \
+WRAPPED(6, NAME##_##A, RET, DEF, FMT, __VA_ARGS__)  \
+WRAPPED(7, NAME##_##A, RET, DEF, FMT, __VA_ARGS__)  \
 FIND(A, NAME)                                       \
 REVERSE(A, NAME)                                    \
 AUTOBRIDGE(A, NAME)
 
 // ----- GObjectClass ------
 // wrapper x64 -> natives of callbacks
-WRAPPER(GObject, constructor, void*, (size_t type, uint32_t n_construct_properties, void* construct_properties), 3, type, n_construct_properties, construct_properties);
-WRAPPER(GObject, set_property, void, (void* object, uint32_t property_id, void* value, void* pspec), 4, object, property_id, value, pspec);
-WRAPPER(GObject, get_property, void, (void* object, uint32_t property_id, void* value, void* pspec), 4, object, property_id, value, pspec);
-WRAPPER(GObject, dispose, void, (void* object), 1, object);
-WRAPPER(GObject, finalize, void, (void* object), 1, object);
-WRAPPER(GObject, dispatch_properties_changed, void*, (size_t type, uint32_t n_pspecs, void* pspecs), 3, type, n_pspecs, pspecs);
-WRAPPER(GObject, notify, void*, (size_t type, void* pspecs), 2, type, pspecs);
-WRAPPER(GObject, constructed, void, (void* object), 1, object);
+WRAPPER(GObject, constructor, void*, (size_t type, uint32_t n_construct_properties, void* construct_properties), "Lup", type, n_construct_properties, construct_properties);
+WRAPPER(GObject, set_property, void, (void* object, uint32_t property_id, void* value, void* pspec), "pupp", object, property_id, value, pspec);
+WRAPPER(GObject, get_property, void, (void* object, uint32_t property_id, void* value, void* pspec), "pupp", object, property_id, value, pspec);
+WRAPPER(GObject, dispose, void, (void* object), "p", object);
+WRAPPER(GObject, finalize, void, (void* object), "p", object);
+WRAPPER(GObject, dispatch_properties_changed, void*, (size_t type, uint32_t n_pspecs, void* pspecs), "Lup", type, n_pspecs, pspecs);
+WRAPPER(GObject, notify, void*, (size_t type, void* pspecs), "Lp", type, pspecs);
+WRAPPER(GObject, constructed, void, (void* object), "p", object);
 
 #define SUPERGO() \
     GO(constructor, pFLup);                 \
@@ -163,7 +163,7 @@ static void wrapGObjectClass(my_GObjectClass_t* class)
 }
 // unwrap (and use callback if not a native call anymore)
 static void unwrapGObjectClass(my_GObjectClass_t* class)
-{   
+{
     #define GO(A, W)   class->A = find_##A##_GObject (class->A)
     SUPERGO()
     #undef GO
@@ -179,14 +179,14 @@ static void bridgeGObjectClass(my_GObjectClass_t* class)
 
 // ----- GInitiallyUnownedClass ------
 // wrapper x86 -> natives of callbacks
-WRAPPER(GInitiallyUnowned, constructor, void*, (size_t type, uint32_t n_construct_properties, void* construct_properties), 3, type, n_construct_properties, construct_properties);
-WRAPPER(GInitiallyUnowned, set_property, void, (void* object, uint32_t property_id, void* value, void* pspec), 4, object, property_id, value, pspec);
-WRAPPER(GInitiallyUnowned, get_property, void, (void* object, uint32_t property_id, void* value, void* pspec), 4, object, property_id, value, pspec);
-WRAPPER(GInitiallyUnowned, dispose, void, (void* object), 1, object);
-WRAPPER(GInitiallyUnowned, finalize, void, (void* object), 1, object);
-WRAPPER(GInitiallyUnowned, dispatch_properties_changed, void*, (size_t type, uint32_t n_pspecs, void* pspecs), 3, type, n_pspecs, pspecs);
-WRAPPER(GInitiallyUnowned, notify, void*, (size_t type, void* pspecs), 2, type, pspecs);
-WRAPPER(GInitiallyUnowned, constructed, void, (void* object), 1, object);
+WRAPPER(GInitiallyUnowned, constructor, void*, (size_t type, uint32_t n_construct_properties, void* construct_properties), "Lup", type, n_construct_properties, construct_properties);
+WRAPPER(GInitiallyUnowned, set_property, void, (void* object, uint32_t property_id, void* value, void* pspec), "pupp", object, property_id, value, pspec);
+WRAPPER(GInitiallyUnowned, get_property, void, (void* object, uint32_t property_id, void* value, void* pspec), "pupp", object, property_id, value, pspec);
+WRAPPER(GInitiallyUnowned, dispose, void, (void* object), "p", object);
+WRAPPER(GInitiallyUnowned, finalize, void, (void* object), "p", object);
+WRAPPER(GInitiallyUnowned, dispatch_properties_changed, void*, (size_t type, uint32_t n_pspecs, void* pspecs), "Lup", type, n_pspecs, pspecs);
+WRAPPER(GInitiallyUnowned, notify, void*, (size_t type, void* pspecs), "Lp", type, pspecs);
+WRAPPER(GInitiallyUnowned, constructed, void, (void* object), "p", object);
 
 #define SUPERGO() \
     GO(constructor, pFLup);                 \
@@ -207,7 +207,7 @@ static void wrapGInitiallyUnownedClass(my_GInitiallyUnownedClass_t* class)
 }
 // unwrap (and use callback if not a native call anymore)
 static void unwrapGInitiallyUnownedClass(my_GInitiallyUnownedClass_t* class)
-{   
+{
     #define GO(A, W)   class->A = find_##A##_GInitiallyUnowned (class->A)
     SUPERGO()
     #undef GO
@@ -223,7 +223,7 @@ static void bridgeGInitiallyUnownedClass(my_GInitiallyUnownedClass_t* class)
 
 // ----- GamesScoresImporterClass ------
 // wrapper x86 -> natives of callbacks
-WRAPPER(GamesScoresImporter, importOldScores, void, (void *self, void* context, void* new_scores_dir, void *error), 4, self, context, new_scores_dir, error);
+WRAPPER(GamesScoresImporter, importOldScores, void, (void *self, void* context, void* new_scores_dir, void *error), "pppp", self, context, new_scores_dir, error);
 
 #define SUPERGO() \
     GO(importOldScores, vFpppp);
@@ -256,21 +256,21 @@ static void bridgeGamesScoresImporterClass(my_GamesScoresImporterClass_t* class)
 
 // ----- GApplicationClass ------
 // wrapper x86 -> natives of callbacks
-WRAPPER(GApplication, startup, void, (void* application), 1, application);
-WRAPPER(GApplication, activate, void, (void* application), 1, application);
-WRAPPER(GApplication, open, void, (void* application, void* files, int n_files, void* hint), 4, application, files, n_files, hint);
-WRAPPER(GApplication, command_line, void, (void* application, void* command_line), 2, application, command_line);
-WRAPPER(GApplication, local_command_line, void, (void* application, void* arguments, void* exit_status), 3, application, arguments, exit_status);
-WRAPPER(GApplication, before_emit, void*, (void* application, void* platform_data), 2, application, platform_data);
-WRAPPER(GApplication, after_emit, void, (void* application, void* platform_data), 2, application, platform_data);
-WRAPPER(GApplication, add_platform_data, void, (void* application, void* builder), 2, application, builder);
-WRAPPER(GApplication, quit_mainloop, void, (void* application), 1, application);
-WRAPPER(GApplication, run_mainloop, void, (void* application), 1, application);
-WRAPPER(GApplication, shutdown, void, (void* application), 1, application);
-WRAPPER(GApplication, dbus_register, void, (void* application, void* connection, void* object_path, void* error), 4, application, connection, object_path, error);
-WRAPPER(GApplication, dbus_unregister, void, (void* application, void* connection, void* object_path), 3, application, connection, object_path);
-WRAPPER(GApplication, handle_local_options, void, (void* application, void* options), 2, application, options);
-WRAPPER(GApplication, name_lost, void, (void* application), 1, application);
+WRAPPER(GApplication, startup, void, (void* application), "p", application);
+WRAPPER(GApplication, activate, void, (void* application), "p", application);
+WRAPPER(GApplication, open, void, (void* application, void* files, int n_files, void* hint), "ppip", application, files, n_files, hint);
+WRAPPER(GApplication, command_line, void, (void* application, void* command_line), "pp", application, command_line);
+WRAPPER(GApplication, local_command_line, void, (void* application, void* arguments, void* exit_status), "ppp", application, arguments, exit_status);
+WRAPPER(GApplication, before_emit, void*, (void* application, void* platform_data), "pp", application, platform_data);
+WRAPPER(GApplication, after_emit, void, (void* application, void* platform_data), "pp", application, platform_data);
+WRAPPER(GApplication, add_platform_data, void, (void* application, void* builder), "pp", application, builder);
+WRAPPER(GApplication, quit_mainloop, void, (void* application), "p", application);
+WRAPPER(GApplication, run_mainloop, void, (void* application), "p", application);
+WRAPPER(GApplication, shutdown, void, (void* application), "p", application);
+WRAPPER(GApplication, dbus_register, void, (void* application, void* connection, void* object_path, void* error), "pppp", application, connection, object_path, error);
+WRAPPER(GApplication, dbus_unregister, void, (void* application, void* connection, void* object_path), "ppp", application, connection, object_path);
+WRAPPER(GApplication, handle_local_options, void, (void* application, void* options), "pp", application, options);
+WRAPPER(GApplication, name_lost, void, (void* application), "p", application);
 
 #define SUPERGO()                     \
     GO(startup, vFp);                 \
@@ -315,8 +315,8 @@ static void bridgeGApplicationClass(my_GApplicationClass_t* class)
 
 // ----- GtkApplicationClass ------
 // wrapper x86 -> natives of callbacks
-WRAPPER(GtkApplication, window_added, void, (void* application, void* window), 2, application, window);
-WRAPPER(GtkApplication, window_removed, void, (void* application, void* window), 2, application, window);
+WRAPPER(GtkApplication, window_added, void, (void* application, void* window), "pp", application, window);
+WRAPPER(GtkApplication, window_removed, void, (void* application, void* window), "pp", application, window);
 
 #define SUPERGO() \
     GO(window_added, pFpp);   \
@@ -350,9 +350,9 @@ static void bridgeGtkApplicationClass(my_GtkApplicationClass_t* class)
 
 // ----- GtkObjectClass ------
 // wrapper x64 -> natives of callbacks
-WRAPPER(GtkObject, set_arg, void, (void* object, void* arg, uint32_t arg_id), 3, object, arg, arg_id);
-WRAPPER(GtkObject, get_arg, void, (void* object, void* arg, uint32_t arg_id), 3, object, arg, arg_id);
-WRAPPER(GtkObject, destroy, void, (void* object), 1, object);
+WRAPPER(GtkObject, set_arg, void, (void* object, void* arg, uint32_t arg_id), "ppu", object, arg, arg_id);
+WRAPPER(GtkObject, get_arg, void, (void* object, void* arg, uint32_t arg_id), "ppu", object, arg, arg_id);
+WRAPPER(GtkObject, destroy, void, (void* object), "p", object);
 
 #define SUPERGO() \
     GO(set_arg, vFppu); \
@@ -368,7 +368,7 @@ static void wrapGtkObjectClass(my_GtkObjectClass_t* class)
 }
 // unwrap (and use callback if not a native call anymore)
 static void unwrapGtkObjectClass(my_GtkObjectClass_t* class)
-{   
+{
     unwrapGObjectClass(&class->parent_class);
     #define GO(A, W)   class->A = find_##A##_GtkObject (class->A)
     SUPERGO()
@@ -387,72 +387,72 @@ static void bridgeGtkObjectClass(my_GtkObjectClass_t* class)
 
 // ----- GtkWidget2Class ------
 // wrapper x86 -> natives of callbacks
-WRAPPER(GtkWidget2, dispatch_child_properties_changed, void, (void* widget, uint32_t n_pspecs, void* pspecs), 3, widget, n_pspecs, pspecs);
-WRAPPER(GtkWidget2, show,              void, (void* widget), 1, widget);
-WRAPPER(GtkWidget2, show_all,          void, (void* widget), 1, widget);
-WRAPPER(GtkWidget2, hide,              void, (void* widget), 1, widget);
-WRAPPER(GtkWidget2, hide_all,          void, (void* widget), 1, widget);
-WRAPPER(GtkWidget2, map,               void, (void* widget), 1, widget);
-WRAPPER(GtkWidget2, unmap,             void, (void* widget), 1, widget);
-WRAPPER(GtkWidget2, realize,           void, (void* widget), 1, widget);
-WRAPPER(GtkWidget2, unrealize,         void, (void* widget), 1, widget);
-WRAPPER(GtkWidget2, size_request,      void, (void* widget, void* requisition), 2, widget, requisition);
-WRAPPER(GtkWidget2, size_allocate,     void, (void* widget, void* allocation), 2, widget, allocation);
-WRAPPER(GtkWidget2, state_changed,     void, (void* widget, int previous_state), 2, widget, previous_state);
-WRAPPER(GtkWidget2, parent_set,        void, (void* widget, void* previous_parent), 2, widget, previous_parent);
-WRAPPER(GtkWidget2, hierarchy_changed, void, (void* widget, void* previous_toplevel), 2, widget, previous_toplevel);
-WRAPPER(GtkWidget2, style_set,         void, (void* widget, void* previous_style), 2, widget, previous_style);
-WRAPPER(GtkWidget2, direction_changed, void, (void* widget, int previous_direction), 2, widget, previous_direction);
-WRAPPER(GtkWidget2, grab_notify,       void, (void* widget, int was_grabbed), 2, widget, was_grabbed);
-WRAPPER(GtkWidget2, child_notify,      void, (void* widget, void* pspec), 2, widget, pspec);
-WRAPPER(GtkWidget2, mnemonic_activate, int, (void* widget, int group_cycling), 2, widget, group_cycling);
-WRAPPER(GtkWidget2, grab_focus,        void, (void* widget), 1, widget);
-WRAPPER(GtkWidget2, focus,             int, (void* widget, int direction), 2, widget, direction);
-WRAPPER(GtkWidget2, event,             int, (void* widget, void* event), 2, widget, event);
-WRAPPER(GtkWidget2, button_press_event,int, (void* widget, void* event), 2, widget, event);
-WRAPPER(GtkWidget2, button_release_event, int, (void* widget, void* event), 2, widget, event);
-WRAPPER(GtkWidget2, scroll_event,      int, (void* widget, void* event), 2, widget, event);
-WRAPPER(GtkWidget2, motion_notify_event, int, (void* widget, void* event), 2, widget, event);
-WRAPPER(GtkWidget2, delete_event,       int, (void* widget, void* event), 2, widget, event);
-WRAPPER(GtkWidget2, destroy_event,      int, (void* widget, void* event), 2, widget, event);
-WRAPPER(GtkWidget2, expose_event,       int, (void* widget, void* event), 2, widget, event);
-WRAPPER(GtkWidget2, key_press_event,    int, (void* widget, void* event), 2, widget, event);
-WRAPPER(GtkWidget2, key_release_event,  int, (void* widget, void* event), 2, widget, event);
-WRAPPER(GtkWidget2, enter_notify_event, int, (void* widget, void* event), 2, widget, event);
-WRAPPER(GtkWidget2, leave_notify_event, int, (void* widget, void* event), 2, widget, event);
-WRAPPER(GtkWidget2, configure_event,    int, (void* widget, void* event), 2, widget, event);
-WRAPPER(GtkWidget2, focus_in_event,     int, (void* widget, void* event), 2, widget, event);
-WRAPPER(GtkWidget2, focus_out_event,    int, (void* widget, void* event), 2, widget, event);
-WRAPPER(GtkWidget2, map_event,          int, (void* widget, void* event), 2, widget, event);
-WRAPPER(GtkWidget2, unmap_event,        int, (void* widget, void* event), 2, widget, event);
-WRAPPER(GtkWidget2, property_notify_event,  int, (void* widget, void* event), 2, widget, event);
-WRAPPER(GtkWidget2, selection_clear_event,  int, (void* widget, void* event), 2, widget, event);
-WRAPPER(GtkWidget2, selection_request_event,int, (void* widget, void* event), 2, widget, event);
-WRAPPER(GtkWidget2, selection_notify_event, int, (void* widget, void* event), 2, widget, event);
-WRAPPER(GtkWidget2, proximity_in_event,  int, (void* widget, void* event), 2, widget, event);
-WRAPPER(GtkWidget2, proximity_out_event, int, (void* widget, void* event), 2, widget, event);
-WRAPPER(GtkWidget2, visibility_notify_event, int, (void* widget, void* event), 2, widget, event);
-WRAPPER(GtkWidget2, client_event,        int, (void* widget, void* event), 2, widget, event);
-WRAPPER(GtkWidget2, no_expose_event,     int, (void* widget, void* event), 2, widget, event);
-WRAPPER(GtkWidget2, window_state_event,  int, (void* widget, void* event), 2, widget, event);
-WRAPPER(GtkWidget2, selection_get,       void, (void* widget, void* selection_data, uint32_t info, uint32_t time_), 4, widget, selection_data, info, time_);
-WRAPPER(GtkWidget2, selection_received,  void, (void* widget, void* selection_data, uint32_t time_), 3, widget, selection_data, time_);
-WRAPPER(GtkWidget2, drag_begin,          void, (void* widget, void* context), 2, widget, context);
-WRAPPER(GtkWidget2, drag_end,            void, (void* widget, void* context), 2, widget, context);
-WRAPPER(GtkWidget2, drag_data_get,       void, (void* widget, void* context, void* selection_data, uint32_t info, uint32_t time_), 5, widget, context, selection_data, info, time_);
-WRAPPER(GtkWidget2, drag_data_delete,    void, (void* widget, void* context), 2, widget, context);
-WRAPPER(GtkWidget2, drag_leave,          void, (void* widget, void* context, uint32_t time_), 3, widget, context, time_);
-WRAPPER(GtkWidget2, drag_motion,         int, (void* widget, void* context, int32_t x, int32_t y, uint32_t time_), 5, widget, context, x, y, time_);
-WRAPPER(GtkWidget2, drag_drop,           int, (void* widget, void* context, int32_t x, int32_t y, uint32_t time_), 5, widget, context, x, y, time_);
-WRAPPER(GtkWidget2, drag_data_received,  void, (void* widget, void* context, int32_t x, int32_t y, void* selection_data, uint32_t info, uint32_t time_), 7, widget, context, x, y, selection_data, info, time_);
-WRAPPER(GtkWidget2,  popup_menu,         int  , (void* widget), 1, widget);
-WRAPPER(GtkWidget2,  show_help,          int  , (void* widget, int help_type), 2, widget, help_type);
-WRAPPER(GtkWidget2, get_accessible,      void*, (void* widget), 1, widget);
-WRAPPER(GtkWidget2, screen_changed,      void , (void* widget, void* previous_screen), 2, widget, previous_screen);
-WRAPPER(GtkWidget2, can_activate_accel,  int  , (void* widget, uint32_t signal_id), 2, widget, signal_id);
-WRAPPER(GtkWidget2, grab_broken_event,   int  , (void* widget, void* event), 2, widget, event);
-WRAPPER(GtkWidget2,  composited_changed, void , (void* widget), 1, widget);
-WRAPPER(GtkWidget2,  query_tooltip,      int  , (void* widget, int32_t x, int32_t y, int keyboard_tooltip, void* tooltip), 5, widget, x, y, keyboard_tooltip, tooltip);
+WRAPPER(GtkWidget2, dispatch_child_properties_changed, void, (void* widget, uint32_t n_pspecs, void* pspecs), "pup", widget, n_pspecs, pspecs);
+WRAPPER(GtkWidget2, show,              void, (void* widget), "p", widget);
+WRAPPER(GtkWidget2, show_all,          void, (void* widget), "p", widget);
+WRAPPER(GtkWidget2, hide,              void, (void* widget), "p", widget);
+WRAPPER(GtkWidget2, hide_all,          void, (void* widget), "p", widget);
+WRAPPER(GtkWidget2, map,               void, (void* widget), "p", widget);
+WRAPPER(GtkWidget2, unmap,             void, (void* widget), "p", widget);
+WRAPPER(GtkWidget2, realize,           void, (void* widget), "p", widget);
+WRAPPER(GtkWidget2, unrealize,         void, (void* widget), "p", widget);
+WRAPPER(GtkWidget2, size_request,      void, (void* widget, void* requisition), "pp", widget, requisition);
+WRAPPER(GtkWidget2, size_allocate,     void, (void* widget, void* allocation), "pp", widget, allocation);
+WRAPPER(GtkWidget2, state_changed,     void, (void* widget, int previous_state), "pi", widget, previous_state);
+WRAPPER(GtkWidget2, parent_set,        void, (void* widget, void* previous_parent), "pp", widget, previous_parent);
+WRAPPER(GtkWidget2, hierarchy_changed, void, (void* widget, void* previous_toplevel), "pp", widget, previous_toplevel);
+WRAPPER(GtkWidget2, style_set,         void, (void* widget, void* previous_style), "pp", widget, previous_style);
+WRAPPER(GtkWidget2, direction_changed, void, (void* widget, int previous_direction), "pi", widget, previous_direction);
+WRAPPER(GtkWidget2, grab_notify,       void, (void* widget, int was_grabbed), "pi", widget, was_grabbed);
+WRAPPER(GtkWidget2, child_notify,      void, (void* widget, void* pspec), "pp", widget, pspec);
+WRAPPER(GtkWidget2, mnemonic_activate, int, (void* widget, int group_cycling), "pi", widget, group_cycling);
+WRAPPER(GtkWidget2, grab_focus,        void, (void* widget), "p", widget);
+WRAPPER(GtkWidget2, focus,             int, (void* widget, int direction), "pi", widget, direction);
+WRAPPER(GtkWidget2, event,             int, (void* widget, void* event), "pp", widget, event);
+WRAPPER(GtkWidget2, button_press_event,int, (void* widget, void* event), "pp", widget, event);
+WRAPPER(GtkWidget2, button_release_event, int, (void* widget, void* event), "pp", widget, event);
+WRAPPER(GtkWidget2, scroll_event,      int, (void* widget, void* event), "pp", widget, event);
+WRAPPER(GtkWidget2, motion_notify_event, int, (void* widget, void* event), "pp", widget, event);
+WRAPPER(GtkWidget2, delete_event,       int, (void* widget, void* event), "pp", widget, event);
+WRAPPER(GtkWidget2, destroy_event,      int, (void* widget, void* event), "pp", widget, event);
+WRAPPER(GtkWidget2, expose_event,       int, (void* widget, void* event), "pp", widget, event);
+WRAPPER(GtkWidget2, key_press_event,    int, (void* widget, void* event), "pp", widget, event);
+WRAPPER(GtkWidget2, key_release_event,  int, (void* widget, void* event), "pp", widget, event);
+WRAPPER(GtkWidget2, enter_notify_event, int, (void* widget, void* event), "pp", widget, event);
+WRAPPER(GtkWidget2, leave_notify_event, int, (void* widget, void* event), "pp", widget, event);
+WRAPPER(GtkWidget2, configure_event,    int, (void* widget, void* event), "pp", widget, event);
+WRAPPER(GtkWidget2, focus_in_event,     int, (void* widget, void* event), "pp", widget, event);
+WRAPPER(GtkWidget2, focus_out_event,    int, (void* widget, void* event), "pp", widget, event);
+WRAPPER(GtkWidget2, map_event,          int, (void* widget, void* event), "pp", widget, event);
+WRAPPER(GtkWidget2, unmap_event,        int, (void* widget, void* event), "pp", widget, event);
+WRAPPER(GtkWidget2, property_notify_event,  int, (void* widget, void* event), "pp", widget, event);
+WRAPPER(GtkWidget2, selection_clear_event,  int, (void* widget, void* event), "pp", widget, event);
+WRAPPER(GtkWidget2, selection_request_event,int, (void* widget, void* event), "pp", widget, event);
+WRAPPER(GtkWidget2, selection_notify_event, int, (void* widget, void* event), "pp", widget, event);
+WRAPPER(GtkWidget2, proximity_in_event,  int, (void* widget, void* event), "pp", widget, event);
+WRAPPER(GtkWidget2, proximity_out_event, int, (void* widget, void* event), "pp", widget, event);
+WRAPPER(GtkWidget2, visibility_notify_event, int, (void* widget, void* event), "p", widget, event);
+WRAPPER(GtkWidget2, client_event,        int, (void* widget, void* event), "p", widget, event);
+WRAPPER(GtkWidget2, no_expose_event,     int, (void* widget, void* event), "p", widget, event);
+WRAPPER(GtkWidget2, window_state_event,  int, (void* widget, void* event), "p", widget, event);
+WRAPPER(GtkWidget2, selection_get,       void, (void* widget, void* selection_data, uint32_t info, uint32_t time_), "ppuu", widget, selection_data, info, time_);
+WRAPPER(GtkWidget2, selection_received,  void, (void* widget, void* selection_data, uint32_t time_), "ppu", widget, selection_data, time_);
+WRAPPER(GtkWidget2, drag_begin,          void, (void* widget, void* context), "pp", widget, context);
+WRAPPER(GtkWidget2, drag_end,            void, (void* widget, void* context), "pp", widget, context);
+WRAPPER(GtkWidget2, drag_data_get,       void, (void* widget, void* context, void* selection_data, uint32_t info, uint32_t time_), "pppuu", widget, context, selection_data, info, time_);
+WRAPPER(GtkWidget2, drag_data_delete,    void, (void* widget, void* context), "pp", widget, context);
+WRAPPER(GtkWidget2, drag_leave,          void, (void* widget, void* context, uint32_t time_), "ppu", widget, context, time_);
+WRAPPER(GtkWidget2, drag_motion,         int, (void* widget, void* context, int32_t x, int32_t y, uint32_t time_), "ppiiu", widget, context, x, y, time_);
+WRAPPER(GtkWidget2, drag_drop,           int, (void* widget, void* context, int32_t x, int32_t y, uint32_t time_), "ppiiu", widget, context, x, y, time_);
+WRAPPER(GtkWidget2, drag_data_received,  void, (void* widget, void* context, int32_t x, int32_t y, void* selection_data, uint32_t info, uint32_t time_), "ppiipuu", widget, context, x, y, selection_data, info, time_);
+WRAPPER(GtkWidget2,  popup_menu,         int  , (void* widget), "p", widget);
+WRAPPER(GtkWidget2,  show_help,          int  , (void* widget, int help_type), "pi", widget, help_type);
+WRAPPER(GtkWidget2, get_accessible,      void*, (void* widget), "p", widget);
+WRAPPER(GtkWidget2, screen_changed,      void , (void* widget, void* previous_screen), "pp", widget, previous_screen);
+WRAPPER(GtkWidget2, can_activate_accel,  int  , (void* widget, uint32_t signal_id), "pu", widget, signal_id);
+WRAPPER(GtkWidget2, grab_broken_event,   int  , (void* widget, void* event), "pp", widget, event);
+WRAPPER(GtkWidget2,  composited_changed, void , (void* widget), "p", widget);
+WRAPPER(GtkWidget2,  query_tooltip,      int  , (void* widget, int32_t x, int32_t y, int keyboard_tooltip, void* tooltip), "piiip", widget, x, y, keyboard_tooltip, tooltip);
 
 #define SUPERGO() \
     GO(dispatch_child_properties_changed, vFpup);   \
@@ -532,7 +532,7 @@ static void wrapGtkWidget2Class(my_GtkWidget2Class_t* class)
 }
 // unwrap (and use callback if not a native call anymore)
 static void unwrapGtkWidget2Class(my_GtkWidget2Class_t* class)
-{   
+{
     unwrapGtkObjectClass(&class->parent_class);
     #define GO(A, W)   class->A = find_##A##_GtkWidget2 (class->A)
     SUPERGO()
@@ -551,88 +551,88 @@ static void bridgeGtkWidget2Class(my_GtkWidget2Class_t* class)
 
 // ----- GtkWidget3Class ------
 // wrapper x86 -> natives of callbacks
-WRAPPER(GtkWidget3, dispatch_child_properties_changed, void, (void* widget, uint32_t n_pspecs, void* pspecs), 3, widget, n_pspecs, pspecs);
-WRAPPER(GtkWidget3, destroy, void,              (void* widget), 1, widget);
-WRAPPER(GtkWidget3, show, void,                 (void* widget), 1, widget);
-WRAPPER(GtkWidget3, show_all, void,             (void* widget), 1, widget);
-WRAPPER(GtkWidget3, hide, void,                 (void* widget), 1, widget);
-WRAPPER(GtkWidget3, map, void,                  (void* widget), 1, widget);
-WRAPPER(GtkWidget3, unmap, void,                (void* widget), 1, widget);
-WRAPPER(GtkWidget3, realize, void,              (void* widget), 1, widget);
-WRAPPER(GtkWidget3, unrealize, void,            (void* widget), 1, widget);
-WRAPPER(GtkWidget3, size_allocate, void,        (void* widget, void* allocation), 2, widget, allocation);
-WRAPPER(GtkWidget3, state_changed, void,        (void* widget, int previous_state), 2, widget, previous_state);
-WRAPPER(GtkWidget3, state_flags_changed, void,  (void* widget, int previous_state_flags), 2, widget, previous_state_flags);
-WRAPPER(GtkWidget3, parent_set, void,           (void* widget, void* previous_parent), 2, widget, previous_parent);
-WRAPPER(GtkWidget3, hierarchy_changed, void,    (void* widget, void* previous_toplevel), 2, widget, previous_toplevel);
-WRAPPER(GtkWidget3, style_set, void,            (void* widget, void* previous_style), 2, widget, previous_style);
-WRAPPER(GtkWidget3, direction_changed, void,    (void* widget, int previous_direction), 2, widget, previous_direction);
-WRAPPER(GtkWidget3, grab_notify, void,          (void* widget, int was_grabbed), 2, widget, was_grabbed);
-WRAPPER(GtkWidget3, child_notify, void,         (void* widget, void* child_property), 2, widget, child_property);
-WRAPPER(GtkWidget3, draw, int,                  (void* widget, void* cr), 2, widget, cr);
-WRAPPER(GtkWidget3, get_request_mode, int,      (void* widget), 1, widget);
-WRAPPER(GtkWidget3, get_preferred_height, void, (void* widget, void* minimum_height, void* natural_height), 3, widget, minimum_height, natural_height);
-WRAPPER(GtkWidget3, get_preferred_width_for_height, void,  (void* widget, int height, void* minimum_width, void* natural_width), 4, widget, height, minimum_width, natural_width);
-WRAPPER(GtkWidget3, get_preferred_width, void,  (void* widget, void* minimum_width, void* natural_width), 3, widget, minimum_width, natural_width);
-WRAPPER(GtkWidget3, get_preferred_height_for_width, void,  (void* widget, int width, void* minimum_height, void* natural_height), 4, widget, width, minimum_height, natural_height);
-WRAPPER(GtkWidget3, mnemonic_activate, int,     (void* widget, int group_cycling), 2, widget, group_cycling);
-WRAPPER(GtkWidget3, grab_focus, void,           (void* widget), 1, widget);
-WRAPPER(GtkWidget3, focus, int,                 (void* widget, int direction), 2, widget, direction);
-WRAPPER(GtkWidget3, move_focus, void,           (void* widget, int direction), 2, widget, direction);
-WRAPPER(GtkWidget3, keynav_failed, int,         (void* widget, int direction), 2, widget, direction);
-WRAPPER(GtkWidget3, event, int,                 (void* widget, void* event), 2, widget, event);
-WRAPPER(GtkWidget3, button_press_event, int,    (void* widget, void* event), 2, widget, event);
-WRAPPER(GtkWidget3, button_release_event, int,  (void* widget, void* event), 2, widget, event);
-WRAPPER(GtkWidget3, scroll_event, int,          (void* widget, void* event), 2, widget, event);
-WRAPPER(GtkWidget3, motion_notify_event, int,   (void* widget, void* event), 2, widget, event);
-WRAPPER(GtkWidget3, delete_event, int,          (void* widget, void* event), 2, widget, event);
-WRAPPER(GtkWidget3, destroy_event, int,         (void* widget, void* event), 2, widget, event);
-WRAPPER(GtkWidget3, key_press_event, int,       (void* widget, void* event), 2, widget, event);
-WRAPPER(GtkWidget3, key_release_event, int,     (void* widget, void* event), 2, widget, event);
-WRAPPER(GtkWidget3, enter_notify_event, int,    (void* widget, void* event), 2, widget, event);
-WRAPPER(GtkWidget3, leave_notify_event, int,    (void* widget, void* event), 2, widget, event);
-WRAPPER(GtkWidget3, configure_event, int,       (void* widget, void* event), 2, widget, event);
-WRAPPER(GtkWidget3, focus_in_event, int,        (void* widget, void* event), 2, widget, event);
-WRAPPER(GtkWidget3, focus_out_event, int,       (void* widget, void* event), 2, widget, event);
-WRAPPER(GtkWidget3, map_event, int,             (void* widget, void* event), 2, widget, event);
-WRAPPER(GtkWidget3, unmap_event, int,           (void* widget, void* event), 2, widget, event);
-WRAPPER(GtkWidget3, property_notify_event, int, (void* widget, void* event), 2, widget, event);
-WRAPPER(GtkWidget3, selection_clear_event, int, (void* widget, void* event), 2, widget, event);
-WRAPPER(GtkWidget3, selection_request_event, int, (void* widget, void* event), 2, widget, event);
-WRAPPER(GtkWidget3, selection_notify_event, int,(void* widget, void* event), 2, widget, event);
-WRAPPER(GtkWidget3, proximity_in_event, int,    (void* widget, void* event), 2, widget, event);
-WRAPPER(GtkWidget3, proximity_out_event, int,   (void* widget, void* event), 2, widget, event);
-WRAPPER(GtkWidget3, visibility_notify_event, int,   (void* widget, void* event), 2, widget, event);
-WRAPPER(GtkWidget3, window_state_event, int,    (void* widget, void* event), 2, widget, event);
-WRAPPER(GtkWidget3, damage_event, int,          (void* widget, void* event), 2, widget, event);
-WRAPPER(GtkWidget3, grab_broken_event, int,     (void* widget, void* event), 2, widget, event);
-WRAPPER(GtkWidget3, selection_get, void,        (void* widget, void* selection_data, uint32_t info, uint32_t time_), 4, widget, selection_data, info, time_);
-WRAPPER(GtkWidget3, selection_received, void,   (void* widget, void* selection_data, uint32_t time_), 3, widget, selection_data, time_);
-WRAPPER(GtkWidget3, drag_begin, void,           (void* widget, void* context), 2, widget, context);
-WRAPPER(GtkWidget3, drag_end, void,             (void* widget, void* context), 2, widget, context);
-WRAPPER(GtkWidget3, drag_data_get, void,        (void* widget, void* context, void* selection_data, uint32_t info, uint32_t time_), 5, widget, context, selection_data, info, time_);
-WRAPPER(GtkWidget3, drag_data_delete, void,     (void* widget, void* context), 2, widget, context);
-WRAPPER(GtkWidget3, drag_leave, void,           (void* widget, void* context, uint32_t time_), 3, widget, context, time_);
-WRAPPER(GtkWidget3, drag_motion, int,           (void* widget, void* context, int x, int y, uint32_t time_), 5, widget, context, x, y, time_);
-WRAPPER(GtkWidget3, drag_drop, int,             (void* widget, void* context, int x, int y, uint32_t time_), 5, widget, context, x, y, time_);
-WRAPPER(GtkWidget3, drag_data_received, void,   (void* widget, void* context, int x, int y, void* selection_data, uint32_t info, uint32_t time_), 7, widget, context, x, y, selection_data, info, time_);
-WRAPPER(GtkWidget3, drag_failed, int,           (void* widget, void* context, int result), 3, widget, context, result);
-WRAPPER(GtkWidget3, popup_menu, int,            (void* widget), 1, widget);
-WRAPPER(GtkWidget3, show_help, int,             (void* widget, int help_type), 2, widget, help_type);
-WRAPPER(GtkWidget3, get_accessible, void*,      (void *widget), 1, widget);
-WRAPPER(GtkWidget3, screen_changed, void,       (void* widget, void* previous_screen), 2, widget, previous_screen);
-WRAPPER(GtkWidget3, can_activate_accel, int,    (void* widget, uint32_t signal_id), 2, widget, signal_id);
-WRAPPER(GtkWidget3, composited_changed, void,   (void* widget), 1, widget);
-WRAPPER(GtkWidget3, query_tooltip, int,         (void* widget, int x, int y, int keyboard_tooltip, void* tooltip), 5, widget, x, y, keyboard_tooltip, tooltip);
-WRAPPER(GtkWidget3, compute_expand, void,       (void* widget, void* hexpand_p, void* vexpand_p), 3, widget, hexpand_p, vexpand_p);
-WRAPPER(GtkWidget3, adjust_size_request, void,  (void* widget, int orientation, void* minimum_size, void* natural_size), 4, widget, orientation, minimum_size, natural_size);
-WRAPPER(GtkWidget3, adjust_size_allocation, void, (void*widget, int orientation, void* minimum_size, void* natural_size, void* allocated_pos, void* allocated_size), 6, widget, orientation, minimum_size, natural_size, allocated_pos, allocated_size);
-WRAPPER(GtkWidget3, style_updated, void,        (void* widget), 1, widget);
-WRAPPER(GtkWidget3, touch_event, int,           (void* widget, void* event), 2, widget, event);
-WRAPPER(GtkWidget3, get_preferred_height_and_baseline_for_width, void, (void* widget, int width, void* minimum_height, void* natural_height, void* minimum_baseline, void* natural_baseline), 6, widget, width, minimum_height, natural_height, minimum_baseline, natural_baseline);
-WRAPPER(GtkWidget3, adjust_baseline_request, void,  (void* widget, void* minimum_baseline, void* natural_baseline), 3, widget, minimum_baseline, natural_baseline);
-WRAPPER(GtkWidget3, adjust_baseline_allocation, void,  (void* widget, void* baseline), 2, widget, baseline);
-WRAPPER(GtkWidget3, queue_draw_region, void,    (void* widget, void* region), 2, widget, region);
+WRAPPER(GtkWidget3, dispatch_child_properties_changed, void, (void* widget, uint32_t n_pspecs, void* pspecs), "pup", widget, n_pspecs, pspecs);
+WRAPPER(GtkWidget3, destroy, void,              (void* widget), "p", widget);
+WRAPPER(GtkWidget3, show, void,                 (void* widget), "p", widget);
+WRAPPER(GtkWidget3, show_all, void,             (void* widget), "p", widget);
+WRAPPER(GtkWidget3, hide, void,                 (void* widget), "p", widget);
+WRAPPER(GtkWidget3, map, void,                  (void* widget), "p", widget);
+WRAPPER(GtkWidget3, unmap, void,                (void* widget), "p", widget);
+WRAPPER(GtkWidget3, realize, void,              (void* widget), "p", widget);
+WRAPPER(GtkWidget3, unrealize, void,            (void* widget), "p", widget);
+WRAPPER(GtkWidget3, size_allocate, void,        (void* widget, void* allocation), "pp", widget, allocation);
+WRAPPER(GtkWidget3, state_changed, void,        (void* widget, int previous_state), "pi", widget, previous_state);
+WRAPPER(GtkWidget3, state_flags_changed, void,  (void* widget, int previous_state_flags), "pi", widget, previous_state_flags);
+WRAPPER(GtkWidget3, parent_set, void,           (void* widget, void* previous_parent), "pp", widget, previous_parent);
+WRAPPER(GtkWidget3, hierarchy_changed, void,    (void* widget, void* previous_toplevel), "pp", widget, previous_toplevel);
+WRAPPER(GtkWidget3, style_set, void,            (void* widget, void* previous_style), "pp", widget, previous_style);
+WRAPPER(GtkWidget3, direction_changed, void,    (void* widget, int previous_direction), "pi", widget, previous_direction);
+WRAPPER(GtkWidget3, grab_notify, void,          (void* widget, int was_grabbed), "pi", widget, was_grabbed);
+WRAPPER(GtkWidget3, child_notify, void,         (void* widget, void* child_property), "pp", widget, child_property);
+WRAPPER(GtkWidget3, draw, int,                  (void* widget, void* cr), "pp", widget, cr);
+WRAPPER(GtkWidget3, get_request_mode, int,      (void* widget), "p", widget);
+WRAPPER(GtkWidget3, get_preferred_height, void, (void* widget, void* minimum_height, void* natural_height), "ppp", widget, minimum_height, natural_height);
+WRAPPER(GtkWidget3, get_preferred_width_for_height, void,  (void* widget, int height, void* minimum_width, void* natural_width), "pipp", widget, height, minimum_width, natural_width);
+WRAPPER(GtkWidget3, get_preferred_width, void,  (void* widget, void* minimum_width, void* natural_width), "ppp", widget, minimum_width, natural_width);
+WRAPPER(GtkWidget3, get_preferred_height_for_width, void,  (void* widget, int width, void* minimum_height, void* natural_height), "pipp", widget, width, minimum_height, natural_height);
+WRAPPER(GtkWidget3, mnemonic_activate, int,     (void* widget, int group_cycling), "pi", widget, group_cycling);
+WRAPPER(GtkWidget3, grab_focus, void,           (void* widget), "p", widget);
+WRAPPER(GtkWidget3, focus, int,                 (void* widget, int direction), "pi", widget, direction);
+WRAPPER(GtkWidget3, move_focus, void,           (void* widget, int direction), "pi", widget, direction);
+WRAPPER(GtkWidget3, keynav_failed, int,         (void* widget, int direction), "pi", widget, direction);
+WRAPPER(GtkWidget3, event, int,                 (void* widget, void* event), "pp", widget, event);
+WRAPPER(GtkWidget3, button_press_event, int,    (void* widget, void* event), "pp", widget, event);
+WRAPPER(GtkWidget3, button_release_event, int,  (void* widget, void* event), "pp", widget, event);
+WRAPPER(GtkWidget3, scroll_event, int,          (void* widget, void* event), "pp", widget, event);
+WRAPPER(GtkWidget3, motion_notify_event, int,   (void* widget, void* event), "pp", widget, event);
+WRAPPER(GtkWidget3, delete_event, int,          (void* widget, void* event), "pp", widget, event);
+WRAPPER(GtkWidget3, destroy_event, int,         (void* widget, void* event), "pp", widget, event);
+WRAPPER(GtkWidget3, key_press_event, int,       (void* widget, void* event), "pp", widget, event);
+WRAPPER(GtkWidget3, key_release_event, int,     (void* widget, void* event), "pp", widget, event);
+WRAPPER(GtkWidget3, enter_notify_event, int,    (void* widget, void* event), "pp", widget, event);
+WRAPPER(GtkWidget3, leave_notify_event, int,    (void* widget, void* event), "pp", widget, event);
+WRAPPER(GtkWidget3, configure_event, int,       (void* widget, void* event), "pp", widget, event);
+WRAPPER(GtkWidget3, focus_in_event, int,        (void* widget, void* event), "pp", widget, event);
+WRAPPER(GtkWidget3, focus_out_event, int,       (void* widget, void* event), "pp", widget, event);
+WRAPPER(GtkWidget3, map_event, int,             (void* widget, void* event), "pp", widget, event);
+WRAPPER(GtkWidget3, unmap_event, int,           (void* widget, void* event), "pp", widget, event);
+WRAPPER(GtkWidget3, property_notify_event, int, (void* widget, void* event), "pp", widget, event);
+WRAPPER(GtkWidget3, selection_clear_event, int, (void* widget, void* event), "pp", widget, event);
+WRAPPER(GtkWidget3, selection_request_event, int, (void* widget, void* event), "pp", widget, event);
+WRAPPER(GtkWidget3, selection_notify_event, int,(void* widget, void* event), "pp", widget, event);
+WRAPPER(GtkWidget3, proximity_in_event, int,    (void* widget, void* event), "pp", widget, event);
+WRAPPER(GtkWidget3, proximity_out_event, int,   (void* widget, void* event), "pp", widget, event);
+WRAPPER(GtkWidget3, visibility_notify_event, int,   (void* widget, void* event), "pp", widget, event);
+WRAPPER(GtkWidget3, window_state_event, int,    (void* widget, void* event), "pp", widget, event);
+WRAPPER(GtkWidget3, damage_event, int,          (void* widget, void* event), "pp", widget, event);
+WRAPPER(GtkWidget3, grab_broken_event, int,     (void* widget, void* event), "pp", widget, event);
+WRAPPER(GtkWidget3, selection_get, void,        (void* widget, void* selection_data, uint32_t info, uint32_t time_), "ppuu", widget, selection_data, info, time_);
+WRAPPER(GtkWidget3, selection_received, void,   (void* widget, void* selection_data, uint32_t time_), "ppu", widget, selection_data, time_);
+WRAPPER(GtkWidget3, drag_begin, void,           (void* widget, void* context), "pp", widget, context);
+WRAPPER(GtkWidget3, drag_end, void,             (void* widget, void* context), "pp", widget, context);
+WRAPPER(GtkWidget3, drag_data_get, void,        (void* widget, void* context, void* selection_data, uint32_t info, uint32_t time_), "pppuu", widget, context, selection_data, info, time_);
+WRAPPER(GtkWidget3, drag_data_delete, void,     (void* widget, void* context), "pp", widget, context);
+WRAPPER(GtkWidget3, drag_leave, void,           (void* widget, void* context, uint32_t time_), "ppu", widget, context, time_);
+WRAPPER(GtkWidget3, drag_motion, int,           (void* widget, void* context, int x, int y, uint32_t time_), "ppiiu", widget, context, x, y, time_);
+WRAPPER(GtkWidget3, drag_drop, int,             (void* widget, void* context, int x, int y, uint32_t time_), "ppiiu", widget, context, x, y, time_);
+WRAPPER(GtkWidget3, drag_data_received, void,   (void* widget, void* context, int x, int y, void* selection_data, uint32_t info, uint32_t time_), "ppiipuu", widget, context, x, y, selection_data, info, time_);
+WRAPPER(GtkWidget3, drag_failed, int,           (void* widget, void* context, int result), "ppi", widget, context, result);
+WRAPPER(GtkWidget3, popup_menu, int,            (void* widget), "p", widget);
+WRAPPER(GtkWidget3, show_help, int,             (void* widget, int help_type), "pi", widget, help_type);
+WRAPPER(GtkWidget3, get_accessible, void*,      (void *widget), "p", widget);
+WRAPPER(GtkWidget3, screen_changed, void,       (void* widget, void* previous_screen), "pp", widget, previous_screen);
+WRAPPER(GtkWidget3, can_activate_accel, int,    (void* widget, uint32_t signal_id), "pu", widget, signal_id);
+WRAPPER(GtkWidget3, composited_changed, void,   (void* widget), "p", widget);
+WRAPPER(GtkWidget3, query_tooltip, int,         (void* widget, int x, int y, int keyboard_tooltip, void* tooltip), "piiip", widget, x, y, keyboard_tooltip, tooltip);
+WRAPPER(GtkWidget3, compute_expand, void,       (void* widget, void* hexpand_p, void* vexpand_p), "ppp", widget, hexpand_p, vexpand_p);
+WRAPPER(GtkWidget3, adjust_size_request, void,  (void* widget, int orientation, void* minimum_size, void* natural_size), "pipp", widget, orientation, minimum_size, natural_size);
+WRAPPER(GtkWidget3, adjust_size_allocation, void, (void*widget, int orientation, void* minimum_size, void* natural_size, void* allocated_pos, void* allocated_size), "pipppp", widget, orientation, minimum_size, natural_size, allocated_pos, allocated_size);
+WRAPPER(GtkWidget3, style_updated, void,        (void* widget), "p", widget);
+WRAPPER(GtkWidget3, touch_event, int,           (void* widget, void* event), "pp", widget, event);
+WRAPPER(GtkWidget3, get_preferred_height_and_baseline_for_width, void, (void* widget, int width, void* minimum_height, void* natural_height, void* minimum_baseline, void* natural_baseline), "pipppp", widget, width, minimum_height, natural_height, minimum_baseline, natural_baseline);
+WRAPPER(GtkWidget3, adjust_baseline_request, void,  (void* widget, void* minimum_baseline, void* natural_baseline), "ppp", widget, minimum_baseline, natural_baseline);
+WRAPPER(GtkWidget3, adjust_baseline_allocation, void,  (void* widget, void* baseline), "pp", widget, baseline);
+WRAPPER(GtkWidget3, queue_draw_region, void,    (void* widget, void* region), "pp", widget, region);
 
 #define SUPERGO() \
     GO(dispatch_child_properties_changed, vFpup);   \
@@ -729,7 +729,7 @@ static void wrapGtkWidget3Class(my_GtkWidget3Class_t* class)
 }
 // unwrap (and use callback if not a native call anymore)
 static void unwrapGtkWidget3Class(my_GtkWidget3Class_t* class)
-{   
+{
     unwrapGInitiallyUnownedClass(&class->parent_class);
     #define GO(A, W)   class->A = find_##A##_GtkWidget3 (class->A)
     SUPERGO()
@@ -748,15 +748,15 @@ static void bridgeGtkWidget3Class(my_GtkWidget3Class_t* class)
 
 // ----- GtkContainer2Class ------
 // wrapper x86 -> natives of callbacks
-WRAPPER(GtkContainer2, add, void, (void* container, void* widget), 2, container, widget);
-WRAPPER(GtkContainer2, remove, void, (void* container, void* widget), 2, container, widget);
-WRAPPER(GtkContainer2, check_resize, void, (void* container), 1, container);
-WRAPPER(GtkContainer2, forall, void, (void* container, int include_internals, void* callback, void* callback_data), 4, container, include_internals, AddCheckBridge(my_bridge, vFpp, callback, 0, NULL), callback_data);
-WRAPPER(GtkContainer2, set_focus_child, void, (void* container, void* widget), 2, container, widget);
-WRAPPER(GtkContainer2, child_type, int, (void* container), 1, container);
-WRAPPER(GtkContainer2, composite_name, void*, (void* container, void* child), 2, container, child);
-WRAPPER(GtkContainer2, set_child_property, void, (void* container, void* child, uint32_t property_id, void* value, void* pspec), 5, container, child, property_id, value, pspec);
-WRAPPER(GtkContainer2, get_child_property, void, (void* container, void* child, uint32_t property_id, void* value, void* pspec), 5, container, child, property_id, value, pspec);
+WRAPPER(GtkContainer2, add, void, (void* container, void* widget), "pp", container, widget);
+WRAPPER(GtkContainer2, remove, void, (void* container, void* widget), "pp", container, widget);
+WRAPPER(GtkContainer2, check_resize, void, (void* container), "p", container);
+WRAPPER(GtkContainer2, forall, void, (void* container, int include_internals, void* callback, void* callback_data), "pipp", container, include_internals, AddCheckBridge(my_bridge, vFpp, callback, 0, NULL), callback_data);
+WRAPPER(GtkContainer2, set_focus_child, void, (void* container, void* widget), "pp", container, widget);
+WRAPPER(GtkContainer2, child_type, int, (void* container), "p", container);
+WRAPPER(GtkContainer2, composite_name, void*, (void* container, void* child), "pp", container, child);
+WRAPPER(GtkContainer2, set_child_property, void, (void* container, void* child, uint32_t property_id, void* value, void* pspec), "ppupp", container, child, property_id, value, pspec);
+WRAPPER(GtkContainer2, get_child_property, void, (void* container, void* child, uint32_t property_id, void* value, void* pspec), "ppupp", container, child, property_id, value, pspec);
 
 #define SUPERGO() \
     GO(add, vFpp);                  \
@@ -779,7 +779,7 @@ static void wrapGtkContainer2Class(my_GtkContainer2Class_t* class)
 }
 // unwrap (and use callback if not a native call anymore)
 static void unwrapGtkContainer2Class(my_GtkContainer2Class_t* class)
-{   
+{
     unwrapGtkWidget2Class(&class->parent_class);
     #define GO(A, W)   class->A = find_##A##_GtkContainer2 (class->A)
     SUPERGO()
@@ -798,16 +798,16 @@ static void bridgeGtkContainer2Class(my_GtkContainer2Class_t* class)
 
 // ----- GtkContainer3Class ------
 // wrapper x86 -> natives of callbacks
-WRAPPER(GtkContainer3, add, void, (void* container, void* widget), 2, container, widget);
-WRAPPER(GtkContainer3, remove, void, (void* container, void* widget), 2, container, widget);
-WRAPPER(GtkContainer3, check_resize, void, (void* container), 1, container);
-WRAPPER(GtkContainer3, forall, void, (void* container, int include_internals, void* callback, void* callback_data), 4, container, include_internals, AddCheckBridge(my_bridge, vFpp, callback, 0, NULL), callback_data);
-WRAPPER(GtkContainer3, set_focus_child, void, (void* container, void* widget), 2, container, widget);
-WRAPPER(GtkContainer3, child_type, int, (void* container), 1, container);
-WRAPPER(GtkContainer3, composite_name, void*, (void* container, void* child), 2, container, child);
-WRAPPER(GtkContainer3, set_child_property, void, (void* container, void* child, uint32_t property_id, void* value, void* pspec), 5, container, child, property_id, value, pspec);
-WRAPPER(GtkContainer3, get_child_property, void, (void* container, void* child, uint32_t property_id, void* value, void* pspec), 5, container, child, property_id, value, pspec);
-WRAPPER(GtkContainer3, get_path_for_child, void*, (void* container, void* child), 2, container, child);
+WRAPPER(GtkContainer3, add, void, (void* container, void* widget), "pp", container, widget);
+WRAPPER(GtkContainer3, remove, void, (void* container, void* widget), "pp", container, widget);
+WRAPPER(GtkContainer3, check_resize, void, (void* container), "p", container);
+WRAPPER(GtkContainer3, forall, void, (void* container, int include_internals, void* callback, void* callback_data), "pipp", container, include_internals, AddCheckBridge(my_bridge, vFpp, callback, 0, NULL), callback_data);
+WRAPPER(GtkContainer3, set_focus_child, void, (void* container, void* widget), "pp", container, widget);
+WRAPPER(GtkContainer3, child_type, int, (void* container), "p", container);
+WRAPPER(GtkContainer3, composite_name, void*, (void* container, void* child), "pp", container, child);
+WRAPPER(GtkContainer3, set_child_property, void, (void* container, void* child, uint32_t property_id, void* value, void* pspec), "ppupp", container, child, property_id, value, pspec);
+WRAPPER(GtkContainer3, get_child_property, void, (void* container, void* child, uint32_t property_id, void* value, void* pspec), "ppupp", container, child, property_id, value, pspec);
+WRAPPER(GtkContainer3, get_path_for_child, void*, (void* container, void* child), "pp", container, child);
 
 #define SUPERGO() \
     GO(add, vFpp);                  \
@@ -831,7 +831,7 @@ static void wrapGtkContainer3Class(my_GtkContainer3Class_t* class)
 }
 // unwrap (and use callback if not a native call anymore)
 static void unwrapGtkContainer3Class(my_GtkContainer3Class_t* class)
-{   
+{
     unwrapGtkWidget3Class(&class->parent_class);
     #define GO(A, W)   class->A = find_##A##_GtkContainer3 (class->A)
     SUPERGO()
@@ -850,12 +850,12 @@ static void bridgeGtkContainer3Class(my_GtkContainer3Class_t* class)
 
 // ----- GtkActionClass ------
 // wrapper x86 -> natives of callbacks
-WRAPPER(GtkAction, activate, void, (void* action), 1, action);
-WRAPPER(GtkAction, create_menu_item, void*, (void* action), 1, action);
-WRAPPER(GtkAction, create_tool_item, void*, (void* action), 1, action);
-WRAPPER(GtkAction, connect_proxy, void , (void* action, void* proxy), 2, action, proxy);
-WRAPPER(GtkAction, disconnect_proxy, void , (void* action, void* proxy), 2, action, proxy);
-WRAPPER(GtkAction, create_menu, void*, (void* action), 1, action);
+WRAPPER(GtkAction, activate, void, (void* action), "p", action);
+WRAPPER(GtkAction, create_menu_item, void*, (void* action), "p", action);
+WRAPPER(GtkAction, create_tool_item, void*, (void* action), "p", action);
+WRAPPER(GtkAction, connect_proxy, void , (void* action, void* proxy), "pp", action, proxy);
+WRAPPER(GtkAction, disconnect_proxy, void , (void* action, void* proxy), "pp", action, proxy);
+WRAPPER(GtkAction, create_menu, void*, (void* action), "p", action);
 
 #define SUPERGO() \
     GO(activate, vFp);          \
@@ -875,7 +875,7 @@ static void wrapGtkActionClass(my_GtkActionClass_t* class)
 }
 // unwrap (and use callback if not a native call anymore)
 static void unwrapGtkActionClass(my_GtkActionClass_t* class)
-{   
+{
     unwrapGObjectClass(&class->parent_class);
     #define GO(A, W)   class->A = find_##A##_GtkAction (class->A)
     SUPERGO()
@@ -900,7 +900,7 @@ static void wrapGtkMisc2Class(my_GtkMisc2Class_t* class)
 }
 // unwrap (and use callback if not a native call anymore)
 static void unwrapGtkMisc2Class(my_GtkMisc2Class_t* class)
-{   
+{
     unwrapGtkWidget2Class(&class->parent_class);
 }
 // autobridge
@@ -943,7 +943,7 @@ static void bridgeGtkMisc3Class(my_GtkMisc3Class_t* class)
 
 // ----- GtkGtkMenuButtonClass ------
 // wrapper x86 -> natives of callbacks
-WRAPPER(GtkMenuButton, activate, void, (void* self), 1, self);
+WRAPPER(GtkMenuButton, activate, void, (void* self), "p", self);
 
 #define SUPERGO() \
     GO(activate, vFp);
@@ -976,10 +976,10 @@ static void bridgeGtkMenuButtonClass(my_GtkMenuButtonClass_t* class)
 
 // ----- GtkLabel2Class ------
 // wrapper x86 -> natives of callbacks
-WRAPPER(GtkLabel2, move_cursor, void, (void* label, int step, int count, int extend_selection), 4, label, step, count, extend_selection);
-WRAPPER(GtkLabel2, copy_clipboard, void, (void* label), 1, label);
-WRAPPER(GtkLabel2, populate_popup, void, (void* label, void* menu), 2, label, menu);
-WRAPPER(GtkLabel2, activate_link, int, (void* label, void* uri), 2, label, uri);
+WRAPPER(GtkLabel2, move_cursor, void, (void* label, int step, int count, int extend_selection), "piii", label, step, count, extend_selection);
+WRAPPER(GtkLabel2, copy_clipboard, void, (void* label), "p", label);
+WRAPPER(GtkLabel2, populate_popup, void, (void* label, void* menu), "pp", label, menu);
+WRAPPER(GtkLabel2, activate_link, int, (void* label, void* uri), "pp", label, uri);
 
 #define SUPERGO() \
     GO(move_cursor, vFpiii);    \
@@ -997,7 +997,7 @@ static void wrapGtkLabel2Class(my_GtkLabel2Class_t* class)
 }
 // unwrap (and use callback if not a native call anymore)
 static void unwrapGtkLabel2Class(my_GtkLabel2Class_t* class)
-{   
+{
     unwrapGtkMisc2Class(&class->parent_class);
     #define GO(A, W)   class->A = find_##A##_GtkLabel2 (class->A)
     SUPERGO()
@@ -1015,10 +1015,10 @@ static void bridgeGtkLabel2Class(my_GtkLabel2Class_t* class)
 
 // ----- GtkLabel3Class ------
 // wrapper x86 -> natives of callbacks
-WRAPPER(GtkLabel3, move_cursor, void, (void* label, int step, int count, int extend_selection), 4, label, step, count, extend_selection);
-WRAPPER(GtkLabel3, copy_clipboard, void, (void* label), 1, label);
-WRAPPER(GtkLabel3, populate_popup, void, (void* label, void* menu), 2, label, menu);
-WRAPPER(GtkLabel3, activate_link, int, (void* label, void* uri), 2, label, uri);
+WRAPPER(GtkLabel3, move_cursor, void, (void* label, int step, int count, int extend_selection), "piii", label, step, count, extend_selection);
+WRAPPER(GtkLabel3, copy_clipboard, void, (void* label), "p", label);
+WRAPPER(GtkLabel3, populate_popup, void, (void* label, void* menu), "pp", label, menu);
+WRAPPER(GtkLabel3, activate_link, int, (void* label, void* uri), "pp", label, uri);
 
 #define SUPERGO() \
     GO(move_cursor, vFpiii);    \
@@ -1055,22 +1055,22 @@ static void bridgeGtkLabel3Class(my_GtkLabel3Class_t* class)
 
 // ----- GtkTreeView2Class ------
 // wrapper x86 -> natives of callbacks
-WRAPPER(GtkTreeView2, set_scroll_adjustments, void, (void* tree_view, void* hadjustment, void* vadjustment), 3, tree_view, hadjustment, vadjustment);
-WRAPPER(GtkTreeView2, row_activated, void, (void* tree_view, void* path, void* column), 3, tree_view, path, column);
-WRAPPER(GtkTreeView2, test_expand_row, int, (void* tree_view, void* iter, void* path), 3, tree_view, iter, path);
-WRAPPER(GtkTreeView2, test_collapse_row, int, (void* tree_view, void* iter, void* path), 3, tree_view, iter, path);
-WRAPPER(GtkTreeView2, row_expanded, void, (void* tree_view, void* iter, void* path), 3, tree_view, iter, path);
-WRAPPER(GtkTreeView2, row_collapsed, void, (void* tree_view, void* iter, void* path), 3, tree_view, iter, path);
-WRAPPER(GtkTreeView2, columns_changed, void, (void* tree_view), 1, tree_view);
-WRAPPER(GtkTreeView2, cursor_changed, void, (void* tree_view), 1, tree_view);
-WRAPPER(GtkTreeView2, move_cursor, int, (void* tree_view, int step, int count), 3, tree_view, step, count);
-WRAPPER(GtkTreeView2, select_all, int, (void* tree_view), 1, tree_view);
-WRAPPER(GtkTreeView2, unselect_all, int, (void* tree_view), 1, tree_view);
-WRAPPER(GtkTreeView2, select_cursor_row, int, (void* tree_view, int start_editing), 2, tree_view, start_editing);
-WRAPPER(GtkTreeView2, toggle_cursor_row, int, (void* tree_view), 1, tree_view);
-WRAPPER(GtkTreeView2, expand_collapse_cursor_row, int, (void* tree_view, int logical, int expand, int open_all), 4, tree_view, logical, expand, open_all);
-WRAPPER(GtkTreeView2, select_cursor_parent, int, (void* tree_view), 1, tree_view);
-WRAPPER(GtkTreeView2, start_interactive_search, int, (void* tree_view), 1, tree_view);
+WRAPPER(GtkTreeView2, set_scroll_adjustments, void, (void* tree_view, void* hadjustment, void* vadjustment), "ppp", tree_view, hadjustment, vadjustment);
+WRAPPER(GtkTreeView2, row_activated, void, (void* tree_view, void* path, void* column), "ppp", tree_view, path, column);
+WRAPPER(GtkTreeView2, test_expand_row, int, (void* tree_view, void* iter, void* path), "ppp", tree_view, iter, path);
+WRAPPER(GtkTreeView2, test_collapse_row, int, (void* tree_view, void* iter, void* path), "ppp", tree_view, iter, path);
+WRAPPER(GtkTreeView2, row_expanded, void, (void* tree_view, void* iter, void* path), "ppp", tree_view, iter, path);
+WRAPPER(GtkTreeView2, row_collapsed, void, (void* tree_view, void* iter, void* path), "ppp", tree_view, iter, path);
+WRAPPER(GtkTreeView2, columns_changed, void, (void* tree_view), "p", tree_view);
+WRAPPER(GtkTreeView2, cursor_changed, void, (void* tree_view), "p", tree_view);
+WRAPPER(GtkTreeView2, move_cursor, int, (void* tree_view, int step, int count), "pii", tree_view, step, count);
+WRAPPER(GtkTreeView2, select_all, int, (void* tree_view), "p", tree_view);
+WRAPPER(GtkTreeView2, unselect_all, int, (void* tree_view), "p", tree_view);
+WRAPPER(GtkTreeView2, select_cursor_row, int, (void* tree_view, int start_editing), "pi", tree_view, start_editing);
+WRAPPER(GtkTreeView2, toggle_cursor_row, int, (void* tree_view), "p", tree_view);
+WRAPPER(GtkTreeView2, expand_collapse_cursor_row, int, (void* tree_view, int logical, int expand, int open_all), "piii", tree_view, logical, expand, open_all);
+WRAPPER(GtkTreeView2, select_cursor_parent, int, (void* tree_view), "p", tree_view);
+WRAPPER(GtkTreeView2, start_interactive_search, int, (void* tree_view), "p", tree_view);
 
 #define SUPERGO() \
     GO(set_scroll_adjustments, vFppp);      \
@@ -1100,7 +1100,7 @@ static void wrapGtkTreeView2Class(my_GtkTreeView2Class_t* class)
 }
 // unwrap (and use callback if not a native call anymore)
 static void unwrapGtkTreeView2Class(my_GtkTreeView2Class_t* class)
-{   
+{
     unwrapGtkContainer2Class(&class->parent_class);
     #define GO(A, W)   class->A = find_##A##_GtkTreeView2 (class->A)
     SUPERGO()
@@ -1126,7 +1126,7 @@ static void wrapGtkBin2Class(my_GtkBin2Class_t* class)
 }
 // unwrap (and use callback if not a native call anymore)
 static void unwrapGtkBin2Class(my_GtkBin2Class_t* class)
-{   
+{
     unwrapGtkContainer2Class(&class->parent_class);
 }
 // autobridge
@@ -1153,12 +1153,12 @@ static void bridgeGtkBin3Class(my_GtkBin3Class_t* class)
 
 // ----- GtkWindow2Class ------
 // wrapper x86 -> natives of callbacks
-WRAPPER(GtkWindow2, set_focus, void, (void* window, void* focus), 2, window, focus);
-WRAPPER(GtkWindow2, frame_event, int, (void* window, void* event), 2, window, event);
-WRAPPER(GtkWindow2, activate_focus, void, (void* window), 1, window);
-WRAPPER(GtkWindow2, activate_default, void, (void* window), 1, window);
-WRAPPER(GtkWindow2, move_focus, void, (void* window, int direction), 2, window, direction);
-WRAPPER(GtkWindow2, keys_changed, void, (void* window), 1, window);
+WRAPPER(GtkWindow2, set_focus, void, (void* window, void* focus), "pp", window, focus);
+WRAPPER(GtkWindow2, frame_event, int, (void* window, void* event), "pp", window, event);
+WRAPPER(GtkWindow2, activate_focus, void, (void* window), "p", window);
+WRAPPER(GtkWindow2, activate_default, void, (void* window), "p", window);
+WRAPPER(GtkWindow2, move_focus, void, (void* window, int direction), "pi", window, direction);
+WRAPPER(GtkWindow2, keys_changed, void, (void* window), "p", window);
 
 #define SUPERGO()               \
     GO(set_focus, vFpp);        \
@@ -1179,7 +1179,7 @@ static void wrapGtkWindow2Class(my_GtkWindow2Class_t* class)
 }
 // unwrap (and use callback if not a native call anymore)
 static void unwrapGtkWindow2Class(my_GtkWindow2Class_t* class)
-{   
+{
     unwrapGtkBin2Class(&class->parent_class);
     #define GO(A, W)   class->A = find_##A##_GtkWindow2 (class->A)
     SUPERGO()
@@ -1198,11 +1198,11 @@ static void bridgeGtkWindow2Class(my_GtkWindow2Class_t* class)
 
 // ----- GtkWindow3Class ------
 // wrapper x86 -> natives of callbacks
-WRAPPER(GtkWindow3, set_focus, void, (void* window, void* focus), 2, window, focus);
-WRAPPER(GtkWindow3, activate_focus, void, (void* window), 1, window);
-WRAPPER(GtkWindow3, activate_default, void, (void* window), 1, window);
-WRAPPER(GtkWindow3, keys_changed, void, (void* window), 1, window);
-WRAPPER(GtkWindow3, enable_debugging, int, (void* window, int toggle), 2, window, toggle);
+WRAPPER(GtkWindow3, set_focus, void, (void* window, void* focus), "pp", window, focus);
+WRAPPER(GtkWindow3, activate_focus, void, (void* window), "p", window);
+WRAPPER(GtkWindow3, activate_default, void, (void* window), "p", window);
+WRAPPER(GtkWindow3, keys_changed, void, (void* window), "p", window);
+WRAPPER(GtkWindow3, enable_debugging, int, (void* window, int toggle), "pi", window, toggle);
 
 #define SUPERGO()               \
     GO(set_focus, vFpp);        \
@@ -1258,14 +1258,14 @@ static void bridgeGtkApplicationWindowClass(my_GtkApplicationWindowClass_t* clas
 
 // ----- GtkListBoxClass ------
 // wrapper x86 -> natives of callbacks
-WRAPPER(GtkListBoxClass,row_selected, void, (void *box, void *row), 2, box, row);
-WRAPPER(GtkListBoxClass,row_activated, void, (void *box, void *row), 2, box, row);
-WRAPPER(GtkListBoxClass,activate_cursor_row, void, (void *box), 1, box);
-WRAPPER(GtkListBoxClass,toggle_cursor_row, void, (void *box), 1, box);
-WRAPPER(GtkListBoxClass,move_cursor, void, (void *box, int step, int count), 3, box, step, count);
-WRAPPER(GtkListBoxClass,selected_rows_changed, void, (void *box), 1, box);
-WRAPPER(GtkListBoxClass,select_all, void, (void *box), 1, box);
-WRAPPER(GtkListBoxClass,unselect_all, void, (void *box), 1, box);
+WRAPPER(GtkListBoxClass,row_selected, void, (void *box, void *row), "pp", box, row);
+WRAPPER(GtkListBoxClass,row_activated, void, (void *box, void *row), "pp", box, row);
+WRAPPER(GtkListBoxClass,activate_cursor_row, void, (void *box), "p", box);
+WRAPPER(GtkListBoxClass,toggle_cursor_row, void, (void *box), "p", box);
+WRAPPER(GtkListBoxClass,move_cursor, void, (void *box, int step, int count), "pii", box, step, count);
+WRAPPER(GtkListBoxClass,selected_rows_changed, void, (void *box), "p", box);
+WRAPPER(GtkListBoxClass,select_all, void, (void *box), "p", box);
+WRAPPER(GtkListBoxClass,unselect_all, void, (void *box), "p", box);
 
 #define SUPERGO()                  \
     GO(row_selected, vFpp);        \
@@ -1306,7 +1306,7 @@ static void bridgeGtkListBoxClass(my_GtkListBoxClass_t* class)
 
 // ----- GtkListBoxRowClass ------
 // wrapper x86 -> natives of callbacks
-WRAPPER(GtkListBoxRowClass, activate, void, (void *row), 1, row);
+WRAPPER(GtkListBoxRowClass, activate, void, (void *row), "p", row);
 
 #define SUPERGO()       \
     GO(activate, vFpp);
@@ -1346,7 +1346,7 @@ static void wrapGtkTable2Class(my_GtkTable2Class_t* class)
 }
 // unwrap (and use callback if not a native call anymore)
 static void unwrapGtkTable2Class(my_GtkTable2Class_t* class)
-{   
+{
     unwrapGtkContainer2Class(&class->parent_class);
 }
 // autobridge
@@ -1364,7 +1364,7 @@ static void wrapGtkFixed2Class(my_GtkFixed2Class_t* class)
 }
 // unwrap (and use callback if not a native call anymore)
 static void unwrapGtkFixed2Class(my_GtkFixed2Class_t* class)
-{   
+{
     unwrapGtkContainer2Class(&class->parent_class);
 }
 // autobridge
@@ -1382,7 +1382,7 @@ static void wrapMetaFrames2Class(my_MetaFrames2Class_t* class)
 }
 // unwrap (and use callback if not a native call anymore)
 static void unwrapMetaFrames2Class(my_MetaFrames2Class_t* class)
-{   
+{
     unwrapGtkWindow2Class(&class->parent_class);
 }
 // autobridge
@@ -1393,8 +1393,8 @@ static void bridgeMetaFrames2Class(my_MetaFrames2Class_t* class)
 
 // ----- GDBusObjectManagerClientClass ------
 // wrapper x86 -> natives of callbacks
-WRAPPER(GDBusObjectManagerClient,interface_proxy_signal, void, (void* manager, void* object_proxy, void* interface_proxy, void* sender_name, void* signal_name, void* parameters), 6, manager, object_proxy, interface_proxy, sender_name, signal_name, parameters);
-WRAPPER(GDBusObjectManagerClient,interface_proxy_properties_changed, void, (void* manager, void* object_proxy, void* interface_proxy, void* changed_properties, void* invalidated_properties), 5, manager, object_proxy, interface_proxy, changed_properties, invalidated_properties);
+WRAPPER(GDBusObjectManagerClient,interface_proxy_signal, void, (void* manager, void* object_proxy, void* interface_proxy, void* sender_name, void* signal_name, void* parameters), "pppppp", manager, object_proxy, interface_proxy, sender_name, signal_name, parameters);
+WRAPPER(GDBusObjectManagerClient,interface_proxy_properties_changed, void, (void* manager, void* object_proxy, void* interface_proxy, void* changed_properties, void* invalidated_properties), "ppppp", manager, object_proxy, interface_proxy, changed_properties, invalidated_properties);
 
 #define SUPERGO()                                       \
     GO(interface_proxy_signal, vFpppppp);               \
@@ -1411,7 +1411,7 @@ static void wrapGDBusObjectManagerClientClass(my_GDBusObjectManagerClientClass_t
 }
 // unwrap (and use callback if not a native call anymore)
 static void unwrapGDBusObjectManagerClientClass(my_GDBusObjectManagerClientClass_t* class)
-{   
+{
     unwrapGObjectClass(&class->parent_class);
     #define GO(A, W)   class->A = find_##A##_GDBusObjectManagerClient (class->A)
     SUPERGO()
@@ -1430,12 +1430,12 @@ static void bridgeGDBusObjectManagerClientClass(my_GDBusObjectManagerClientClass
 
 // ----- GtkButton2Class ------
 // wrapper x86 -> natives of callbacks
-WRAPPER(GtkButton2, pressed, void,  (void* button), 1, button);
-WRAPPER(GtkButton2, released, void, (void* button), 1, button);
-WRAPPER(GtkButton2, clicked, void,  (void* button), 1, button);
-WRAPPER(GtkButton2, enter, void,    (void* button), 1, button);
-WRAPPER(GtkButton2, leave, void,    (void* button), 1, button);
-WRAPPER(GtkButton2, activate, void, (void* button), 1, button);
+WRAPPER(GtkButton2, pressed, void,  (void* button), "p", button);
+WRAPPER(GtkButton2, released, void, (void* button), "p", button);
+WRAPPER(GtkButton2, clicked, void,  (void* button), "p", button);
+WRAPPER(GtkButton2, enter, void,    (void* button), "p", button);
+WRAPPER(GtkButton2, leave, void,    (void* button), "p", button);
+WRAPPER(GtkButton2, activate, void, (void* button), "p", button);
 
 #define SUPERGO()               \
     GO(pressed, vFp);           \
@@ -1456,7 +1456,7 @@ static void wrapGtkButton2Class(my_GtkButton2Class_t* class)
 }
 // unwrap (and use callback if not a native call anymore)
 static void unwrapGtkButton2Class(my_GtkButton2Class_t* class)
-{   
+{
     unwrapGtkBin2Class(&class->parent_class);
     #define GO(A, W)   class->A = find_##A##_GtkButton2 (class->A)
     SUPERGO()
@@ -1475,12 +1475,12 @@ static void bridgeGtkButton2Class(my_GtkButton2Class_t* class)
 
 // ----- GtkButton3Class ------
 // wrapper x86 -> natives of callbacks
-WRAPPER(GtkButton3, pressed, void,  (void* button), 1, button);
-WRAPPER(GtkButton3, released, void, (void* button), 1, button);
-WRAPPER(GtkButton3, clicked, void,  (void* button), 1, button);
-WRAPPER(GtkButton3, enter, void,    (void* button), 1, button);
-WRAPPER(GtkButton3, leave, void,    (void* button), 1, button);
-WRAPPER(GtkButton3, activate, void, (void* button), 1, button);
+WRAPPER(GtkButton3, pressed, void,  (void* button), "p", button);
+WRAPPER(GtkButton3, released, void, (void* button), "p", button);
+WRAPPER(GtkButton3, clicked, void,  (void* button), "p", button);
+WRAPPER(GtkButton3, enter, void,    (void* button), "p", button);
+WRAPPER(GtkButton3, leave, void,    (void* button), "p", button);
+WRAPPER(GtkButton3, activate, void, (void* button), "p", button);
 
 #define SUPERGO()               \
     GO(pressed, vFp);           \
@@ -1520,8 +1520,8 @@ static void bridgeGtkButton3Class(my_GtkButton3Class_t* class)
 
 // ----- GtkComboBox2Class ------
 // wrapper x86 -> natives of callbacks
-WRAPPER(GtkComboBox2, changed, void, (void* combo_box), 1, combo_box);
-WRAPPER(GtkComboBox2, get_active_text, void*, (void* combo_box), 1, combo_box);
+WRAPPER(GtkComboBox2, changed, void, (void* combo_box), "p", combo_box);
+WRAPPER(GtkComboBox2, get_active_text, void*, (void* combo_box), "p", combo_box);
 
 #define SUPERGO()               \
     GO(changed, vFp);           \
@@ -1538,7 +1538,7 @@ static void wrapGtkComboBox2Class(my_GtkComboBox2Class_t* class)
 }
 // unwrap (and use callback if not a native call anymore)
 static void unwrapGtkComboBox2Class(my_GtkComboBox2Class_t* class)
-{   
+{
     unwrapGtkBin2Class(&class->parent_class);
     #define GO(A, W)   class->A = find_##A##_GtkComboBox2 (class->A)
     SUPERGO()
@@ -1557,7 +1557,7 @@ static void bridgeGtkComboBox2Class(my_GtkComboBox2Class_t* class)
 
 // ----- GtkToggleButton2Class ------
 // wrapper x86 -> natives of callbacks
-WRAPPER(GtkToggleButton2, toggled, void, (void* toggle_button), 1, toggle_button);
+WRAPPER(GtkToggleButton2, toggled, void, (void* toggle_button), "p", toggle_button);
 
 #define SUPERGO()               \
     GO(toggled, vFp);           \
@@ -1573,7 +1573,7 @@ static void wrapGtkToggleButton2Class(my_GtkToggleButton2Class_t* class)
 }
 // unwrap (and use callback if not a native call anymore)
 static void unwrapGtkToggleButton2Class(my_GtkToggleButton2Class_t* class)
-{   
+{
     unwrapGtkButton2Class(&class->parent_class);
     #define GO(A, W)   class->A = find_##A##_GtkToggleButton2 (class->A)
     SUPERGO()
@@ -1592,7 +1592,7 @@ static void bridgeGtkToggleButton2Class(my_GtkToggleButton2Class_t* class)
 
 // ----- GtkCheckButton2Class ------
 // wrapper x86 -> natives of callbacks
-WRAPPER(GtkCheckButton2, draw_indicator, void, (void* check_button, void* area), 2, check_button, area);
+WRAPPER(GtkCheckButton2, draw_indicator, void, (void* check_button, void* area), "pp", check_button, area);
 
 #define SUPERGO()               \
     GO(draw_indicator, vFpp);   \
@@ -1608,7 +1608,7 @@ static void wrapGtkCheckButton2Class(my_GtkCheckButton2Class_t* class)
 }
 // unwrap (and use callback if not a native call anymore)
 static void unwrapGtkCheckButton2Class(my_GtkCheckButton2Class_t* class)
-{   
+{
     unwrapGtkToggleButton2Class(&class->parent_class);
     #define GO(A, W)   class->A = find_##A##_GtkCheckButton2 (class->A)
     SUPERGO()
@@ -1627,17 +1627,17 @@ static void bridgeGtkCheckButton2Class(my_GtkCheckButton2Class_t* class)
 
 // ----- GtkEntry2Class ------
 // wrapper x86 -> natives of callbacks
-WRAPPER(GtkEntry2, populate_popup, void,     (void* entry, void* menu), 2, entry, menu);
-WRAPPER(GtkEntry2, activate, void,           (void* entry), 1, entry);
-WRAPPER(GtkEntry2, move_cursor, void,        (void* entry, int step, int count, int extend_selection), 4, entry, step, count, extend_selection);
-WRAPPER(GtkEntry2, insert_at_cursor, void,   (void* entry, void* str), 2, entry, str);
-WRAPPER(GtkEntry2, delete_from_cursor, void, (void* entry, size_t type, int count), 3, entry, type, count);
-WRAPPER(GtkEntry2, backspace, void,          (void* entry), 1, entry);
-WRAPPER(GtkEntry2, cut_clipboard, void,      (void* entry), 1, entry);
-WRAPPER(GtkEntry2, copy_clipboard, void,     (void* entry), 1, entry);
-WRAPPER(GtkEntry2, paste_clipboard, void,    (void* entry), 1, entry);
-WRAPPER(GtkEntry2, toggle_overwrite, void,   (void* entry), 1, entry);
-WRAPPER(GtkEntry2, get_text_area_size, void, (void* entry, void* x, void* y, void* width, void* height), 5, entry, x, y, width, height);
+WRAPPER(GtkEntry2, populate_popup, void,     (void* entry, void* menu), "pp", entry, menu);
+WRAPPER(GtkEntry2, activate, void,           (void* entry), "p", entry);
+WRAPPER(GtkEntry2, move_cursor, void,        (void* entry, int step, int count, int extend_selection), "piii", entry, step, count, extend_selection);
+WRAPPER(GtkEntry2, insert_at_cursor, void,   (void* entry, void* str), "pp", entry, str);
+WRAPPER(GtkEntry2, delete_from_cursor, void, (void* entry, size_t type, int count), "pLi", entry, type, count);
+WRAPPER(GtkEntry2, backspace, void,          (void* entry), "p", entry);
+WRAPPER(GtkEntry2, cut_clipboard, void,      (void* entry), "p", entry);
+WRAPPER(GtkEntry2, copy_clipboard, void,     (void* entry), "p", entry);
+WRAPPER(GtkEntry2, paste_clipboard, void,    (void* entry), "p", entry);
+WRAPPER(GtkEntry2, toggle_overwrite, void,   (void* entry), "p", entry);
+WRAPPER(GtkEntry2, get_text_area_size, void, (void* entry, void* x, void* y, void* width, void* height), "ppppp", entry, x, y, width, height);
 
 #define SUPERGO()                   \
     GO(populate_popup, vFpp);       \
@@ -1662,7 +1662,7 @@ static void wrapGtkEntry2Class(my_GtkEntry2Class_t* class)
 }
 // unwrap (and use callback if not a native call anymore)
 static void unwrapGtkEntry2Class(my_GtkEntry2Class_t* class)
-{   
+{
     unwrapGtkWidget2Class(&class->parent_class);
     #define GO(A, W)   class->A = find_##A##_GtkEntry2 (class->A)
     SUPERGO()
@@ -1681,11 +1681,11 @@ static void bridgeGtkEntry2Class(my_GtkEntry2Class_t* class)
 
 // ----- GtkSpinButton2Class ------
 // wrapper x86 -> natives of callbacks
-WRAPPER(GtkSpinButton2, input, int,  (void* spin_button, void* new_value), 2, spin_button, new_value);
-WRAPPER(GtkSpinButton2, output, int, (void* spin_button), 1, spin_button);
-WRAPPER(GtkSpinButton2, value_changed, void, (void* spin_button), 1, spin_button);
-WRAPPER(GtkSpinButton2, change_value, void, (void* spin_button, int scroll), 2, spin_button, scroll);
-WRAPPER(GtkSpinButton2, wrapped, void, (void* spin_button), 1, spin_button);
+WRAPPER(GtkSpinButton2, input, int,  (void* spin_button, void* new_value), "pp", spin_button, new_value);
+WRAPPER(GtkSpinButton2, output, int, (void* spin_button), "p", spin_button);
+WRAPPER(GtkSpinButton2, value_changed, void, (void* spin_button), "p", spin_button);
+WRAPPER(GtkSpinButton2, change_value, void, (void* spin_button, int scroll), "pi", spin_button, scroll);
+WRAPPER(GtkSpinButton2, wrapped, void, (void* spin_button), "p", spin_button);
 
 #define SUPERGO()           \
     GO(input, iFpp);        \
@@ -1704,7 +1704,7 @@ static void wrapGtkSpinButton2Class(my_GtkSpinButton2Class_t* class)
 }
 // unwrap (and use callback if not a native call anymore)
 static void unwrapGtkSpinButton2Class(my_GtkSpinButton2Class_t* class)
-{   
+{
     unwrapGtkEntry2Class(&class->parent_class);
     #define GO(A, W)   class->A = find_##A##_GtkSpinButton2 (class->A)
     SUPERGO()
@@ -1723,9 +1723,9 @@ static void bridgeGtkSpinButton2Class(my_GtkSpinButton2Class_t* class)
 
 // ----- GtkProgress2Class ------
 // wrapper x86 -> natives of callbacks
-WRAPPER(GtkProgress2, paint, void,          (void* progress), 1, progress);
-WRAPPER(GtkProgress2, update, void,         (void* progress), 1, progress);
-WRAPPER(GtkProgress2, act_mode_enter, void, (void* progress), 1, progress);
+WRAPPER(GtkProgress2, paint, void,          (void* progress), "p", progress);
+WRAPPER(GtkProgress2, update, void,         (void* progress), "p", progress);
+WRAPPER(GtkProgress2, act_mode_enter, void, (void* progress), "p", progress);
 
 #define SUPERGO()           \
     GO(paint, vFp);         \
@@ -1742,7 +1742,7 @@ static void wrapGtkProgress2Class(my_GtkProgress2Class_t* class)
 }
 // unwrap (and use callback if not a native call anymore)
 static void unwrapGtkProgress2Class(my_GtkProgress2Class_t* class)
-{   
+{
     unwrapGtkWidget2Class(&class->parent_class);
     #define GO(A, W)   class->A = find_##A##_GtkProgress2 (class->A)
     SUPERGO()
@@ -1774,7 +1774,7 @@ static void wrapGtkProgressBar2Class(my_GtkProgressBar2Class_t* class)
 }
 // unwrap (and use callback if not a native call anymore)
 static void unwrapGtkProgressBar2Class(my_GtkProgressBar2Class_t* class)
-{   
+{
     unwrapGtkProgress2Class(&class->parent_class);
     #define GO(A, W)   class->A = find_##A##_GtkProgressBar2 (class->A)
     SUPERGO()
@@ -1793,7 +1793,7 @@ static void bridgeGtkProgressBar2Class(my_GtkProgressBar2Class_t* class)
 
 // ----- GtkFrame2Class ------
 // wrapper x86 -> natives of callbacks
-WRAPPER(GtkFrame2, compute_child_allocation, void, (void* frame, void* allocation), 2, frame, allocation);
+WRAPPER(GtkFrame2, compute_child_allocation, void, (void* frame, void* allocation), "pp", frame, allocation);
 
 #define SUPERGO()                       \
     GO(compute_child_allocation, vFpp); \
@@ -1808,7 +1808,7 @@ static void wrapGtkFrame2Class(my_GtkFrame2Class_t* class)
 }
 // unwrap (and use callback if not a native call anymore)
 static void unwrapGtkFrame2Class(my_GtkFrame2Class_t* class)
-{   
+{
     unwrapGtkBin2Class(&class->parent_class);
     #define GO(A, W)   class->A = find_##A##_GtkFrame2 (class->A)
     SUPERGO()
@@ -1827,15 +1827,15 @@ static void bridgeGtkFrame2Class(my_GtkFrame2Class_t* class)
 
 // ----- GtkMenuShell2Class ------
 // wrapper x86 -> natives of callbacks
-WRAPPER(GtkMenuShell2,deactivate, void,      (void* menu_shell), 1, menu_shell);
-WRAPPER(GtkMenuShell2,selection_done, void,  (void* menu_shell), 1, menu_shell);
-WRAPPER(GtkMenuShell2,move_current, void,    (void* menu_shell, int direction), 2, menu_shell, direction);
-WRAPPER(GtkMenuShell2,activate_current, void,(void* menu_shell, int force_hide), 2, menu_shell, force_hide);
-WRAPPER(GtkMenuShell2,cancel, void,          (void* menu_shell), 1, menu_shell);
-WRAPPER(GtkMenuShell2,select_item, void,     (void* menu_shell, void* menu_item), 2, menu_shell, menu_item);
-WRAPPER(GtkMenuShell2,insert, void,          (void* menu_shell, void* child, int position), 3, menu_shell, child, position);
-WRAPPER(GtkMenuShell2,get_popup_delay, int,  (void* menu_shell), 1, menu_shell);
-WRAPPER(GtkMenuShell2,move_selected, int,    (void* menu_shell, int distance), 2, menu_shell, distance);
+WRAPPER(GtkMenuShell2,deactivate, void,      (void* menu_shell), "p", menu_shell);
+WRAPPER(GtkMenuShell2,selection_done, void,  (void* menu_shell), "p", menu_shell);
+WRAPPER(GtkMenuShell2,move_current, void,    (void* menu_shell, int direction),  "pi", menu_shell, direction);
+WRAPPER(GtkMenuShell2,activate_current, void,(void* menu_shell, int force_hide), "pi", menu_shell, force_hide);
+WRAPPER(GtkMenuShell2,cancel, void,          (void* menu_shell), "p", menu_shell);
+WRAPPER(GtkMenuShell2,select_item, void,     (void* menu_shell, void* menu_item), "pp", menu_shell, menu_item);
+WRAPPER(GtkMenuShell2,insert, void,          (void* menu_shell, void* child, int position), "ppi", menu_shell, child, position);
+WRAPPER(GtkMenuShell2,get_popup_delay, int,  (void* menu_shell), "p", menu_shell);
+WRAPPER(GtkMenuShell2,move_selected, int,    (void* menu_shell, int distance), "pi", menu_shell, distance);
 
 #define SUPERGO()               \
     GO(deactivate, vFp);        \
@@ -1858,7 +1858,7 @@ static void wrapGtkMenuShell2Class(my_GtkMenuShell2Class_t* class)
 }
 // unwrap (and use callback if not a native call anymore)
 static void unwrapGtkMenuShell2Class(my_GtkMenuShell2Class_t* class)
-{   
+{
     unwrapGtkContainer2Class(&class->parent_class);
     #define GO(A, W)   class->A = find_##A##_GtkMenuShell2 (class->A)
     SUPERGO()
@@ -1890,7 +1890,7 @@ static void wrapGtkMenuBar2Class(my_GtkMenuBar2Class_t* class)
 }
 // unwrap (and use callback if not a native call anymore)
 static void unwrapGtkMenuBar2Class(my_GtkMenuBar2Class_t* class)
-{   
+{
     unwrapGtkMenuShell2Class(&class->parent_class);
     #define GO(A, W)   class->A = find_##A##_GtkMenuBar2 (class->A)
     SUPERGO()
@@ -1909,19 +1909,19 @@ static void bridgeGtkMenuBar2Class(my_GtkMenuBar2Class_t* class)
 
 // ----- GtkTextView2Class ------
 // wrapper x86 -> natives of callbacks
-WRAPPER(GtkTextView2, set_scroll_adjustments, void,   (void* text_view, void* hadjustment, void* vadjustment), 3, text_view, hadjustment, vadjustment);
-WRAPPER(GtkTextView2, populate_popup, void,           (void* text_view, void* menu), 2, text_view, menu);
-WRAPPER(GtkTextView2, move_cursor, void,              (void* text_view, int step, int count, int extend_selection), 4, text_view, step, count, extend_selection);
-WRAPPER(GtkTextView2, page_horizontally, void,        (void* text_view, int count, int extend_selection), 3, text_view, count, extend_selection);
-WRAPPER(GtkTextView2, set_anchor, void,               (void* text_view), 1, text_view);
-WRAPPER(GtkTextView2, insert_at_cursor, void,         (void* text_view, void* str), 2, text_view, str);
-WRAPPER(GtkTextView2, delete_from_cursor, void,       (void* text_view, int type, int count), 3, text_view, type, count);
-WRAPPER(GtkTextView2, backspace, void,                (void* text_view), 1, text_view);
-WRAPPER(GtkTextView2, cut_clipboard, void,            (void* text_view), 1, text_view);
-WRAPPER(GtkTextView2, copy_clipboard, void,           (void* text_view), 1, text_view);
-WRAPPER(GtkTextView2, paste_clipboard, void,          (void* text_view), 1, text_view);
-WRAPPER(GtkTextView2, toggle_overwrite, void,         (void* text_view), 1, text_view);
-WRAPPER(GtkTextView2, move_focus, void,               (void* text_view, int direction), 2, text_view, direction);
+WRAPPER(GtkTextView2, set_scroll_adjustments, void,   (void* text_view, void* hadjustment, void* vadjustment), "ppp", text_view, hadjustment, vadjustment);
+WRAPPER(GtkTextView2, populate_popup, void,           (void* text_view, void* menu), "pp", text_view, menu);
+WRAPPER(GtkTextView2, move_cursor, void,              (void* text_view, int step, int count, int extend_selection), "piii", text_view, step, count, extend_selection);
+WRAPPER(GtkTextView2, page_horizontally, void,        (void* text_view, int count, int extend_selection), "pii", text_view, count, extend_selection);
+WRAPPER(GtkTextView2, set_anchor, void,               (void* text_view), "p", text_view);
+WRAPPER(GtkTextView2, insert_at_cursor, void,         (void* text_view, void* str), "pp", text_view, str);
+WRAPPER(GtkTextView2, delete_from_cursor, void,       (void* text_view, int type, int count), "pii", text_view, type, count);
+WRAPPER(GtkTextView2, backspace, void,                (void* text_view), "p", text_view);
+WRAPPER(GtkTextView2, cut_clipboard, void,            (void* text_view), "p", text_view);
+WRAPPER(GtkTextView2, copy_clipboard, void,           (void* text_view), "p", text_view);
+WRAPPER(GtkTextView2, paste_clipboard, void,          (void* text_view), "p", text_view);
+WRAPPER(GtkTextView2, toggle_overwrite, void,         (void* text_view), "p", text_view);
+WRAPPER(GtkTextView2, move_focus, void,               (void* text_view, int direction), "pi", text_view, direction);
 
 #define SUPERGO()                       \
     GO(set_scroll_adjustments, vFppp);  \
@@ -1948,7 +1948,7 @@ static void wrapGtkTextView2Class(my_GtkTextView2Class_t* class)
 }
 // unwrap (and use callback if not a native call anymore)
 static void unwrapGtkTextView2Class(my_GtkTextView2Class_t* class)
-{   
+{
     unwrapGtkContainer2Class(&class->parent_class);
     #define GO(A, W)   class->A = find_##A##_GtkTextView2 (class->A)
     SUPERGO()
@@ -1967,20 +1967,20 @@ static void bridgeGtkTextView2Class(my_GtkTextView2Class_t* class)
 
 // ----- GtkTextView3Class ------
 // wrapper x86 -> natives of callbacks
-WRAPPER(GtkTextView3, populate_popup, void,           (void* text_view, void* menu), 2, text_view, menu);
-WRAPPER(GtkTextView3, move_cursor, void,              (void* text_view, int step, int count, int extend_selection), 4, text_view, step, count, extend_selection);
-WRAPPER(GtkTextView3, set_anchor, void,               (void* text_view), 1, text_view);
-WRAPPER(GtkTextView3, insert_at_cursor, void,         (void* text_view, void* str), 2, text_view, str);
-WRAPPER(GtkTextView3, delete_from_cursor, void,       (void* text_view, int type, int count), 3, text_view, type, count);
-WRAPPER(GtkTextView3, backspace, void,                (void* text_view), 1, text_view);
-WRAPPER(GtkTextView3, cut_clipboard, void,            (void* text_view), 1, text_view);
-WRAPPER(GtkTextView3, copy_clipboard, void,           (void* text_view), 1, text_view);
-WRAPPER(GtkTextView3, paste_clipboard, void,          (void* text_view), 1, text_view);
-WRAPPER(GtkTextView3, toggle_overwrite, void,         (void* text_view), 1, text_view);
-WRAPPER(GtkTextView3, create_buffer, void*,           (void* text_view), 1, text_view);
-WRAPPER(GtkTextView3, draw_layer, void,               (void* text_view, int layer, void* cr), 3, text_view, layer, cr);
-WRAPPER(GtkTextView3, extend_selection, int,          (void* text_view, int granularity, void* location, void* start, void* end), 5, text_view, granularity, location, start, end);
-WRAPPER(GtkTextView3, insert_emoji, void,             (void* text_view), 1, text_view);
+WRAPPER(GtkTextView3, populate_popup, void,           (void* text_view, void* menu), "pp", text_view, menu);
+WRAPPER(GtkTextView3, move_cursor, void,              (void* text_view, int step, int count, int extend_selection), "piii", text_view, step, count, extend_selection);
+WRAPPER(GtkTextView3, set_anchor, void,               (void* text_view), "p", text_view);
+WRAPPER(GtkTextView3, insert_at_cursor, void,         (void* text_view, void* str), "pp", text_view, str);
+WRAPPER(GtkTextView3, delete_from_cursor, void,       (void* text_view, int type, int count), "pii", text_view, type, count);
+WRAPPER(GtkTextView3, backspace, void,                (void* text_view), "p", text_view);
+WRAPPER(GtkTextView3, cut_clipboard, void,            (void* text_view), "p", text_view);
+WRAPPER(GtkTextView3, copy_clipboard, void,           (void* text_view), "p", text_view);
+WRAPPER(GtkTextView3, paste_clipboard, void,          (void* text_view), "p", text_view);
+WRAPPER(GtkTextView3, toggle_overwrite, void,         (void* text_view), "p", text_view);
+WRAPPER(GtkTextView3, create_buffer, void*,           (void* text_view), "p", text_view);
+WRAPPER(GtkTextView3, draw_layer, void,               (void* text_view, int layer, void* cr), "pip", text_view, layer, cr);
+WRAPPER(GtkTextView3, extend_selection, int,          (void* text_view, int granularity, void* location, void* start, void* end), "pippp", text_view, granularity, location, start, end);
+WRAPPER(GtkTextView3, insert_emoji, void,             (void* text_view), "p", text_view);
 
 #define SUPERGO()                       \
     GO(populate_popup, vFpp);           \
@@ -2008,7 +2008,7 @@ static void wrapGtkTextView3Class(my_GtkTextView3Class_t* class)
 }
 // unwrap (and use callback if not a native call anymore)
 static void unwrapGtkTextView3Class(my_GtkTextView3Class_t* class)
-{   
+{
     unwrapGtkContainer3Class(&class->parent_class);
     #define GO(A, W)   class->A = find_##A##_GtkTextView3 (class->A)
     SUPERGO()
@@ -2059,12 +2059,12 @@ static void bridgeGtkGrid3Class(my_GtkGrid3Class_t* class)
 
 // ----- GtkEventControllerClass ------
 // wrapper x86 -> natives of callbacks
-WRAPPER(GtkEventController, set_widget, void, (void* controller, void* widget), 2, controller, widget);
-WRAPPER(GtkEventController, unset_widget, void, (void* controller), 1, controller);
-WRAPPER(GtkEventController, handle_event, int, (void *controller, void *event, double x, double y), 4, controller, event, x, y);
-WRAPPER(GtkEventController, reset, void, (void* controller), 1, controller);
-WRAPPER(GtkEventController, handle_crossing, void, (void *controller, void *crossing, double x, double y), 4, controller, crossing, x, y);
-WRAPPER(GtkEventController, filter_event, void, (void *controller, void *event), 2, controller, event);
+WRAPPER(GtkEventController, set_widget, void, (void* controller, void* widget), "pp", controller, widget);
+WRAPPER(GtkEventController, unset_widget, void, (void* controller), "p", controller);
+WRAPPER(GtkEventController, handle_event, int, (void *controller, void *event, double x, double y), "ppdd", controller, event, x, y);
+WRAPPER(GtkEventController, reset, void, (void* controller), "p", controller);
+WRAPPER(GtkEventController, handle_crossing, void, (void *controller, void *crossing, double x, double y), "ppdd", controller, crossing, x, y);
+WRAPPER(GtkEventController, filter_event, void, (void *controller, void *event), "pp", controller, event);
 
 #define SUPERGO()               \
     GO(set_widget, vFpp);       \
@@ -2103,12 +2103,12 @@ static void bridgeGtkEventControllerClass(my_GtkEventControllerClass_t* class)
 
 // ----- GtkGestureClass ------
 // wrapper x86 -> natives of callbacks
-WRAPPER(GtkGesture, check, void, (void* gesture), 1, gesture);
-WRAPPER(GtkGesture, begin, void, (void *gesture, void *sequence), 2, gesture, sequence);
-WRAPPER(GtkGesture, update, void, (void *gesture, void *sequence), 2, gesture, sequence);
-WRAPPER(GtkGesture, end, void, (void *gesture, void *sequence), 2, gesture, sequence);
-WRAPPER(GtkGesture, cancel, void, (void *gesture, void *sequence), 2, gesture, sequence);
-WRAPPER(GtkGesture, sequence_state_changed, void, (void *gesture, void *sequence, int state), 3, gesture, sequence, state);
+WRAPPER(GtkGesture, check, void, (void* gesture), "p", gesture);
+WRAPPER(GtkGesture, begin, void, (void *gesture, void *sequence), "pp", gesture, sequence);
+WRAPPER(GtkGesture, update, void, (void *gesture, void *sequence), "pp", gesture, sequence);
+WRAPPER(GtkGesture, end, void, (void *gesture, void *sequence), "pp", gesture, sequence);
+WRAPPER(GtkGesture, cancel, void, (void *gesture, void *sequence), "pp", gesture, sequence);
+WRAPPER(GtkGesture, sequence_state_changed, void, (void *gesture, void *sequence, int state), "ppi", gesture, sequence, state);
 
 #define SUPERGO()              \
     GO(check, vFp);            \
@@ -2164,8 +2164,8 @@ static void bridgeGtkGestureSingleClass(my_GtkGestureSingleClass_t* class)
 
 // ----- GtkGestureClass ------
 // wrapper x86 -> natives of callbacks
-WRAPPER(GtkGestureLongPress, pressed, void, (void *gesture, double x, double y), 3, gesture, x, y);
-WRAPPER(GtkGestureLongPress, cancelled, void, (void *cancelled), 1, cancelled);
+WRAPPER(GtkGestureLongPress, pressed, void, (void *gesture, double x, double y), "pdd", gesture, x, y);
+WRAPPER(GtkGestureLongPress, cancelled, void, (void *cancelled), "p", cancelled);
 
 #define SUPERGO()              \
     GO(pressed, vFpdd);          \
@@ -2200,32 +2200,32 @@ static void bridgeGtkGestureLongPressClass(my_GtkGestureLongPressClass_t* class)
 
 // ----- 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);
+WRAPPER(AtkObject, get_name, void*, (void* accessible), "p", accessible);
+WRAPPER(AtkObject, get_description, void*, (void* accessible), "p", accessible);
+WRAPPER(AtkObject, get_parent, void*, (void* accessible), "p", accessible);
+WRAPPER(AtkObject, get_n_children, int, (void* accessible), "p", accessible);
+WRAPPER(AtkObject, ref_child, void*, (void* accessible, int i), "pi", accessible, i);
+WRAPPER(AtkObject, get_index_in_parent, int, (void* accessible), "p", accessible);
+WRAPPER(AtkObject, ref_relation_set, void*, (void* accessible), "p", accessible);
+WRAPPER(AtkObject, get_role, int, (void* accessible), "p", accessible);
+WRAPPER(AtkObject, get_layer, int, (void* accessible), "p", accessible);
+WRAPPER(AtkObject, get_mdi_zorder, int, (void* accessible), "p", accessible);
+WRAPPER(AtkObject, ref_state_set, void*, (void* accessible), "p", accessible);
+WRAPPER(AtkObject, set_name, void, (void* accessible, void* name), "pp", accessible, name);
+WRAPPER(AtkObject, set_description, void, (void* accessible, void* description), "pp", accessible, description);
+WRAPPER(AtkObject, set_parent, void, (void* accessible, void* parent), "pp", accessible, parent);
+WRAPPER(AtkObject, set_role, void, (void* accessible, int role), "pi", accessible, role);
+WRAPPER(AtkObject, connect_property_change_handler, uint32_t, (void* accessible, void* handler), "pp", accessible, AddCheckBridge(my_bridge, vFpp, handler, 0, NULL));
+WRAPPER(AtkObject, remove_property_change_handler, void, (void* accessible, uint32_t handler_id), "pu", accessible, handler_id);
+WRAPPER(AtkObject, initialize, void, (void* accessible, void* data), "pp", accessible, data);
+WRAPPER(AtkObject, children_changed, void, (void* accessible, uint32_t change_index, void* changed_child), "pup", accessible, change_index, changed_child);
+WRAPPER(AtkObject, focus_event, void, (void* accessible, int focus_in), "pi", accessible, focus_in);
+WRAPPER(AtkObject, property_change, void, (void* accessible, void* values), "pp", accessible, values);
+WRAPPER(AtkObject, state_change, void, (void* accessible, void* name, int state_set), "ppi", accessible, name, state_set);
+WRAPPER(AtkObject, visible_data_changed, void, (void* accessible), "p", accessible);
+WRAPPER(AtkObject, active_descendant_changed, void, (void* accessible, void* child), "pp", accessible, child);
+WRAPPER(AtkObject, get_attributes, void*, (void* accessible), "p", accessible);
+WRAPPER(AtkObject, get_object_locale, void*, (void* accessible), "p", accessible);
 
 #define SUPERGO() \
     GO(get_name, pFp);                          \
@@ -2265,7 +2265,7 @@ static void wrapAtkObjectClass(my_AtkObjectClass_t* class)
 }
 // 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()
@@ -2284,13 +2284,13 @@ static void bridgeAtkObjectClass(my_AtkObjectClass_t* class)
 
 // ----- AtkUtilClass ------
 // wrapper x86 -> natives of callbacks
-WRAPPER(AtkUtil,add_global_event_listener, uint32_t,(void* listener, void* event_type), 2, AddCheckBridge(my_bridge, iFpupp, listener, 0, NULL), event_type);
-WRAPPER(AtkUtil,remove_global_event_listener, void ,(uint32_t listener_id), 1, listener_id);
-WRAPPER(AtkUtil,add_key_event_listener, uint32_t   ,(void* listener, void* data), 2, AddCheckBridge(my_bridge, iFpp, listener, 0, NULL), data);
-WRAPPER(AtkUtil,remove_key_event_listener, void    ,(uint32_t listener_id), 1, listener_id);
-WRAPPER(AtkUtil,get_root, void*                    ,(void), 0, 0);
-WRAPPER(AtkUtil,get_toolkit_name, void*            ,(void), 0, 0);
-WRAPPER(AtkUtil,get_toolkit_version, void*         ,(void), 0, 0);
+WRAPPER(AtkUtil,add_global_event_listener, uint32_t,(void* listener, void* event_type), "pp", AddCheckBridge(my_bridge, iFpupp, listener, 0, NULL), event_type);
+WRAPPER(AtkUtil,remove_global_event_listener, void ,(uint32_t listener_id), "u", listener_id);
+WRAPPER(AtkUtil,add_key_event_listener, uint32_t   ,(void* listener, void* data), "pp", AddCheckBridge(my_bridge, iFpp, listener, 0, NULL), data);
+WRAPPER(AtkUtil,remove_key_event_listener, void    ,(uint32_t listener_id), "u", listener_id);
+WRAPPER(AtkUtil,get_root, void*                    ,(void), "", 0);
+WRAPPER(AtkUtil,get_toolkit_name, void*            ,(void), "", 0);
+WRAPPER(AtkUtil,get_toolkit_version, void*         ,(void), "", 0);
 
 #define SUPERGO() \
     GO(add_global_event_listener, uFpp);        \
@@ -2311,7 +2311,7 @@ static void wrapAtkUtilClass(my_AtkUtilClass_t* class)
 }
 // unwrap (and use callback if not a native call anymore)
 static void unwrapAtkUtilClass(my_AtkUtilClass_t* class)
-{   
+{
     unwrapGObjectClass(&class->parent);
     #define GO(A, W)   class->A = find_##A##_AtkUtil (class->A)
     SUPERGO()
@@ -2330,7 +2330,7 @@ static void bridgeAtkUtilClass(my_AtkUtilClass_t* class)
 
 // ----- GstObjectClass ------
 // wrapper x86 -> natives of callbacks
-WRAPPER(GstObject, deep_notify, void, (void* object, void* origin, void* pspec), 3, object, origin, pspec);
+WRAPPER(GstObject, deep_notify, void, (void* object, void* origin, void* pspec), "ppp", object, origin, pspec);
 
 #define SUPERGO() \
     GO(deep_notify, vFppp); \
@@ -2345,7 +2345,7 @@ static void wrapGstObjectClass(my_GstObjectClass_t* class)
 }
 // unwrap (and use callback if not a native call anymore)
 static void unwrapGstObjectClass(my_GstObjectClass_t* class)
-{   
+{
     unwrapGInitiallyUnownedClass(&class->parent);
     #define GO(A, W)   class->A = find_##A##_GstObject (class->A)
     SUPERGO()
@@ -2364,8 +2364,8 @@ static void bridgeGstObjectClass(my_GstObjectClass_t* class)
 
 // ----- GstAllocatorClass ------
 // wrapper x86 -> natives of callbacks
-WRAPPER(GstAllocator, alloc, void*, (void *allocator, size_t size, void *params), 3, allocator, size, params);
-WRAPPER(GstAllocator,free, void,    (void *allocator, void *memory), 2, allocator, memory);
+WRAPPER(GstAllocator, alloc, void*, (void *allocator, size_t size, void *params), "pLp", allocator, size, params);
+WRAPPER(GstAllocator,free, void,    (void *allocator, void *memory), "pp", allocator, memory);
 
 #define SUPERGO() \
     GO(alloc, pFpLp);       \
@@ -2381,7 +2381,7 @@ static void wrapGstAllocatorClass(my_GstAllocatorClass_t* class)
 }
 // unwrap (and use callback if not a native call anymore)
 static void unwrapGstAllocatorClass(my_GstAllocatorClass_t* class)
-{   
+{
     unwrapGstObjectClass(&class->parent);
     #define GO(A, W)   class->A = find_##A##_GstAllocator (class->A)
     SUPERGO()
@@ -2398,6 +2398,84 @@ static void bridgeGstAllocatorClass(my_GstAllocatorClass_t* class)
 
 #undef SUPERGO
 
+// ----- GstTaskPoolClass ------
+// wrapper x86 -> natives of callbacks
+WRAPPER(GstTaskPool, prepare, void,  (void* pool, void* error), "pp", pool, error);
+WRAPPER(GstTaskPool, cleanup, void,  (void* pool), "p", pool);
+WRAPPER(GstTaskPool, push, void*,    (void* pool, void* func, void* user_data, void* error), "pppp", pool, AddCheckBridge(my_bridge, vFp, func, 0, NULL), user_data, error);
+WRAPPER(GstTaskPool, join, void,     (void* pool, void* id), "pp", pool, id);
+WRAPPER(GstTaskPool, dispose_handle, void, (void* pool, void* id), "pp", pool, id);
+
+#define SUPERGO()               \
+    GO(prepare, vFpp);          \
+    GO(cleanup, vFp);           \
+    GO(push, pFpppp);           \
+    GO(join, vFpp);             \
+    GO(dispose_handle, vFpp);   \
+
+// wrap (so bridge all calls, just in case)
+static void wrapGstTaskPoolClass(my_GstTaskPoolClass_t* class)
+{
+    wrapGstObjectClass(&class->parent_class);
+    #define GO(A, W) class->A = reverse_##A##_GstTaskPool (W, class->A)
+    SUPERGO()
+    #undef GO
+}
+// unwrap (and use callback if not a native call anymore)
+static void unwrapGstTaskPoolClass(my_GstTaskPoolClass_t* class)
+{
+    unwrapGstObjectClass(&class->parent_class);
+    #define GO(A, W)   class->A = find_##A##_GstTaskPool (class->A)
+    SUPERGO()
+    #undef GO
+}
+// autobridge
+static void bridgeGstTaskPoolClass(my_GstTaskPoolClass_t* class)
+{
+    bridgeGstObjectClass(&class->parent_class);
+    #define GO(A, W) autobridge_##A##_GstTaskPool (W, class->A)
+    SUPERGO()
+    #undef GO
+}
+
+#undef SUPERGO
+
+// ----- GDBusProxyClass ------
+// wrapper x86 -> natives of callbacks
+WRAPPER(GDBusProxy, g_properties_changed, void, (void* proxy, void* changed_properties, const char* const* invalidated_properties), "ppp", proxy, changed_properties, invalidated_properties);
+WRAPPER(GDBusProxy, g_signal, void,             (void* proxy, const char* sender_name, const char* signal_name, void* parameters), "pppp", proxy, sender_name, signal_name, parameters);
+
+#define SUPERGO()                   \
+    GO(g_properties_changed, vFppp);\
+    GO(g_signal, vFpppp);           \
+
+// wrap (so bridge all calls, just in case)
+static void wrapGDBusProxyClass(my_GDBusProxyClass_t* class)
+{
+    wrapGObjectClass(&class->parent_class);
+    #define GO(A, W) class->A = reverse_##A##_GDBusProxy (W, class->A)
+    SUPERGO()
+    #undef GO
+}
+// unwrap (and use callback if not a native call anymore)
+static void unwrapGDBusProxyClass(my_GDBusProxyClass_t* class)
+{
+    unwrapGObjectClass(&class->parent_class);
+    #define GO(A, W)   class->A = find_##A##_GDBusProxy (class->A)
+    SUPERGO()
+    #undef GO
+}
+// autobridge
+static void bridgeGDBusProxyClass(my_GDBusProxyClass_t* class)
+{
+    bridgeGObjectClass(&class->parent_class);
+    #define GO(A, W) autobridge_##A##_GDBusProxy (W, class->A)
+    SUPERGO()
+    #undef GO
+}
+
+#undef SUPERGO
+
 // No more wrap/unwrap
 #undef WRAPPER
 #undef FIND
@@ -2410,11 +2488,12 @@ static void wrapGTKClass(void* cl, size_t type)
     #define GTKCLASS(A)                             \
     if(type==my_##A)                                \
         wrap##A##Class((my_##A##Class_t*)cl);       \
-    else 
+    else
 
     printf_log(LOG_DEBUG, "wrapGTKClass(%p, %zd (%s))\n", cl, type, g_type_name(type));
     GTKCLASSES()
-    {
+    if(type==8) {}  // GInterface have no structure
+    else {
         if(my_MetaFrames2==-1 && !strcmp(g_type_name(type), "MetaFrames")) {
             my_MetaFrames2 = type;
             wrapMetaFrames2Class((my_MetaFrames2Class_t*)cl);
@@ -2429,10 +2508,12 @@ static void unwrapGTKClass(void* cl, size_t type)
     #define GTKCLASS(A)                             \
     if(type==my_##A)                                \
         unwrap##A##Class((my_##A##Class_t*)cl);     \
-    else 
+    else
 
     printf_log(LOG_DEBUG, "unwrapGTKClass(%p, %zd (%s))\n", cl, type, g_type_name(type));
     GTKCLASSES()
+    if(type==8) {}  // GInterface have no structure
+    else
     {}  // else no warning, one is enough...
     #undef GTKCLASS
 }
@@ -2442,11 +2523,12 @@ static void bridgeGTKClass(void* cl, size_t type)
     #define GTKCLASS(A)                             \
     if(type==my_##A)                                \
         bridge##A##Class((my_##A##Class_t*)cl);     \
-    else 
+    else
 
     printf_log(LOG_DEBUG, "bridgeGTKClass(%p, %zd (%s))\n", cl, type, g_type_name(type));
     GTKCLASSES()
-    {
+    if(type==8) {}  // GInterface have no structure
+    else {
         printf_log(LOG_NONE, "Warning, AutoBridge GTK Class with unknown class type %zd (%s)\n", type, g_type_name(type));
     }
     #undef GTKCLASS
@@ -2476,7 +2558,8 @@ void* unwrapCopyGTKClass(void* klass, size_t type)
     size_t sz = 0;
     #define GTKCLASS(A) if(type==my_##A) sz = sizeof(my_##A##Class_t); else
     GTKCLASSES()
-    {
+    if(type==8) {}  // GInterface have no structure
+    else {
         printf_log(LOG_NONE, "Warning, unwrapCopyGTKClass called with unknown class type %zu (%s)\n", type, g_type_name(type));
         return klass;
     }
@@ -2513,7 +2596,8 @@ void* wrapCopyGTKClass(void* klass, size_t type)
     int sz = 0;
     #define GTKCLASS(A) if(type==my_##A) sz = sizeof(my_##A##Class_t); else
     GTKCLASSES()
-    {
+    if(type==8) {}  // GInterface have no structure
+    else {
         if(my_MetaFrames2==-1 && !strcmp(g_type_name(type), "MetaFrames")) {
             my_MetaFrames2 = type;
             sz = sizeof(my_MetaFrames2Class_t);
@@ -2548,10 +2632,10 @@ SUPER()
 // Then the static functions callback that may be used with the structure
 // value_init ...
 #define GO(A)   \
-static uintptr_t my_value_init_fct_##A = 0;                 \
-static void my_value_init_##A(void* a)                      \
-{                                                           \
-    RunFunction(my_context, my_value_init_fct_##A, 1, a);   \
+static uintptr_t my_value_init_fct_##A = 0;                     \
+static void my_value_init_##A(void* a)                          \
+{                                                               \
+    RunFunctionFmt(my_value_init_fct_##A, "p", a);  \
 }
 SUPER()
 #undef GO
@@ -2570,10 +2654,10 @@ static void* find_value_init_Fct(void* fct)
 }
 // value_free ...
 #define GO(A)   \
-static uintptr_t my_value_free_fct_##A = 0;                 \
-static void my_value_free_##A(void* a)                      \
-{                                                           \
-    RunFunction(my_context, my_value_free_fct_##A, 1, a);   \
+static uintptr_t my_value_free_fct_##A = 0;                     \
+static void my_value_free_##A(void* a)                          \
+{                                                               \
+    RunFunctionFmt(my_value_free_fct_##A, "p", a);  \
 }
 SUPER()
 #undef GO
@@ -2592,10 +2676,10 @@ static void* find_value_free_Fct(void* fct)
 }
 // value_copy ...
 #define GO(A)   \
-static uintptr_t my_value_copy_fct_##A = 0;                 \
-static void my_value_copy_##A(void* a, void* b)             \
-{                                                           \
-    RunFunction(my_context, my_value_copy_fct_##A, 2, a, b);\
+static uintptr_t my_value_copy_fct_##A = 0;                     \
+static void my_value_copy_##A(void* a, void* b)                 \
+{                                                               \
+    RunFunctionFmt(my_value_copy_fct_##A, "pp", a, b); \
 }
 SUPER()
 #undef GO
@@ -2614,10 +2698,10 @@ static void* find_value_copy_Fct(void* fct)
 }
 // value_peek_pointer ...
 #define GO(A)   \
-static uintptr_t my_value_peek_pointer_fct_##A = 0;                             \
-static void* my_value_peek_pointer_##A(void* a)                                 \
-{                                                                               \
-    return (void*)RunFunction(my_context, my_value_peek_pointer_fct_##A, 1, a); \
+static uintptr_t my_value_peek_pointer_fct_##A = 0;                                 \
+static void* my_value_peek_pointer_##A(void* a)                                     \
+{                                                                                   \
+    return (void*)RunFunctionFmt(my_value_peek_pointer_fct_##A, "p", a);\
 }
 SUPER()
 #undef GO
@@ -2636,10 +2720,10 @@ static void* find_value_peek_pointer_Fct(void* fct)
 }
 // collect_value ...
 #define GO(A)   \
-static uintptr_t my_collect_value_fct_##A = 0;                                      \
-static void* my_collect_value_##A(void* a, uint32_t b, void* c, uint32_t d)         \
-{                                                                                   \
-    return (void*)RunFunction(my_context, my_collect_value_fct_##A, 4, a, b, c, d); \
+static uintptr_t my_collect_value_fct_##A = 0;                                              \
+static void* my_collect_value_##A(void* a, uint32_t b, void* c, uint32_t d)                 \
+{                                                                                           \
+    return (void*)RunFunctionFmt(my_collect_value_fct_##A, "pupu", a, b, c, d); \
 }
 SUPER()
 #undef GO
@@ -2658,10 +2742,10 @@ static void* find_collect_value_Fct(void* fct)
 }
 // lcopy_value ...
 #define GO(A)   \
-static uintptr_t my_lcopy_value_fct_##A = 0;                                      \
-static void* my_lcopy_value_##A(void* a, uint32_t b, void* c, uint32_t d)         \
-{                                                                                   \
-    return (void*)RunFunction(my_context, my_lcopy_value_fct_##A, 4, a, b, c, d); \
+static uintptr_t my_lcopy_value_fct_##A = 0;                                                \
+static void* my_lcopy_value_##A(void* a, uint32_t b, void* c, uint32_t d)                   \
+{                                                                                           \
+    return (void*)RunFunctionFmt(my_lcopy_value_fct_##A, "pupu", a, b, c, d);   \
 }
 SUPER()
 #undef GO
@@ -2705,10 +2789,10 @@ my_GTypeValueTable_t* findFreeGTypeValueTable(my_GTypeValueTable_t* fcts)
 
 // signal2 ...
 #define GO(A)   \
-static uintptr_t my_signal2_fct_##A = 0;                                \
-static void* my_signal2_##A(void* a, void* b)                           \
-{                                                                       \
-    return (void*)RunFunction(my_context, my_signal2_fct_##A, 2, a, b); \
+static uintptr_t my_signal2_fct_##A = 0;                                        \
+static void* my_signal2_##A(void* a, void* b)                                   \
+{                                                                               \
+    return (void*)RunFunctionFmt(my_signal2_fct_##A, "pp", a, b);   \
 }
 SUPER()
 #undef GO
@@ -2727,10 +2811,10 @@ static void* find_signal2_Fct(void* fct)
 }
 // signal3 ...
 #define GO(A)   \
-static uintptr_t my_signal3_fct_##A = 0;                                    \
-static void* my_signal3_##A(void* a, void* b, void* c)                      \
-{                                                                           \
-    return (void*)RunFunction(my_context, my_signal3_fct_##A, 3, a, b, c);  \
+static uintptr_t my_signal3_fct_##A = 0;                                            \
+static void* my_signal3_##A(void* a, void* b, void* c)                              \
+{                                                                                   \
+    return (void*)RunFunctionFmt(my_signal3_fct_##A, "ppp", a, b, c);   \
 }
 SUPER()
 #undef GO
@@ -2749,10 +2833,10 @@ static void* find_signal3_Fct(void* fct)
 }
 // signal4 ...
 #define GO(A)   \
-static uintptr_t my_signal4_fct_##A = 0;                                        \
-static void* my_signal4_##A(void* a, void* b, void* c, void* d)                 \
-{                                                                               \
-    return (void*)RunFunction(my_context, my_signal4_fct_##A, 4, a, b, c, d);   \
+static uintptr_t my_signal4_fct_##A = 0;                                                \
+static void* my_signal4_##A(void* a, void* b, void* c, void* d)                         \
+{                                                                                       \
+    return (void*)RunFunctionFmt(my_signal4_fct_##A, "pppp", a, b, c, d);   \
 }
 SUPER()
 #undef GO
@@ -2771,10 +2855,10 @@ static void* find_signal4_Fct(void* fct)
 }
 // signal5 ...
 #define GO(A)   \
-static uintptr_t my_signal5_fct_##A = 0;                                        \
-static void* my_signal5_##A(void* a, void* b, void* c, void* d, void* e)        \
-{                                                                               \
-    return (void*)RunFunction(my_context, my_signal5_fct_##A, 5, a, b, c, d, e);\
+static uintptr_t my_signal5_fct_##A = 0;                                                    \
+static void* my_signal5_##A(void* a, void* b, void* c, void* d, void* e)                    \
+{                                                                                           \
+    return (void*)RunFunctionFmt(my_signal5_fct_##A, "ppppp", a, b, c, d, e);   \
 }
 SUPER()
 #undef GO
@@ -2793,10 +2877,10 @@ static void* find_signal5_Fct(void* fct)
 }
 // signal6 ...
 #define GO(A)   \
-static uintptr_t my_signal6_fct_##A = 0;                                            \
-static void* my_signal6_##A(void* a, void* b, void* c, void* d, void* e, void* f)   \
-{                                                                                   \
-    return (void*)RunFunction(my_context, my_signal6_fct_##A, 6, a, b, c, d, e, f); \
+static uintptr_t my_signal6_fct_##A = 0;                                                        \
+static void* my_signal6_##A(void* a, void* b, void* c, void* d, void* e, void* f)               \
+{                                                                                               \
+    return (void*)RunFunctionFmt(my_signal6_fct_##A, "pppppp", a, b, c, d, e, f);   \
 }
 SUPER()
 #undef GO
@@ -2815,10 +2899,10 @@ static void* find_signal6_Fct(void* fct)
 }
 // signal7 ...
 #define GO(A)   \
-static uintptr_t my_signal7_fct_##A = 0;                                            \
-static void* my_signal7_##A(void* a, void* b, void* c, void* d, void* e, void* f, void* g)  \
-{                                                                                           \
-    return (void*)RunFunction(my_context, my_signal7_fct_##A, 7, a, b, c, d, e, f, g);      \
+static uintptr_t my_signal7_fct_##A = 0;                                                            \
+static void* my_signal7_##A(void* a, void* b, void* c, void* d, void* e, void* f, void* g)          \
+{                                                                                                   \
+    return (void*)RunFunctionFmt(my_signal7_fct_##A, "ppppppp", a, b, c, d, e, f, g);   \
 }
 SUPER()
 #undef GO
@@ -2907,7 +2991,7 @@ SUPER()
 static uintptr_t my_base_init_fct_##A = 0;                          \
 static int my_base_init_##A(void* a)                                \
 {                                                                   \
-    return RunFunction(my_context, my_base_init_fct_##A, 1, a);     \
+    return RunFunctionFmt(my_base_init_fct_##A, "p", a);     \
 }
 SUPER()
 #undef GO
@@ -2929,7 +3013,7 @@ static void* find_base_init_Fct(void* fct)
 static uintptr_t my_base_finalize_fct_##A = 0;                      \
 static int my_base_finalize_##A(void* a)                            \
 {                                                                   \
-    return RunFunction(my_context, my_base_finalize_fct_##A, 1, a); \
+    return RunFunctionFmt(my_base_finalize_fct_##A, "p", a); \
 }
 SUPER()
 #undef GO
@@ -2948,21 +3032,21 @@ static void* find_base_finalize_Fct(void* fct)
 }
 // class_init ...
 #define GO(A)   \
-static uintptr_t my_class_init_fct_##A = 0;                             \
-static size_t parent_class_init_##A = 0;                                \
-static int my_class_init_##A(void* a, void* b)                          \
-{                                                                       \
+static uintptr_t my_class_init_fct_##A = 0;                                 \
+static size_t parent_class_init_##A = 0;                                    \
+static int my_class_init_##A(void* a, void* b)                              \
+{                                                                           \
     printf_log(LOG_DEBUG, "Custom Class init %d for class %p (parent=%p:%s)\n", A, a, (void*)parent_class_init_##A, g_type_name(parent_class_init_##A));\
-    int ret = RunFunction(my_context, my_class_init_fct_##A, 2, a, b);  \
-    unwrapGTKClass(a, parent_class_init_##A);                           \
-    bridgeGTKClass(a, parent_class_init_##A);                           \
-    my_unwrap_signal_offset(a);                                         \
-    if(!strcmp(g_type_name(parent_class_init_##A), "AtkUtil")) {        \
+    int ret = RunFunctionFmt(my_class_init_fct_##A, "pp", a, b);\
+    unwrapGTKClass(a, parent_class_init_##A);                               \
+    bridgeGTKClass(a, parent_class_init_##A);                               \
+    my_unwrap_signal_offset(a);                                             \
+    if(!strcmp(g_type_name(parent_class_init_##A), "AtkUtil")) {            \
         my_AtkUtilClass_t* p = (my_AtkUtilClass_t*)g_type_class_peek(parent_class_init_##A);\
-        unwrapGTKClass(p, parent_class_init_##A);                       \
-        bridgeGTKClass(p, parent_class_init_##A);                       \
-    }                                                                   \
-    return ret;                                                         \
+        unwrapGTKClass(p, parent_class_init_##A);                           \
+        bridgeGTKClass(p, parent_class_init_##A);                           \
+    }                                                                       \
+    return ret;                                                             \
 }
 SUPER()
 #undef GO
@@ -2981,10 +3065,10 @@ static void* find_class_init_Fct(void* fct, size_t parent)
 }
 // class_finalize ...
 #define GO(A)   \
-static uintptr_t my_class_finalize_fct_##A = 0;                         \
-static int my_class_finalize_##A(void* a, void* b)                      \
-{                                                                       \
-    return RunFunction(my_context, my_class_finalize_fct_##A, 2, a, b); \
+static uintptr_t my_class_finalize_fct_##A = 0;                                 \
+static int my_class_finalize_##A(void* a, void* b)                              \
+{                                                                               \
+    return RunFunctionFmt(my_class_finalize_fct_##A, "pp", a, b);   \
 }
 SUPER()
 #undef GO
@@ -3003,10 +3087,10 @@ static void* find_class_finalize_Fct(void* fct)
 }
 // instance_init ...
 #define GO(A)   \
-static uintptr_t my_instance_init_fct_##A = 0;                         \
-static int my_instance_init_##A(void* a, void* b)                      \
-{                                                                      \
-    return RunFunction(my_context, my_instance_init_fct_##A, 2, a, b); \
+static uintptr_t my_instance_init_fct_##A = 0;                              \
+static int my_instance_init_##A(void* a, void* b)                           \
+{                                                                           \
+    return RunFunctionFmt(my_instance_init_fct_##A, "pp", a, b);\
 }
 SUPER()
 #undef GO
@@ -3066,20 +3150,20 @@ static int fct_gtk_parent_##A = 0 ;                 \
 static uintptr_t fct_gtk_class_init_##A = 0;        \
 static int my_gtk_class_init_##A(void* g_class) {   \
     printf_log(LOG_DEBUG, "Calling fct_gtk_class_init_" #A " wrapper\n");           \
-    int ret = (int)RunFunction(my_context, fct_gtk_class_init_##A, 1, g_class);     \
+    int ret = (int)RunFunctionFmt(fct_gtk_class_init_##A, "p", g_class);\
     unwrapGTKClass(g_class, fct_gtk_parent_##A);                                    \
     bridgeGTKClass(g_class, fct_gtk_parent_##A);                                    \
     return ret;                                                                     \
 }   \
-static uintptr_t fct_gtk_object_init_##A = 0;  \
-static int my_gtk_object_init_##A(void* object, void* data) {   \
-    printf_log(LOG_DEBUG, "Calling fct_gtk_object_init_" #A " wrapper\n");             \
-    return (int)RunFunction(my_context, fct_gtk_object_init_##A, 2, object, data);    \
+static uintptr_t fct_gtk_object_init_##A = 0;                                           \
+static int my_gtk_object_init_##A(void* object, void* data) {                           \
+    printf_log(LOG_DEBUG, "Calling fct_gtk_object_init_" #A " wrapper\n");              \
+    return (int)RunFunctionFmt(fct_gtk_object_init_##A, "pp", object, data);\
 }   \
-static uintptr_t fct_gtk_base_class_init_##A = 0;  \
-static int my_gtk_base_class_init_##A(void* instance, void* data) {   \
-    printf_log(LOG_DEBUG, "Calling fct_gtk_base_class_init_" #A " wrapper\n");             \
-    return (int)RunFunction(my_context, fct_gtk_base_class_init_##A, 2, instance, data);    \
+static uintptr_t fct_gtk_base_class_init_##A = 0;                                               \
+static int my_gtk_base_class_init_##A(void* instance, void* data) {                             \
+    printf_log(LOG_DEBUG, "Calling fct_gtk_base_class_init_" #A " wrapper\n");                  \
+    return (int)RunFunctionFmt(fct_gtk_base_class_init_##A, "pp", instance, data);  \
 }
 
 SUPER()
@@ -3195,7 +3279,7 @@ void my_signal_delete(my_signal_t* sig)
     }
     uintptr_t d = sig->destroy;
     if(d) {
-        RunFunction(my_context, d, 1, sig->data);
+        RunFunctionFmt(d, "p", sig->data);
     }
     printf_log(LOG_DEBUG, "gtk Data deleted, sig=%p, data=%p, destroy=%p\n", sig, sig->data, (void*)d);
     box_free(sig);
@@ -3237,10 +3321,10 @@ int my_signal_cb(void* a, void* b, void* c, void* d)
     }
     printf_log(LOG_DEBUG, "gtk Signal called, sig=%p, NArgs=%d\n", sig, i);
     switch(i) {
-        case 1: return (int)RunFunction(my_context, sig->c_handler, 1, sig->data);
-        case 2: return (int)RunFunction(my_context, sig->c_handler, 2, a, sig->data);
-        case 3: return (int)RunFunction(my_context, sig->c_handler, 3, a, b, sig->data);
-        case 4: return (int)RunFunction(my_context, sig->c_handler, 4, a, b, c, sig->data);
+        case 1: return (int)RunFunctionFmt(sig->c_handler, "p", sig->data);
+        case 2: return (int)RunFunctionFmt(sig->c_handler, "pp", a, sig->data);
+        case 3: return (int)RunFunctionFmt(sig->c_handler, "ppp", a, b, sig->data);
+        case 4: return (int)RunFunctionFmt(sig->c_handler, "pppp", a, b, c, sig->data);
     }
     printf_log(LOG_NONE, "Warning, Gtk signal callback but no data found!");
     return 0;