From 408af051e29ae57017c24152e746606d29fc3931 Mon Sep 17 00:00:00 2001 From: Dino Date: Tue, 20 May 2025 16:26:07 -0400 Subject: [PATCH] RM #1287 gtk3.22 & gtk4 client, remember size of help dlog --- client/gui-gtk-3.22/helpdlg.c | 7 ++++++- client/gui-gtk-4.0/helpdlg.c | 7 +++++++ client/options.c | 30 ++++++++++++++++++++++++++++++ client/options.h | 22 ++++++++++++++++++++++ 4 files changed, 65 insertions(+), 1 deletion(-) diff --git a/client/gui-gtk-3.22/helpdlg.c b/client/gui-gtk-3.22/helpdlg.c index f9445e9a0a..844a56fb91 100644 --- a/client/gui-gtk-3.22/helpdlg.c +++ b/client/gui-gtk-3.22/helpdlg.c @@ -602,7 +602,9 @@ static void create_help_dialog(void) help_frame = gtk_frame_new(""); gtk_container_add(GTK_CONTAINER(hbox), help_frame); - gtk_widget_set_size_request(help_frame, 520, 350); + gtk_widget_set_size_request(help_frame, + GUI_GTK_OPTION(helpdlg_xsize), + GUI_GTK_OPTION(helpdlg_ysize)); gtk_widget_show(help_frame); help_box = gtk_grid_new(); @@ -1757,6 +1759,9 @@ static void help_command_callback(GtkWidget *w, gint response_id) help_command_update(); } } else { + /* Save size of the dialog. */ + GUI_GTK_OPTION(helpdlg_xsize) = gtk_widget_get_allocated_width(help_frame); + GUI_GTK_OPTION(helpdlg_ysize) = gtk_widget_get_allocated_height(help_frame); gtk_widget_destroy(help_dialog_shell); } } diff --git a/client/gui-gtk-4.0/helpdlg.c b/client/gui-gtk-4.0/helpdlg.c index ac5e18d4aa..5e955000da 100644 --- a/client/gui-gtk-4.0/helpdlg.c +++ b/client/gui-gtk-4.0/helpdlg.c @@ -561,6 +561,9 @@ static void create_help_dialog(void) G_CALLBACK(help_command_callback), NULL); g_signal_connect(help_dialog_shell, "destroy", G_CALLBACK(help_destroy_callback), NULL); + gtk_window_set_default_size(GTK_WINDOW(help_dialog_shell), + GUI_GTK_OPTION(helpdlg_xsize), + GUI_GTK_OPTION(helpdlg_ysize)); hbox = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 5); gtk_box_append(GTK_BOX(gtk_dialog_get_content_area(GTK_DIALOG(help_dialog_shell))), @@ -1806,6 +1809,10 @@ static void help_command_callback(GtkWidget *w, gint response_id) help_command_update(); } } else { + /* Save size of the dialog. */ + gtk_window_get_default_size(GTK_WINDOW(help_dialog_shell), + &GUI_GTK_OPTION(helpdlg_xsize), + &GUI_GTK_OPTION(helpdlg_ysize)); gtk_window_destroy(GTK_WINDOW(help_dialog_shell)); } } diff --git a/client/options.c b/client/options.c index d400c5412c..44e29d09d4 100644 --- a/client/options.c +++ b/client/options.c @@ -293,6 +293,8 @@ struct client_options gui_options = { .gui_gtk3_22_chatline_autocompletion = TRUE, .gui_gtk3_22_citydlg_xsize = GUI_GTK3_22_CITYDLG_DEFAULT_XSIZE, .gui_gtk3_22_citydlg_ysize = GUI_GTK3_22_CITYDLG_DEFAULT_YSIZE, + .gui_gtk3_22_helpdlg_xsize = GUI_GTK3_22_HELPDLG_DEFAULT_XSIZE, + .gui_gtk3_22_helpdlg_ysize = GUI_GTK3_22_HELPDLG_DEFAULT_YSIZE, .gui_gtk3_22_popup_tech_help = GUI_POPUP_TECH_HELP_RULESET, .gui_gtk3_22_governor_range_min = -20, .gui_gtk3_22_governor_range_max = 20, @@ -328,6 +330,8 @@ struct client_options gui_options = { .gui_gtk4_chatline_autocompletion = TRUE, .gui_gtk4_citydlg_xsize = GUI_GTK4_CITYDLG_DEFAULT_XSIZE, .gui_gtk4_citydlg_ysize = GUI_GTK4_CITYDLG_DEFAULT_YSIZE, + .gui_gtk4_helpdlg_xsize = GUI_GTK4_HELPDLG_DEFAULT_XSIZE, + .gui_gtk4_helpdlg_ysize = GUI_GTK4_HELPDLG_DEFAULT_YSIZE, .gui_gtk4_popup_tech_help = GUI_POPUP_TECH_HELP_RULESET, .gui_gtk4_governor_range_min = -20, .gui_gtk4_governor_range_max = 20, @@ -2809,6 +2813,18 @@ static struct client_option client_options[] = { COC_INTERFACE, GUI_GTK3_22, GUI_GTK3_22_CITYDLG_DEFAULT_YSIZE, GUI_GTK3_22_CITYDLG_MIN_YSIZE, GUI_GTK3_22_CITYDLG_MAX_YSIZE, NULL), + GEN_INT_OPTION(gui_gtk3_22_helpdlg_xsize, + N_("Width of the help dialog"), + NULL, + COC_INTERFACE, GUI_GTK3_22, GUI_GTK3_22_HELPDLG_DEFAULT_XSIZE, + GUI_GTK3_22_HELPDLG_MIN_XSIZE, GUI_GTK3_22_HELPDLG_MAX_XSIZE, + NULL), + GEN_INT_OPTION(gui_gtk3_22_helpdlg_ysize, + N_("Height of the help dialog"), + NULL, + COC_INTERFACE, GUI_GTK3_22, GUI_GTK3_22_HELPDLG_DEFAULT_YSIZE, + GUI_GTK3_22_HELPDLG_MIN_YSIZE, GUI_GTK3_22_HELPDLG_MAX_YSIZE, + NULL), GEN_ENUM_OPTION(gui_gtk3_22_popup_tech_help, N_("Popup tech help when gained"), N_("Controls if tech help should be opened when " @@ -3030,6 +3046,20 @@ static struct client_option client_options[] = { COC_INTERFACE, GUI_GTK4, GUI_GTK4_CITYDLG_DEFAULT_YSIZE, GUI_GTK4_CITYDLG_MIN_YSIZE, GUI_GTK4_CITYDLG_MAX_YSIZE, NULL), + GEN_INT_OPTION(gui_gtk4_helpdlg_xsize, + N_("Width of the help dialog"), + N_("This value is only used if the width of the help " + "dialog is saved."), + COC_INTERFACE, GUI_GTK4, GUI_GTK4_HELPDLG_DEFAULT_XSIZE, + GUI_GTK4_HELPDLG_MIN_XSIZE, GUI_GTK4_HELPDLG_MAX_XSIZE, + NULL), + GEN_INT_OPTION(gui_gtk4_helpdlg_ysize, + N_("Height of the help dialog"), + N_("This value is only used if the height of the help " + "dialog is saved."), + COC_INTERFACE, GUI_GTK4, GUI_GTK4_HELPDLG_DEFAULT_YSIZE, + GUI_GTK4_HELPDLG_MIN_YSIZE, GUI_GTK4_HELPDLG_MAX_YSIZE, + NULL), GEN_ENUM_OPTION(gui_gtk4_popup_tech_help, N_("Popup tech help when gained"), N_("Controls if tech help should be opened when " diff --git a/client/options.h b/client/options.h index c4c902f77a..22d374e084 100644 --- a/client/options.h +++ b/client/options.h @@ -315,6 +315,8 @@ struct client_options bool gui_gtk3_22_chatline_autocompletion; int gui_gtk3_22_citydlg_xsize; int gui_gtk3_22_citydlg_ysize; + int gui_gtk3_22_helpdlg_xsize; + int gui_gtk3_22_helpdlg_ysize; int gui_gtk3_22_popup_tech_help; int gui_gtk3_22_governor_range_min; int gui_gtk3_22_governor_range_max; @@ -351,6 +353,8 @@ struct client_options bool gui_gtk4_chatline_autocompletion; int gui_gtk4_citydlg_xsize; int gui_gtk4_citydlg_ysize; + int gui_gtk4_helpdlg_xsize; + int gui_gtk4_helpdlg_ysize; int gui_gtk4_popup_tech_help; int gui_gtk4_governor_range_min; int gui_gtk4_governor_range_max; @@ -623,6 +627,15 @@ extern int messages_where[]; /* OR-ed MW_ values [E_COUNT] */ #define GUI_GTK3_22_CITYDLG_MIN_YSIZE 128 #define GUI_GTK3_22_CITYDLG_MAX_YSIZE 4096 +/* gui-gtk3.22: [xy]size of the help dialog */ +#define GUI_GTK3_22_HELPDLG_DEFAULT_XSIZE 770 +#define GUI_GTK3_22_HELPDLG_MIN_XSIZE 256 +#define GUI_GTK3_22_HELPDLG_MAX_XSIZE 4096 + +#define GUI_GTK3_22_HELPDLG_DEFAULT_YSIZE 512 +#define GUI_GTK3_22_HELPDLG_MIN_YSIZE 128 +#define GUI_GTK3_22_HELPDLG_MAX_YSIZE 4096 + #define GUI_GTK3_22_GOV_RANGE_MIN_DEFAULT -20 #define GUI_GTK3_22_GOV_RANGE_MIN_MIN -100 #define GUI_GTK3_22_GOV_RANGE_MIN_MAX 0 @@ -640,6 +653,15 @@ extern int messages_where[]; /* OR-ed MW_ values [E_COUNT] */ #define GUI_GTK4_CITYDLG_MIN_YSIZE 128 #define GUI_GTK4_CITYDLG_MAX_YSIZE 4096 +/* gui-gtk4.0: [xy]size of the help dialog */ +#define GUI_GTK4_HELPDLG_DEFAULT_XSIZE 770 +#define GUI_GTK4_HELPDLG_MIN_XSIZE 256 +#define GUI_GTK4_HELPDLG_MAX_XSIZE 4096 + +#define GUI_GTK4_HELPDLG_DEFAULT_YSIZE 512 +#define GUI_GTK4_HELPDLG_MIN_YSIZE 128 +#define GUI_GTK4_HELPDLG_MAX_YSIZE 4096 + #define GUI_GTK4_GOV_RANGE_MIN_DEFAULT -20 #define GUI_GTK4_GOV_RANGE_MIN_MIN -100 #define GUI_GTK4_GOV_RANGE_MIN_MAX 0 -- 2.31.0