about summary refs log tree commit diff stats
path: root/src
diff options
context:
space:
mode:
authorptitSeb <sebastien.chev@gmail.com>2023-03-04 10:31:34 +0100
committerptitSeb <sebastien.chev@gmail.com>2023-03-04 10:31:34 +0100
commit02cad7b5fe6d632738bda1c2610142dccc45ee62 (patch)
treefbc8243b8e516e2e4f4d28331e623801de0ed941 /src
parent1a85ec5fdb0301b080edb3f7fc4e18785bdfc113 (diff)
downloadbox64-02cad7b5fe6d632738bda1c2610142dccc45ee62.tar.gz
box64-02cad7b5fe6d632738bda1c2610142dccc45ee62.zip
Added wrapped libibus and a few other libgtk fixed
Diffstat (limited to 'src')
-rwxr-xr-xsrc/library_list.h1
-rwxr-xr-xsrc/tools/gtkclass.c44
-rw-r--r--src/wrapped/generated/functions_list.txt22
-rw-r--r--src/wrapped/generated/wrappedlibibusdefs.h8
-rw-r--r--src/wrapped/generated/wrappedlibibustypes.h33
-rw-r--r--src/wrapped/generated/wrappedlibibusundefs.h8
-rw-r--r--src/wrapped/generated/wrapper.c11
-rw-r--r--src/wrapped/generated/wrapper.h5
-rwxr-xr-xsrc/wrapped/wrappedglib2.c6
-rw-r--r--src/wrapped/wrappedlibibus.c123
-rw-r--r--src/wrapped/wrappedlibibus_private.h473
11 files changed, 730 insertions, 4 deletions
diff --git a/src/library_list.h b/src/library_list.h
index fa492fec..dcc58a2c 100755
--- a/src/library_list.h
+++ b/src/library_list.h
@@ -145,6 +145,7 @@ GO("libpango-1.0.so", pango)
 //GO("libnm.so.0", libnm)
 //GO("libnm-glib.so.4", libnm)
 //GO("libnm-util.so.2", libnm)
+GO("libibus-1.0.so.5", libibus)
 GO("libfontconfig.so.1", fontconfig)
 GO("libfreetype.so.6", freetype)
 GO("libbz2.so.1", bz2)
diff --git a/src/tools/gtkclass.c b/src/tools/gtkclass.c
index 8359294a..881f5000 100755
--- a/src/tools/gtkclass.c
+++ b/src/tools/gtkclass.c
@@ -42,6 +42,13 @@ typedef struct sigoffset_array_s {
 KHASH_MAP_INIT_INT64(sigoffset, sigoffset_array_t)
 static kh_sigoffset_t *my_sigoffset = NULL;
 
+#define ONCE() \
+    static int done = 0;\
+    if(done)            \
+        return;         \
+    done = 1
+
+
 // ---- Defining the multiple functions now -----
 #define SUPER() \
 GO(0)   \
@@ -171,6 +178,7 @@ static void unwrapGObjectClass(my_GObjectClass_t* class)
 // autobridge
 static void bridgeGObjectClass(my_GObjectClass_t* class)
 {
+    ONCE();
     #define GO(A, W) autobridge_##A##_GObject (W, class->A)
     SUPERGO()
     #undef GO
@@ -215,6 +223,7 @@ static void unwrapGInitiallyUnownedClass(my_GInitiallyUnownedClass_t* class)
 // autobridge
 static void bridgeGInitiallyUnownedClass(my_GInitiallyUnownedClass_t* class)
 {
+    ONCE();
     #define GO(A, W) autobridge_##A##_GInitiallyUnowned (W, class->A)
     SUPERGO()
     #undef GO
@@ -250,6 +259,7 @@ static void unwrapGtkObjectClass(my_GtkObjectClass_t* class)
 // autobridge
 static void bridgeGtkObjectClass(my_GtkObjectClass_t* class)
 {
+    ONCE();
     bridgeGObjectClass(&class->parent_class);
     #define GO(A, W) autobridge_##A##_GtkObject (W, class->A)
     SUPERGO()
@@ -414,6 +424,7 @@ static void unwrapGtkWidget2Class(my_GtkWidget2Class_t* class)
 // autobridge
 static void bridgeGtkWidget2Class(my_GtkWidget2Class_t* class)
 {
+    ONCE();
     bridgeGtkObjectClass(&class->parent_class);
     #define GO(A, W) autobridge_##A##_GtkWidget2 (W, class->A)
     SUPERGO()
@@ -611,6 +622,7 @@ static void unwrapGtkWidget3Class(my_GtkWidget3Class_t* class)
 // autobridge
 static void bridgeGtkWidget3Class(my_GtkWidget3Class_t* class)
 {
+    ONCE();
     bridgeGInitiallyUnownedClass(&class->parent_class);
     #define GO(A, W) autobridge_##A##_GtkWidget3 (W, class->A)
     SUPERGO()
@@ -661,6 +673,7 @@ static void unwrapGtkContainer2Class(my_GtkContainer2Class_t* class)
 // autobridge
 static void bridgeGtkContainer2Class(my_GtkContainer2Class_t* class)
 {
+    ONCE();
     bridgeGtkWidget2Class(&class->parent_class);
     #define GO(A, W) autobridge_##A##_GtkContainer2 (W, class->A)
     SUPERGO()
@@ -713,6 +726,7 @@ static void unwrapGtkContainer3Class(my_GtkContainer3Class_t* class)
 // autobridge
 static void bridgeGtkContainer3Class(my_GtkContainer3Class_t* class)
 {
+    ONCE();
     bridgeGtkWidget3Class(&class->parent_class);
     #define GO(A, W) autobridge_##A##_GtkContainer3 (W, class->A)
     SUPERGO()
@@ -757,6 +771,7 @@ static void unwrapGtkActionClass(my_GtkActionClass_t* class)
 // autobridge
 static void bridgeGtkActionClass(my_GtkActionClass_t* class)
 {
+    ONCE();
     bridgeGObjectClass(&class->parent_class);
     #define GO(A, W) autobridge_##A##_GtkAction (W, class->A)
     SUPERGO()
@@ -779,6 +794,7 @@ static void unwrapGtkMisc2Class(my_GtkMisc2Class_t* class)
 // autobridge
 static void bridgeGtkMisc2Class(my_GtkMisc2Class_t* class)
 {
+    ONCE();
     bridgeGtkWidget2Class(&class->parent_class);
 }
 
@@ -815,6 +831,7 @@ static void unwrapGtkLabel2Class(my_GtkLabel2Class_t* class)
 // autobridge
 static void bridgeGtkLabel2Class(my_GtkLabel2Class_t* class)
 {
+    ONCE();
     bridgeGtkMisc2Class(&class->parent_class);
     #define GO(A, W) autobridge_##A##_GtkMisc2 (W, class->A)
     SUPERGO()
@@ -878,6 +895,7 @@ static void unwrapGtkTreeView2Class(my_GtkTreeView2Class_t* class)
 // autobridge
 static void bridgeGtkTreeView2Class(my_GtkTreeView2Class_t* class)
 {
+    ONCE();
     bridgeGtkContainer2Class(&class->parent_class);
     #define GO(A, W) autobridge_##A##_GtkTreeView2 (W, class->A)
     SUPERGO()
@@ -901,6 +919,7 @@ static void unwrapGtkBin2Class(my_GtkBin2Class_t* class)
 // autobridge
 static void bridgeGtkBin2Class(my_GtkBin2Class_t* class)
 {
+    ONCE();
     bridgeGtkContainer2Class(&class->parent_class);
 }
 
@@ -941,6 +960,7 @@ static void unwrapGtkWindow2Class(my_GtkWindow2Class_t* class)
 // autobridge
 static void bridgeGtkWindow2Class(my_GtkWindow2Class_t* class)
 {
+    ONCE();
     bridgeGtkBin2Class(&class->parent_class);
     #define GO(A, W) autobridge_##A##_GtkWindow2 (W, class->A)
     SUPERGO()
@@ -963,6 +983,7 @@ static void unwrapGtkTable2Class(my_GtkTable2Class_t* class)
 // autobridge
 static void bridgeGtkTable2Class(my_GtkTable2Class_t* class)
 {
+    ONCE();
     bridgeGtkContainer2Class(&class->parent_class);
 }
 
@@ -981,6 +1002,7 @@ static void unwrapGtkFixed2Class(my_GtkFixed2Class_t* class)
 // autobridge
 static void bridgeGtkFixed2Class(my_GtkFixed2Class_t* class)
 {
+    ONCE();
     bridgeGtkContainer2Class(&class->parent_class);
 }
 
@@ -999,6 +1021,7 @@ static void unwrapMetaFrames2Class(my_MetaFrames2Class_t* class)
 // autobridge
 static void bridgeMetaFrames2Class(my_MetaFrames2Class_t* class)
 {
+    ONCE();
     bridgeGtkWindow2Class(&class->parent_class);
 }
 
@@ -1031,6 +1054,7 @@ static void unwrapGDBusObjectManagerClientClass(my_GDBusObjectManagerClientClass
 // autobridge
 static void bridgeGDBusObjectManagerClientClass(my_GDBusObjectManagerClientClass_t* class)
 {
+    ONCE();
     bridgeGObjectClass(&class->parent_class);
     #define GO(A, W) autobridge_##A##_GDBusObjectManagerClient (W, class->A)
     SUPERGO()
@@ -1076,6 +1100,7 @@ static void unwrapGtkButton2Class(my_GtkButton2Class_t* class)
 // autobridge
 static void bridgeGtkButton2Class(my_GtkButton2Class_t* class)
 {
+    ONCE();
     bridgeGtkBin2Class(&class->parent_class);
     #define GO(A, W) autobridge_##A##_GtkButton2 (W, class->A)
     SUPERGO()
@@ -1113,6 +1138,7 @@ static void unwrapGtkComboBox2Class(my_GtkComboBox2Class_t* class)
 // autobridge
 static void bridgeGtkComboBox2Class(my_GtkComboBox2Class_t* class)
 {
+    ONCE();
     bridgeGtkBin2Class(&class->parent_class);
     #define GO(A, W) autobridge_##A##_GtkComboBox2 (W, class->A)
     SUPERGO()
@@ -1148,6 +1174,7 @@ static void unwrapGtkToggleButton2Class(my_GtkToggleButton2Class_t* class)
 // autobridge
 static void bridgeGtkToggleButton2Class(my_GtkToggleButton2Class_t* class)
 {
+    ONCE();
     bridgeGtkButton2Class(&class->parent_class);
     #define GO(A, W) autobridge_##A##_GtkToggleButton2 (W, class->A)
     SUPERGO()
@@ -1183,6 +1210,7 @@ static void unwrapGtkCheckButton2Class(my_GtkCheckButton2Class_t* class)
 // autobridge
 static void bridgeGtkCheckButton2Class(my_GtkCheckButton2Class_t* class)
 {
+    ONCE();
     bridgeGtkToggleButton2Class(&class->parent_class);
     #define GO(A, W) autobridge_##A##_GtkCheckButton2 (W, class->A)
     SUPERGO()
@@ -1237,6 +1265,7 @@ static void unwrapGtkEntry2Class(my_GtkEntry2Class_t* class)
 // autobridge
 static void bridgeGtkEntry2Class(my_GtkEntry2Class_t* class)
 {
+    ONCE();
     bridgeGtkWidget2Class(&class->parent_class);
     #define GO(A, W) autobridge_##A##_GtkEntry2 (W, class->A)
     SUPERGO()
@@ -1279,6 +1308,7 @@ static void unwrapGtkSpinButton2Class(my_GtkSpinButton2Class_t* class)
 // autobridge
 static void bridgeGtkSpinButton2Class(my_GtkSpinButton2Class_t* class)
 {
+    ONCE();
     bridgeGtkEntry2Class(&class->parent_class);
     #define GO(A, W) autobridge_##A##_GtkSpinButton2 (W, class->A)
     SUPERGO()
@@ -1317,6 +1347,7 @@ static void unwrapGtkProgress2Class(my_GtkProgress2Class_t* class)
 // autobridge
 static void bridgeGtkProgress2Class(my_GtkProgress2Class_t* class)
 {
+    ONCE();
     bridgeGtkWidget2Class(&class->parent_class);
     #define GO(A, W) autobridge_##A##_GtkProgress2 (W, class->A)
     SUPERGO()
@@ -1349,6 +1380,7 @@ static void unwrapGtkProgressBar2Class(my_GtkProgressBar2Class_t* class)
 // autobridge
 static void bridgeGtkProgressBar2Class(my_GtkProgressBar2Class_t* class)
 {
+    ONCE();
     bridgeGtkProgress2Class(&class->parent_class);
     #define GO(A, W) autobridge_##A##_GtkProgressBar2 (W, class->A)
     SUPERGO()
@@ -1383,6 +1415,7 @@ static void unwrapGtkFrame2Class(my_GtkFrame2Class_t* class)
 // autobridge
 static void bridgeGtkFrame2Class(my_GtkFrame2Class_t* class)
 {
+    ONCE();
     bridgeGtkBin2Class(&class->parent_class);
     #define GO(A, W) autobridge_##A##_GtkFrame2 (W, class->A)
     SUPERGO()
@@ -1433,6 +1466,7 @@ static void unwrapGtkMenuShell2Class(my_GtkMenuShell2Class_t* class)
 // autobridge
 static void bridgeGtkMenuShell2Class(my_GtkMenuShell2Class_t* class)
 {
+    ONCE();
     bridgeGtkContainer2Class(&class->parent_class);
     #define GO(A, W) autobridge_##A##_GtkMenuShell2 (W, class->A)
     SUPERGO()
@@ -1465,6 +1499,7 @@ static void unwrapGtkMenuBar2Class(my_GtkMenuBar2Class_t* class)
 // autobridge
 static void bridgeGtkMenuBar2Class(my_GtkMenuBar2Class_t* class)
 {
+    ONCE();
     bridgeGtkMenuShell2Class(&class->parent_class);
     #define GO(A, W) autobridge_##A##_GtkMenuBar2 (W, class->A)
     SUPERGO()
@@ -1523,6 +1558,7 @@ static void unwrapGtkTextView2Class(my_GtkTextView2Class_t* class)
 // autobridge
 static void bridgeGtkTextView2Class(my_GtkTextView2Class_t* class)
 {
+    ONCE();
     bridgeGtkContainer2Class(&class->parent_class);
     #define GO(A, W) autobridge_##A##_GtkTextView2 (W, class->A)
     SUPERGO()
@@ -1583,6 +1619,7 @@ static void unwrapGtkTextView3Class(my_GtkTextView3Class_t* class)
 // autobridge
 static void bridgeGtkTextView3Class(my_GtkTextView3Class_t* class)
 {
+    ONCE();
     bridgeGtkContainer3Class(&class->parent_class);
     #define GO(A, W) autobridge_##A##_GtkTextView3 (W, class->A)
     SUPERGO()
@@ -1667,6 +1704,7 @@ static void unwrapAtkObjectClass(my_AtkObjectClass_t* class)
 // autobridge
 static void bridgeAtkObjectClass(my_AtkObjectClass_t* class)
 {
+    ONCE();
     bridgeGObjectClass(&class->parent);
     #define GO(A, W) autobridge_##A##_AtkObject (W, class->A)
     SUPERGO()
@@ -1713,6 +1751,7 @@ static void unwrapAtkUtilClass(my_AtkUtilClass_t* class)
 // autobridge
 static void bridgeAtkUtilClass(my_AtkUtilClass_t* class)
 {
+    ONCE();
     bridgeGObjectClass(&class->parent);
     #define GO(A, W) autobridge_##A##_AtkUtil (W, class->A)
     SUPERGO()
@@ -1747,6 +1786,7 @@ static void unwrapGstObjectClass(my_GstObjectClass_t* class)
 // autobridge
 static void bridgeGstObjectClass(my_GstObjectClass_t* class)
 {
+    ONCE();
     bridgeGInitiallyUnownedClass(&class->parent);
     #define GO(A, W) autobridge_##A##_GstObject (W, class->A)
     SUPERGO()
@@ -1783,6 +1823,7 @@ static void unwrapGstAllocatorClass(my_GstAllocatorClass_t* class)
 // autobridge
 static void bridgeGstAllocatorClass(my_GstAllocatorClass_t* class)
 {
+    ONCE();
     bridgeGstObjectClass(&class->parent);
     #define GO(A, W) autobridge_##A##_GstAllocator (W, class->A)
     SUPERGO()
@@ -1925,7 +1966,8 @@ void* wrapCopyGTKClass(void* klass, size_t type)
         return klass;
     }
     memcpy(newklass, klass, sz);
-    wrapGTKClass(newklass, type);
+    //wrapGTKClass(newklass, type);
+    bridgeGTKClass(newklass, type);
     return newklass;
 }
 
diff --git a/src/wrapped/generated/functions_list.txt b/src/wrapped/generated/functions_list.txt
index 631cbec0..0f539550 100644
--- a/src/wrapped/generated/functions_list.txt
+++ b/src/wrapped/generated/functions_list.txt
@@ -969,6 +969,7 @@
 #() pFippi
 #() pFippu
 #() pFuiii
+#() pFuuii
 #() pFulli
 #() pFullu
 #() pFffff
@@ -1710,6 +1711,7 @@
 #() vFEpiiipp
 #() vFEpipppp
 #() vFEpuipuV
+#() vFEppippp
 #() vFEpppppp
 #() vFiiiiiip
 #() vFiiiiuup
@@ -1928,6 +1930,7 @@
 #() vFEiupippp
 #() vFEipAippp
 #() vFEppipppp
+#() vFEpppippp
 #() vFEpppuipV
 #() vFEpppppuu
 #() vFiiiiuuip
@@ -2061,8 +2064,10 @@
 #() vFEpiiiiipp
 #() vFEpippippV
 #() vFEpippippA
+#() vFEpuuuippp
 #() vFEppiipppp
 #() vFEpppiippp
+#() vFEppppippp
 #() vFiiiiiiiii
 #() vFiiiiiiill
 #() vFiiiiillli
@@ -3403,6 +3408,23 @@ wrappedlibglu:
   - gluNurbsCallback
   - gluQuadricCallback
   - gluTessCallback
+wrappedlibibus:
+- vFpippp:
+  - ibus_bus_current_input_context_async
+  - ibus_bus_get_global_engine_async
+  - ibus_bus_list_active_engines_async
+  - ibus_bus_list_engines_async
+  - ibus_input_context_get_engine_async
+- vFppippp:
+  - ibus_bus_create_input_context_async
+  - ibus_bus_set_global_engine_async
+  - ibus_config_get_values_async
+- vFpppippp:
+  - ibus_config_get_value_async
+- vFpuuuippp:
+  - ibus_input_context_process_key_event_async
+- vFppppippp:
+  - ibus_config_set_value_async
 wrappedlibice:
 wrappedlibm:
 - UFV:
diff --git a/src/wrapped/generated/wrappedlibibusdefs.h b/src/wrapped/generated/wrappedlibibusdefs.h
new file mode 100644
index 00000000..ca32b61d
--- /dev/null
+++ b/src/wrapped/generated/wrappedlibibusdefs.h
@@ -0,0 +1,8 @@
+/*******************************************************************
+ * File automatically generated by rebuild_wrappers.py (v2.2.0.16) *
+ *******************************************************************/
+#ifndef __wrappedlibibusDEFS_H_
+#define __wrappedlibibusDEFS_H_
+
+
+#endif // __wrappedlibibusDEFS_H_
diff --git a/src/wrapped/generated/wrappedlibibustypes.h b/src/wrapped/generated/wrappedlibibustypes.h
new file mode 100644
index 00000000..eddf0fd3
--- /dev/null
+++ b/src/wrapped/generated/wrappedlibibustypes.h
@@ -0,0 +1,33 @@
+/*******************************************************************
+ * File automatically generated by rebuild_wrappers.py (v2.2.0.16) *
+ *******************************************************************/
+#ifndef __wrappedlibibusTYPES_H_
+#define __wrappedlibibusTYPES_H_
+
+#ifndef LIBNAME
+#error You should only #include this file inside a wrapped*.c file
+#endif
+#ifndef ADDED_FUNCTIONS
+#define ADDED_FUNCTIONS() 
+#endif
+
+typedef void (*vFpippp_t)(void*, int64_t, void*, void*, void*);
+typedef void (*vFppippp_t)(void*, void*, int64_t, void*, void*, void*);
+typedef void (*vFpppippp_t)(void*, void*, void*, int64_t, void*, void*, void*);
+typedef void (*vFpuuuippp_t)(void*, uint64_t, uint64_t, uint64_t, int64_t, void*, void*, void*);
+typedef void (*vFppppippp_t)(void*, void*, void*, void*, int64_t, void*, void*, void*);
+
+#define SUPER() ADDED_FUNCTIONS() \
+	GO(ibus_bus_current_input_context_async, vFpippp_t) \
+	GO(ibus_bus_get_global_engine_async, vFpippp_t) \
+	GO(ibus_bus_list_active_engines_async, vFpippp_t) \
+	GO(ibus_bus_list_engines_async, vFpippp_t) \
+	GO(ibus_input_context_get_engine_async, vFpippp_t) \
+	GO(ibus_bus_create_input_context_async, vFppippp_t) \
+	GO(ibus_bus_set_global_engine_async, vFppippp_t) \
+	GO(ibus_config_get_values_async, vFppippp_t) \
+	GO(ibus_config_get_value_async, vFpppippp_t) \
+	GO(ibus_input_context_process_key_event_async, vFpuuuippp_t) \
+	GO(ibus_config_set_value_async, vFppppippp_t)
+
+#endif // __wrappedlibibusTYPES_H_
diff --git a/src/wrapped/generated/wrappedlibibusundefs.h b/src/wrapped/generated/wrappedlibibusundefs.h
new file mode 100644
index 00000000..be0fd236
--- /dev/null
+++ b/src/wrapped/generated/wrappedlibibusundefs.h
@@ -0,0 +1,8 @@
+/*******************************************************************
+ * File automatically generated by rebuild_wrappers.py (v2.2.0.16) *
+ *******************************************************************/
+#ifndef __wrappedlibibusUNDEFS_H_
+#define __wrappedlibibusUNDEFS_H_
+
+
+#endif // __wrappedlibibusUNDEFS_H_
diff --git a/src/wrapped/generated/wrapper.c b/src/wrapped/generated/wrapper.c
index 301a4893..5a3b02d5 100644
--- a/src/wrapped/generated/wrapper.c
+++ b/src/wrapped/generated/wrapper.c
@@ -1003,6 +1003,7 @@ typedef void* (*pFipip_t)(int64_t, void*, int64_t, void*);
 typedef void* (*pFippi_t)(int64_t, void*, void*, int64_t);
 typedef void* (*pFippu_t)(int64_t, void*, void*, uint64_t);
 typedef void* (*pFuiii_t)(uint64_t, int64_t, int64_t, int64_t);
+typedef void* (*pFuuii_t)(uint64_t, uint64_t, int64_t, int64_t);
 typedef void* (*pFulli_t)(uint64_t, intptr_t, intptr_t, int64_t);
 typedef void* (*pFullu_t)(uint64_t, intptr_t, intptr_t, uint64_t);
 typedef void* (*pFffff_t)(float, float, float, float);
@@ -1744,6 +1745,7 @@ typedef int64_t (*iWpppppu_t)(void*, void*, void*, void*, void*, uint64_t);
 typedef void (*vFEpiiipp_t)(x64emu_t*, void*, int64_t, int64_t, int64_t, void*, void*);
 typedef void (*vFEpipppp_t)(x64emu_t*, void*, int64_t, void*, void*, void*, void*);
 typedef void (*vFEpuipuV_t)(x64emu_t*, void*, uint64_t, int64_t, void*, uint64_t, void*);
+typedef void (*vFEppippp_t)(x64emu_t*, void*, void*, int64_t, void*, void*, void*);
 typedef void (*vFEpppppp_t)(x64emu_t*, void*, void*, void*, void*, void*, void*);
 typedef void (*vFiiiiiip_t)(int64_t, int64_t, int64_t, int64_t, int64_t, int64_t, void*);
 typedef void (*vFiiiiuup_t)(int64_t, int64_t, int64_t, int64_t, uint64_t, uint64_t, void*);
@@ -1962,6 +1964,7 @@ typedef void (*vFEiippppV_t)(x64emu_t*, int64_t, int64_t, void*, void*, void*, v
 typedef void (*vFEiupippp_t)(x64emu_t*, int64_t, uint64_t, void*, int64_t, void*, void*, void*);
 typedef void (*vFEipAippp_t)(x64emu_t*, int64_t, void*, void*, int64_t, void*, void*, void*);
 typedef void (*vFEppipppp_t)(x64emu_t*, void*, void*, int64_t, void*, void*, void*, void*);
+typedef void (*vFEpppippp_t)(x64emu_t*, void*, void*, void*, int64_t, void*, void*, void*);
 typedef void (*vFEpppuipV_t)(x64emu_t*, void*, void*, void*, uint64_t, int64_t, void*, void*);
 typedef void (*vFEpppppuu_t)(x64emu_t*, void*, void*, void*, void*, void*, uint64_t, uint64_t);
 typedef void (*vFiiiiuuip_t)(int64_t, int64_t, int64_t, int64_t, uint64_t, uint64_t, int64_t, void*);
@@ -2095,8 +2098,10 @@ typedef int64_t (*iWpuipuppp_t)(void*, uint64_t, int64_t, void*, uint64_t, void*
 typedef void (*vFEpiiiiipp_t)(x64emu_t*, void*, int64_t, int64_t, int64_t, int64_t, int64_t, void*, void*);
 typedef void (*vFEpippippV_t)(x64emu_t*, void*, int64_t, void*, void*, int64_t, void*, void*, void*);
 typedef void (*vFEpippippA_t)(x64emu_t*, void*, int64_t, void*, void*, int64_t, void*, void*, void*);
+typedef void (*vFEpuuuippp_t)(x64emu_t*, void*, uint64_t, uint64_t, uint64_t, int64_t, void*, void*, void*);
 typedef void (*vFEppiipppp_t)(x64emu_t*, void*, void*, int64_t, int64_t, void*, void*, void*, void*);
 typedef void (*vFEpppiippp_t)(x64emu_t*, void*, void*, void*, int64_t, int64_t, void*, void*, void*);
+typedef void (*vFEppppippp_t)(x64emu_t*, void*, void*, void*, void*, int64_t, void*, void*, void*);
 typedef void (*vFiiiiiiiii_t)(int64_t, int64_t, int64_t, int64_t, int64_t, int64_t, int64_t, int64_t, int64_t);
 typedef void (*vFiiiiiiill_t)(int64_t, int64_t, int64_t, int64_t, int64_t, int64_t, int64_t, intptr_t, intptr_t);
 typedef void (*vFiiiiillli_t)(int64_t, int64_t, int64_t, int64_t, int64_t, intptr_t, intptr_t, intptr_t, int64_t);
@@ -3370,6 +3375,7 @@ void pFipip(x64emu_t *emu, uintptr_t fcn) { pFipip_t fn = (pFipip_t)fcn; R_RAX=(
 void pFippi(x64emu_t *emu, uintptr_t fcn) { pFippi_t fn = (pFippi_t)fcn; R_RAX=(uintptr_t)fn((int64_t)R_RDI, (void*)R_RSI, (void*)R_RDX, (int64_t)R_RCX); }
 void pFippu(x64emu_t *emu, uintptr_t fcn) { pFippu_t fn = (pFippu_t)fcn; R_RAX=(uintptr_t)fn((int64_t)R_RDI, (void*)R_RSI, (void*)R_RDX, (uint64_t)R_RCX); }
 void pFuiii(x64emu_t *emu, uintptr_t fcn) { pFuiii_t fn = (pFuiii_t)fcn; R_RAX=(uintptr_t)fn((uint64_t)R_RDI, (int64_t)R_RSI, (int64_t)R_RDX, (int64_t)R_RCX); }
+void pFuuii(x64emu_t *emu, uintptr_t fcn) { pFuuii_t fn = (pFuuii_t)fcn; R_RAX=(uintptr_t)fn((uint64_t)R_RDI, (uint64_t)R_RSI, (int64_t)R_RDX, (int64_t)R_RCX); }
 void pFulli(x64emu_t *emu, uintptr_t fcn) { pFulli_t fn = (pFulli_t)fcn; R_RAX=(uintptr_t)fn((uint64_t)R_RDI, (intptr_t)R_RSI, (intptr_t)R_RDX, (int64_t)R_RCX); }
 void pFullu(x64emu_t *emu, uintptr_t fcn) { pFullu_t fn = (pFullu_t)fcn; R_RAX=(uintptr_t)fn((uint64_t)R_RDI, (intptr_t)R_RSI, (intptr_t)R_RDX, (uint64_t)R_RCX); }
 void pFffff(x64emu_t *emu, uintptr_t fcn) { pFffff_t fn = (pFffff_t)fcn; R_RAX=(uintptr_t)fn(emu->xmm[0].f[0], emu->xmm[1].f[0], emu->xmm[2].f[0], emu->xmm[3].f[0]); }
@@ -4111,6 +4117,7 @@ void iWpppppu(x64emu_t *emu, uintptr_t fcn) { iWpppppu_t fn = (iWpppppu_t)fcn; R
 void vFEpiiipp(x64emu_t *emu, uintptr_t fcn) { vFEpiiipp_t fn = (vFEpiiipp_t)fcn; fn(emu, (void*)R_RDI, (int64_t)R_RSI, (int64_t)R_RDX, (int64_t)R_RCX, (void*)R_R8, (void*)R_R9); }
 void vFEpipppp(x64emu_t *emu, uintptr_t fcn) { vFEpipppp_t fn = (vFEpipppp_t)fcn; fn(emu, (void*)R_RDI, (int64_t)R_RSI, (void*)R_RDX, (void*)R_RCX, (void*)R_R8, (void*)R_R9); }
 void vFEpuipuV(x64emu_t *emu, uintptr_t fcn) { vFEpuipuV_t fn = (vFEpuipuV_t)fcn; fn(emu, (void*)R_RDI, (uint64_t)R_RSI, (int64_t)R_RDX, (void*)R_RCX, (uint64_t)R_R8, (void*)(R_RSP + 8)); }
+void vFEppippp(x64emu_t *emu, uintptr_t fcn) { vFEppippp_t fn = (vFEppippp_t)fcn; fn(emu, (void*)R_RDI, (void*)R_RSI, (int64_t)R_RDX, (void*)R_RCX, (void*)R_R8, (void*)R_R9); }
 void vFEpppppp(x64emu_t *emu, uintptr_t fcn) { vFEpppppp_t fn = (vFEpppppp_t)fcn; fn(emu, (void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (void*)R_RCX, (void*)R_R8, (void*)R_R9); }
 void vFiiiiiip(x64emu_t *emu, uintptr_t fcn) { vFiiiiiip_t fn = (vFiiiiiip_t)fcn; fn((int64_t)R_RDI, (int64_t)R_RSI, (int64_t)R_RDX, (int64_t)R_RCX, (int64_t)R_R8, (int64_t)R_R9, *(void**)(R_RSP + 8)); }
 void vFiiiiuup(x64emu_t *emu, uintptr_t fcn) { vFiiiiuup_t fn = (vFiiiiuup_t)fcn; fn((int64_t)R_RDI, (int64_t)R_RSI, (int64_t)R_RDX, (int64_t)R_RCX, (uint64_t)R_R8, (uint64_t)R_R9, *(void**)(R_RSP + 8)); }
@@ -4329,6 +4336,7 @@ void vFEiippppV(x64emu_t *emu, uintptr_t fcn) { vFEiippppV_t fn = (vFEiippppV_t)
 void vFEiupippp(x64emu_t *emu, uintptr_t fcn) { vFEiupippp_t fn = (vFEiupippp_t)fcn; fn(emu, (int64_t)R_RDI, (uint64_t)R_RSI, (void*)R_RDX, (int64_t)R_RCX, (void*)R_R8, (void*)R_R9, *(void**)(R_RSP + 8)); }
 void vFEipAippp(x64emu_t *emu, uintptr_t fcn) { vFEipAippp_t fn = (vFEipAippp_t)fcn; fn(emu, (int64_t)R_RDI, (void*)R_RSI, (void*)R_RDX, (int64_t)R_RCX, (void*)R_R8, (void*)R_R9, *(void**)(R_RSP + 8)); }
 void vFEppipppp(x64emu_t *emu, uintptr_t fcn) { vFEppipppp_t fn = (vFEppipppp_t)fcn; fn(emu, (void*)R_RDI, (void*)R_RSI, (int64_t)R_RDX, (void*)R_RCX, (void*)R_R8, (void*)R_R9, *(void**)(R_RSP + 8)); }
+void vFEpppippp(x64emu_t *emu, uintptr_t fcn) { vFEpppippp_t fn = (vFEpppippp_t)fcn; fn(emu, (void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (int64_t)R_RCX, (void*)R_R8, (void*)R_R9, *(void**)(R_RSP + 8)); }
 void vFEpppuipV(x64emu_t *emu, uintptr_t fcn) { vFEpppuipV_t fn = (vFEpppuipV_t)fcn; fn(emu, (void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (uint64_t)R_RCX, (int64_t)R_R8, (void*)R_R9, (void*)(R_RSP + 8)); }
 void vFEpppppuu(x64emu_t *emu, uintptr_t fcn) { vFEpppppuu_t fn = (vFEpppppuu_t)fcn; fn(emu, (void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (void*)R_RCX, (void*)R_R8, (uint64_t)R_R9, *(uint64_t*)(R_RSP + 8)); }
 void vFiiiiuuip(x64emu_t *emu, uintptr_t fcn) { vFiiiiuuip_t fn = (vFiiiiuuip_t)fcn; fn((int64_t)R_RDI, (int64_t)R_RSI, (int64_t)R_RDX, (int64_t)R_RCX, (uint64_t)R_R8, (uint64_t)R_R9, *(int64_t*)(R_RSP + 8), *(void**)(R_RSP + 16)); }
@@ -4462,8 +4470,10 @@ void iWpuipuppp(x64emu_t *emu, uintptr_t fcn) { iWpuipuppp_t fn = (iWpuipuppp_t)
 void vFEpiiiiipp(x64emu_t *emu, uintptr_t fcn) { vFEpiiiiipp_t fn = (vFEpiiiiipp_t)fcn; fn(emu, (void*)R_RDI, (int64_t)R_RSI, (int64_t)R_RDX, (int64_t)R_RCX, (int64_t)R_R8, (int64_t)R_R9, *(void**)(R_RSP + 8), *(void**)(R_RSP + 16)); }
 void vFEpippippV(x64emu_t *emu, uintptr_t fcn) { vFEpippippV_t fn = (vFEpippippV_t)fcn; fn(emu, (void*)R_RDI, (int64_t)R_RSI, (void*)R_RDX, (void*)R_RCX, (int64_t)R_R8, (void*)R_R9, *(void**)(R_RSP + 8), (void*)(R_RSP + 16)); }
 void vFEpippippA(x64emu_t *emu, uintptr_t fcn) { vFEpippippA_t fn = (vFEpippippA_t)fcn; fn(emu, (void*)R_RDI, (int64_t)R_RSI, (void*)R_RDX, (void*)R_RCX, (int64_t)R_R8, (void*)R_R9, *(void**)(R_RSP + 8), *(void**)(R_RSP + 16)); }
+void vFEpuuuippp(x64emu_t *emu, uintptr_t fcn) { vFEpuuuippp_t fn = (vFEpuuuippp_t)fcn; fn(emu, (void*)R_RDI, (uint64_t)R_RSI, (uint64_t)R_RDX, (uint64_t)R_RCX, (int64_t)R_R8, (void*)R_R9, *(void**)(R_RSP + 8), *(void**)(R_RSP + 16)); }
 void vFEppiipppp(x64emu_t *emu, uintptr_t fcn) { vFEppiipppp_t fn = (vFEppiipppp_t)fcn; fn(emu, (void*)R_RDI, (void*)R_RSI, (int64_t)R_RDX, (int64_t)R_RCX, (void*)R_R8, (void*)R_R9, *(void**)(R_RSP + 8), *(void**)(R_RSP + 16)); }
 void vFEpppiippp(x64emu_t *emu, uintptr_t fcn) { vFEpppiippp_t fn = (vFEpppiippp_t)fcn; fn(emu, (void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (int64_t)R_RCX, (int64_t)R_R8, (void*)R_R9, *(void**)(R_RSP + 8), *(void**)(R_RSP + 16)); }
+void vFEppppippp(x64emu_t *emu, uintptr_t fcn) { vFEppppippp_t fn = (vFEppppippp_t)fcn; fn(emu, (void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (void*)R_RCX, (int64_t)R_R8, (void*)R_R9, *(void**)(R_RSP + 8), *(void**)(R_RSP + 16)); }
 void vFiiiiiiiii(x64emu_t *emu, uintptr_t fcn) { vFiiiiiiiii_t fn = (vFiiiiiiiii_t)fcn; fn((int64_t)R_RDI, (int64_t)R_RSI, (int64_t)R_RDX, (int64_t)R_RCX, (int64_t)R_R8, (int64_t)R_R9, *(int64_t*)(R_RSP + 8), *(int64_t*)(R_RSP + 16), *(int64_t*)(R_RSP + 24)); }
 void vFiiiiiiill(x64emu_t *emu, uintptr_t fcn) { vFiiiiiiill_t fn = (vFiiiiiiill_t)fcn; fn((int64_t)R_RDI, (int64_t)R_RSI, (int64_t)R_RDX, (int64_t)R_RCX, (int64_t)R_R8, (int64_t)R_R9, *(int64_t*)(R_RSP + 8), *(intptr_t*)(R_RSP + 16), *(intptr_t*)(R_RSP + 24)); }
 void vFiiiiillli(x64emu_t *emu, uintptr_t fcn) { vFiiiiillli_t fn = (vFiiiiillli_t)fcn; fn((int64_t)R_RDI, (int64_t)R_RSI, (int64_t)R_RDX, (int64_t)R_RCX, (int64_t)R_R8, (intptr_t)R_R9, *(intptr_t*)(R_RSP + 8), *(intptr_t*)(R_RSP + 16), *(int64_t*)(R_RSP + 24)); }
@@ -5576,6 +5586,7 @@ int isSimpleWrapper(wrapper_t fun) {
 	if (fun == &pFippi) return 1;
 	if (fun == &pFippu) return 1;
 	if (fun == &pFuiii) return 1;
+	if (fun == &pFuuii) return 1;
 	if (fun == &pFulli) return 1;
 	if (fun == &pFullu) return 1;
 	if (fun == &pFffff) return 5;
diff --git a/src/wrapped/generated/wrapper.h b/src/wrapped/generated/wrapper.h
index bd0ea250..2b952c25 100644
--- a/src/wrapped/generated/wrapper.h
+++ b/src/wrapped/generated/wrapper.h
@@ -1002,6 +1002,7 @@ void pFipip(x64emu_t *emu, uintptr_t fnc);
 void pFippi(x64emu_t *emu, uintptr_t fnc);
 void pFippu(x64emu_t *emu, uintptr_t fnc);
 void pFuiii(x64emu_t *emu, uintptr_t fnc);
+void pFuuii(x64emu_t *emu, uintptr_t fnc);
 void pFulli(x64emu_t *emu, uintptr_t fnc);
 void pFullu(x64emu_t *emu, uintptr_t fnc);
 void pFffff(x64emu_t *emu, uintptr_t fnc);
@@ -1743,6 +1744,7 @@ void iWpppppu(x64emu_t *emu, uintptr_t fnc);
 void vFEpiiipp(x64emu_t *emu, uintptr_t fnc);
 void vFEpipppp(x64emu_t *emu, uintptr_t fnc);
 void vFEpuipuV(x64emu_t *emu, uintptr_t fnc);
+void vFEppippp(x64emu_t *emu, uintptr_t fnc);
 void vFEpppppp(x64emu_t *emu, uintptr_t fnc);
 void vFiiiiiip(x64emu_t *emu, uintptr_t fnc);
 void vFiiiiuup(x64emu_t *emu, uintptr_t fnc);
@@ -1961,6 +1963,7 @@ void vFEiippppV(x64emu_t *emu, uintptr_t fnc);
 void vFEiupippp(x64emu_t *emu, uintptr_t fnc);
 void vFEipAippp(x64emu_t *emu, uintptr_t fnc);
 void vFEppipppp(x64emu_t *emu, uintptr_t fnc);
+void vFEpppippp(x64emu_t *emu, uintptr_t fnc);
 void vFEpppuipV(x64emu_t *emu, uintptr_t fnc);
 void vFEpppppuu(x64emu_t *emu, uintptr_t fnc);
 void vFiiiiuuip(x64emu_t *emu, uintptr_t fnc);
@@ -2094,8 +2097,10 @@ void iWpuipuppp(x64emu_t *emu, uintptr_t fnc);
 void vFEpiiiiipp(x64emu_t *emu, uintptr_t fnc);
 void vFEpippippV(x64emu_t *emu, uintptr_t fnc);
 void vFEpippippA(x64emu_t *emu, uintptr_t fnc);
+void vFEpuuuippp(x64emu_t *emu, uintptr_t fnc);
 void vFEppiipppp(x64emu_t *emu, uintptr_t fnc);
 void vFEpppiippp(x64emu_t *emu, uintptr_t fnc);
+void vFEppppippp(x64emu_t *emu, uintptr_t fnc);
 void vFiiiiiiiii(x64emu_t *emu, uintptr_t fnc);
 void vFiiiiiiill(x64emu_t *emu, uintptr_t fnc);
 void vFiiiiillli(x64emu_t *emu, uintptr_t fnc);
diff --git a/src/wrapped/wrappedglib2.c b/src/wrapped/wrappedglib2.c
index 7b3cccc2..db4104ec 100755
--- a/src/wrapped/wrappedglib2.c
+++ b/src/wrapped/wrappedglib2.c
@@ -240,7 +240,7 @@ static void* reversePollFct(void* fct)
     #define GO(A) if((uintptr_t)fct == my_poll_fct_##A) return (void*)my_poll_fct_##A;
     SUPER()
     #undef GO
-    return NULL;
+    return (void*)AddCheckBridge(my_lib->w.bridge, iFpui, fct, 0, "GPollFunc");
 }
 
 // GHashFunc ...
@@ -601,7 +601,7 @@ static void* reverseGLogFuncFct(void* fct)
     #define GO(A) if((uintptr_t)fct == my_GLogFunc_fct_##A) return (void*)my_GLogFunc_fct_##A;
     SUPER()
     #undef GO
-    return NULL;
+    return (void*)AddCheckBridge(my_lib->w.bridge, vFpipp, fct, 0, "GLogFunc");
 }
 // GPrintFunc ...
 #define GO(A)   \
@@ -661,7 +661,7 @@ static void* reverseGOptionArgFct(void* fct)
     #define GO(A) if((uintptr_t)fct == my_GOptionArg_fct_##A) return (void*)my_GOptionArg_fct_##A;
     SUPER()
     #undef GO
-    return NULL;
+    return (void*)AddCheckBridge(my_lib->w.bridge, iFpppp, fct, 0, "GOptionArgFunc");
 }
 // GNodeTraverseFunc ...
 #define GO(A)   \
diff --git a/src/wrapped/wrappedlibibus.c b/src/wrapped/wrappedlibibus.c
new file mode 100644
index 00000000..95ea0f81
--- /dev/null
+++ b/src/wrapped/wrappedlibibus.c
@@ -0,0 +1,123 @@
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#define _GNU_SOURCE         /* See feature_test_macros(7) */
+#include <dlfcn.h>
+
+#include "wrappedlibs.h"
+
+#include "debug.h"
+#include "wrapper.h"
+#include "bridge.h"
+#include "librarian/library_private.h"
+#include "x64emu.h"
+#include "emu/x64emu_private.h"
+#include "callback.h"
+#include "librarian.h"
+#include "box64context.h"
+#include "emu/x64emu_private.h"
+#include "myalign.h"
+
+const char* libibusName = "libibus-1.0.so.5";
+#define LIBNAME libibus
+
+#define ADDED_FUNCTIONS() \
+
+#include "wrappedlibibustypes.h"
+
+#include "wrappercallback.h"
+
+#define SUPER() \
+GO(0)   \
+GO(1)   \
+GO(2)   \
+GO(3)
+
+// GAsyncReadyCallback
+#define GO(A)   \
+static uintptr_t my_GAsyncReadyCallback_fct_##A = 0;   \
+static void my_GAsyncReadyCallback_##A(void* source, void* res, void* data)     \
+{                                       \
+    RunFunction(my_context, my_GAsyncReadyCallback_fct_##A, 3, source, res, data);\
+}
+SUPER()
+#undef GO
+static void* findGAsyncReadyCallbackFct(void* fct)
+{
+    if(!fct) return fct;
+    if(GetNativeFnc((uintptr_t)fct))  return GetNativeFnc((uintptr_t)fct);
+    #define GO(A) if(my_GAsyncReadyCallback_fct_##A == (uintptr_t)fct) return my_GAsyncReadyCallback_##A;
+    SUPER()
+    #undef GO
+    #define GO(A) if(my_GAsyncReadyCallback_fct_##A == 0) {my_GAsyncReadyCallback_fct_##A = (uintptr_t)fct; return my_GAsyncReadyCallback_##A; }
+    SUPER()
+    #undef GO
+    printf_log(LOG_NONE, "Warning, no more slot for libibus GAsyncReadyCallback callback\n");
+    return NULL;
+}
+
+#undef SUPER
+
+EXPORT void my_ibus_bus_create_input_context_async(x64emu_t* emu, void* bus, void* name, int timeout, void* cancel, void* f, void* data)
+{
+    my->ibus_bus_create_input_context_async(bus, name, timeout, cancel, findGAsyncReadyCallbackFct(f), data);
+}
+
+EXPORT void my_ibus_bus_current_input_context_async(x64emu_t* emu, void* bus, int timeout, void* cancel, void* f, void* data)
+{
+    my->ibus_bus_current_input_context_async(bus, timeout, cancel, findGAsyncReadyCallbackFct(f), data);
+}
+
+EXPORT void my_ibus_bus_get_global_engine_async(x64emu_t* emu, void* bus, int timeout, void* cancel, void* f, void* data)
+{
+    my->ibus_bus_get_global_engine_async(bus, timeout, cancel, findGAsyncReadyCallbackFct(f), data);
+}
+
+EXPORT void my_ibus_bus_list_active_engines_async(x64emu_t* emu, void* bus, int timeout, void* cancel, void* f, void* data)
+{
+    my->ibus_bus_list_active_engines_async(bus, timeout, cancel, findGAsyncReadyCallbackFct(f), data);
+}
+
+EXPORT void my_ibus_bus_list_engines_async(x64emu_t* emu, void* bus, int timeout, void* cancel, void* f, void* data)
+{
+    my->ibus_bus_list_engines_async(bus, timeout, cancel, findGAsyncReadyCallbackFct(f), data);
+}
+
+EXPORT void my_ibus_bus_set_global_engine_async(x64emu_t* emu, void* bus, void* engine, int timeout, void* cancel, void* f, void* data)
+{
+    my->ibus_bus_set_global_engine_async(bus, engine, timeout, cancel, findGAsyncReadyCallbackFct(f), data);
+}
+
+EXPORT void my_ibus_config_get_value_async(x64emu_t* emu, void* bus, void* section, void* name, int timeout, void* cancel, void* f, void* data)
+{
+    my->ibus_config_get_value_async(bus, section, name, timeout, cancel, findGAsyncReadyCallbackFct(f), data);
+}
+
+EXPORT void my_ibus_config_get_values_async(x64emu_t* emu, void* bus, void* section, int timeout, void* cancel, void* f, void* data)
+{
+    my->ibus_config_get_values_async(bus, section, timeout, cancel, findGAsyncReadyCallbackFct(f), data);
+}
+
+EXPORT void my_ibus_config_set_value_async(x64emu_t* emu, void* bus, void* section, void* name, void* value, int timeout, void* cancel, void* f, void* data)
+{
+    my->ibus_config_set_value_async(bus, section, name, value, timeout, cancel, findGAsyncReadyCallbackFct(f), data);
+}
+
+EXPORT void my_ibus_input_context_get_engine_async(x64emu_t* emu, void* bus, int timeout, void* cancel, void* f, void* data)
+{
+    my->ibus_input_context_get_engine_async(bus, timeout, cancel, findGAsyncReadyCallbackFct(f), data);
+}
+
+EXPORT void my_ibus_input_context_process_key_event_async(x64emu_t* emu, void* bus, uint32_t keyval, uint32_t keycode, uint32_t state, int timeout, void* cancel, void* f, void* data)
+{
+    my->ibus_input_context_process_key_event_async(bus, keyval, keycode, state, timeout, cancel, findGAsyncReadyCallbackFct(f), data);
+}
+
+#define PRE_INIT    \
+    if(box64_nogtk) \
+        return -1;
+
+#define CUSTOM_INIT \
+    setNeededLibs(lib, 3, "libgio-2.0.so.0", "libgobject-2.0.so.0", "libglib-2.0.so.0");
+
+#include "wrappedlib_init.h"
diff --git a/src/wrapped/wrappedlibibus_private.h b/src/wrapped/wrappedlibibus_private.h
new file mode 100644
index 00000000..35a53927
--- /dev/null
+++ b/src/wrapped/wrappedlibibus_private.h
@@ -0,0 +1,473 @@
+#if !(defined(GO) && defined(GOM) && defined(GO2) && defined(DATA))
+#error meh!
+#endif
+
+//GO(ibus_accelerator_name, 
+//GO(ibus_accelerator_parse, 
+//GO(ibus_accelerator_valid, 
+//GO(ibus_attr_background_new, 
+//GO(ibus_attr_foreground_new, 
+//GO(ibus_attribute_get_attr_type, 
+//GO(ibus_attribute_get_end_index, 
+//GO(ibus_attribute_get_start_index, 
+//GO(ibus_attribute_get_type, 
+//GO(ibus_attribute_get_value, 
+//GO(ibus_attribute_new, 
+//GO(ibus_attr_list_append, 
+//GO(ibus_attr_list_get, 
+//GO(ibus_attr_list_get_type, 
+//GO(ibus_attr_list_new, 
+GO(ibus_attr_type_get_type, LFv)
+GO(ibus_attr_underline_get_type, LFv)
+//GO(ibus_attr_underline_new, 
+//GO(ibus_bus_add_match, 
+//GO(ibus_bus_add_match_async, 
+//GO(ibus_bus_add_match_async_finish, 
+//GO(ibus_bus_create_input_context, 
+GOM(ibus_bus_create_input_context_async, vFEppippp)
+GO(ibus_bus_create_input_context_async_finish, pFppp)
+//GO(ibus_bus_current_input_context, 
+GOM(ibus_bus_current_input_context_async, vFEpippp)
+GO(ibus_bus_current_input_context_async_finish, pFppp)
+//GO(ibus_bus_exit, 
+//GO(ibus_bus_exit_async, 
+//GO(ibus_bus_exit_async_finish, 
+GO(ibus_bus_get_config, pFp)
+//GO(ibus_bus_get_connection, 
+GO(ibus_bus_get_engines_by_names, pFpp)
+//GO(ibus_bus_get_global_engine, 
+GOM(ibus_bus_get_global_engine_async, vFEpippp)
+GO(ibus_bus_get_global_engine_async_finish, pFppp)
+//GO(ibus_bus_get_ibus_property, 
+//GO(ibus_bus_get_ibus_property_async, 
+//GO(ibus_bus_get_ibus_property_async_finish, 
+//GO(ibus_bus_get_name_owner, 
+//GO(ibus_bus_get_name_owner_async, 
+//GO(ibus_bus_get_name_owner_async_finish, 
+//GO(ibus_bus_get_service_name, 
+//GO(ibus_bus_get_type, 
+//GO(ibus_bus_get_use_global_engine, 
+//GO(ibus_bus_get_use_global_engine_async, 
+//GO(ibus_bus_get_use_global_engine_async_finish, 
+//GO(ibus_bus_get_use_sys_layout, 
+//GO(ibus_bus_get_use_sys_layout_async, 
+//GO(ibus_bus_get_use_sys_layout_async_finish, 
+GO(ibus_bus_hello, pFp)
+GO(ibus_bus_is_connected, iFp)
+//GO(ibus_bus_is_global_engine_enabled, 
+//GO(ibus_bus_is_global_engine_enabled_async, 
+//GO(ibus_bus_is_global_engine_enabled_async_finish, 
+//GO(ibus_bus_list_active_engines, 
+GOM(ibus_bus_list_active_engines_async, vFEpippp)
+GO(ibus_bus_list_active_engines_async_finish, pFppp)
+//GO(ibus_bus_list_engines, 
+GOM(ibus_bus_list_engines_async, vFEpippp)
+GO(ibus_bus_list_engines_async_finish, pFppp)
+//GO(ibus_bus_list_names, 
+//GO(ibus_bus_list_queued_owners, 
+GO(ibus_bus_name_flag_get_type, LFv)
+//GO(ibus_bus_name_has_owner, 
+//GO(ibus_bus_name_has_owner_async, 
+//GO(ibus_bus_name_has_owner_async_finish, 
+GO(ibus_bus_new, pFv)
+//GO(ibus_bus_new_async, 
+//GO(ibus_bus_new_async_client, 
+//GO(ibus_bus_preload_engines, 
+//GO(ibus_bus_preload_engines_async, 
+//GO(ibus_bus_preload_engines_async_finish, 
+//GO(ibus_bus_register_component, 
+//GO(ibus_bus_register_component_async, 
+//GO(ibus_bus_register_component_async_finish, 
+//GO(ibus_bus_release_name, 
+//GO(ibus_bus_release_name_async, 
+//GO(ibus_bus_release_name_async_finish, 
+//GO(ibus_bus_remove_match, 
+//GO(ibus_bus_remove_match_async, 
+//GO(ibus_bus_remove_match_async_finish, 
+//GO(ibus_bus_request_name, 
+//GO(ibus_bus_request_name_async, 
+//GO(ibus_bus_request_name_async_finish, 
+GO(ibus_bus_request_name_reply_get_type, LFv)
+//GO(ibus_bus_set_global_engine, 
+GOM(ibus_bus_set_global_engine_async, vFEppippp)
+GO(ibus_bus_set_global_engine_async_finish, pFppp)
+//GO(ibus_bus_set_ibus_property, 
+//GO(ibus_bus_set_ibus_property_async, 
+//GO(ibus_bus_set_ibus_property_async_finish, 
+GO(ibus_bus_set_watch_dbus_signal, vFpi)
+GO(ibus_bus_set_watch_ibus_signal, vFpi)
+GO(ibus_bus_start_service_by_name_reply_get_type, LFv)
+GO(ibus_capabilite_get_type, LFv)
+//GO(ibus_check_algorithmically, 
+//GO(ibus_component_add_engine, 
+//GO(ibus_component_add_observed_path, 
+//GO(ibus_component_check_modification, 
+//GO(ibus_component_get_author, 
+//GO(ibus_component_get_description, 
+//GO(ibus_component_get_engines, 
+//GO(ibus_component_get_exec, 
+//GO(ibus_component_get_homepage, 
+//GO(ibus_component_get_license, 
+//GO(ibus_component_get_name, 
+//GO(ibus_component_get_observed_paths, 
+//GO(ibus_component_get_textdomain, 
+//GO(ibus_component_get_type, 
+//GO(ibus_component_get_version, 
+//GO(ibus_component_new, 
+//GO(ibus_component_new_from_file, 
+//GO(ibus_component_new_from_xml_node, 
+//GO(ibus_component_new_varargs, 
+//GO(ibus_component_output, 
+//GO(ibus_component_output_engines, 
+//GO(ibus_compose_table_check, 
+//DATA(ibus_compose_table_compact, 
+//DATA(ibus_compose_table_compact_32bit, 
+//DATA(ibus_compose_table_compact_32bit_priv, 
+//GO(ibus_compose_table_compact_check, 
+//GO(ibus_compose_table_list_add_array, 
+//GO(ibus_compose_table_list_add_file, 
+//GO(ibus_compose_table_load_cache, 
+//GO(ibus_compose_table_new_with_file, 
+//GO(ibus_compose_table_save_cache, 
+//GO(ibus_config_get_type, 
+//GO(ibus_config_get_value, 
+GOM(ibus_config_get_value_async, vFEpppippp)
+GO(ibus_config_get_value_async_finish, pFppp)
+//GO(ibus_config_get_values, 
+GOM(ibus_config_get_values_async, vFEppippp)
+GO(ibus_config_get_values_async_finish, pFppp)
+//GO(ibus_config_new, 
+//GO(ibus_config_new_async, 
+//GO(ibus_config_new_async_finish, 
+//GO(ibus_config_service_get_type, 
+//GO(ibus_config_service_new, 
+//GO(ibus_config_service_value_changed, 
+//GO(ibus_config_set_value, 
+GOM(ibus_config_set_value_async, vFEppppippp)
+GO(ibus_config_set_value_async_finish, pFppp)
+GO(ibus_config_unset, iFppp)
+GO(ibus_config_unwatch, iFppp)
+GO(ibus_config_watch, iFppp)
+//GO(ibus_emoji_data_get_annotations, 
+//GO(ibus_emoji_data_get_category, 
+//GO(ibus_emoji_data_get_description, 
+//GO(ibus_emoji_data_get_emoji, 
+//GO(ibus_emoji_data_get_type, 
+//GO(ibus_emoji_data_load, 
+//GO(ibus_emoji_data_new, 
+//GO(ibus_emoji_data_save, 
+//GO(ibus_emoji_data_set_annotations, 
+//GO(ibus_emoji_data_set_description, 
+//GO(ibus_emoji_dict_load, 
+//GO(ibus_emoji_dict_lookup, 
+//GO(ibus_emoji_dict_save, 
+//GO(ibus_engine_commit_text, 
+//GO(ibus_engine_delete_surrounding_text, 
+GO(ibus_engine_desc_get_author, pFp)
+GO(ibus_engine_desc_get_description, pFp)
+GO(ibus_engine_desc_get_hotkeys, pFp)
+GO(ibus_engine_desc_get_icon, pFp)
+GO(ibus_engine_desc_get_icon_prop_key, pFp)
+GO(ibus_engine_desc_get_language, pFp)
+GO(ibus_engine_desc_get_layout, pFp)
+GO(ibus_engine_desc_get_layout_option, pFp)
+GO(ibus_engine_desc_get_layout_variant, pFp)
+GO(ibus_engine_desc_get_license, pFp)
+GO(ibus_engine_desc_get_longname, pFp)
+GO(ibus_engine_desc_get_name, pFp)
+GO(ibus_engine_desc_get_rank, iFp)
+GO(ibus_engine_desc_get_setup, pFp)
+GO(ibus_engine_desc_get_symbol, pFp)
+GO(ibus_engine_desc_get_textdomain, pFp)
+GO(ibus_engine_desc_get_type, pFp)
+GO(ibus_engine_desc_get_version, pFp)
+//GO(ibus_engine_desc_new, 
+//GO(ibus_engine_desc_new_from_xml_node, 
+//GO(ibus_engine_desc_new_varargs, 
+//GO(ibus_engine_desc_output, 
+//GO(ibus_engine_forward_key_event, 
+//GO(ibus_engine_get_content_type, 
+//GO(ibus_engine_get_name, 
+//GO(ibus_engine_get_surrounding_text, 
+//GO(ibus_engine_get_type, 
+//GO(ibus_engine_hide_auxiliary_text, 
+//GO(ibus_engine_hide_lookup_table, 
+//GO(ibus_engine_hide_preedit_text, 
+//GO(ibus_engine_new, 
+//GO(ibus_engine_new_with_type, 
+//GO(ibus_engine_register_properties, 
+//GO(ibus_engine_show_auxiliary_text, 
+//GO(ibus_engine_show_lookup_table, 
+//GO(ibus_engine_show_preedit_text, 
+//GO(ibus_engine_simple_add_compose_file, 
+//GO(ibus_engine_simple_add_table, 
+//GO(ibus_engine_simple_add_table_by_locale, 
+//GO(ibus_engine_simple_get_type, 
+//GO(ibus_engine_update_auxiliary_text, 
+//GO(ibus_engine_update_lookup_table, 
+//GO(ibus_engine_update_lookup_table_fast, 
+//GO(ibus_engine_update_preedit_text, 
+//GO(ibus_engine_update_preedit_text_with_mode, 
+//GO(ibus_engine_update_property, 
+GO(ibus_error_get_type, LFv)
+//GO(ibus_error_quark, 
+//GO(ibus_extension_event_get_name, 
+//GO(ibus_extension_event_get_params, 
+//GO(ibus_extension_event_get_type, 
+//GO(ibus_extension_event_get_version, 
+//GO(ibus_extension_event_is_enabled, 
+//GO(ibus_extension_event_is_extension, 
+//GO(ibus_extension_event_new, 
+//GO(ibus_factory_add_engine, 
+//GO(ibus_factory_create_engine, 
+//GO(ibus_factory_get_type, 
+//GO(ibus_factory_new, 
+//GO(ibus_free_strv, 
+//GO(ibus_get_address, 
+//GO(ibus_get_daemon_uid, 
+//GO(ibus_get_language_name, 
+//GO(ibus_get_local_machine_id, 
+//GO(ibus_get_session_id, 
+//GO(ibus_get_socket_path, 
+//GO(ibus_get_timeout, 
+//GO(ibus_get_untranslated_language_name, 
+//GO(ibus_get_user_name, 
+//GO(ibus_hotkey_get_type, 
+//GO(ibus_hotkey_profile_add_hotkey, 
+//GO(ibus_hotkey_profile_add_hotkey_from_string, 
+//GO(ibus_hotkey_profile_filter_key_event, 
+//GO(ibus_hotkey_profile_get_type, 
+//GO(ibus_hotkey_profile_lookup_hotkey, 
+//GO(ibus_hotkey_profile_new, 
+//GO(ibus_hotkey_profile_remove_hotkey, 
+//GO(ibus_hotkey_profile_remove_hotkey_by_event, 
+GO(ibus_init, vFv)
+//GO(ibus_input_context_cancel_hand_writing, 
+//GO(ibus_input_context_cursor_down, 
+//GO(ibus_input_context_cursor_up, 
+GO(ibus_input_context_focus_in, vFp)
+GO(ibus_input_context_focus_out, vFp)
+//GO(ibus_input_context_get_engine, 
+GOM(ibus_input_context_get_engine_async, vFEpippp)
+GO(ibus_input_context_get_engine_async_finish, pFppp)
+//GO(ibus_input_context_get_input_context, 
+//GO(ibus_input_context_get_input_context_async, 
+//GO(ibus_input_context_get_input_context_async_finish, 
+//GO(ibus_input_context_get_type, 
+GO(ibus_input_context_needs_surrounding_text, iFp)
+//GO(ibus_input_context_new, 
+//GO(ibus_input_context_new_async, 
+//GO(ibus_input_context_new_async_finish, 
+//GO(ibus_input_context_page_down, 
+//GO(ibus_input_context_page_up, 
+//GO(ibus_input_context_process_hand_writing_event, 
+//GO(ibus_input_context_process_key_event, 
+GOM(ibus_input_context_process_key_event_async, vFEpuuuippp)
+GO(ibus_input_context_process_key_event_async_finish, pFppp)
+GO(ibus_input_context_property_activate, vFppu)
+//GO(ibus_input_context_property_hide, 
+//GO(ibus_input_context_property_show, 
+GO(ibus_input_context_reset, vFp)
+GO(ibus_input_context_set_capabilities, vFpu)
+//GO(ibus_input_context_set_client_commit_preedit, 
+GO(ibus_input_context_set_content_type, vFpuu)
+GO(ibus_input_context_set_cursor_location, vFpuuuu)
+//GO(ibus_input_context_set_cursor_location_relative, 
+GO(ibus_input_context_set_engine, vFpp)
+GO(ibus_input_context_set_surrounding_text, vFppuu)
+GO(ibus_input_hints_get_type, LFv)
+GO(ibus_input_purpose_get_type, LFv)
+//GO(ibus_key_event_from_string, 
+//GO(ibus_key_event_to_string, 
+//GO(ibus_keymap_fill, 
+GO(ibus_keymap_get, pFp)
+GO(ibus_keymap_get_type, LFv)
+GO(ibus_keymap_lookup_keysym, uFpWu)
+//GO(ibus_keymap_new, 
+//GO(ibus_keysym_to_unicode, 
+//GO(ibus_keyval_convert_case, 
+GO(ibus_keyval_from_name, uFp)
+GO(ibus_keyval_name, pFu)
+//GO(ibus_keyval_to_lower, 
+GO(ibus_keyval_to_unicode, uFu)
+//GO(ibus_keyval_to_upper, 
+GO(ibus_lookup_table_append_candidate, vFpp)
+GO(ibus_lookup_table_append_label, vFpp)
+GO(ibus_lookup_table_clear, vFp)
+//GO(ibus_lookup_table_cursor_down, 
+//GO(ibus_lookup_table_cursor_up, 
+GO(ibus_lookup_table_get_candidate, pFpu)
+GO(ibus_lookup_table_get_cursor_in_page, uFp)
+GO(ibus_lookup_table_get_cursor_pos, uFp)
+GO(ibus_lookup_table_get_label, pFpu)
+GO(ibus_lookup_table_get_number_of_candidates, uFp)
+GO(ibus_lookup_table_get_orientation, iFp)
+GO(ibus_lookup_table_get_page_size, uFp)
+//GO(ibus_lookup_table_get_type, 
+GO(ibus_lookup_table_is_cursor_visible, iFp)
+GO(ibus_lookup_table_is_round, iFp)
+GO(ibus_lookup_table_new, pFuuii)
+//GO(ibus_lookup_table_page_down, 
+//GO(ibus_lookup_table_page_up, 
+GO(ibus_lookup_table_set_cursor_pos, vFpu)
+GO(ibus_lookup_table_set_cursor_visible, vFpi)
+GO(ibus_lookup_table_set_label, vFpup)
+GO(ibus_lookup_table_set_orientation, vFpi)
+GO(ibus_lookup_table_set_page_size, vFpu)
+GO(ibus_lookup_table_set_round, vFpi)
+//GO(ibus_main, 
+GO(ibus_modifier_type_get_type, LFv)
+//GO(ibus_object_destroy, 
+GO(ibus_object_flags_get_type, LFv)
+GO(ibus_object_get_type, LFv)
+//GO(ibus_object_new, 
+//GO(ibus_observed_path_check_modification, 
+//GO(ibus_observed_path_get_type, 
+//GO(ibus_observed_path_new, 
+//GO(ibus_observed_path_new_from_xml_node, 
+//GO(ibus_observed_path_output, 
+//GO(ibus_observed_path_traverse, 
+GO(ibus_orientation_get_type, LFv)
+//GO(ibus_panel_service_candidate_clicked, 
+//GO(ibus_panel_service_commit_text, 
+//GO(ibus_panel_service_cursor_down, 
+//GO(ibus_panel_service_cursor_up, 
+//GO(ibus_panel_service_get_type, 
+//GO(ibus_panel_service_new, 
+//GO(ibus_panel_service_page_down, 
+//GO(ibus_panel_service_page_up, 
+//GO(ibus_panel_service_panel_extension, 
+//GO(ibus_panel_service_panel_extension_register_keys, 
+//GO(ibus_panel_service_property_activate, 
+//GO(ibus_panel_service_property_hide, 
+//GO(ibus_panel_service_property_show, 
+//GO(ibus_panel_service_update_auxiliary_text_received, 
+//GO(ibus_panel_service_update_lookup_table_received, 
+//GO(ibus_panel_service_update_preedit_text_received, 
+GO(ibus_preedit_focus_mode_get_type, LFv)
+GO(ibus_property_get_icon, pFp)
+GO(ibus_property_get_key, pFp)
+GO(ibus_property_get_label, pFp)
+GO(ibus_property_get_prop_type, iFp)
+GO(ibus_property_get_sensitive, iFp)
+GO(ibus_property_get_state, iFp)
+GO(ibus_property_get_sub_props, pFp)
+GO(ibus_property_get_symbol, pFp)
+GO(ibus_property_get_tooltip, pFp)
+GO(ibus_property_get_type, LFv)
+GO(ibus_property_get_visible, iFp)
+//GO(ibus_property_new, 
+//GO(ibus_property_new_varargs, 
+GO(ibus_property_set_icon, vFpp)
+GO(ibus_property_set_label, vFpp)
+GO(ibus_property_set_sensitive, vFpi)
+GO(ibus_property_set_state, vFpi)
+//GO(ibus_property_set_sub_props, 
+GO(ibus_property_set_symbol, vFpp)
+GO(ibus_property_set_tooltip, vFpp)
+GO(ibus_property_set_visible, vFpi)
+//GO(ibus_property_update, 
+//GO(ibus_prop_list_append, 
+GO(ibus_prop_list_get, pFpu)
+GO(ibus_prop_list_get_type, LFv)
+//GO(ibus_prop_list_new, 
+//GO(ibus_prop_list_update_property, 
+GO(ibus_prop_state_get_type, LFv)
+GO(ibus_prop_type_get_type, LFv)
+//GO(ibus_proxy_destroy, 
+//GO(ibus_proxy_get_type, 
+//GO(ibus_quit, 
+//GO(ibus_registry_check_modification, 
+//GO(ibus_registry_get_components, 
+//GO(ibus_registry_get_observed_paths, 
+//GO(ibus_registry_get_type, 
+//GO(ibus_registry_load, 
+//GO(ibus_registry_load_cache, 
+//GO(ibus_registry_load_cache_file, 
+//GO(ibus_registry_load_in_dir, 
+//GO(ibus_registry_new, 
+//GO(ibus_registry_output, 
+//GO(ibus_registry_save_cache, 
+//GO(ibus_registry_save_cache_file, 
+//GO(ibus_registry_start_monitor_changes, 
+//GO(ibus_serializable_copy, 
+//GO(ibus_serializable_deserialize_object, 
+//GO(ibus_serializable_get_qattachment, 
+//GO(ibus_serializable_get_type, 
+//GO(ibus_serializable_new, 
+//GO(ibus_serializable_remove_qattachment, 
+//GO(ibus_serializable_serialize_object, 
+//GO(ibus_serializable_set_qattachment, 
+//GO(ibus_service_class_add_interfaces, 
+//GO(ibus_service_emit_signal, 
+//GO(ibus_service_get_connection, 
+//GO(ibus_service_get_object_path, 
+//GO(ibus_service_get_type, 
+//GO(ibus_service_new, 
+//GO(ibus_service_register, 
+//GO(ibus_service_unregister, 
+//GO(ibus_set_display, 
+//GO(ibus_set_log_handler, 
+//GO(ibus_text_append_attribute, 
+//GO(ibus_text_get_attributes, 
+//GO(ibus_text_get_is_static, 
+//GO(ibus_text_get_length, 
+GO(ibus_text_get_text, pFp)
+GO(ibus_text_get_type, LFv)
+//GO(ibus_text_new_from_printf, 
+//GO(ibus_text_new_from_static_string, 
+GO(ibus_text_new_from_string, pFp)
+//GO(ibus_text_new_from_ucs4, 
+//GO(ibus_text_new_from_unichar, 
+//GO(ibus_text_set_attributes, 
+//GO(ibus_unicode_block_get_end, 
+//GO(ibus_unicode_block_get_name, 
+//GO(ibus_unicode_block_get_start, 
+//GO(ibus_unicode_block_get_type, 
+//GO(ibus_unicode_block_load, 
+//GO(ibus_unicode_block_new, 
+//GO(ibus_unicode_block_save, 
+//GO(ibus_unicode_data_get_alias, 
+//GO(ibus_unicode_data_get_block_name, 
+//GO(ibus_unicode_data_get_code, 
+//GO(ibus_unicode_data_get_name, 
+//GO(ibus_unicode_data_get_type, 
+//GO(ibus_unicode_data_load, 
+//GO(ibus_unicode_data_load_async, 
+//GO(ibus_unicode_data_new, 
+//GO(ibus_unicode_data_save, 
+//GO(ibus_unicode_data_set_block_name, 
+GO(ibus_unicode_to_keyval, uFu)
+//GO(ibus_unset_log_handler, 
+//GO(ibus_write_address, 
+//GO(ibus_x_event_get_event_type, 
+//GO(ibus_x_event_get_group, 
+//GO(ibus_x_event_get_hardware_keycode, 
+//GO(ibus_x_event_get_is_modifier, 
+//GO(ibus_x_event_get_keyval, 
+//GO(ibus_x_event_get_length, 
+//GO(ibus_x_event_get_purpose, 
+//GO(ibus_x_event_get_root, 
+//GO(ibus_x_event_get_same_screen, 
+//GO(ibus_x_event_get_send_event, 
+//GO(ibus_x_event_get_serial, 
+//GO(ibus_x_event_get_state, 
+//GO(ibus_x_event_get_string, 
+//GO(ibus_x_event_get_subwindow, 
+//GO(ibus_x_event_get_time, 
+//GO(ibus_x_event_get_type, 
+//GO(ibus_x_event_get_version, 
+//GO(ibus_x_event_get_window, 
+//GO(ibus_x_event_get_x, 
+//GO(ibus_x_event_get_x_root, 
+//GO(ibus_x_event_get_y, 
+//GO(ibus_x_event_get_y_root, 
+//GO(ibus_x_event_new, 
+//GO(ibus_xevent_type_get_type, 
+//GO(ibus_xml_copy, 
+//GO(ibus_xml_free, 
+//GO(ibus_xml_get_type, 
+//GO(ibus_xml_output, 
+//GO(ibus_xml_parse_buffer, 
+//GO(ibus_xml_parse_file, 
+