diff options
| author | ptitSeb <sebastien.chev@gmail.com> | 2023-12-07 22:25:56 +0100 |
|---|---|---|
| committer | ptitSeb <sebastien.chev@gmail.com> | 2023-12-07 22:25:56 +0100 |
| commit | 1d462b75582b8df716631feae9136af07aca8d6c (patch) | |
| tree | 193987bd1c071b6625e8216728e304e6c8cdffe5 | |
| parent | 0a8c3ddd718029263362221d1263fc4aa1b002b2 (diff) | |
| download | box64-1d462b75582b8df716631feae9136af07aca8d6c.tar.gz box64-1d462b75582b8df716631feae9136af07aca8d6c.zip | |
Many new (and some fixed) gtk3/gdk3 functions (for Cemu)
| -rw-r--r-- | src/include/gtkclass.h | 22 | ||||
| -rw-r--r-- | src/tools/gtkclass.c | 39 | ||||
| -rw-r--r-- | src/wrapped/generated/functions_list.txt | 1 | ||||
| -rw-r--r-- | src/wrapped/generated/wrappedgtk3types.h | 1 | ||||
| -rw-r--r-- | src/wrapped/wrappedgdk3_private.h | 10 | ||||
| -rw-r--r-- | src/wrapped/wrappedgtk3.c | 22 | ||||
| -rw-r--r-- | src/wrapped/wrappedgtk3_private.h | 31 |
7 files changed, 110 insertions, 16 deletions
diff --git a/src/include/gtkclass.h b/src/include/gtkclass.h index 974aa0a3..2252c94b 100644 --- a/src/include/gtkclass.h +++ b/src/include/gtkclass.h @@ -438,6 +438,21 @@ typedef struct my_GtkMisc3Class_s void (*_gtk_reserved4) (void); } my_GtkMisc3Class_t; +typedef struct my_GtkImage3_s +{ + my_GtkMisc3_t parent; + void* priv; +} my_GtkImage3_t; + +typedef struct my_GtkImageClass_s +{ + my_GtkMisc3Class_t parent_class; + void (*_gtk_reserved1) (void); + void (*_gtk_reserved2) (void); + void (*_gtk_reserved3) (void); + void (*_gtk_reserved4) (void); +} my_GtkImage3Class_t; + typedef struct my_GtkLabel2_s { my_GtkMisc2_t misc; @@ -1243,13 +1258,13 @@ typedef struct my_GtkFixed2Class_s typedef struct my_GtkFixed3_s { - my_GtkWidget3_t parent; + my_GtkContainer3_t parent; } my_GtkFixed3_t; typedef struct my_GtkFixed3Class_s { - my_GtkWidget3Class_t parent_class; - void* padding[8]; + my_GtkContainer3Class_t parent_class; + void* padding[8]; } my_GtkFixed3Class_t; typedef struct my_GDBusObjectManagerClient_s @@ -2162,6 +2177,7 @@ GTKCLASS(GtkLabel2) \ GTKCLASS(GtkLabel3) \ GTKCLASS(GtkMisc2) \ GTKCLASS(GtkMisc3) \ +GTKCLASS(GtkImage3) \ GTKCLASS(GtkTreeView2) \ GTKCLASS(GtkBin2) \ GTKCLASS(GtkBin3) \ diff --git a/src/tools/gtkclass.c b/src/tools/gtkclass.c index 97eac80d..569f346c 100644 --- a/src/tools/gtkclass.c +++ b/src/tools/gtkclass.c @@ -1149,6 +1149,35 @@ static void bridgeGtkMisc3Instance(my_GtkMisc3_t* class) bridgeGtkWidget3Instance(&class->parent); } +// ----- GtkImage3Class ------ + +// wrap (so bridge all calls, just in case) +static void wrapGtkImage3Class(my_GtkImage3Class_t* class) +{ + wrapGtkMisc3Class(&class->parent_class); +} +// unwrap (and use callback if not a native call anymore) +static void unwrapGtkImage3Class(my_GtkImage3Class_t* class) +{ + unwrapGtkMisc3Class(&class->parent_class); +} +// autobridge +static void bridgeGtkImage3Class(my_GtkImage3Class_t* class) +{ + bridgeGtkMisc3Class(&class->parent_class); +} + +static void unwrapGtkImage3Instance(my_GtkImage3_t* class) +{ + unwrapGtkMisc3Instance(&class->parent); +} +// autobridge +static void bridgeGtkImage3Instance(my_GtkImage3_t* class) +{ + bridgeGtkMisc3Instance(&class->parent); +} + + // ----- GtkLabel2Class ------ // wrapper x86 -> natives of callbacks WRAPPER(GtkLabel2, move_cursor, void, (void* label, int step, int count, int extend_selection), "piii", label, step, count, extend_selection); @@ -1670,27 +1699,27 @@ static void bridgeGtkFixed2Instance(my_GtkFixed2_t* class) // wrap (so bridge all calls, just in case) static void wrapGtkFixed3Class(my_GtkFixed3Class_t* class) { - wrapGtkWidget3Class(&class->parent_class); + wrapGtkContainer3Class(&class->parent_class); } // unwrap (and use callback if not a native call anymore) static void unwrapGtkFixed3Class(my_GtkFixed3Class_t* class) { - unwrapGtkWidget3Class(&class->parent_class); + unwrapGtkContainer3Class(&class->parent_class); } // autobridge static void bridgeGtkFixed3Class(my_GtkFixed3Class_t* class) { - bridgeGtkWidget3Class(&class->parent_class); + bridgeGtkContainer3Class(&class->parent_class); } static void unwrapGtkFixed3Instance(my_GtkFixed3_t* class) { - unwrapGtkWidget3Instance(&class->parent); + unwrapGtkContainer3Instance(&class->parent); } // autobridge static void bridgeGtkFixed3Instance(my_GtkFixed3_t* class) { - bridgeGtkWidget3Instance(&class->parent); + bridgeGtkContainer3Instance(&class->parent); } // ----- MetaFrames2Class ------ diff --git a/src/wrapped/generated/functions_list.txt b/src/wrapped/generated/functions_list.txt index 6c4acab3..2ef24f1b 100644 --- a/src/wrapped/generated/functions_list.txt +++ b/src/wrapped/generated/functions_list.txt @@ -3757,6 +3757,7 @@ wrappedgtk3: - gtk_message_dialog_format_secondary_markup - gtk_message_dialog_format_secondary_text - gtk_style_context_get + - gtk_widget_style_get - uFupp: - gtk_timeout_add - vFpppi: diff --git a/src/wrapped/generated/wrappedgtk3types.h b/src/wrapped/generated/wrappedgtk3types.h index ce86636a..bfc7871d 100644 --- a/src/wrapped/generated/wrappedgtk3types.h +++ b/src/wrapped/generated/wrappedgtk3types.h @@ -54,6 +54,7 @@ typedef void* (*pFpipppppppi_t)(void*, int32_t, void*, void*, void*, void*, void GO(gtk_message_dialog_format_secondary_markup, vFppV_t) \ GO(gtk_message_dialog_format_secondary_text, vFppV_t) \ GO(gtk_style_context_get, vFppV_t) \ + GO(gtk_widget_style_get, vFppV_t) \ GO(gtk_timeout_add, uFupp_t) \ GO(gtk_enumerate_printers, vFpppi_t) \ GO(gtk_object_set_data_full, vFpppp_t) \ diff --git a/src/wrapped/wrappedgdk3_private.h b/src/wrapped/wrappedgdk3_private.h index e763cc8e..21a39f08 100644 --- a/src/wrapped/wrappedgdk3_private.h +++ b/src/wrapped/wrappedgdk3_private.h @@ -89,15 +89,18 @@ GO(gdk_device_get_mode, uFp) GO(gdk_device_get_name, pFp) GO(gdk_device_get_n_axes, iFp) GO(gdk_device_get_n_keys, iFp) +GO(gdk_device_get_position, vFpppp) GO(gdk_device_get_source, uFp) GO(gdk_device_get_state, vFpppp) GO(gdk_device_get_type, iFv) GO(gdk_device_set_axis_use, vFpuu) +GO(gdk_device_manager_get_client_pointer, pFp) GO(gdk_device_manager_get_type, lFv) GO(gdk_device_set_key, vFpuuu) GO(gdk_device_set_mode, iFpu) GO(gdk_device_set_source, vFpi) GO(gdk_devices_list, pFv) +GO(gdk_device_ungrab, vFpu) //GOM(gdk_display_add_client_message_filter, vFEpppp) GO(gdk_display_beep, vFp) GO(gdk_display_close, vFp) @@ -108,6 +111,7 @@ GO(gdk_display_get_default_cursor_size, uFp) GO(gdk_display_get_default_group, pFp) GO(gdk_display_get_default_screen, pFp) GO(gdk_display_get_default_seat, pFp) +GO(gdk_display_get_device_manager, pFp) GO(gdk_display_get_event, pFp) GO(gdk_display_get_maximal_cursor_size, vFppp) GO(gdk_display_get_name, pFp) @@ -476,7 +480,9 @@ GO(gdk_region_union, vFpp) GO(gdk_region_union_with_rect, vFpp) GO(gdk_region_xor, vFpp) GO(gdk_rgba_free, vFp) -GO(gdk_rgba_get_type, lFv) +GO(gdk_rgba_get_type, LFv) +GO(gdk_rgba_parse, iFpp) +GO(gdk_rgba_to_string, pFp) GO(gdk_rgb_cmap_free, vFp) GO(gdk_rgb_cmap_new, pFpi) GO(gdk_rgb_colormap_ditherable, iFp) @@ -506,6 +512,7 @@ GO(gdk_screen_get_monitor_geometry, vFpip) GO(gdk_screen_get_monitor_height_mm, iFpi) GO(gdk_screen_get_monitor_plug_name, pFpi) GO(gdk_screen_get_monitor_width_mm, iFpi) +GO(gdk_screen_get_monitor_workarea, vFpip) GO(gdk_screen_get_n_monitors, iFp) GO(gdk_screen_get_number, iFp) GO(gdk_screen_get_primary_monitor, iFp) @@ -616,6 +623,7 @@ GO(gdk_visual_get_type, LFv) GO(gdk_visual_get_visual_type, uFp) GO(gdk_visual_type_get_type, iFv) GO(gdk_wayland_toplevel_set_transient_for_exported, iFpp) +GO(gdk_wayland_window_get_type, LFv) GO(gdk_wayland_window_set_transient_for_exported, iFpp) //GO(gdk_wcstombs, GOM(gdk_window_add_filter, vFEppp) diff --git a/src/wrapped/wrappedgtk3.c b/src/wrapped/wrappedgtk3.c index 35cea840..2f812afb 100644 --- a/src/wrapped/wrappedgtk3.c +++ b/src/wrapped/wrappedgtk3.c @@ -38,6 +38,8 @@ typedef void* (*pFpu_t)(void*, uint32_t); typedef void* (*pFppi_t)(void*, void*, int); typedef void* (*pFppp_t)(void*, void*, void*); typedef int (*iFppp_t)(void*, void*, void*); +typedef void (*vFppp_t)(void*, void*, void*); +typedef void (*vFppA_t)(void*, void*, va_list); typedef void (*vFpipV_t)(void*, int, void*, ...); #define ADDED_FUNCTIONS() \ @@ -52,6 +54,7 @@ GO(gtk_container_get_type, LFv_t) \ GO(gtk_misc_get_type, LFv_t) \ GO(gtk_label_get_type, LFv_t) \ GO(gtk_list_box_get_type, LFv_t) \ +GO(gtk_image_get_type, LFv_t) \ GO(gtk_list_box_row_get_type, LFv_t) \ GO(gtk_tree_view_get_type, LFv_t) \ GO(gtk_window_get_type, LFv_t) \ @@ -83,6 +86,8 @@ GO(g_log, vFpipV_t) \ GO(g_module_open, pFpu_t) \ GO(g_module_close, vFp_t) \ GO(gtk_tree_store_newv, pFup_t) \ +GO(gtk_widget_style_get_valist, vFppA_t) \ +GO(gtk_widget_style_get_property, vFppp_t) \ #include "generated/wrappedgtk3types.h" @@ -764,6 +769,22 @@ EXPORT void my3_gtk_style_context_get(x64emu_t* emu, void* context, uint32_t fla my->gtk_style_context_get_valist(context, flags, VARARGS); } +EXPORT void my3_gtk_widget_style_get(x64emu_t* emu, void* widget, void* first, uintptr_t* b) +{ + #ifdef PREFER_CONVERT_VAARG + CREATE_VALIST_FROM_VAARG(b, emu->scratch, 2); + my->gtk_widget_style_get_valist(widget, first, VARARGS); + #else + void* prop = first; + int i=0; + do { + void* val = (void*)getVArgs(emu, 2, b, i++); + my->gtk_widget_style_get_property(widget, prop, val); + prop = (void*)getVArgs(emu, 2, b, i++); + } while (prop); + #endif +} + #define PRE_INIT \ if(box64_nogtk) \ return -1; @@ -787,6 +808,7 @@ EXPORT void my3_gtk_style_context_get(x64emu_t* emu, void* context, uint32_t fla SetGtkGrid3ID(my->gtk_grid_get_type()); \ SetGtkMisc3ID(my->gtk_misc_get_type()); \ SetGtkLabel3ID(my->gtk_label_get_type()); \ + SetGtkImage3ID(my->gtk_image_get_type()); \ SetGtkEventControllerID(my->gtk_event_controller_get_type());\ SetGtkGestureID(my->gtk_gesture_get_type()); \ SetGtkGestureSingleID(my->gtk_gesture_single_get_type()); \ diff --git a/src/wrapped/wrappedgtk3_private.h b/src/wrapped/wrappedgtk3_private.h index 524be4e4..277ee68f 100644 --- a/src/wrapped/wrappedgtk3_private.h +++ b/src/wrapped/wrappedgtk3_private.h @@ -330,6 +330,7 @@ GO(gtk_button_new_with_mnemonic, pFp) GO(gtk_button_pressed, vFp) GO(gtk_button_released, vFp) GO(gtk_button_set_alignment, vFpff) +GO(gtk_button_set_always_show_image, vFpi) GO(gtk_button_set_focus_on_click, vFpi) GO(gtk_button_set_image, vFpp) GO(gtk_button_set_image_position, vFpu) @@ -338,6 +339,7 @@ GO(gtk_button_set_relief, vFpu) GO(gtk_button_set_use_stock, vFpi) GO(gtk_button_set_use_underline, vFpi) GO(gtk_buttons_type_get_type, LFv) +GO(gtk_cairo_should_draw_window, iFpp) //GO(gtk_calendar_clear_marks, //GO(gtk_calendar_display_options, GO(gtk_calendar_display_options_get_type, LFv) @@ -556,8 +558,10 @@ GO(gtk_color_button_get_type, LFv) GO(gtk_color_button_get_use_alpha, iFp) GO(gtk_color_button_new, pFv) GO(gtk_color_button_new_with_color, pFp) +GO(gtk_color_button_new_with_rgba, pFp) GO(gtk_color_button_set_alpha, vFpW) GO(gtk_color_button_set_color, vFpp) +GO(gtk_color_button_set_rgba, vFpp) GO(gtk_color_button_set_title, vFpp) GO(gtk_color_button_set_use_alpha, vFpi) GO(gtk_color_chooser_dialog_get_type, LFv) @@ -690,6 +694,7 @@ GO(gtk_container_unset_focus_chain, vFp) GO(gtk_corner_type_get_type, LFv) GO(gtk_css_provider_get_default, pFv) GO(gtk_css_provider_get_named, pFpp) +GO(gtk_css_provider_get_type, LFv) GO(gtk_css_provider_load_from_data, iFpplp) GO(gtk_css_provider_load_from_file, iFppp) GO(gtk_css_provider_load_from_path, iFppp) @@ -1008,6 +1013,7 @@ GO(gtk_event_box_get_visible_window, iFp) GO(gtk_event_box_new, pFv) GO(gtk_event_box_set_above_child, vFpi) GO(gtk_event_box_set_visible_window, vFpi) +GO(gtk_event_controller_set_propagation_phase, vFpi) GO(gtk_events_pending, iFv) GO(gtk_exit, vFi) GO(gtk_expander_get_expanded, iFp) @@ -1196,6 +1202,7 @@ GO(gtk_gamma_curve_new, pFv) GO(gtk_gc_get, pFippu) GO(gtk_gc_release, vFp) GO(gtk_gesture_long_press_new, pFv) +GO(gtk_gesture_pan_new, pFpi) GO(gtk_get_current_event, pFv) GO(gtk_get_current_event_state, iFp) GO(gtk_get_current_event_time, uFv) @@ -1212,6 +1219,7 @@ GO(gtk_grab_get_current, pFv) GO(gtk_grab_remove, vFp) GO(gtk_grid_attach, vFppiiii) GO(gtk_grid_get_type, LFv) +GO(gtk_grid_new, pFv) GO(gtk_grid_set_column_homogeneous, vFpi) GO(gtk_grid_set_column_spacing, vFpu) GO(gtk_grid_set_row_homogeneous, vFpi) @@ -1490,7 +1498,7 @@ GO(gtk_info_bar_add_button, pFppi) GO(gtk_info_bar_get_content_area, pFp) GO(gtk_info_bar_get_message_type, uFp) GO(gtk_info_bar_get_type, LFv) -//GO(gtk_info_bar_new, +GO(gtk_info_bar_new, pFv) //GO(gtk_info_bar_new_with_buttons, GO(gtk_info_bar_response, vFpi) //GO(gtk_info_bar_set_default_response, @@ -1608,8 +1616,8 @@ GO(gtk_license_get_type, LFv) GO(gtk_link_button_get_type, LFv) GO(gtk_link_button_get_uri, pFp) GO(gtk_link_button_get_visited, iFp) -//GO(gtk_link_button_new, -//GO(gtk_link_button_new_with_label, +GO(gtk_link_button_new, pFp) +GO(gtk_link_button_new_with_label, pFpp) GO(gtk_link_button_set_uri, vFpp) //GO(gtk_link_button_set_uri_hook, GO(gtk_link_button_set_visited, vFpi) @@ -1982,6 +1990,7 @@ GO(gtk_paned_get_child2, pFp) GO(gtk_paned_get_handle_window, pFp) GO(gtk_paned_get_position, iFp) GO(gtk_paned_get_type, LFv) +GO(gtk_paned_new, pFi) GO(gtk_paned_pack1, vFppii) GO(gtk_paned_pack2, vFppii) GO(gtk_paned_set_position, vFpi) @@ -2581,16 +2590,18 @@ GO(gtk_scale_button_set_icons, vFpp) GO(gtk_scale_button_set_value, vFpd) //GO(gtk_scale_clear_marks, GO(gtk_scale_get_digits, iFp) -//GO(gtk_scale_get_draw_value, +GO(gtk_scale_get_draw_value, iFp) GO(gtk_scale_get_layout, pFp) GO(gtk_scale_get_layout_offsets, vFppp) GO(gtk_scale_get_type, LFv) GO(gtk_scale_get_value_pos, uFp) +GO(gtk_scale_new, pFip) GO(gtk_scale_set_digits, vFpi) -//GO(gtk_scale_set_draw_value, +GO(gtk_scale_set_draw_value, vFpi) GO(gtk_scale_set_value_pos, vFpu) GO(gtk_scrollable_get_type, LFv) GO(gtk_scrollbar_get_type, LFv) +GO(gtk_scrollbar_new, pFip) GO(gtk_scrolled_window_add_with_viewport, vFpp) GO(gtk_scrolled_window_get_hadjustment, pFp) GO(gtk_scrolled_window_get_hscrollbar, pFp) @@ -3621,6 +3632,7 @@ GO(gtk_tree_view_column_clear_attributes, vFpp) GO(gtk_tree_view_column_clicked, vFp) GO(gtk_tree_view_column_focus_cell, vFpp) GO(gtk_tree_view_column_get_alignment, fFp) +GO(gtk_tree_view_column_get_button, pFp) GO(gtk_tree_view_column_get_cell_renderers, pFp) GO(gtk_tree_view_column_get_clickable, iFp) GO(gtk_tree_view_column_get_expand, iFp) @@ -3860,12 +3872,13 @@ GO(gtk_widget_get_action, pFp) GO(gtk_widget_get_allocation, vFpp) GO(gtk_widget_get_allocated_width, iFp) GO(gtk_widget_get_allocated_height, iFp) -GO(gtk_widget_get_ancestor, pFpi) +GO(gtk_widget_get_ancestor, pFpL) GO(gtk_widget_get_app_paintable, iFp) GO(gtk_widget_get_can_default, iFp) GO(gtk_widget_get_can_focus, iFp) GO(gtk_widget_get_child_requisition, vFpp) GO(gtk_widget_get_child_visible, iFp) +GO(gtk_widget_get_clip, vFpp) GO(gtk_widget_get_clipboard, pFpp) GO(gtk_widget_get_colormap, pFp) GO(gtk_widget_get_composite_name, pFp) @@ -4034,6 +4047,7 @@ GO(gtk_widget_set_app_paintable, vFpi) GO(gtk_widget_set_can_default, vFpi) GO(gtk_widget_set_can_focus, vFpi) GO(gtk_widget_set_child_visible, vFpi) +GO(gtk_widget_set_clip, vFpp) GO(gtk_widget_set_colormap, vFpp) GO(gtk_widget_set_composite_name, vFpp) GO(gtk_widget_set_css_classes, vFpp) @@ -4088,7 +4102,7 @@ GO(gtk_widget_show_now, vFp) GO(gtk_widget_size_allocate, vFpppuii) GO(gtk_widget_size_request, vFpp) GO(gtk_widget_style_attach, vFp) -//GO2(gtk_widget_style_get, vFppV, gtk_widget_style_get_valist) +GOM(gtk_widget_style_get, vFEppV) GO(gtk_widget_style_get_property, vFppp) //GO(gtk_widget_style_get_valist, vFppp) GO(gtk_widget_thaw_child_notify, vFp) @@ -4111,6 +4125,7 @@ GO(gtk_window_deiconify, vFp) GO(gtk_window_destroy, vFp) GO(gtk_window_fullscreen, vFp) GO(gtk_window_get_accept_focus, iFp) +GO(gdk_window_get_clip_region, pFp) GO(gtk_window_get_decorated, iFp) GO(gtk_window_get_default_icon_list, pFv) GO(gtk_window_get_default_icon_name, pFv) @@ -4124,6 +4139,7 @@ GO(gtk_window_get_frame_dimensions, vFppppp) GO(gtk_window_get_gravity, uFp) GO(gtk_window_get_group, pFp) GO(gtk_window_get_has_frame, iFp) +GO(gtk_window_get_has_resize_grip, iFp) GO(gtk_window_get_icon, pFp) GO(gtk_window_get_icon_list, pFp) GO(gtk_window_get_icon_name, pFp) @@ -4134,6 +4150,7 @@ GO(gtk_window_get_opacity, dFp) GO(gtk_window_get_position, vFppp) GO(gtk_window_get_resizable, iFp) GO(gtk_window_get_role, pFp) +GO(gdk_window_get_scale_factor, iFp) GO(gtk_window_get_screen, pFp) GO(gtk_window_get_size, vFppp) GO(gtk_window_get_skip_pager_hint, iFp) |