From 8c7f678e2a874e67cf9a7fe2a8181420f2609bca Mon Sep 17 00:00:00 2001 From: Dino Date: Sun, 6 Apr 2025 00:23:03 -0400 Subject: [PATCH] #1287 - remember the size of the help dlog, storing the value in the options file freeciv-client-rc-... --- client/gui-gtk-3.22/helpdlg.c | 7 +++- client/options.c | 66 +++++++++++++++++++++++++++++++++++ client/options.h | 55 +++++++++++++++++++++++++++++ 3 files changed, 127 insertions(+), 1 deletion(-) diff --git a/client/gui-gtk-3.22/helpdlg.c b/client/gui-gtk-3.22/helpdlg.c index 25610f7455..54c3845f8b 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(); @@ -1754,6 +1756,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/options.c b/client/options.c index 9844231493..3ca2952942 100644 --- a/client/options.c +++ b/client/options.c @@ -227,6 +227,8 @@ struct client_options gui_options = { .gui_gtk2_chatline_autocompletion = TRUE, .gui_gtk2_citydlg_xsize = GUI_GTK2_CITYDLG_DEFAULT_XSIZE, .gui_gtk2_citydlg_ysize = GUI_GTK2_CITYDLG_DEFAULT_YSIZE, + .gui_gtk2_helpdlg_xsize = GUI_GTK2_HELPDLG_DEFAULT_XSIZE, + .gui_gtk2_helpdlg_ysize = GUI_GTK2_HELPDLG_DEFAULT_YSIZE, .gui_gtk2_popup_tech_help = GUI_POPUP_TECH_HELP_RULESET, .gui_gtk2_font_city_label = "Monospace 8", .gui_gtk2_font_notify_label = "Monospace Bold 9", @@ -259,6 +261,8 @@ struct client_options gui_options = { .gui_gtk3_chatline_autocompletion = TRUE, .gui_gtk3_citydlg_xsize = GUI_GTK3_CITYDLG_DEFAULT_XSIZE, .gui_gtk3_citydlg_ysize = GUI_GTK3_CITYDLG_DEFAULT_YSIZE, + .gui_gtk3_helpdlg_xsize = GUI_GTK3_HELPDLG_DEFAULT_XSIZE, + .gui_gtk3_helpdlg_ysize = GUI_GTK3_HELPDLG_DEFAULT_YSIZE, .gui_gtk3_popup_tech_help = GUI_POPUP_TECH_HELP_RULESET, .gui_gtk3_governor_range_min = -20, .gui_gtk3_governor_range_max = 20, @@ -294,6 +298,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, @@ -329,6 +335,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, @@ -364,6 +372,8 @@ struct client_options gui_options = { .gui_gtk5_chatline_autocompletion = TRUE, .gui_gtk5_citydlg_xsize = GUI_GTK5_CITYDLG_DEFAULT_XSIZE, .gui_gtk5_citydlg_ysize = GUI_GTK5_CITYDLG_DEFAULT_YSIZE, + .gui_gtk5_helpdlg_xsize = GUI_GTK5_HELPDLG_DEFAULT_XSIZE, + .gui_gtk5_helpdlg_ysize = GUI_GTK5_HELPDLG_DEFAULT_YSIZE, .gui_gtk5_popup_tech_help = GUI_POPUP_TECH_HELP_RULESET, .gui_gtk5_governor_range_min = -20, .gui_gtk5_governor_range_max = 20, @@ -2566,6 +2576,14 @@ static struct client_option client_options[] = { COC_INTERFACE, GUI_GTK2, GUI_GTK2_CITYDLG_DEFAULT_YSIZE, GUI_GTK2_CITYDLG_MIN_YSIZE, GUI_GTK2_CITYDLG_MAX_YSIZE, NULL), + GEN_INT_OPTION(gui_gtk2_helpdlg_xsize, NULL, NULL, + COC_INTERFACE, GUI_GTK2, GUI_GTK2_HELPDLG_DEFAULT_XSIZE, + GUI_GTK2_HELPDLG_MIN_XSIZE, GUI_GTK2_HELPDLG_MAX_XSIZE, + NULL), + GEN_INT_OPTION(gui_gtk2_helpdlg_ysize, NULL, NULL, + COC_INTERFACE, GUI_GTK2, GUI_GTK2_HELPDLG_DEFAULT_YSIZE, + GUI_GTK2_HELPDLG_MIN_YSIZE, GUI_GTK2_HELPDLG_MAX_YSIZE, + NULL), GEN_ENUM_OPTION(gui_gtk2_popup_tech_help, NULL, NULL, COC_INTERFACE, GUI_GTK2, GUI_POPUP_TECH_HELP_RULESET, @@ -2665,6 +2683,14 @@ static struct client_option client_options[] = { COC_INTERFACE, GUI_GTK3, GUI_GTK3_CITYDLG_DEFAULT_YSIZE, GUI_GTK3_CITYDLG_MIN_YSIZE, GUI_GTK3_CITYDLG_MAX_YSIZE, NULL), + GEN_INT_OPTION(gui_gtk3_helpdlg_xsize, NULL, NULL, + COC_INTERFACE, GUI_GTK3, GUI_GTK3_HELPDLG_DEFAULT_XSIZE, + GUI_GTK3_HELPDLG_MIN_XSIZE, GUI_GTK3_HELPDLG_MAX_XSIZE, + NULL), + GEN_INT_OPTION(gui_gtk3_helpdlg_ysize, NULL, NULL, + COC_INTERFACE, GUI_GTK3, GUI_GTK3_HELPDLG_DEFAULT_YSIZE, + GUI_GTK3_HELPDLG_MIN_YSIZE, GUI_GTK3_HELPDLG_MAX_YSIZE, + NULL), GEN_ENUM_OPTION(gui_gtk3_popup_tech_help, NULL, NULL, COC_INTERFACE, GUI_GTK3, GUI_POPUP_TECH_HELP_RULESET, @@ -2850,6 +2876,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 " @@ -3071,6 +3109,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 " @@ -3292,6 +3344,20 @@ static struct client_option client_options[] = { COC_INTERFACE, GUI_GTK5, GUI_GTK5_CITYDLG_DEFAULT_YSIZE, GUI_GTK5_CITYDLG_MIN_YSIZE, GUI_GTK5_CITYDLG_MAX_YSIZE, NULL), + GEN_INT_OPTION(gui_gtk5_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_GTK5, GUI_GTK5_HELPDLG_DEFAULT_XSIZE, + GUI_GTK5_HELPDLG_MIN_XSIZE, GUI_GTK5_HELPDLG_MAX_XSIZE, + NULL), + GEN_INT_OPTION(gui_gtk5_helpdlg_ysize, + N_("Height of the city dialog"), + N_("This value is only used if the height of the city " + "dialog is saved."), + COC_INTERFACE, GUI_GTK5, GUI_GTK5_HELPDLG_DEFAULT_YSIZE, + GUI_GTK5_HELPDLG_MIN_YSIZE, GUI_GTK5_HELPDLG_MAX_YSIZE, + NULL), GEN_ENUM_OPTION(gui_gtk5_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 ff591ab348..9cdb9a7e98 100644 --- a/client/options.h +++ b/client/options.h @@ -247,6 +247,8 @@ struct client_options bool gui_gtk2_chatline_autocompletion; int gui_gtk2_citydlg_xsize; int gui_gtk2_citydlg_ysize; + int gui_gtk2_helpdlg_xsize; + int gui_gtk2_helpdlg_ysize; int gui_gtk2_popup_tech_help; char gui_gtk2_font_city_label[FONT_NAME_SIZE]; char gui_gtk2_font_notify_label[FONT_NAME_SIZE]; @@ -280,6 +282,8 @@ struct client_options bool gui_gtk3_chatline_autocompletion; int gui_gtk3_citydlg_xsize; int gui_gtk3_citydlg_ysize; + int gui_gtk3_helpdlg_xsize; + int gui_gtk3_helpdlg_ysize; int gui_gtk3_popup_tech_help; int gui_gtk3_governor_range_min; int gui_gtk3_governor_range_max; @@ -316,6 +320,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; @@ -352,6 +358,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; @@ -388,6 +396,8 @@ struct client_options bool gui_gtk5_chatline_autocompletion; int gui_gtk5_citydlg_xsize; int gui_gtk5_citydlg_ysize; + int gui_gtk5_helpdlg_xsize; + int gui_gtk5_helpdlg_ysize; int gui_gtk5_popup_tech_help; int gui_gtk5_governor_range_min; int gui_gtk5_governor_range_max; @@ -631,6 +641,15 @@ extern int messages_where[]; /* OR-ed MW_ values [E_COUNT] */ #define GUI_GTK2_CITYDLG_MIN_YSIZE 128 #define GUI_GTK2_CITYDLG_MAX_YSIZE 4096 +/* gui-gtk2: [xy]size of the help dialog */ +#define GUI_GTK2_HELPDLG_DEFAULT_XSIZE 770 +#define GUI_GTK2_HELPDLG_MIN_XSIZE 256 +#define GUI_GTK2_HELPDLG_MAX_XSIZE 4096 + +#define GUI_GTK2_HELPDLG_DEFAULT_YSIZE 512 +#define GUI_GTK2_HELPDLG_MIN_YSIZE 128 +#define GUI_GTK2_HELPDLG_MAX_YSIZE 4096 + #define GUI_GTK_OVERVIEW_MIN_XSIZE 160 #define GUI_GTK_OVERVIEW_MIN_YSIZE 100 @@ -643,6 +662,15 @@ extern int messages_where[]; /* OR-ed MW_ values [E_COUNT] */ #define GUI_GTK3_CITYDLG_MIN_YSIZE 128 #define GUI_GTK3_CITYDLG_MAX_YSIZE 4096 +/* gui-gtk3: [xy]size of the help dialog */ +#define GUI_GTK3_HELPDLG_DEFAULT_XSIZE 770 +#define GUI_GTK3_HELPDLG_MIN_XSIZE 256 +#define GUI_GTK3_HELPDLG_MAX_XSIZE 4096 + +#define GUI_GTK3_HELPDLG_DEFAULT_YSIZE 512 +#define GUI_GTK3_HELPDLG_MIN_YSIZE 128 +#define GUI_GTK3_HELPDLG_MAX_YSIZE 4096 + #define GUI_GTK3_GOV_RANGE_MIN_DEFAULT -20 #define GUI_GTK3_GOV_RANGE_MIN_MIN -100 #define GUI_GTK3_GOV_RANGE_MIN_MAX 0 @@ -660,6 +688,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 @@ -677,6 +714,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 @@ -694,6 +740,15 @@ extern int messages_where[]; /* OR-ed MW_ values [E_COUNT] */ #define GUI_GTK5_CITYDLG_MIN_YSIZE 128 #define GUI_GTK5_CITYDLG_MAX_YSIZE 4096 +/* gui-gtk5.0: [xy]size of the help dialog */ +#define GUI_GTK5_HELPDLG_DEFAULT_XSIZE 770 +#define GUI_GTK5_HELPDLG_MIN_XSIZE 256 +#define GUI_GTK5_HELPDLG_MAX_XSIZE 4096 + +#define GUI_GTK5_HELPDLG_DEFAULT_YSIZE 512 +#define GUI_GTK5_HELPDLG_MIN_YSIZE 128 +#define GUI_GTK5_HELPDLG_MAX_YSIZE 4096 + #define GUI_GTK5_GOV_RANGE_MIN_DEFAULT -20 #define GUI_GTK5_GOV_RANGE_MIN_MIN -100 #define GUI_GTK5_GOV_RANGE_MIN_MAX 0 -- 2.31.0