tKeyboard shortcuts now work again for "stock" buttons under GTK+1. - vaccinewa… | |
git clone git://src.adamsgaard.dk/vaccinewars | |
Log | |
Files | |
Refs | |
README | |
LICENSE | |
--- | |
commit f2389c43adcb2fa396a1c7a246a3f2cd31f781d9 | |
parent d3976c0b72e808e93f1780459629e916449a07f4 | |
Author: Ben Webb <[email protected]> | |
Date: Mon, 8 Apr 2002 13:06:40 +0000 | |
Keyboard shortcuts now work again for "stock" buttons under GTK+1. | |
Diffstat: | |
M src/gtkport/gtkport.c | 29 +++++++++++++++++++++-------- | |
M src/gtkport/gtkport.h | 11 +++-------- | |
M src/gui_client/gtk_client.c | 57 ++++++++++++++++++++++-------… | |
M src/gui_client/newgamedia.c | 18 +++++++++++++----- | |
M src/gui_client/optdialog.c | 7 +++++-- | |
5 files changed, 82 insertions(+), 40 deletions(-) | |
--- | |
diff --git a/src/gtkport/gtkport.c b/src/gtkport/gtkport.c | |
t@@ -39,6 +39,15 @@ | |
#include "gtkport.h" | |
#include "nls.h" | |
+#if CYGWIN || !HAVE_GLIB2 | |
+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"); | |
+#endif | |
+ | |
#ifdef CYGWIN | |
#include <windows.h> | |
t@@ -5003,9 +5012,9 @@ void gtk_timeout_remove(guint timeout_handler_id) | |
} | |
} | |
-GtkWidget *gtk_button_new_from_stock(const gchar *label) | |
+GtkWidget *NewStockButton(const gchar *label, GtkAccelGroup *accel_group) | |
{ | |
- 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@@ -5144,7 +5153,7 @@ gint OldGtkMessageBox(GtkWidget *parent, const gchar *Te… | |
gint i; | |
static gint retval; | |
gboolean imm_return; | |
- gchar *ButtonData[MB_MAX] = { | |
+ const gchar *ButtonData[MB_MAX] = { | |
GTK_STOCK_OK, GTK_STOCK_CANCEL, GTK_STOCK_YES, GTK_STOCK_NO | |
}; | |
t@@ -5178,7 +5187,7 @@ gint OldGtkMessageBox(GtkWidget *parent, const gchar *Te… | |
hbbox = gtk_hbutton_box_new(); | |
for (i = 0; i < MB_MAX; i++) { | |
if (Options & (1 << i)) { | |
- button = gtk_button_new_from_stock(ButtonData[i]); | |
+ button = NewStockButton(ButtonData[i], accel_group); | |
if (!imm_return) { | |
gtk_object_set_data(GTK_OBJECT(button), "retval", &retval); | |
} | |
t@@ -5198,6 +5207,11 @@ gint OldGtkMessageBox(GtkWidget *parent, const gchar *T… | |
#ifdef HAVE_GLIB2 | |
+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) | |
{ | |
t@@ -5231,13 +5245,12 @@ gint GtkMessageBox(GtkWidget *parent, const gchar *Tex… | |
return OldGtkMessageBox(parent, Text, Title, Options); | |
} | |
-GtkWidget *gtk_button_new_from_stock(const gchar *label) | |
+GtkWidget *NewStockButton(const gchar *label, GtkAccelGroup *accel_group) | |
{ | |
GtkWidget *button; | |
-/*button = gtk_button_new_with_label(""); | |
- SetAccelerator(button, label, button, "clicked", accel_group, TRUE);*/ | |
- button = gtk_button_new_with_label(label); | |
+ button = gtk_button_new_with_label(""); | |
+ SetAccelerator(button, _(label), button, "clicked", accel_group, FALSE); | |
return button; | |
} | |
diff --git a/src/gtkport/gtkport.h b/src/gtkport/gtkport.h | |
t@@ -807,14 +807,8 @@ struct _GtkUrl { | |
#endif /* CYGWIN */ | |
#if CYGWIN || !HAVE_GLIB2 | |
-#define GTK_STOCK_OK _("OK") | |
-#define GTK_STOCK_CLOSE _("Close") | |
-#define GTK_STOCK_CANCEL _("Cancel") | |
-#define GTK_STOCK_REFRESH _("Refresh") | |
-#define GTK_STOCK_YES _("Yes") | |
-#define GTK_STOCK_NO _("No") | |
- | |
-GtkWidget *gtk_button_new_from_stock(const gchar *label); | |
+extern const gchar *GTK_STOCK_OK, *GTK_STOCK_CLOSE, *GTK_STOCK_CANCEL, | |
+ *GTK_STOCK_REFRESH, *GTK_STOCK_YES, *GTK_STOCK_NO; | |
typedef enum | |
{ | |
t@@ -846,5 +840,6 @@ void TextViewAppend(GtkTextView *textview, const gchar *te… | |
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); | |
#endif /* __GTKPORT_H__ */ | |
diff --git a/src/gui_client/gtk_client.c b/src/gui_client/gtk_client.c | |
t@@ -305,7 +305,7 @@ void ListInventory(GtkWidget *widget, gpointer data) | |
gtk_box_pack_start(GTK_BOX(vbox), hsep, FALSE, FALSE, 0); | |
hbbox = my_hbbox_new(); | |
- button = gtk_button_new_from_stock(GTK_STOCK_CLOSE); | |
+ button = NewStockButton(GTK_STOCK_CLOSE, accel_group); | |
gtk_signal_connect_object(GTK_OBJECT(button), "clicked", | |
GTK_SIGNAL_FUNC(gtk_widget_destroy), | |
(gpointer)window); | |
t@@ -555,8 +555,9 @@ void HandleClientMessage(char *pt, Player *Play) | |
struct HiScoreDiaStruct { | |
GtkWidget *dialog, *table, *vbox; | |
+ GtkAccelGroup *accel_group; | |
}; | |
-static struct HiScoreDiaStruct HiScoreDialog = { NULL, NULL, NULL }; | |
+static struct HiScoreDiaStruct HiScoreDialog = { NULL, NULL, NULL, NULL }; | |
/* | |
* Creates an empty dialog to display high scores. | |
t@@ -570,6 +571,8 @@ void PrepareHighScoreDialog(void) | |
return; | |
HiScoreDialog.dialog = dialog = gtk_window_new(GTK_WINDOW_TOPLEVEL); | |
+ HiScoreDialog.accel_group = gtk_accel_group_new(); | |
+ gtk_window_add_accel_group(GTK_WINDOW(dialog), HiScoreDialog.accel_group); | |
/* Title of the GTK+ high score dialog */ | |
gtk_window_set_title(GTK_WINDOW(dialog), _("High Scores")); | |
t@@ -733,7 +736,7 @@ void CompleteHighScoreDialog(gboolean AtEnd) | |
return; | |
hbbox = my_hbbox_new(); | |
- button = gtk_button_new_from_stock(GTK_STOCK_CLOSE); | |
+ button = NewStockButton(GTK_STOCK_CLOSE, HiScoreDialog.accel_group); | |
gtk_signal_connect_object(GTK_OBJECT(button), "clicked", | |
GTK_SIGNAL_FUNC(gtk_widget_destroy), | |
(gpointer)dialog); | |
t@@ -1673,14 +1676,14 @@ void DealDrugs(GtkWidget *widget, gpointer data) | |
gtk_box_pack_start(GTK_BOX(vbox), hsep, FALSE, FALSE, 0); | |
hbbox = my_hbbox_new(); | |
- button = gtk_button_new_from_stock(GTK_STOCK_OK); | |
+ button = NewStockButton(GTK_STOCK_OK, accel_group); | |
gtk_signal_connect(GTK_OBJECT(button), "clicked", | |
GTK_SIGNAL_FUNC(DealOKCallback), data); | |
GTK_WIDGET_SET_FLAGS(button, GTK_CAN_DEFAULT); | |
defbutton = button; | |
gtk_box_pack_start_defaults(GTK_BOX(hbbox), button); | |
- button = gtk_button_new_from_stock(GTK_STOCK_CANCEL); | |
+ button = NewStockButton(GTK_STOCK_CANCEL, accel_group); | |
gtk_signal_connect_object(GTK_OBJECT(button), "clicked", | |
GTK_SIGNAL_FUNC(gtk_widget_destroy), | |
(gpointer)dialog); | |
t@@ -1845,10 +1848,10 @@ void QuestionDialog(char *Data, Player *From) | |
for (i = 0; i < strlen(Responses); i++) { | |
switch (Responses[i]) { | |
case 'Y': | |
- button = gtk_button_new_from_stock(GTK_STOCK_YES); | |
+ button = NewStockButton(GTK_STOCK_YES, accel_group); | |
break; | |
case 'N': | |
- button = gtk_button_new_from_stock(GTK_STOCK_NO); | |
+ button = NewStockButton(GTK_STOCK_NO, accel_group); | |
break; | |
default: | |
for (j = 0, trword = NULL; j < numWords && !trword; j++) { | |
t@@ -2264,6 +2267,7 @@ void display_intro(GtkWidget *widget, gpointer data) | |
gchar *VersionStr, *docindex; | |
const int rows = 6, cols = 3; | |
int i, j; | |
+ GtkAccelGroup *accel_group; | |
gchar *table_data[6][3] = { | |
/* Credits labels in GTK+ 'about' dialog */ | |
{N_("Icons and graphics"), "Ocelot Mantis", NULL}, | |
t@@ -2277,6 +2281,8 @@ void display_intro(GtkWidget *widget, gpointer data) | |
}; | |
dialog = gtk_window_new(GTK_WINDOW_TOPLEVEL); | |
+ accel_group = gtk_accel_group_new(); | |
+ gtk_window_add_accel_group(GTK_WINDOW(dialog), accel_group); | |
/* Title of GTK+ 'about' dialog */ | |
gtk_window_set_title(GTK_WINDOW(dialog), _("About dopewars")); | |
t@@ -2344,7 +2350,7 @@ void display_intro(GtkWidget *widget, gpointer data) | |
gtk_box_pack_start(GTK_BOX(vbox), hsep, FALSE, FALSE, 0); | |
hbbox = my_hbbox_new(); | |
- OKButton = gtk_button_new_from_stock(GTK_STOCK_OK); | |
+ OKButton = NewStockButton(GTK_STOCK_OK, accel_group); | |
gtk_signal_connect_object(GTK_OBJECT(OKButton), "clicked", | |
GTK_SIGNAL_FUNC(gtk_widget_destroy), | |
(gpointer)dialog); | |
t@@ -2427,12 +2433,16 @@ void TransferDialog(gboolean Debt) | |
{ | |
GtkWidget *dialog, *button, *label, *radio, *table, *vbox; | |
GtkWidget *hbbox, *hsep, *entry; | |
+ GtkAccelGroup *accel_group; | |
GSList *group; | |
GString *text; | |
text = g_string_new(""); | |
dialog = gtk_window_new(GTK_WINDOW_TOPLEVEL); | |
+ accel_group = gtk_accel_group_new(); | |
+ gtk_window_add_accel_group(GTK_WINDOW(dialog), accel_group); | |
+ | |
gtk_signal_connect(GTK_OBJECT(dialog), "destroy", | |
GTK_SIGNAL_FUNC(SendDoneMessage), NULL); | |
if (Debt) { | |
t@@ -2507,7 +2517,7 @@ void TransferDialog(gboolean Debt) | |
gtk_box_pack_start(GTK_BOX(vbox), hsep, FALSE, FALSE, 0); | |
hbbox = my_hbbox_new(); | |
- button = gtk_button_new_from_stock(GTK_STOCK_OK); | |
+ button = NewStockButton(GTK_STOCK_OK, accel_group); | |
gtk_signal_connect(GTK_OBJECT(button), "clicked", | |
GTK_SIGNAL_FUNC(TransferOK), dialog); | |
gtk_box_pack_start_defaults(GTK_BOX(hbbox), button); | |
t@@ -2519,7 +2529,7 @@ void TransferDialog(gboolean Debt) | |
GTK_SIGNAL_FUNC(TransferPayAll), dialog); | |
gtk_box_pack_start_defaults(GTK_BOX(hbbox), button); | |
} | |
- button = gtk_button_new_from_stock(GTK_STOCK_CANCEL); | |
+ button = NewStockButton(GTK_STOCK_CANCEL, accel_group); | |
gtk_signal_connect_object(GTK_OBJECT(button), "clicked", | |
GTK_SIGNAL_FUNC(gtk_widget_destroy), | |
(gpointer)dialog); | |
t@@ -2536,10 +2546,13 @@ void TransferDialog(gboolean Debt) | |
void ListPlayers(GtkWidget *widget, gpointer data) | |
{ | |
GtkWidget *dialog, *clist, *button, *vbox, *hsep, *hbbox; | |
+ GtkAccelGroup *accel_group; | |
if (IsShowingPlayerList) | |
return; | |
dialog = gtk_window_new(GTK_WINDOW_TOPLEVEL); | |
+ accel_group = gtk_accel_group_new(); | |
+ gtk_window_add_accel_group(GTK_WINDOW(dialog), accel_group); | |
/* Title of player list dialog */ | |
gtk_window_set_title(GTK_WINDOW(dialog), _("Player List")); | |
t@@ -2562,7 +2575,7 @@ void ListPlayers(GtkWidget *widget, gpointer data) | |
gtk_box_pack_start(GTK_BOX(vbox), hsep, FALSE, FALSE, 0); | |
hbbox = my_hbbox_new(); | |
- button = gtk_button_new_from_stock(GTK_STOCK_CLOSE); | |
+ button = NewStockButton(GTK_STOCK_CLOSE, accel_group); | |
gtk_signal_connect_object(GTK_OBJECT(button), "clicked", | |
GTK_SIGNAL_FUNC(gtk_widget_destroy), | |
(gpointer)dialog); | |
t@@ -2633,11 +2646,14 @@ void TalkDialog(gboolean TalkToAll) | |
{ | |
GtkWidget *dialog, *clist, *button, *entry, *label, *vbox, *hsep, | |
*checkbutton, *hbbox; | |
+ GtkAccelGroup *accel_group; | |
static struct TalkStruct TalkData; | |
if (IsShowingTalkList) | |
return; | |
dialog = TalkData.dialog = gtk_window_new(GTK_WINDOW_TOPLEVEL); | |
+ accel_group = gtk_accel_group_new(); | |
+ gtk_window_add_accel_group(GTK_WINDOW(dialog), accel_group); | |
/* Title of talk dialog */ | |
gtk_window_set_title(GTK_WINDOW(dialog), _("Talk to player(s)")); | |
t@@ -2686,7 +2702,7 @@ void TalkDialog(gboolean TalkToAll) | |
GTK_SIGNAL_FUNC(TalkSend), (gpointer)&TalkData); | |
gtk_box_pack_start_defaults(GTK_BOX(hbbox), button); | |
- button = gtk_button_new_from_stock(GTK_STOCK_CLOSE); | |
+ button = NewStockButton(GTK_STOCK_CLOSE, accel_group); | |
gtk_signal_connect_object(GTK_OBJECT(button), "clicked", | |
GTK_SIGNAL_FUNC(gtk_widget_destroy), | |
(gpointer)dialog); | |
t@@ -2767,9 +2783,13 @@ void TipOff(GtkWidget *widget, gpointer data) | |
void ErrandDialog(gint ErrandType) | |
{ | |
GtkWidget *dialog, *clist, *button, *vbox, *hbbox, *hsep, *label; | |
+ GtkAccelGroup *accel_group; | |
gchar *text; | |
dialog = gtk_window_new(GTK_WINDOW_TOPLEVEL); | |
+ accel_group = gtk_accel_group_new(); | |
+ gtk_window_add_accel_group(GTK_WINDOW(dialog), accel_group); | |
+ | |
gtk_container_set_border_width(GTK_CONTAINER(dialog), 7); | |
gtk_window_set_modal(GTK_WINDOW(dialog), TRUE); | |
t@@ -2826,14 +2846,14 @@ void ErrandDialog(gint ErrandType) | |
gtk_box_pack_start(GTK_BOX(vbox), hsep, FALSE, FALSE, 0); | |
hbbox = my_hbbox_new(); | |
- button = gtk_button_new_from_stock(GTK_STOCK_OK); | |
+ button = NewStockButton(GTK_STOCK_OK, accel_group); | |
gtk_object_set_data(GTK_OBJECT(button), "dialog", dialog); | |
gtk_object_set_data(GTK_OBJECT(button), "errandtype", | |
GINT_TO_POINTER(ErrandType)); | |
gtk_signal_connect(GTK_OBJECT(button), "clicked", | |
GTK_SIGNAL_FUNC(ErrandOK), (gpointer)clist); | |
gtk_box_pack_start_defaults(GTK_BOX(hbbox), button); | |
- button = gtk_button_new_from_stock(GTK_STOCK_CANCEL); | |
+ button = NewStockButton(GTK_STOCK_CANCEL, accel_group); | |
gtk_signal_connect_object(GTK_OBJECT(button), "clicked", | |
GTK_SIGNAL_FUNC(gtk_widget_destroy), | |
(gpointer)dialog); | |
t@@ -2991,8 +3011,11 @@ static void NewNameOK(GtkWidget *widget, GtkWidget *win… | |
void NewNameDialog(void) | |
{ | |
GtkWidget *window, *button, *hsep, *vbox, *label, *entry; | |
+ GtkAccelGroup *accel_group; | |
window = gtk_window_new(GTK_WINDOW_TOPLEVEL); | |
+ accel_group = gtk_accel_group_new(); | |
+ gtk_window_add_accel_group(GTK_WINDOW(window), accel_group); | |
/* Title of dialog for changing a player's name */ | |
gtk_window_set_title(GTK_WINDOW(window), _("Change Name")); | |
t@@ -3021,7 +3044,7 @@ void NewNameDialog(void) | |
hsep = gtk_hseparator_new(); | |
gtk_box_pack_start(GTK_BOX(vbox), hsep, FALSE, FALSE, 0); | |
- button = gtk_button_new_from_stock(GTK_STOCK_OK); | |
+ button = NewStockButton(GTK_STOCK_OK, accel_group); | |
gtk_signal_connect(GTK_OBJECT(button), "clicked", | |
GTK_SIGNAL_FUNC(NewNameOK), window); | |
gtk_box_pack_start(GTK_BOX(vbox), button, FALSE, FALSE, 0); | |
t@@ -3074,7 +3097,7 @@ void GunShopDialog(void) | |
gtk_box_pack_start(GTK_BOX(vbox), hsep, FALSE, FALSE, 0); | |
hbbox = my_hbbox_new(); | |
- button = gtk_button_new_from_stock(GTK_STOCK_CLOSE); | |
+ button = NewStockButton(GTK_STOCK_CLOSE, accel_group); | |
gtk_signal_connect_object(GTK_OBJECT(button), "clicked", | |
GTK_SIGNAL_FUNC(gtk_widget_destroy), | |
(gpointer)window); | |
t@@ -3131,7 +3154,7 @@ static void CreateSpyReports(void) | |
gtk_box_pack_start(GTK_BOX(vbox), notebook, TRUE, TRUE, 0); | |
- button = gtk_button_new_from_stock(GTK_STOCK_CLOSE); | |
+ button = NewStockButton(GTK_STOCK_CLOSE, accel_group); | |
gtk_signal_connect_object(GTK_OBJECT(button), "clicked", | |
GTK_SIGNAL_FUNC(gtk_widget_destroy), | |
(gpointer)window); | |
diff --git a/src/gui_client/newgamedia.c b/src/gui_client/newgamedia.c | |
t@@ -578,7 +578,7 @@ void NewGameDialog(Player *play) | |
hbbox = my_hbbox_new(); | |
/* Button to update metaserver information */ | |
- button = gtk_button_new_from_stock(GTK_STOCK_REFRESH); | |
+ button = NewStockButton(GTK_STOCK_REFRESH, accel_group); | |
gtk_signal_connect(GTK_OBJECT(button), "clicked", | |
GTK_SIGNAL_FUNC(UpdateMetaServerList), NULL); | |
gtk_box_pack_start_defaults(GTK_BOX(hbbox), button); | |
t@@ -662,8 +662,12 @@ void AuthDialog(HttpConnection *conn, gboolean proxy, gch… | |
gpointer data) | |
{ | |
GtkWidget *window, *button, *hsep, *vbox, *label, *entry, *table, *hbbox; | |
+ GtkAccelGroup *accel_group; | |
window = gtk_window_new(GTK_WINDOW_TOPLEVEL); | |
+ accel_group = gtk_accel_group_new(); | |
+ gtk_window_add_accel_group(GTK_WINDOW(window), accel_group); | |
+ | |
gtk_signal_connect(GTK_OBJECT(window), "destroy", | |
GTK_SIGNAL_FUNC(DestroyAuthDialog), NULL); | |
gtk_object_set_data(GTK_OBJECT(window), "proxy", GINT_TO_POINTER(proxy)); | |
t@@ -723,12 +727,12 @@ void AuthDialog(HttpConnection *conn, gboolean proxy, gc… | |
hbbox = my_hbbox_new(); | |
- button = gtk_button_new_from_stock(GTK_STOCK_OK); | |
+ button = NewStockButton(GTK_STOCK_OK, accel_group); | |
gtk_signal_connect(GTK_OBJECT(button), "clicked", | |
GTK_SIGNAL_FUNC(OKAuthDialog), (gpointer)window); | |
gtk_box_pack_start_defaults(GTK_BOX(hbbox), button); | |
- button = gtk_button_new_from_stock(GTK_STOCK_CANCEL); | |
+ button = NewStockButton(GTK_STOCK_CANCEL, accel_group); | |
gtk_signal_connect_object(GTK_OBJECT(button), "clicked", | |
GTK_SIGNAL_FUNC(gtk_widget_destroy), | |
(gpointer)window); | |
t@@ -778,8 +782,12 @@ static void RealSocksAuthDialog(NetworkBuffer *netbuf, gb… | |
gpointer data) | |
{ | |
GtkWidget *window, *button, *hsep, *vbox, *label, *entry, *table, *hbbox; | |
+ GtkAccelGroup *accel_group; | |
window = gtk_window_new(GTK_WINDOW_TOPLEVEL); | |
+ accel_group = gtk_accel_group_new(); | |
+ gtk_window_add_accel_group(GTK_WINDOW(window), accel_group); | |
+ | |
gtk_signal_connect(GTK_OBJECT(window), "destroy", | |
GTK_SIGNAL_FUNC(DestroySocksAuth), NULL); | |
gtk_object_set_data(GTK_OBJECT(window), "netbuf", (gpointer)netbuf); | |
t@@ -827,12 +835,12 @@ static void RealSocksAuthDialog(NetworkBuffer *netbuf, g… | |
hbbox = my_hbbox_new(); | |
- button = gtk_button_new_from_stock(GTK_STOCK_OK); | |
+ button = NewStockButton(GTK_STOCK_OK, accel_group); | |
gtk_signal_connect(GTK_OBJECT(button), "clicked", | |
GTK_SIGNAL_FUNC(OKSocksAuth), (gpointer)window); | |
gtk_box_pack_start_defaults(GTK_BOX(hbbox), button); | |
- button = gtk_button_new_from_stock(GTK_STOCK_CANCEL); | |
+ button = NewStockButton(GTK_STOCK_CANCEL, accel_group); | |
gtk_signal_connect_object(GTK_OBJECT(button), "clicked", | |
GTK_SIGNAL_FUNC(gtk_widget_destroy), | |
(gpointer)window); | |
diff --git a/src/gui_client/optdialog.c b/src/gui_client/optdialog.c | |
t@@ -683,6 +683,7 @@ void OptDialog(GtkWidget *widget, gpointer data) | |
{ | |
GtkWidget *dialog, *notebook, *table, *label, *check, *entry; | |
GtkWidget *hbox, *vbox, *hsep, *button, *hbbox; | |
+ GtkAccelGroup *accel_group; | |
struct ConfigMembers locmembers[] = { | |
{ "Police presence", "PolicePresence" }, | |
t@@ -715,6 +716,8 @@ void OptDialog(GtkWidget *widget, gpointer data) | |
}; | |
dialog = gtk_window_new(GTK_WINDOW_TOPLEVEL); | |
+ accel_group = gtk_accel_group_new(); | |
+ gtk_window_add_accel_group(GTK_WINDOW(dialog), accel_group); | |
gtk_window_set_title(GTK_WINDOW(dialog), _("Options")); | |
gtk_container_set_border_width(GTK_CONTAINER(dialog), 7); | |
t@@ -865,11 +868,11 @@ void OptDialog(GtkWidget *widget, gpointer data) | |
hbbox = my_hbbox_new(); | |
- button = gtk_button_new_from_stock(GTK_STOCK_OK); | |
+ button = NewStockButton(GTK_STOCK_OK, accel_group); | |
gtk_signal_connect(GTK_OBJECT(button), "clicked", | |
GTK_SIGNAL_FUNC(OKCallback), (gpointer)dialog); | |
gtk_box_pack_start_defaults(GTK_BOX(hbbox), button); | |
- button = gtk_button_new_from_stock(GTK_STOCK_CANCEL); | |
+ button = NewStockButton(GTK_STOCK_CANCEL, accel_group); | |
gtk_signal_connect_object(GTK_OBJECT(button), "clicked", | |
GTK_SIGNAL_FUNC(gtk_widget_destroy), | |
(gpointer)dialog); |