diff options
| author | ptitSeb <sebastien.chev@gmail.com> | 2024-10-17 13:07:44 +0200 |
|---|---|---|
| committer | ptitSeb <sebastien.chev@gmail.com> | 2024-10-17 13:07:44 +0200 |
| commit | 22a89ba91475a24e766bf941a5efd2b634cf5461 (patch) | |
| tree | 00e62ad5263d041d6102c9eeafb676cb40f3b730 /src | |
| parent | fda9b6f75ddf7a2b0e68852ef7faa387d0870119 (diff) | |
| download | box64-22a89ba91475a24e766bf941a5efd2b634cf5461.tar.gz box64-22a89ba91475a24e766bf941a5efd2b634cf5461.zip | |
Added 1 more wrapped symbol to gtk2 (for #1943)
Diffstat (limited to 'src')
| -rw-r--r-- | src/wrapped/generated/functions_list.txt | 2 | ||||
| -rw-r--r-- | src/wrapped/generated/wrappedgtkx112types.h | 2 | ||||
| -rw-r--r-- | src/wrapped/wrappedgtkx112.c | 29 | ||||
| -rw-r--r-- | src/wrapped/wrappedgtkx112_private.h | 2 |
4 files changed, 34 insertions, 1 deletions
diff --git a/src/wrapped/generated/functions_list.txt b/src/wrapped/generated/functions_list.txt index 6cf07d8b..13d90d63 100644 --- a/src/wrapped/generated/functions_list.txt +++ b/src/wrapped/generated/functions_list.txt @@ -4104,6 +4104,8 @@ wrappedgtkx112: - iFpp: - gtk_init_check - gtk_type_unique +- uFpp: + - gtk_key_snooper_install - pFiV: - gtk_list_store_new - gtk_tree_store_new diff --git a/src/wrapped/generated/wrappedgtkx112types.h b/src/wrapped/generated/wrappedgtkx112types.h index e66c8b6e..1fea124f 100644 --- a/src/wrapped/generated/wrappedgtkx112types.h +++ b/src/wrapped/generated/wrappedgtkx112types.h @@ -15,6 +15,7 @@ typedef float (*fFp_t)(void*); typedef void* (*pFi_t)(int32_t); typedef void (*vFpp_t)(void*, void*); typedef int32_t (*iFpp_t)(void*, void*); +typedef uint32_t (*uFpp_t)(void*, void*); typedef void* (*pFiV_t)(int32_t, ...); typedef void* (*pFpi_t)(void*, int32_t); typedef void (*vFppp_t)(void*, void*, void*); @@ -51,6 +52,7 @@ typedef void* (*pFpipppppppi_t)(void*, int32_t, void*, void*, void*, void*, void GO(gtk_init, vFpp_t) \ GO(gtk_init_check, iFpp_t) \ GO(gtk_type_unique, iFpp_t) \ + GO(gtk_key_snooper_install, uFpp_t) \ GO(gtk_list_store_new, pFiV_t) \ GO(gtk_tree_store_new, pFiV_t) \ GO(gtk_type_check_object_cast, pFpi_t) \ diff --git a/src/wrapped/wrappedgtkx112.c b/src/wrapped/wrappedgtkx112.c index 39f1b08a..5dc94f0d 100644 --- a/src/wrapped/wrappedgtkx112.c +++ b/src/wrapped/wrappedgtkx112.c @@ -712,6 +712,29 @@ static void* reverse_GtkLinkButtonUri_Fct(void* fct) return (void*)AddBridge(my_lib->w.bridge, vFppp, fct, 0, NULL); } +// GtkKeySnoopFunc ... +#define GO(A) \ +static uintptr_t my_GtkKeySnoopFunc_fct_##A = 0; \ +static void my_GtkKeySnoopFunc_##A(void* a, void* b, void* c) \ +{ \ + RunFunctionFmt(my_GtkKeySnoopFunc_fct_##A, "ppp", a, b, c); \ +} +SUPER() +#undef GO +static void* find_GtkKeySnoopFunc_Fct(void* fct) +{ + if(!fct) return fct; + if(GetNativeFnc((uintptr_t)fct)) return GetNativeFnc((uintptr_t)fct); + #define GO(A) if(my_GtkKeySnoopFunc_fct_##A == (uintptr_t)fct) return my_GtkKeySnoopFunc_##A; + SUPER() + #undef GO + #define GO(A) if(my_GtkKeySnoopFunc_fct_##A == 0) {my_GtkKeySnoopFunc_fct_##A = (uintptr_t)fct; return my_GtkKeySnoopFunc_##A; } + SUPER() + #undef GO + printf_log(LOG_NONE, "Warning, no more slot for gtk-2 GtkKeySnoopFunc callback\n"); + return NULL; +} + #undef SUPER EXPORT void my_gtk_dialog_add_buttons(x64emu_t* emu, void* dialog, void* first, uintptr_t* b) @@ -1188,6 +1211,12 @@ EXPORT void my_gtk_print_job_send(x64emu_t* emu, void* job, void* f, void* data, my->gtk_print_job_send(job, find_GtkPrintJobCompleteFunc_Fct(f), data, findGDestroyNotifyFct(d)); } +EXPORT uint32_t my_gtk_key_snooper_install(x64emu_t* emu, void* f, void* data) +{ + (void)emu; + return my->gtk_key_snooper_install(find_GtkKeySnoopFunc_Fct(f), data); +} + #define PRE_INIT \ if(box64_nogtk) \ return -1; diff --git a/src/wrapped/wrappedgtkx112_private.h b/src/wrapped/wrappedgtkx112_private.h index ea9c9df9..f0ad7677 100644 --- a/src/wrapped/wrappedgtkx112_private.h +++ b/src/wrapped/wrappedgtkx112_private.h @@ -1466,7 +1466,7 @@ GO(gtk_item_get_type, LFv) //GO(gtk_item_select, GO(gtk_item_toggle, vFp) GO(gtk_justification_get_type, LFv) -//GOM(gtk_key_snooper_install, uFEBp) +GOM(gtk_key_snooper_install, uFEpp) GO(gtk_key_snooper_remove, vFu) GO(gtk_label_get, vFpp) GO(gtk_label_get_angle, dFp) |