From d79615488d30e420f86b25601f9947bb25a09f48 Mon Sep 17 00:00:00 2001 From: Dino Date: Wed, 4 Jun 2025 23:37:00 -0400 Subject: [PATCH] #943, gtk3.22,gtk4 & gtk4x clients add zoom in/out menu items --- client/gui-gtk-3.22/gui_main.c | 2 -- client/gui-gtk-3.22/menu.c | 23 +++++++++++++++++++++ client/gui-gtk-4.0/gui_main.c | 2 -- client/gui-gtk-4.0/menu.c | 37 ++++++++++++++++++++++++++++++++++ client/gui-gtk-5.0/gui_main.c | 2 -- client/gui-gtk-5.0/menu.c | 37 ++++++++++++++++++++++++++++++++++ data/gtk3.22_menus.xml | 6 ++++++ 7 files changed, 103 insertions(+), 6 deletions(-) diff --git a/client/gui-gtk-3.22/gui_main.c b/client/gui-gtk-3.22/gui_main.c index 0423fda020..3a9edbe0ad 100644 --- a/client/gui-gtk-3.22/gui_main.c +++ b/client/gui-gtk-3.22/gui_main.c @@ -474,12 +474,10 @@ static gboolean key_press_map_canvas(GtkWidget *w, GdkEventKey *ev, } } else if (!(ev->state & GDK_CONTROL_MASK)) { switch (ev->keyval) { - case GDK_KEY_plus: case GDK_KEY_KP_Add: zoom_step_up(); return TRUE; - case GDK_KEY_minus: case GDK_KEY_KP_Subtract: zoom_step_down(); return TRUE; diff --git a/client/gui-gtk-3.22/menu.c b/client/gui-gtk-3.22/menu.c index 7719284281..e7d8aa9f69 100644 --- a/client/gui-gtk-3.22/menu.c +++ b/client/gui-gtk-3.22/menu.c @@ -39,6 +39,7 @@ #include "mapview_common.h" #include "options.h" #include "tilespec.h" +#include "zoom.h" /* client/gui-gtk-3.22 */ #include "chatline.h" @@ -220,6 +221,8 @@ static void toggle_fog_callback(GtkMenuItem *item, gpointer data); static void scenario_properties_callback(GtkMenuItem *item, gpointer data); static void save_scenario_callback(GtkMenuItem *item, gpointer data); static void center_view_callback(GtkMenuItem *item, gpointer data); +static void zoom_in_callback(GtkMenuItem *item, gpointer data); +static void zoom_out_callback(GtkMenuItem *item, gpointer data); static void report_economy_callback(GtkMenuItem *item, gpointer data); static void report_research_callback(GtkMenuItem *item, gpointer data); static void multiplier_callback(GtkMenuItem *item, gpointer data); @@ -508,6 +511,10 @@ static struct menu_entry_info menu_entries[] = { "CENTER_VIEW", N_("_Center View"), GDK_KEY_c, 0, G_CALLBACK(center_view_callback), MGROUP_PLAYER }, + { "ZOOM_IN", N_("_Zoom in"), GDK_KEY_plus, 0, + G_CALLBACK(zoom_in_callback), MGROUP_PLAYER }, + { "ZOOM_OUT", N_("_Zoom out"), GDK_KEY_minus, 0, + G_CALLBACK(zoom_out_callback), MGROUP_PLAYER }, { "REPORT_ECONOMY", N_("_Economy"), GDK_KEY_F5, 0, G_CALLBACK(report_economy_callback), MGROUP_PLAYER }, { "REPORT_RESEARCH", N_("_Research"), GDK_KEY_F6, 0, @@ -2051,6 +2058,22 @@ static void center_view_callback(GtkMenuItem *action, gpointer data) center_on_unit(); } +/************************************************************************//** + Action "ZOOM_IN" callback. +****************************************************************************/ +static void zoom_in_callback(GtkMenuItem *action, gpointer data) +{ + zoom_step_up(); +} + +/************************************************************************//** + Action "ZOOM_OUT" callback. +****************************************************************************/ +static void zoom_out_callback(GtkMenuItem *action, gpointer data) +{ + zoom_step_down(); +} + /************************************************************************//** Action "REPORT_UNITS" callback. ****************************************************************************/ diff --git a/client/gui-gtk-4.0/gui_main.c b/client/gui-gtk-4.0/gui_main.c index cf16f348aa..a5a0f66310 100644 --- a/client/gui-gtk-4.0/gui_main.c +++ b/client/gui-gtk-4.0/gui_main.c @@ -468,12 +468,10 @@ static gboolean key_press_map_canvas(guint keyval, GdkModifierType state) } } else if (!(state & GDK_CONTROL_MASK)) { switch (keyval) { - case GDK_KEY_plus: case GDK_KEY_KP_Add: zoom_step_up(); return TRUE; - case GDK_KEY_minus: case GDK_KEY_KP_Subtract: zoom_step_down(); return TRUE; diff --git a/client/gui-gtk-4.0/menu.c b/client/gui-gtk-4.0/menu.c index d3b24ef287..47301414a9 100644 --- a/client/gui-gtk-4.0/menu.c +++ b/client/gui-gtk-4.0/menu.c @@ -39,6 +39,7 @@ #include "mapview_common.h" #include "options.h" #include "tilespec.h" +#include "zoom.h" /* client/gui-gtk-4.0 */ #include "chatline.h" @@ -370,6 +371,12 @@ static void full_screen_callback(GSimpleAction *action, static void center_view_callback(GSimpleAction *action, GVariant *parameter, gpointer data); +static void zoom_in_callback(GSimpleAction *action, + GVariant *parameter, + gpointer data); +static void zoom_out_callback(GSimpleAction *action, + GVariant *parameter, + gpointer data); static void report_economy_callback(GSimpleAction *action, GVariant *parameter, gpointer data); @@ -708,6 +715,12 @@ static struct menu_entry_info menu_entries[] = { "CENTER_VIEW", N_("_Center View"), "center_view", "c", MGROUP_PLAYER, NULL, FALSE }, + { "ZOOM_IN", N_("_Zoom in"), + "zoom_in", "plus", MGROUP_PLAYER, + NULL, FALSE }, + { "ZOOM_OUT", N_("_Zoom out"), + "zoom_out", "minus", MGROUP_PLAYER, + NULL, FALSE }, /* Select menu */ { "SELECT_SINGLE", N_("_Single Unit (Unselect Others)"), @@ -1075,6 +1088,8 @@ const GActionEntry acts[] = { { "lua_script", client_lua_script_callback }, { "center_view", center_view_callback }, + { "zoom_in", zoom_in_callback }, + { "zoom_out", zoom_out_callback }, { "select_single", select_single_callback }, { "select_all_tile", select_all_on_tile_callback }, @@ -2803,6 +2818,26 @@ static void center_view_callback(GSimpleAction *action, center_on_unit(); } +/************************************************************************//** + Action "ZOOM_IN" callback. +****************************************************************************/ +static void zoom_in_callback(GSimpleAction *action, + GVariant *parameter, + gpointer data) +{ + zoom_step_up(); +} + +/************************************************************************//** + Action "ZOOM_OUT" callback. +****************************************************************************/ +static void zoom_out_callback(GSimpleAction *action, + GVariant *parameter, + gpointer data) +{ + zoom_step_down(); +} + /************************************************************************//** Action "REPORT_UNITS" callback. ****************************************************************************/ @@ -3115,6 +3150,8 @@ static GMenu *setup_menus(GtkApplication *app) menu_entry_init(view_menu, "FULL_SCREEN"); menu_entry_init(view_menu, "CENTER_VIEW"); + menu_entry_init(view_menu, "ZOOM_IN"); + menu_entry_init(view_menu, "ZOOM_OUT"); submenu_append_unref(menubar, Q_("?verb:_View"), G_MENU_MODEL(view_menu)); diff --git a/client/gui-gtk-5.0/gui_main.c b/client/gui-gtk-5.0/gui_main.c index f8ca2d1bfb..a4ca38ce83 100644 --- a/client/gui-gtk-5.0/gui_main.c +++ b/client/gui-gtk-5.0/gui_main.c @@ -469,12 +469,10 @@ static gboolean key_press_map_canvas(guint keyval, GdkModifierType state) } } else if (!(state & GDK_CONTROL_MASK)) { switch (keyval) { - case GDK_KEY_plus: case GDK_KEY_KP_Add: zoom_step_up(); return TRUE; - case GDK_KEY_minus: case GDK_KEY_KP_Subtract: zoom_step_down(); return TRUE; diff --git a/client/gui-gtk-5.0/menu.c b/client/gui-gtk-5.0/menu.c index 7398bc8580..4ca3de0796 100644 --- a/client/gui-gtk-5.0/menu.c +++ b/client/gui-gtk-5.0/menu.c @@ -39,6 +39,7 @@ #include "mapview_common.h" #include "options.h" #include "tilespec.h" +#include "zoom.h" /* client/gui-gtk-5.0 */ #include "chatline.h" @@ -370,6 +371,12 @@ static void full_screen_callback(GSimpleAction *action, static void center_view_callback(GSimpleAction *action, GVariant *parameter, gpointer data); +static void zoom_in_callback(GSimpleAction *action, + GVariant *parameter, + gpointer data); +static void zoom_out_callback(GSimpleAction *action, + GVariant *parameter, + gpointer data); static void report_economy_callback(GSimpleAction *action, GVariant *parameter, gpointer data); @@ -708,6 +715,12 @@ static struct menu_entry_info menu_entries[] = { "CENTER_VIEW", N_("_Center View"), "center_view", "c", MGROUP_PLAYER, NULL, FALSE }, + { "ZOOM_IN", N_("_Zoom in"), + "zoom_in", "plus", MGROUP_PLAYER, + NULL, FALSE }, + { "ZOOM_OUT", N_("_Zoom out"), + "zoom_out", "minus", MGROUP_PLAYER, + NULL, FALSE }, /* Select menu */ { "SELECT_SINGLE", N_("_Single Unit (Unselect Others)"), @@ -1075,6 +1088,8 @@ const GActionEntry acts[] = { { "lua_script", client_lua_script_callback }, { "center_view", center_view_callback }, + { "zoom_in", zoom_in_callback }, + { "zoom_out", zoom_out_callback }, { "select_single", select_single_callback }, { "select_all_tile", select_all_on_tile_callback }, @@ -2807,6 +2822,26 @@ static void center_view_callback(GSimpleAction *action, center_on_unit(); } +/************************************************************************//** + Action "ZOOM_IN" callback. +****************************************************************************/ +static void zoom_in_callback(GSimpleAction *action, + GVariant *parameter, + gpointer data) +{ + zoom_step_up(); +} + +/************************************************************************//** + Action "ZOOM_OUT" callback. +****************************************************************************/ +static void zoom_out_callback(GSimpleAction *action, + GVariant *parameter, + gpointer data) +{ + zoom_step_down(); +} + /************************************************************************//** Action "REPORT_UNITS" callback. ****************************************************************************/ @@ -3119,6 +3154,8 @@ static GMenu *setup_menus(GtkApplication *app) menu_entry_init(view_menu, "FULL_SCREEN"); menu_entry_init(view_menu, "CENTER_VIEW"); + menu_entry_init(view_menu, "ZOOM_IN"); + menu_entry_init(view_menu, "ZOOM_OUT"); submenu_append_unref(menubar, Q_("?verb:_View"), G_MENU_MODEL(view_menu)); diff --git a/data/gtk3.22_menus.xml b/data/gtk3.22_menus.xml index 3fca3ba009..03dfd9d977 100644 --- a/data/gtk3.22_menus.xml +++ b/data/gtk3.22_menus.xml @@ -216,6 +216,12 @@ + + + + + + -- 2.31.0