tAdd GTK+3 support for label mnemonics - vaccinewars - be a doctor and try to v… | |
git clone git://src.adamsgaard.dk/vaccinewars | |
Log | |
Files | |
Refs | |
README | |
LICENSE | |
--- | |
commit 65604cd8b7f5b777ebbb06e0b2c8b8188824ec93 | |
parent 8eb75d2a1f40c9d0733596a960edcf2c7ef76c37 | |
Author: Ben Webb <[email protected]> | |
Date: Wed, 25 Nov 2020 14:03:53 -0800 | |
Add GTK+3 support for label mnemonics | |
Use new functions to support keyboard accelerators for | |
GtkLabels. These should in principle work in both GTK+2 | |
and GTK+3, but in my testing they don't seem to work on | |
GTK+2 (at least on Mac) so keep the old code path there. | |
Diffstat: | |
M src/gtkport/gtkport.c | 10 ++++++++++ | |
M src/gui_client/newgamedia.c | 10 ++++++++++ | |
2 files changed, 20 insertions(+), 0 deletions(-) | |
--- | |
diff --git a/src/gtkport/gtkport.c b/src/gtkport/gtkport.c | |
t@@ -5221,6 +5221,7 @@ guint SetAccelerator(GtkWidget *labelparent, gchar *Text, | |
GtkWidget *sendto, gchar *signal, | |
GtkAccelGroup *accel_group, gboolean needalt) | |
{ | |
+#if GTK_MAJOR_VERSION == 2 | |
guint AccelKey; | |
AccelKey = | |
t@@ -5231,6 +5232,15 @@ guint SetAccelerator(GtkWidget *labelparent, gchar *Tex… | |
GTK_ACCEL_VISIBLE); | |
} | |
return AccelKey; | |
+#else | |
+ gtk_label_set_text_with_mnemonic( | |
+ GTK_LABEL(gtk_bin_get_child(GTK_BIN(labelparent))), Text); | |
+ if (sendto) { | |
+ gtk_label_set_mnemonic_widget( | |
+ GTK_LABEL(gtk_bin_get_child(GTK_BIN(labelparent))), sendto); | |
+ } | |
+ return 0; | |
+#endif | |
} | |
GtkWidget *gtk_scrolled_text_view_new(GtkWidget **pack_widg) | |
diff --git a/src/gui_client/newgamedia.c b/src/gui_client/newgamedia.c | |
t@@ -463,7 +463,9 @@ void NewGameDialog(Player *play) | |
GtkWidget *vbox, *vbox2, *hbox, *label, *entry, *notebook; | |
GtkWidget *frame, *button, *dialog; | |
GtkAccelGroup *accel_group; | |
+#if GTK_MAJOR_VERSION == 2 | |
guint AccelKey; | |
+#endif | |
#ifdef NETWORKING | |
GtkWidget *clist, *scrollwin, *table, *hbbox, *defbutton; | |
t@@ -501,15 +503,23 @@ void NewGameDialog(Player *play) | |
label = gtk_label_new(""); | |
+#if GTK_MAJOR_VERSION == 2 | |
AccelKey = gtk_label_parse_uline(GTK_LABEL(label), | |
+#else | |
+ gtk_label_set_text_with_mnemonic(GTK_LABEL(label), | |
+#endif | |
/* Prompt for player's name in 'New | |
Game' dialog */ | |
_("Hey dude, what's your _name?")); | |
gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0); | |
entry = stgam.name = gtk_entry_new(); | |
+#if GTK_MAJOR_VERSION == 2 | |
gtk_widget_add_accelerator(entry, "grab-focus", accel_group, AccelKey, | |
GDK_MOD1_MASK, GTK_ACCEL_VISIBLE); | |
+#else | |
+ gtk_label_set_mnemonic_widget(GTK_LABEL(label), entry); | |
+#endif | |
gtk_entry_set_text(GTK_ENTRY(entry), GetPlayerName(stgam.play)); | |
gtk_box_pack_start(GTK_BOX(hbox), entry, TRUE, TRUE, 0); | |