about summary refs log tree commit diff stats
path: root/src
diff options
context:
space:
mode:
authorptitSeb <sebastien.chev@gmail.com>2024-10-17 15:59:50 +0200
committerptitSeb <sebastien.chev@gmail.com>2024-10-17 15:59:50 +0200
commit5363c013e63befac33ca1f3b00b20ce345551c8c (patch)
tree7deeea1d8a0b92081f3668176d01a5af18bc6ca7 /src
parentb609328ac1620648e9cd51b2577787c785934e36 (diff)
downloadbox64-5363c013e63befac33ca1f3b00b20ce345551c8c.tar.gz
box64-5363c013e63befac33ca1f3b00b20ce345551c8c.zip
[WRAPPER] Added gtk_marshal to gtk2 (for #1943)
Diffstat (limited to 'src')
-rw-r--r--src/wrapped/wrappedgtkx112.c33
-rw-r--r--src/wrapped/wrappedgtkx112_private.h52
2 files changed, 59 insertions, 26 deletions
diff --git a/src/wrapped/wrappedgtkx112.c b/src/wrapped/wrappedgtkx112.c
index 5dc94f0d..2640ab2e 100644
--- a/src/wrapped/wrappedgtkx112.c
+++ b/src/wrapped/wrappedgtkx112.c
@@ -1217,11 +1217,44 @@ EXPORT uint32_t my_gtk_key_snooper_install(x64emu_t* emu, void* f, void* data)
     return my->gtk_key_snooper_install(find_GtkKeySnoopFunc_Fct(f), data);
 }
 
+static void addGtk2Alternate(library_t* lib)
+{
+    #define GO(A, W) AddAutomaticBridge(lib->w.bridge, W, dlsym(lib->w.lib, #A), 0, #A)
+    GO(gtk_marshal_BOOLEAN__POINTER,                            vFppuppp);
+    GO(gtk_marshal_BOOLEAN__POINTER_INT_INT,                    vFppuppp);
+    GO(gtk_marshal_BOOLEAN__POINTER_INT_INT_UINT,               vFppuppp);
+    GO(gtk_marshal_BOOLEAN__POINTER_POINTER_INT_INT,            vFppuppp);
+    GO(gtk_marshal_BOOLEAN__POINTER_STRING_STRING_POINTER,      vFppuppp);
+    GO(gtk_marshal_BOOLEAN__VOID,                               vFppuppp);
+    GO(gtk_marshal_ENUM__ENUM,                                  vFppuppp);
+    GO(gtk_marshal_INT__POINTER,                                vFppuppp);
+    GO(gtk_marshal_INT__POINTER_CHAR_CHAR,                      vFppuppp);
+    GO(gtk_marshal_VOID__ENUM_FLOAT,                            vFppuppp);
+    GO(gtk_marshal_VOID__ENUM_FLOAT_BOOLEAN,                    vFppuppp);
+    GO(gtk_marshal_VOID__INT_INT,                               vFppuppp);
+    GO(gtk_marshal_VOID__INT_INT_POINTER,                       vFppuppp);
+    GO(gtk_marshal_VOID__POINTER_INT,                           vFppuppp);
+    GO(gtk_marshal_VOID__POINTER_INT_INT_POINTER_UINT_UINT,     vFppuppp);
+    GO(gtk_marshal_VOID__POINTER_POINTER,                       vFppuppp);
+    GO(gtk_marshal_VOID__POINTER_POINTER_POINTER,               vFppuppp);
+    GO(gtk_marshal_VOID__POINTER_POINTER_UINT_UINT,             vFppuppp);
+    GO(gtk_marshal_VOID__POINTER_STRING_STRING,                 vFppuppp);
+    GO(gtk_marshal_VOID__POINTER_UINT,                          vFppuppp);
+    GO(gtk_marshal_VOID__POINTER_UINT_ENUM,                     vFppuppp);
+    GO(gtk_marshal_VOID__POINTER_UINT_UINT,                     vFppuppp);
+    GO(gtk_marshal_VOID__STRING_INT_POINTER,                    vFppuppp);
+    GO(gtk_marshal_VOID__UINT_POINTER_UINT_ENUM_ENUM_POINTER,   vFppuppp);
+    GO(gtk_marshal_VOID__UINT_POINTER_UINT_UINT_ENUM,           vFppuppp);
+    GO(gtk_marshal_VOID__UINT_STRING,                           vFppuppp);
+    #undef GO
+}
+
 #define PRE_INIT    \
     if(box64_nogtk) \
         return -1;
 
 #define CUSTOM_INIT \
+    addGtk2Alternate(lib);                                                      \
     SetGtkObjectID(my->gtk_object_get_type());                                  \
     SetGtkWidget2ID(my->gtk_widget_get_type());                                 \
     SetGtkContainer2ID(my->gtk_container_get_type());                           \
diff --git a/src/wrapped/wrappedgtkx112_private.h b/src/wrapped/wrappedgtkx112_private.h
index f0ad7677..72f1c357 100644
--- a/src/wrapped/wrappedgtkx112_private.h
+++ b/src/wrapped/wrappedgtkx112_private.h
@@ -1595,32 +1595,32 @@ GO(gtk_main_iteration, iFv)
 GO(gtk_main_iteration_do, iFi)
 GO(gtk_main_level, uFv)
 GO(gtk_main_quit, vFv)
-//GO(gtk_marshal_BOOLEAN__POINTER, 
-//GO(gtk_marshal_BOOLEAN__POINTER_INT_INT, 
-//GO(gtk_marshal_BOOLEAN__POINTER_INT_INT_UINT, 
-//GO(gtk_marshal_BOOLEAN__POINTER_POINTER_INT_INT, 
-//GO(gtk_marshal_BOOLEAN__POINTER_STRING_STRING_POINTER, 
-//GO(gtk_marshal_BOOLEAN__VOID, 
-//GO(gtk_marshal_ENUM__ENUM, 
-//GO(gtk_marshal_INT__POINTER, 
-//GO(gtk_marshal_INT__POINTER_CHAR_CHAR, 
-//GO(gtk_marshal_VOID__ENUM_FLOAT, 
-//GO(gtk_marshal_VOID__ENUM_FLOAT_BOOLEAN, 
-//GO(gtk_marshal_VOID__INT_INT, 
-//GO(gtk_marshal_VOID__INT_INT_POINTER, 
-//GO(gtk_marshal_VOID__POINTER_INT, 
-//GO(gtk_marshal_VOID__POINTER_INT_INT_POINTER_UINT_UINT, 
-//GO(gtk_marshal_VOID__POINTER_POINTER, 
-//GO(gtk_marshal_VOID__POINTER_POINTER_POINTER, 
-//GO(gtk_marshal_VOID__POINTER_POINTER_UINT_UINT, 
-//GO(gtk_marshal_VOID__POINTER_STRING_STRING, 
-//GO(gtk_marshal_VOID__POINTER_UINT, 
-//GO(gtk_marshal_VOID__POINTER_UINT_ENUM, 
-//GO(gtk_marshal_VOID__POINTER_UINT_UINT, 
-//GO(gtk_marshal_VOID__STRING_INT_POINTER, 
-//GO(gtk_marshal_VOID__UINT_POINTER_UINT_ENUM_ENUM_POINTER, 
-//GO(gtk_marshal_VOID__UINT_POINTER_UINT_UINT_ENUM, 
-//GO(gtk_marshal_VOID__UINT_STRING, 
+DATA(gtk_marshal_BOOLEAN__POINTER, sizeof(void*))
+DATA(gtk_marshal_BOOLEAN__POINTER_INT_INT, sizeof(void*))
+DATA(gtk_marshal_BOOLEAN__POINTER_INT_INT_UINT, sizeof(void*))
+DATA(gtk_marshal_BOOLEAN__POINTER_POINTER_INT_INT, sizeof(void*))
+DATA(gtk_marshal_BOOLEAN__POINTER_STRING_STRING_POINTER, sizeof(void*))
+DATA(gtk_marshal_BOOLEAN__VOID, sizeof(void*))
+DATA(gtk_marshal_ENUM__ENUM, sizeof(void*))
+DATA(gtk_marshal_INT__POINTER, sizeof(void*))
+DATA(gtk_marshal_INT__POINTER_CHAR_CHAR, sizeof(void*))
+DATA(gtk_marshal_VOID__ENUM_FLOAT, sizeof(void*))
+DATA(gtk_marshal_VOID__ENUM_FLOAT_BOOLEAN, sizeof(void*))
+DATA(gtk_marshal_VOID__INT_INT, sizeof(void*))
+DATA(gtk_marshal_VOID__INT_INT_POINTER, sizeof(void*))
+DATA(gtk_marshal_VOID__POINTER_INT, sizeof(void*))
+DATA(gtk_marshal_VOID__POINTER_INT_INT_POINTER_UINT_UINT, sizeof(void*))
+DATA(gtk_marshal_VOID__POINTER_POINTER, sizeof(void*))
+DATA(gtk_marshal_VOID__POINTER_POINTER_POINTER, sizeof(void*))
+DATA(gtk_marshal_VOID__POINTER_POINTER_UINT_UINT, sizeof(void*))
+DATA(gtk_marshal_VOID__POINTER_STRING_STRING, sizeof(void*))
+DATA(gtk_marshal_VOID__POINTER_UINT, sizeof(void*))
+DATA(gtk_marshal_VOID__POINTER_UINT_ENUM, sizeof(void*))
+DATA(gtk_marshal_VOID__POINTER_UINT_UINT, sizeof(void*))
+DATA(gtk_marshal_VOID__STRING_INT_POINTER, sizeof(void*))
+DATA(gtk_marshal_VOID__UINT_POINTER_UINT_ENUM_ENUM_POINTER, sizeof(void*))
+DATA(gtk_marshal_VOID__UINT_POINTER_UINT_UINT_ENUM, sizeof(void*))
+DATA(gtk_marshal_VOID__UINT_STRING, sizeof(void*))
 GO(gtk_match_type_get_type, LFv)
 GO(gtk_menu_attach, vFppuuuu)
 GOM(gtk_menu_attach_to_widget, vFEppp)