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));