tDon't use GTK stock buttons - vaccinewars - be a doctor and try to vaccinate the world (HTM) git clone git://src.adamsgaard.dk/vaccinewars (DIR) Log (DIR) Files (DIR) Refs (DIR) README (DIR) LICENSE --- (DIR) commit fe3bdabeb6b584fc226aa242eb58aace0875323c (DIR) parent 23d277d41e6577856ff102654fe776e310e60b65 (HTM) Author: Ben Webb <ben@salilab.org> Date: Wed, 30 Dec 2020 21:21:43 -0800 Don't use GTK stock buttons Stock buttons are deprecated in GTK3 and removed entirely in GTK4. Use plain labeled buttons instead. Diffstat: M src/gtkport/gtkport.c | 25 +++++-------------------- M src/gtkport/gtkport.h | 6 +----- M src/gui_client/gtk_client.c | 32 ++++++++++++++++---------------- M src/gui_client/newgamedia.c | 6 +++--- M src/gui_client/optdialog.c | 6 +++--- 5 files changed, 28 insertions(+), 47 deletions(-) --- (DIR) diff --git a/src/gtkport/gtkport.c b/src/gtkport/gtkport.c t@@ -45,18 +45,8 @@ #include "mac_helpers.h" #endif -#if CYGWIN -#include "unicodewrap.h" -const gchar *GTK_STOCK_OK = N_("_OK"); -const gchar *GTK_STOCK_CLOSE = N_("_Close"); -const gchar *GTK_STOCK_CANCEL = N_("_Cancel"); -const gchar *GTK_STOCK_REFRESH = N_("_Refresh"); -const gchar *GTK_STOCK_YES = N_("_Yes"); -const gchar *GTK_STOCK_NO = N_("_No"); -const gchar *GTK_STOCK_HELP = N_("_Help"); -#endif - #ifdef CYGWIN +#include "unicodewrap.h" #include <winsock2.h> #include <windows.h> t@@ -5121,9 +5111,9 @@ gboolean dp_g_source_remove(guint tag) return TRUE; } -GtkWidget *NewStockButton(const gchar *label, GtkAccelGroup *accel_group) +GtkWidget *gtk_button_new_with_mnemonic(const gchar *label) { - return gtk_button_new_with_label(_(label)); + return gtk_button_new_with_label(label); } /* We don't really handle styles, so these are just placeholder functions */ t@@ -5362,7 +5352,7 @@ gint OldGtkMessageBox(GtkWidget *parent, const gchar *Text, static gint retval; gboolean imm_return; const gchar *ButtonData[MB_MAX] = { - GTK_STOCK_OK, GTK_STOCK_CANCEL, GTK_STOCK_YES, GTK_STOCK_NO + N_("_OK"), N_("_Cancel"), N_("_Yes"), N_("_No") }; imm_return = Options & MB_IMMRETURN; t@@ -5395,7 +5385,7 @@ gint OldGtkMessageBox(GtkWidget *parent, const gchar *Text, hbbox = gtk_button_box_new(GTK_ORIENTATION_HORIZONTAL); for (i = 0; i < MB_MAX; i++) { if (Options & (1 << i)) { - button = NewStockButton(ButtonData[i], accel_group); + button = gtk_button_new_with_mnemonic(_(ButtonData[i])); if (!imm_return) { g_object_set_data(G_OBJECT(button), "retval", &retval); } t@@ -5413,11 +5403,6 @@ gint OldGtkMessageBox(GtkWidget *parent, const gchar *Text, return retval; } -GtkWidget *NewStockButton(const gchar *label, GtkAccelGroup *accel_group) -{ - return gtk_button_new_from_stock(label); -} - gint GtkMessageBox(GtkWidget *parent, const gchar *Text, const gchar *Title, GtkMessageType type, gint Options) { (DIR) diff --git a/src/gtkport/gtkport.h b/src/gtkport/gtkport.h t@@ -367,6 +367,7 @@ void gtk_container_add(GtkContainer *container, GtkWidget *widget); void gtk_container_set_border_width(GtkContainer *container, guint border_width); GtkWidget *gtk_button_new_with_label(const gchar *label); +GtkWidget *gtk_button_new_with_mnemonic(const gchar *label); GtkWidget *gtk_label_new(const gchar *text); GtkWidget *gtk_box_new(GtkOrientation orientation, gint spacing); void gtk_box_set_homogeneous(GtkBox *box, gboolean homogeneous); t@@ -612,10 +613,6 @@ struct _GtkUrl { #endif /* CYGWIN */ #if CYGWIN -extern const gchar *GTK_STOCK_OK, *GTK_STOCK_CLOSE, *GTK_STOCK_CANCEL, - *GTK_STOCK_REFRESH, *GTK_STOCK_YES, *GTK_STOCK_NO, - *GTK_STOCK_HELP; - typedef enum { GTK_MESSAGE_INFO, t@@ -643,7 +640,6 @@ void TextViewAppend(GtkTextView *textview, const gchar *text, void TextViewClear(GtkTextView *textview); GtkWidget *gtk_url_new(const gchar *text, const gchar *target, const gchar *bin); -GtkWidget *NewStockButton(const gchar *label, GtkAccelGroup *accel_group); gchar *GtkGetFile(const GtkWidget *parent, const gchar *oldname, const gchar *title); void DisplayHTML(GtkWidget *parent, const gchar *bin, const gchar *target); (DIR) diff --git a/src/gui_client/gtk_client.c b/src/gui_client/gtk_client.c t@@ -350,7 +350,7 @@ void ListInventory(GtkWidget *widget, gpointer data) gtk_box_pack_start(GTK_BOX(vbox), hsep, FALSE, FALSE, 0); hbbox = my_hbbox_new(); - button = NewStockButton(GTK_STOCK_CLOSE, accel_group); + button = gtk_button_new_with_mnemonic(_("_Close")); g_signal_connect_swapped(G_OBJECT(button), "clicked", G_CALLBACK(gtk_widget_destroy), G_OBJECT(window)); t@@ -785,7 +785,7 @@ void CompleteHighScoreDialog(gboolean AtEnd) } hbbox = my_hbbox_new(); - button = NewStockButton(GTK_STOCK_CLOSE, HiScoreDialog.accel_group); + button = gtk_button_new_with_mnemonic(_("_Close")); g_signal_connect_swapped(G_OBJECT(button), "clicked", G_CALLBACK(gtk_widget_destroy), G_OBJECT(dialog)); t@@ -1787,14 +1787,14 @@ void DealDrugs(GtkWidget *widget, gpointer data) gtk_box_pack_start(GTK_BOX(vbox), hsep, FALSE, FALSE, 0); hbbox = my_hbbox_new(); - button = NewStockButton(GTK_STOCK_OK, accel_group); + button = gtk_button_new_with_mnemonic(_("_OK")); g_signal_connect(G_OBJECT(button), "clicked", G_CALLBACK(DealOKCallback), data); gtk_widget_set_can_default(button, TRUE); defbutton = button; my_gtk_box_pack_start_defaults(GTK_BOX(hbbox), button); - button = NewStockButton(GTK_STOCK_CANCEL, accel_group); + button = gtk_button_new_with_mnemonic(_("_Cancel")); g_signal_connect_swapped(G_OBJECT(button), "clicked", G_CALLBACK(gtk_widget_destroy), G_OBJECT(dialog)); t@@ -1952,10 +1952,10 @@ void QuestionDialog(char *Data, Player *From) for (i = 0; i < strlen(Responses); i++) { switch (Responses[i]) { case 'Y': - button = NewStockButton(GTK_STOCK_YES, accel_group); + button = gtk_button_new_with_mnemonic(_("_Yes")); break; case 'N': - button = NewStockButton(GTK_STOCK_NO, accel_group); + button = gtk_button_new_with_mnemonic(_("_No")); break; default: for (j = 0, trword = NULL; j < numWords && !trword; j++) { t@@ -2480,7 +2480,7 @@ void display_intro(GtkWidget *widget, gpointer data) gtk_box_pack_start(GTK_BOX(vbox), hsep, FALSE, FALSE, 0); hbbox = my_hbbox_new(); - OKButton = NewStockButton(GTK_STOCK_OK, accel_group); + OKButton = gtk_button_new_with_mnemonic(_("_OK")); g_signal_connect_swapped(G_OBJECT(OKButton), "clicked", G_CALLBACK(gtk_widget_destroy), G_OBJECT(dialog)); t@@ -2649,7 +2649,7 @@ void TransferDialog(gboolean Debt) gtk_box_pack_start(GTK_BOX(vbox), hsep, FALSE, FALSE, 0); hbbox = my_hbbox_new(); - button = NewStockButton(GTK_STOCK_OK, accel_group); + button = gtk_button_new_with_mnemonic(_("_OK")); g_signal_connect(G_OBJECT(button), "clicked", G_CALLBACK(TransferOK), dialog); my_gtk_box_pack_start_defaults(GTK_BOX(hbbox), button); t@@ -2661,7 +2661,7 @@ void TransferDialog(gboolean Debt) G_CALLBACK(TransferPayAll), dialog); my_gtk_box_pack_start_defaults(GTK_BOX(hbbox), button); } - button = NewStockButton(GTK_STOCK_CANCEL, accel_group); + button = gtk_button_new_with_mnemonic(_("_Cancel")); g_signal_connect_swapped(G_OBJECT(button), "clicked", G_CALLBACK(gtk_widget_destroy), G_OBJECT(dialog)); t@@ -2708,7 +2708,7 @@ void ListPlayers(GtkWidget *widget, gpointer data) gtk_box_pack_start(GTK_BOX(vbox), hsep, FALSE, FALSE, 0); hbbox = my_hbbox_new(); - button = NewStockButton(GTK_STOCK_CLOSE, accel_group); + button = gtk_button_new_with_mnemonic(_("_Close")); g_signal_connect_swapped(G_OBJECT(button), "clicked", G_CALLBACK(gtk_widget_destroy), G_OBJECT(dialog)); t@@ -2848,7 +2848,7 @@ void TalkDialog(gboolean TalkToAll) G_CALLBACK(TalkSend), (gpointer)&TalkData); my_gtk_box_pack_start_defaults(GTK_BOX(hbbox), button); - button = NewStockButton(GTK_STOCK_CLOSE, accel_group); + button = gtk_button_new_with_mnemonic(_("_Close")); g_signal_connect_swapped(G_OBJECT(button), "clicked", G_CALLBACK(gtk_widget_destroy), G_OBJECT(dialog)); t@@ -3008,14 +3008,14 @@ void ErrandDialog(gint ErrandType) gtk_box_pack_start(GTK_BOX(vbox), hsep, FALSE, FALSE, 0); hbbox = my_hbbox_new(); - button = NewStockButton(GTK_STOCK_OK, accel_group); + button = gtk_button_new_with_mnemonic(_("_OK")); g_object_set_data(G_OBJECT(button), "dialog", dialog); g_object_set_data(G_OBJECT(button), "errandtype", GINT_TO_POINTER(ErrandType)); g_signal_connect(G_OBJECT(button), "clicked", G_CALLBACK(ErrandOK), (gpointer)clist); my_gtk_box_pack_start_defaults(GTK_BOX(hbbox), button); - button = NewStockButton(GTK_STOCK_CANCEL, accel_group); + button = gtk_button_new_with_mnemonic(_("_Cancel")); g_signal_connect_swapped(G_OBJECT(button), "clicked", G_CALLBACK(gtk_widget_destroy), G_OBJECT(dialog)); t@@ -3237,7 +3237,7 @@ void NewNameDialog(void) hsep = gtk_separator_new(GTK_ORIENTATION_HORIZONTAL); gtk_box_pack_start(GTK_BOX(vbox), hsep, FALSE, FALSE, 0); - button = NewStockButton(GTK_STOCK_OK, accel_group); + button = gtk_button_new_with_mnemonic(_("_OK")); g_signal_connect(G_OBJECT(button), "clicked", G_CALLBACK(NewNameOK), window); gtk_box_pack_start(GTK_BOX(vbox), button, FALSE, FALSE, 0); t@@ -3291,7 +3291,7 @@ void GunShopDialog(void) gtk_box_pack_start(GTK_BOX(vbox), hsep, FALSE, FALSE, 0); hbbox = my_hbbox_new(); - button = NewStockButton(GTK_STOCK_CLOSE, accel_group); + button = gtk_button_new_with_mnemonic(_("_Close")); g_signal_connect_swapped(G_OBJECT(button), "clicked", G_CALLBACK(gtk_widget_destroy), G_OBJECT(window)); t@@ -3351,7 +3351,7 @@ static void CreateSpyReports(void) gtk_box_pack_start(GTK_BOX(vbox), notebook, TRUE, TRUE, 0); - button = NewStockButton(GTK_STOCK_CLOSE, accel_group); + button = gtk_button_new_with_mnemonic(_("_Close")); g_signal_connect_swapped(G_OBJECT(button), "clicked", G_CALLBACK(gtk_widget_destroy), G_OBJECT(window)); (DIR) diff --git a/src/gui_client/newgamedia.c b/src/gui_client/newgamedia.c t@@ -635,7 +635,7 @@ void NewGameDialog(Player *play) hbbox = my_hbbox_new(); /* Button to update metaserver information */ - button = NewStockButton(GTK_STOCK_REFRESH, accel_group); + button = gtk_button_new_with_mnemonic(_("_Refresh")); g_signal_connect(G_OBJECT(button), "clicked", G_CALLBACK(UpdateMetaServerList), NULL); my_gtk_box_pack_start_defaults(GTK_BOX(hbbox), button); t@@ -773,12 +773,12 @@ static void SocksAuthDialog(NetworkBuffer *netbuf, gpointer data) hbbox = my_hbbox_new(); - button = NewStockButton(GTK_STOCK_OK, accel_group); + button = gtk_button_new_with_mnemonic(_("_OK")); g_signal_connect(G_OBJECT(button), "clicked", G_CALLBACK(OKSocksAuth), (gpointer)window); my_gtk_box_pack_start_defaults(GTK_BOX(hbbox), button); - button = NewStockButton(GTK_STOCK_CANCEL, accel_group); + button = gtk_button_new_with_mnemonic(_("_Cancel")); g_signal_connect_swapped(G_OBJECT(button), "clicked", G_CALLBACK(gtk_widget_destroy), G_OBJECT(window)); (DIR) diff --git a/src/gui_client/optdialog.c b/src/gui_client/optdialog.c t@@ -1067,17 +1067,17 @@ void OptDialog(GtkWidget *widget, gpointer data) hbbox = my_hbbox_new(); - button = NewStockButton(GTK_STOCK_OK, accel_group); + button = gtk_button_new_with_mnemonic(_("_OK")); g_signal_connect(G_OBJECT(button), "clicked", G_CALLBACK(OKCallback), (gpointer)dialog); my_gtk_box_pack_start_defaults(GTK_BOX(hbbox), button); - button = NewStockButton(GTK_STOCK_HELP, accel_group); + button = gtk_button_new_with_mnemonic(_("_Help")); g_signal_connect(G_OBJECT(button), "clicked", G_CALLBACK(HelpCallback), (gpointer)notebook); my_gtk_box_pack_start_defaults(GTK_BOX(hbbox), button); - button = NewStockButton(GTK_STOCK_CANCEL, accel_group); + button = gtk_button_new_with_mnemonic(_("_Cancel")); g_signal_connect_swapped(G_OBJECT(button), "clicked", G_CALLBACK(gtk_widget_destroy), G_OBJECT(dialog));