tSet window manager hints and centre-on-parent behaviour for dialog windows, so… | |
git clone git://src.adamsgaard.dk/vaccinewars | |
Log | |
Files | |
Refs | |
README | |
LICENSE | |
--- | |
commit cffdcf8e46ce98b2fd738862f03cae7318a31268 | |
parent bf68d6713ceb7e4139d5e39af0ff7719a00645f1 | |
Author: Ben Webb <[email protected]> | |
Date: Mon, 7 Oct 2002 10:52:52 +0000 | |
Set window manager hints and centre-on-parent behaviour for dialog windows, | |
so that, e.g., dopewars plays nicely with window managers that do not | |
automatically centre transients (e.g. Metacity). | |
Diffstat: | |
M src/gui_client/gtk_client.c | 25 +++++++++++++++++++++++++ | |
M src/gui_client/newgamedia.c | 3 +++ | |
M src/gui_client/optdialog.c | 1 + | |
3 files changed, 29 insertions(+), 0 deletions(-) | |
--- | |
diff --git a/src/gui_client/gtk_client.c b/src/gui_client/gtk_client.c | |
t@@ -212,6 +212,17 @@ GtkWidget *my_hbbox_new(void) | |
return hbbox; | |
} | |
+/* | |
+ * Sets the initial size and window manager hints of a dialog. | |
+ */ | |
+void my_set_dialog_position(GtkWindow *dialog) | |
+{ | |
+#ifdef HAVE_GLIB2 | |
+ gtk_window_set_type_hint(dialog, GDK_WINDOW_TYPE_HINT_DIALOG); | |
+ gtk_window_set_position(dialog, GTK_WIN_POS_CENTER_ON_PARENT); | |
+#endif | |
+} | |
+ | |
void QuitGame(GtkWidget *widget, gpointer data) | |
{ | |
if (!InGame || GtkMessageBox(ClientData.window, | |
t@@ -306,6 +317,7 @@ void ListInventory(GtkWidget *widget, gpointer data) | |
/* Title of inventory window */ | |
gtk_window_set_title(GTK_WINDOW(window), _("Inventory")); | |
+ my_set_dialog_position(GTK_WINDOW(window)); | |
SetShowing(window, &IsShowingInventory); | |
t@@ -603,6 +615,7 @@ void PrepareHighScoreDialog(void) | |
/* Title of the GTK+ high score dialog */ | |
gtk_window_set_title(GTK_WINDOW(dialog), _("High Scores")); | |
+ my_set_dialog_position(GTK_WINDOW(dialog)); | |
gtk_container_set_border_width(GTK_CONTAINER(dialog), 7); | |
gtk_window_set_modal(GTK_WINDOW(dialog), TRUE); | |
t@@ -891,6 +904,7 @@ static void CreateFightDialog(void) | |
accel_group = gtk_accel_group_new(); | |
gtk_window_add_accel_group(GTK_WINDOW(dialog), accel_group); | |
gtk_window_set_title(GTK_WINDOW(dialog), _("Fight")); | |
+ my_set_dialog_position(GTK_WINDOW(dialog)); | |
gtk_container_set_border_width(GTK_CONTAINER(dialog), 7); | |
gtk_window_set_modal(GTK_WINDOW(dialog), TRUE); | |
t@@ -1424,6 +1438,7 @@ void Jet(GtkWidget *parent) | |
dialog = gtk_window_new(GTK_WINDOW_TOPLEVEL); | |
/* Title of 'Jet' dialog */ | |
gtk_window_set_title(GTK_WINDOW(dialog), _("Jet to location")); | |
+ my_set_dialog_position(GTK_WINDOW(dialog)); | |
gtk_container_set_border_width(GTK_CONTAINER(dialog), 7); | |
gtk_window_add_accel_group(GTK_WINDOW(dialog), accel_group); | |
t@@ -1644,6 +1659,7 @@ void DealDrugs(GtkWidget *widget, gpointer data) | |
dialog = DealDialog.dialog = gtk_window_new(GTK_WINDOW_TOPLEVEL); | |
gtk_window_set_title(GTK_WINDOW(dialog), Action); | |
+ my_set_dialog_position(GTK_WINDOW(dialog)); | |
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@@ -1870,6 +1886,7 @@ void QuestionDialog(char *Data, Player *From) | |
/* Title of the 'ask player a question' dialog */ | |
gtk_window_set_title(GTK_WINDOW(dialog), _("Question")); | |
+ my_set_dialog_position(GTK_WINDOW(dialog)); | |
gtk_window_add_accel_group(GTK_WINDOW(dialog), accel_group); | |
gtk_container_set_border_width(GTK_CONTAINER(dialog), 7); | |
t@@ -2361,6 +2378,7 @@ void display_intro(GtkWidget *widget, gpointer data) | |
/* Title of GTK+ 'about' dialog */ | |
gtk_window_set_title(GTK_WINDOW(dialog), _("About dopewars")); | |
+ my_set_dialog_position(GTK_WINDOW(dialog)); | |
gtk_window_set_modal(GTK_WINDOW(dialog), TRUE); | |
gtk_window_set_transient_for(GTK_WINDOW(dialog), | |
t@@ -2530,6 +2548,7 @@ void TransferDialog(gboolean Debt) | |
Names.BankName); | |
} | |
gtk_window_set_title(GTK_WINDOW(dialog), text->str); | |
+ my_set_dialog_position(GTK_WINDOW(dialog)); | |
gtk_container_set_border_width(GTK_CONTAINER(dialog), 7); | |
gtk_window_set_modal(GTK_WINDOW(dialog), TRUE); | |
gtk_window_set_transient_for(GTK_WINDOW(dialog), | |
t@@ -2631,6 +2650,7 @@ void ListPlayers(GtkWidget *widget, gpointer data) | |
/* Title of player list dialog */ | |
gtk_window_set_title(GTK_WINDOW(dialog), _("Player List")); | |
+ my_set_dialog_position(GTK_WINDOW(dialog)); | |
gtk_window_set_default_size(GTK_WINDOW(dialog), 200, 180); | |
gtk_container_set_border_width(GTK_CONTAINER(dialog), 7); | |
t@@ -2732,6 +2752,7 @@ void TalkDialog(gboolean TalkToAll) | |
/* Title of talk dialog */ | |
gtk_window_set_title(GTK_WINDOW(dialog), _("Talk to player(s)")); | |
+ my_set_dialog_position(GTK_WINDOW(dialog)); | |
gtk_window_set_default_size(GTK_WINDOW(dialog), 200, 190); | |
gtk_container_set_border_width(GTK_CONTAINER(dialog), 7); | |
t@@ -2910,6 +2931,7 @@ void ErrandDialog(gint ErrandType) | |
label = gtk_label_new(text); | |
g_free(text); | |
} | |
+ my_set_dialog_position(GTK_WINDOW(dialog)); | |
gtk_box_pack_start(GTK_BOX(vbox), label, FALSE, FALSE, 0); | |
t@@ -3101,6 +3123,7 @@ void NewNameDialog(void) | |
/* Title of dialog for changing a player's name */ | |
gtk_window_set_title(GTK_WINDOW(window), _("Change Name")); | |
+ my_set_dialog_position(GTK_WINDOW(window)); | |
gtk_window_set_modal(GTK_WINDOW(window), TRUE); | |
gtk_window_set_transient_for(GTK_WINDOW(window), | |
t@@ -3160,6 +3183,7 @@ void GunShopDialog(void) | |
text = dpg_strdup_printf(_("%/GTK GunShop window title/%Tde"), | |
Names.GunShopName); | |
gtk_window_set_title(GTK_WINDOW(window), text); | |
+ my_set_dialog_position(GTK_WINDOW(window)); | |
g_free(text); | |
gtk_window_set_modal(GTK_WINDOW(window), TRUE); | |
gtk_window_set_transient_for(GTK_WINDOW(window), | |
t@@ -3222,6 +3246,7 @@ static void CreateSpyReports(void) | |
/* Title of window to display reports from spies with other players */ | |
gtk_window_set_title(GTK_WINDOW(window), _("Spy reports")); | |
+ my_set_dialog_position(GTK_WINDOW(window)); | |
gtk_window_set_modal(GTK_WINDOW(window), TRUE); | |
gtk_window_set_transient_for(GTK_WINDOW(window), | |
diff --git a/src/gui_client/newgamedia.c b/src/gui_client/newgamedia.c | |
t@@ -485,6 +485,7 @@ void NewGameDialog(Player *play) | |
/* Title of 'New Game' dialog */ | |
gtk_window_set_title(GTK_WINDOW(dialog), _("New Game")); | |
+ my_set_dialog_position(GTK_WINDOW(dialog)); | |
gtk_container_set_border_width(GTK_CONTAINER(dialog), 7); | |
gtk_window_add_accel_group(GTK_WINDOW(dialog), accel_group); | |
t@@ -718,6 +719,7 @@ void AuthDialog(HttpConnection *conn, gboolean proxy, gcha… | |
/* Title of dialog for authenticating with a web server */ | |
gtk_window_set_title(GTK_WINDOW(window), _("Authentication Required")); | |
} | |
+ my_set_dialog_position(GTK_WINDOW(window)); | |
gtk_window_set_modal(GTK_WINDOW(window), TRUE); | |
gtk_window_set_transient_for(GTK_WINDOW(window), | |
t@@ -832,6 +834,7 @@ static void RealSocksAuthDialog(NetworkBuffer *netbuf, gbo… | |
/* Title of dialog for authenticating with a SOCKS server */ | |
gtk_window_set_title(GTK_WINDOW(window), | |
_("SOCKS Authentication Required")); | |
+ my_set_dialog_position(GTK_WINDOW(window)); | |
gtk_window_set_modal(GTK_WINDOW(window), TRUE); | |
gtk_window_set_transient_for(GTK_WINDOW(window), | |
diff --git a/src/gui_client/optdialog.c b/src/gui_client/optdialog.c | |
t@@ -760,6 +760,7 @@ void OptDialog(GtkWidget *widget, gpointer data) | |
gtk_window_add_accel_group(GTK_WINDOW(dialog), accel_group); | |
gtk_window_set_title(GTK_WINDOW(dialog), _("Options")); | |
+ my_set_dialog_position(GTK_WINDOW(dialog)); | |
gtk_container_set_border_width(GTK_CONTAINER(dialog), 7); | |
gtk_window_set_modal(GTK_WINDOW(dialog), TRUE); | |