tAccelerators now use Alt/Meta in some dialogs; try to avoid using GTK+2 with GLIB1 (or vice versa); workaround for different g_strsplit behaviour between GLIB1 and GLIB2. - 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 9a71c4711fe2bd2d64e97acc28a067394f2d33a6
(DIR) parent 05f195053eb196bbd2bb98fbe04bb3a6ee1a1d3c
(HTM) Author: Ben Webb <ben@salilab.org>
Date: Mon, 25 Mar 2002 16:54:07 +0000
Accelerators now use Alt/Meta in some dialogs; try to avoid using GTK+2
with GLIB1 (or vice versa); workaround for different g_strsplit behaviour
between GLIB1 and GLIB2.
Diffstat:
M src/gui_client/gtk_client.c | 48 ++++++++++++++++++++-----------
1 file changed, 31 insertions(+), 17 deletions(-)
---
(DIR) diff --git a/src/gui_client/gtk_client.c b/src/gui_client/gtk_client.c
t@@ -176,7 +176,8 @@ static gchar *MenuTranslate(const gchar *path, gpointer func_data)
static void LogMessage(const gchar *log_domain, GLogLevelFlags log_level,
const gchar *message, gpointer user_data)
{
- GtkMessageBox(NULL, message,
+ g_print("message: %s\n", message);
+ GtkMessageBox(MainWindow, message,
/* Titles of the message boxes for warnings and errors */
log_level & G_LOG_LEVEL_WARNING ? _("Warning") :
log_level & G_LOG_LEVEL_CRITICAL ? _("Error") :
t@@ -480,7 +481,7 @@ void HandleClientMessage(char *pt, Player *Play)
/* Text for the Errands/Sack Bitch menu item */
text = dpg_strdup_printf(_("%/Sack Bitch menu item/S_ack %Tde..."),
Names.Bitch);
- SetAccelerator(MenuItem, text, NULL, NULL, NULL);
+ SetAccelerator(MenuItem, text, NULL, NULL, NULL, FALSE);
g_free(text);
MenuItem = gtk_item_factory_get_widget(ClientData.Menu,
t@@ -488,7 +489,7 @@ void HandleClientMessage(char *pt, Player *Play)
/* Text to update the Errands/Spy menu item with the price for spying */
text = dpg_strdup_printf(_("_Spy (%P)"), Prices.Spy);
- SetAccelerator(MenuItem, text, NULL, NULL, NULL);
+ SetAccelerator(MenuItem, text, NULL, NULL, NULL, FALSE);
g_free(text);
/* Text to update the Errands/Tipoff menu item with the price for a
t@@ -496,7 +497,7 @@ void HandleClientMessage(char *pt, Player *Play)
text = dpg_strdup_printf(_("_Tipoff (%P)"), Prices.Tipoff);
MenuItem = gtk_item_factory_get_widget(ClientData.Menu,
"<main>/Errands/Tipoff...");
- SetAccelerator(MenuItem, text, NULL, NULL, NULL);
+ SetAccelerator(MenuItem, text, NULL, NULL, NULL, FALSE);
g_free(text);
if (FirstClient->next)
ListPlayers(NULL, NULL);
t@@ -595,7 +596,11 @@ void AddScoreToDialog(char *Data)
g_strchug(cp);
/* Get the first word - the score */
+#ifdef HAVE_GLIB2
+ spl1 = g_strsplit(cp, " ", 2);
+#else
spl1 = g_strsplit(cp, " ", 1);
+#endif
if (!spl1 || !spl1[0] || !spl1[1]) {
/* Error - the high score from the server is invalid */
g_warning(_("Corrupt high score!"));
t@@ -623,7 +628,11 @@ void AddScoreToDialog(char *Data)
g_strchug(spl1[1]);
/* Get the second word - the date */
+#ifdef HAVE_GLIB2
+ spl2 = g_strsplit(spl1[1], " ", 2);
+#else
spl2 = g_strsplit(spl1[1], " ", 1);
+#endif
if (!spl2 || !spl2[0] || !spl2[1]) {
g_warning(_("Corrupt high score!"));
g_strfreev(spl2);
t@@ -793,7 +802,7 @@ static GtkWidget *AddFightButton(gchar *Text, GtkAccelGroup *accel_group,
GtkWidget *button;
button = gtk_button_new_with_label("");
- SetAccelerator(button, Text, button, "clicked", accel_group);
+ SetAccelerator(button, Text, button, "clicked", accel_group, FALSE);
gtk_signal_connect(GTK_OBJECT(button), "clicked",
GTK_SIGNAL_FUNC(FightCallback),
GINT_TO_POINTER(Answer));
t@@ -1402,7 +1411,7 @@ void Jet(GtkWidget *parent)
/* Display of locations in 'Jet' window (%tde="The Bronx" etc. by
* default) */
name = dpg_strdup_printf(_("_%c. %tde"), AccelChar, Location[i].Name);
- SetAccelerator(button, name, button, "clicked", accel_group);
+ SetAccelerator(button, name, button, "clicked", accel_group, FALSE);
/* Add keypad shortcuts as well */
if (i < 9) {
gtk_widget_add_accelerator(button, "clicked", accel_group,
t@@ -1774,7 +1783,11 @@ void QuestionDialog(char *Data, Player *From)
guint numWords = sizeof(Words) / sizeof(Words[0]);
guint i, j;
+#ifdef HAVE_GLIB2
+ split = g_strsplit(Data, "^", 2);
+#else
split = g_strsplit(Data, "^", 1);
+#endif
if (!split[0] || !split[1]) {
g_warning("Bad QUESTION message %s", Data);
return;
t@@ -1820,10 +1833,10 @@ void QuestionDialog(char *Data, Player *From)
}
button = gtk_button_new_with_label("");
if (trword) {
- SetAccelerator(button, trword, button, "clicked", accel_group);
+ SetAccelerator(button, trword, button, "clicked", accel_group, FALSE);
} else {
trword = g_strdup_printf("_%c", Responses[i]);
- SetAccelerator(button, trword, button, "clicked", accel_group);
+ SetAccelerator(button, trword, button, "clicked", accel_group, FALSE);
g_free(trword);
}
gtk_object_set_data(GTK_OBJECT(button), "dialog", (gpointer)dialog);
t@@ -2010,6 +2023,7 @@ void SetJetButtonTitle(GtkAccelGroup *accel_group)
{
GtkWidget *button;
guint accel_key;
+ gchar *caption;
button = ClientData.JetButton;
accel_key = ClientData.JetAccel;
t@@ -2018,14 +2032,14 @@ void SetJetButtonTitle(GtkAccelGroup *accel_group)
gtk_widget_remove_accelerator(button, accel_group, accel_key, 0);
}
- ClientData.JetAccel = SetAccelerator(button,
- (ClientData.Play
- && ClientData.Play->
- Flags & FIGHTING) ? _("_Fight") :
- /* Caption of 'Jet' button in main
- * window */
- _("_Jet!"), button, "clicked",
- accel_group);
+ if (ClientData.Play && ClientData.Play->Flags & FIGHTING) {
+ caption = _("_Fight");
+ } else {
+ /* Caption of 'Jet' button in main window */
+ caption = _("_Jet");
+ }
+ ClientData.JetAccel = SetAccelerator(button, caption, button,
+ "clicked", accel_group, FALSE);
}
static void SetIcon(GtkWidget *window, gchar **xpmdata)
t@@ -2874,7 +2888,7 @@ void CreateInventory(GtkWidget *hbox, gchar *Objects,
for (i = 0; i < 3; i++) {
button[i] = gtk_button_new_with_label("");
SetAccelerator(button[i], _(button_text[i]), button[i],
- "clicked", accel_group);
+ "clicked", accel_group, FALSE);
if (CallBack)
gtk_signal_connect(GTK_OBJECT(button[i]), "clicked",
GTK_SIGNAL_FUNC(CallBack), button_type[i]);