tReplace GtkTable with GtkGrid - 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 ea743d77cfc8d4823eceb70266a7e6fbb6ab583b
(DIR) parent fe3bdabeb6b584fc226aa242eb58aace0875323c
(HTM) Author: Ben Webb <ben@salilab.org>
Date: Wed, 30 Dec 2020 23:26:28 -0800
Replace GtkTable with GtkGrid
Replace all usage of GtkTable with GtkGrid.
GtkTable is deprecated in later versions of
GTK3 and removed entirely in GTK4. We'll still
need to implement GtkTable for Windows and GTK2.
Diffstat:
M src/gui_client/gtk_client.c | 191 +++++++++++++++++--------------
M src/gui_client/newgamedia.c | 42 ++++++++++++++++---------------
M src/gui_client/optdialog.c | 148 +++++++++++++++----------------
3 files changed, 199 insertions(+), 182 deletions(-)
---
(DIR) diff --git a/src/gui_client/gtk_client.c b/src/gui_client/gtk_client.c
t@@ -605,7 +605,7 @@ void HandleClientMessage(char *pt, Player *Play)
}
struct HiScoreDiaStruct {
- GtkWidget *dialog, *table, *vbox;
+ GtkWidget *dialog, *grid, *vbox;
GtkAccelGroup *accel_group;
};
static struct HiScoreDiaStruct HiScoreDialog = { NULL, NULL, NULL, NULL };
t@@ -615,7 +615,7 @@ static struct HiScoreDiaStruct HiScoreDialog = { NULL, NULL, NULL, NULL };
*/
void PrepareHighScoreDialog(void)
{
- GtkWidget *dialog, *vbox, *hsep, *table;
+ GtkWidget *dialog, *vbox, *hsep, *grid;
/* Make sure the server doesn't fool us into creating multiple dialogs */
if (HiScoreDialog.dialog)
t@@ -635,11 +635,11 @@ void PrepareHighScoreDialog(void)
GTK_WINDOW(ClientData.window));
HiScoreDialog.vbox = vbox = gtk_box_new(GTK_ORIENTATION_VERTICAL, 7);
- HiScoreDialog.table = table = gtk_table_new(NUMHISCORE, 4, FALSE);
- gtk_table_set_row_spacings(GTK_TABLE(table), 5);
- gtk_table_set_col_spacings(GTK_TABLE(table), 30);
+ HiScoreDialog.grid = grid = gtk_grid_new();
+ gtk_grid_set_row_spacing(GTK_GRID(grid), 5);
+ gtk_grid_set_column_spacing(GTK_GRID(grid), 30);
- gtk_box_pack_start(GTK_BOX(vbox), table, TRUE, TRUE, 0);
+ gtk_box_pack_start(GTK_BOX(vbox), grid, TRUE, TRUE, 0);
hsep = gtk_separator_new(GTK_ORIENTATION_HORIZONTAL);
gtk_box_pack_start(GTK_BOX(vbox), hsep, FALSE, FALSE, 0);
gtk_container_add(GTK_CONTAINER(dialog), vbox);
t@@ -685,8 +685,8 @@ void AddScoreToDialog(char *Data)
}
label = gtk_label_new(spl1[0]);
gtk_misc_set_alignment(GTK_MISC(label), 1.0, 0.5);
- gtk_table_attach_defaults(GTK_TABLE(HiScoreDialog.table), label,
- 0, 1, index, index + 1);
+ gtk_grid_attach(GTK_GRID(HiScoreDialog.grid), label, 0, index, 1, 1);
+ gtk_widget_set_hexpand(label, TRUE);
if (bold) {
GdkColor color;
t@@ -713,8 +713,8 @@ void AddScoreToDialog(char *Data)
}
label = gtk_label_new(spl2[0]);
gtk_misc_set_alignment(GTK_MISC(label), 0.5, 0.5);
- gtk_table_attach_defaults(GTK_TABLE(HiScoreDialog.table), label,
- 1, 2, index, index + 1);
+ gtk_grid_attach(GTK_GRID(HiScoreDialog.grid), label, 1, index, 1, 1);
+ gtk_widget_set_hexpand(label, TRUE);
if (bold) {
gtk_widget_set_style(label, style);
}
t@@ -735,8 +735,8 @@ void AddScoreToDialog(char *Data)
if (slen > 8 && spl2[1][slen - 1] == ')' && spl2[1][slen - 8] == '(') {
label = gtk_label_new(&spl2[1][slen - 8]);
gtk_misc_set_alignment(GTK_MISC(label), 0.5, 0.5);
- gtk_table_attach_defaults(GTK_TABLE(HiScoreDialog.table), label,
- 3, 4, index, index + 1);
+ gtk_grid_attach(GTK_GRID(HiScoreDialog.grid), label, 3, index, 1, 1);
+ gtk_widget_set_hexpand(label, TRUE);
if (bold) {
gtk_widget_set_style(label, style);
}
t@@ -748,8 +748,8 @@ void AddScoreToDialog(char *Data)
g_strchomp(spl2[1]);
label = gtk_label_new(spl2[1]);
gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5);
- gtk_table_attach_defaults(GTK_TABLE(HiScoreDialog.table), label,
- 2, 3, index, index + 1);
+ gtk_grid_attach(GTK_GRID(HiScoreDialog.grid), label, 2, index, 1, 1);
+ gtk_widget_set_hexpand(label, TRUE);
if (bold) {
gtk_widget_set_style(label, style);
}
t@@ -902,7 +902,7 @@ struct combatant {
*/
static void CreateFightDialog(void)
{
- GtkWidget *dialog, *vbox, *button, *hbox, *hbbox, *hsep, *text, *table;
+ GtkWidget *dialog, *vbox, *button, *hbox, *hbbox, *hsep, *text, *grid;
GtkAccelGroup *accel_group;
GArray *combatants;
gchar *buf;
t@@ -923,15 +923,16 @@ static void CreateFightDialog(void)
vbox = gtk_box_new(GTK_ORIENTATION_VERTICAL, 7);
- table = gtk_table_new(2, 4, FALSE);
- gtk_table_set_row_spacings(GTK_TABLE(table), 7);
- gtk_table_set_col_spacings(GTK_TABLE(table), 10);
+ grid = gtk_grid_new();
+ gtk_grid_set_row_spacing(GTK_GRID(grid), 7);
+ gtk_grid_set_column_spacing(GTK_GRID(grid), 10);
hsep = gtk_separator_new(GTK_ORIENTATION_HORIZONTAL);
- gtk_table_attach_defaults(GTK_TABLE(table), hsep, 0, 4, 1, 2);
- gtk_widget_show_all(table);
- gtk_box_pack_start(GTK_BOX(vbox), table, FALSE, FALSE, 0);
- g_object_set_data(G_OBJECT(dialog), "table", table);
+ gtk_grid_attach(GTK_GRID(grid), hsep, 0, 1, 3, 1);
+ gtk_widget_set_hexpand(hsep, TRUE);
+ gtk_widget_show_all(grid);
+ gtk_box_pack_start(GTK_BOX(vbox), grid, FALSE, FALSE, 0);
+ g_object_set_data(G_OBJECT(dialog), "grid", grid);
combatants = g_array_new(FALSE, TRUE, sizeof(struct combatant));
g_array_set_size(combatants, 1);
t@@ -993,13 +994,13 @@ static void UpdateCombatant(gchar *DefendName, int DefendBitches,
const gchar *name;
struct combatant *compt;
GArray *combatants;
- GtkWidget *table;
+ GtkWidget *grid;
gchar *BitchText, *HealthText;
gfloat ProgPercent;
combatants = (GArray *)g_object_get_data(G_OBJECT(FightDialog),
"combatants");
- table = GTK_WIDGET(g_object_get_data(G_OBJECT(FightDialog), "table"));
+ grid = GTK_WIDGET(g_object_get_data(G_OBJECT(FightDialog), "grid"));
if (!combatants) {
return;
}
t@@ -1024,7 +1025,6 @@ static void UpdateCombatant(gchar *DefendName, int DefendBitches,
g_array_set_size(combatants, i + 1);
compt = &g_array_index(combatants, struct combatant, i);
- gtk_table_resize(GTK_TABLE(table), i + 2, 4);
RowIndex = i + 1;
}
} else {
t@@ -1063,19 +1063,16 @@ static void UpdateCombatant(gchar *DefendName, int DefendBitches,
/* Display of the current player's name during combat */
compt->name = gtk_label_new(DefendName[0] ? DefendName : _("You"));
- gtk_table_attach(GTK_TABLE(table), compt->name, 0, 1,
- RowIndex, RowIndex + 1, GTK_SHRINK, GTK_SHRINK, 0, 0);
+ gtk_grid_attach(GTK_GRID(grid), compt->name, 0, RowIndex, 1, 1);
compt->bitches = gtk_label_new(DefendBitches >= 0 ? BitchText : "");
- gtk_table_attach(GTK_TABLE(table), compt->bitches, 1, 2,
- RowIndex, RowIndex + 1, GTK_SHRINK, GTK_SHRINK, 0, 0);
+ gtk_grid_attach(GTK_GRID(grid), compt->bitches, 1, RowIndex, 1, 1);
compt->healthprog = gtk_progress_bar_new();
gtk_progress_bar_set_fraction(GTK_PROGRESS_BAR(compt->healthprog),
ProgPercent);
- gtk_table_attach_defaults(GTK_TABLE(table), compt->healthprog, 2, 3,
- RowIndex, RowIndex + 1);
+ gtk_grid_attach(GTK_GRID(grid), compt->healthprog, 2, RowIndex, 1, 1);
+ gtk_widget_set_hexpand(compt->healthprog, TRUE);
compt->healthlabel = gtk_label_new(HealthText);
- gtk_table_attach(GTK_TABLE(table), compt->healthlabel, 3, 4,
- RowIndex, RowIndex + 1, GTK_SHRINK, GTK_SHRINK, 0, 0);
+ gtk_grid_attach(GTK_GRID(grid), compt->healthlabel, 3, RowIndex, 1, 1);
gtk_widget_show(compt->name);
gtk_widget_show(compt->bitches);
gtk_widget_show(compt->healthprog);
t@@ -1460,7 +1457,7 @@ void JetButtonPressed(GtkWidget *widget, gpointer data)
void Jet(GtkWidget *parent)
{
- GtkWidget *dialog, *table, *button, *label, *vbox;
+ GtkWidget *dialog, *grid, *button, *label, *vbox;
GtkAccelGroup *accel_group;
gint boxsize, i, row, col;
gchar *name, AccelChar;
t@@ -1498,7 +1495,9 @@ void Jet(GtkWidget *parent)
row++;
}
- table = gtk_table_new(row, col, TRUE);
+ grid = gtk_grid_new();
+ gtk_grid_set_row_homogeneous(GTK_GRID(grid), TRUE);
+ gtk_grid_set_column_homogeneous(GTK_GRID(grid), TRUE);
for (i = 0; i < NumLocation; i++) {
if (i < 9) {
t@@ -1535,10 +1534,9 @@ void Jet(GtkWidget *parent)
g_object_set_data(G_OBJECT(button), "dialog", dialog);
g_signal_connect(G_OBJECT(button), "clicked",
G_CALLBACK(JetCallback), GINT_TO_POINTER(i));
- gtk_table_attach_defaults(GTK_TABLE(table), button, col, col + 1, row,
- row + 1);
+ gtk_grid_attach(GTK_GRID(grid), button, col, row, 1, 1);
}
- gtk_box_pack_start(GTK_BOX(vbox), table, TRUE, TRUE, 0);
+ gtk_box_pack_start(GTK_BOX(vbox), grid, TRUE, TRUE, 0);
gtk_container_add(GTK_CONTAINER(dialog), vbox);
gtk_widget_show_all(dialog);
t@@ -2089,64 +2087,80 @@ void UpdateMenus(void)
GtkWidget *CreateStatusWidgets(struct StatusWidgets *Status)
{
- GtkWidget *table, *label;
+ GtkWidget *grid, *label;
- table = gtk_table_new(3, 6, FALSE);
- gtk_table_set_row_spacings(GTK_TABLE(table), 3);
- gtk_table_set_col_spacings(GTK_TABLE(table), 3);
- gtk_container_set_border_width(GTK_CONTAINER(table), 3);
+ grid = gtk_grid_new();
+ gtk_grid_set_row_spacing(GTK_GRID(grid), 3);
+ gtk_grid_set_column_spacing(GTK_GRID(grid), 3);
+ gtk_container_set_border_width(GTK_CONTAINER(grid), 3);
label = Status->Location = gtk_label_new(NULL);
- gtk_table_attach_defaults(GTK_TABLE(table), label, 0, 2, 0, 1);
+ gtk_grid_attach(GTK_GRID(grid), label, 0, 0, 2, 1);
+ gtk_widget_set_hexpand(label, TRUE);
label = Status->Date = gtk_label_new(NULL);
- gtk_table_attach_defaults(GTK_TABLE(table), label, 2, 4, 0, 1);
+ gtk_grid_attach(GTK_GRID(grid), label, 2, 0, 2, 1);
+ gtk_widget_set_hexpand(label, TRUE);
/* Available space label in GTK+ client status display */
label = Status->SpaceName = gtk_label_new(_("Space"));
- gtk_table_attach_defaults(GTK_TABLE(table), label, 4, 5, 0, 1);
+ gtk_grid_attach(GTK_GRID(grid), label, 4, 0, 1, 1);
+ gtk_widget_set_hexpand(label, TRUE);
label = Status->SpaceValue = gtk_label_new(NULL);
- gtk_table_attach_defaults(GTK_TABLE(table), label, 5, 6, 0, 1);
+ gtk_grid_attach(GTK_GRID(grid), label, 5, 0, 1, 1);
+ gtk_widget_set_hexpand(label, TRUE);
/* Player's cash label in GTK+ client status display */
label = Status->CashName = gtk_label_new(_("Cash"));
+ gtk_grid_attach(GTK_GRID(grid), label, 0, 1, 1, 1);
+ gtk_widget_set_hexpand(label, TRUE);
- gtk_table_attach_defaults(GTK_TABLE(table), label, 0, 1, 1, 2);
label = Status->CashValue = gtk_label_new(NULL);
- gtk_table_attach_defaults(GTK_TABLE(table), label, 1, 2, 1, 2);
+ gtk_grid_attach(GTK_GRID(grid), label, 1, 1, 1, 1);
+ gtk_widget_set_hexpand(label, TRUE);
/* Player's debt label in GTK+ client status display */
label = Status->DebtName = gtk_label_new(_("Debt"));
+ gtk_grid_attach(GTK_GRID(grid), label, 2, 1, 1, 1);
+ gtk_widget_set_hexpand(label, TRUE);
- gtk_table_attach_defaults(GTK_TABLE(table), label, 2, 3, 1, 2);
label = Status->DebtValue = gtk_label_new(NULL);
- gtk_table_attach_defaults(GTK_TABLE(table), label, 3, 4, 1, 2);
+ gtk_grid_attach(GTK_GRID(grid), label, 3, 1, 1, 1);
+ gtk_widget_set_hexpand(label, TRUE);
/* Player's bank balance label in GTK+ client status display */
label = Status->BankName = gtk_label_new(_("Bank"));
+ gtk_grid_attach(GTK_GRID(grid), label, 4, 1, 1, 1);
+ gtk_widget_set_hexpand(label, TRUE);
- gtk_table_attach_defaults(GTK_TABLE(table), label, 4, 5, 1, 2);
label = Status->BankValue = gtk_label_new(NULL);
- gtk_table_attach_defaults(GTK_TABLE(table), label, 5, 6, 1, 2);
+ gtk_grid_attach(GTK_GRID(grid), label, 5, 1, 1, 1);
+ gtk_widget_set_hexpand(label, TRUE);
label = Status->GunsName = gtk_label_new(NULL);
- gtk_table_attach_defaults(GTK_TABLE(table), label, 0, 1, 2, 3);
+ gtk_grid_attach(GTK_GRID(grid), label, 0, 2, 1, 1);
+ gtk_widget_set_hexpand(label, TRUE);
label = Status->GunsValue = gtk_label_new(NULL);
- gtk_table_attach_defaults(GTK_TABLE(table), label, 1, 2, 2, 3);
+ gtk_grid_attach(GTK_GRID(grid), label, 1, 2, 1, 1);
+ gtk_widget_set_hexpand(label, TRUE);
label = Status->BitchesName = gtk_label_new(NULL);
- gtk_table_attach_defaults(GTK_TABLE(table), label, 2, 3, 2, 3);
+ gtk_grid_attach(GTK_GRID(grid), label, 2, 2, 1, 1);
+ gtk_widget_set_hexpand(label, TRUE);
label = Status->BitchesValue = gtk_label_new(NULL);
- gtk_table_attach_defaults(GTK_TABLE(table), label, 3, 4, 2, 3);
+ gtk_grid_attach(GTK_GRID(grid), label, 3, 2, 1, 1);
+ gtk_widget_set_hexpand(label, TRUE);
/* Player's health label in GTK+ client status display */
label = Status->HealthName = gtk_label_new(_("Health"));
+ gtk_grid_attach(GTK_GRID(grid), label, 4, 2, 1, 1);
+ gtk_widget_set_hexpand(label, TRUE);
- gtk_table_attach_defaults(GTK_TABLE(table), label, 4, 5, 2, 3);
label = Status->HealthValue = gtk_label_new(NULL);
- gtk_table_attach_defaults(GTK_TABLE(table), label, 5, 6, 2, 3);
- return table;
+ gtk_grid_attach(GTK_GRID(grid), label, 5, 2, 1, 1);
+ gtk_widget_set_hexpand(label, TRUE);
+ return grid;
}
void SetJetButtonTitle(GtkAccelGroup *accel_group)
t@@ -2205,7 +2219,7 @@ gboolean GtkLoop(int *argc, char **argv[],
struct CMDLINE *cmdline, gboolean ReturnOnFail)
#endif
{
- GtkWidget *window, *vbox, *vbox2, *hbox, *frame, *table, *menubar, *text,
+ GtkWidget *window, *vbox, *vbox2, *hbox, *frame, *grid, *menubar, *text,
*vpaned, *button, *tv, *widget;
GtkAccelGroup *accel_group;
GtkTreeSortable *sortable;
t@@ -2289,9 +2303,9 @@ gboolean GtkLoop(int *argc, char **argv[],
frame = gtk_frame_new(_("Stats"));
gtk_container_set_border_width(GTK_CONTAINER(frame), 3);
- table = CreateStatusWidgets(&ClientData.Status);
+ grid = CreateStatusWidgets(&ClientData.Status);
- gtk_container_add(GTK_CONTAINER(frame), table);
+ gtk_container_add(GTK_CONTAINER(frame), grid);
gtk_box_pack_start(GTK_BOX(vbox), frame, FALSE, FALSE, 0);
t@@ -2385,7 +2399,7 @@ static void PackCentredURL(GtkWidget *vbox, gchar *title, gchar *target,
void display_intro(GtkWidget *widget, gpointer data)
{
- GtkWidget *dialog, *label, *table, *OKButton, *vbox, *hsep, *hbbox;
+ GtkWidget *dialog, *label, *grid, *OKButton, *vbox, *hsep, *hbbox;
gchar *VersionStr, *docindex;
const int rows = 8, cols = 3;
int i, j;
t@@ -2442,9 +2456,9 @@ void display_intro(GtkWidget *widget, gpointer data)
gtk_box_pack_start(GTK_BOX(vbox), label, FALSE, FALSE, 0);
g_free(VersionStr);
- table = gtk_table_new(rows, cols, FALSE);
- gtk_table_set_row_spacings(GTK_TABLE(table), 3);
- gtk_table_set_col_spacings(GTK_TABLE(table), 3);
+ grid = gtk_grid_new();
+ gtk_grid_set_row_spacing(GTK_GRID(grid), 3);
+ gtk_grid_set_column_spacing(GTK_GRID(grid), 3);
for (i = 0; i < rows; i++) {
if (i > 0 || strcmp(_(table_data[i][1]), "Ben Webb") != 0) {
for (j = 0; j < cols; j++) {
t@@ -2454,13 +2468,13 @@ void display_intro(GtkWidget *widget, gpointer data)
} else {
label = gtk_label_new(table_data[i][j]);
}
- gtk_table_attach_defaults(GTK_TABLE(table), label, j, j + 1, i,
- i + 1);
+ gtk_grid_attach(GTK_GRID(grid), label, j, i, 1, 1);
+ gtk_widget_set_hexpand(label, TRUE);
}
}
}
}
- gtk_box_pack_start(GTK_BOX(vbox), table, FALSE, FALSE, 0);
+ gtk_box_pack_start(GTK_BOX(vbox), grid, FALSE, FALSE, 0);
/* Label at the bottom of GTK+ 'about' dialog */
label = gtk_label_new(_("\nFor information on the command line "
t@@ -2562,7 +2576,7 @@ static void TransferOK(GtkWidget *widget, GtkWidget *dialog)
void TransferDialog(gboolean Debt)
{
- GtkWidget *dialog, *button, *label, *radio, *table, *vbox;
+ GtkWidget *dialog, *button, *label, *radio, *grid, *vbox;
GtkWidget *hbbox, *hsep, *entry;
GtkAccelGroup *accel_group;
GSList *group;
t@@ -2593,14 +2607,15 @@ void TransferDialog(gboolean Debt)
GTK_WINDOW(ClientData.window));
vbox = gtk_box_new(GTK_ORIENTATION_VERTICAL, 7);
- table = gtk_table_new(4, 3, FALSE);
- gtk_table_set_row_spacings(GTK_TABLE(table), 4);
- gtk_table_set_col_spacings(GTK_TABLE(table), 4);
+ grid = gtk_grid_new();
+ gtk_grid_set_row_spacing(GTK_GRID(grid), 4);
+ gtk_grid_set_column_spacing(GTK_GRID(grid), 4);
/* Display of player's cash in bank or loan shark dialog */
dpg_string_printf(text, _("Cash: %P"), ClientData.Play->Cash);
label = gtk_label_new(text->str);
- gtk_table_attach_defaults(GTK_TABLE(table), label, 0, 3, 0, 1);
+ gtk_grid_attach(GTK_GRID(grid), label, 0, 0, 3, 1);
+ gtk_widget_set_hexpand(label, TRUE);
if (Debt) {
/* Display of player's debt in loan shark dialog */
t@@ -2610,23 +2625,24 @@ void TransferDialog(gboolean Debt)
dpg_string_printf(text, _("Bank: %P"), ClientData.Play->Bank);
}
label = gtk_label_new(text->str);
- gtk_table_attach_defaults(GTK_TABLE(table), label, 0, 3, 1, 2);
+ gtk_grid_attach(GTK_GRID(grid), label, 0, 1, 3, 1);
+ gtk_widget_set_hexpand(label, TRUE);
g_object_set_data(G_OBJECT(dialog), "debt", GINT_TO_POINTER(Debt));
if (Debt) {
/* Prompt for paying back a loan */
label = gtk_label_new(_("Pay back:"));
- gtk_table_attach_defaults(GTK_TABLE(table), label, 0, 1, 2, 4);
+ gtk_grid_attach(GTK_GRID(grid), label, 0, 2, 1, 2);
} else {
/* Radio button selected if you want to pay money into the bank */
radio = gtk_radio_button_new_with_label(NULL, _("Deposit"));
g_object_set_data(G_OBJECT(dialog), "deposit", radio);
group = gtk_radio_button_get_group(GTK_RADIO_BUTTON(radio));
- gtk_table_attach_defaults(GTK_TABLE(table), radio, 0, 1, 2, 3);
+ gtk_grid_attach(GTK_GRID(grid), radio, 0, 2, 1, 1);
/* Radio button selected if you want to withdraw money from the bank */
radio = gtk_radio_button_new_with_label(group, _("Withdraw"));
- gtk_table_attach_defaults(GTK_TABLE(table), radio, 0, 1, 3, 4);
+ gtk_grid_attach(GTK_GRID(grid), radio, 0, 3, 1, 1);
}
label = gtk_label_new(Currency.Symbol);
entry = gtk_entry_new();
t@@ -2634,16 +2650,17 @@ void TransferDialog(gboolean Debt)
g_object_set_data(G_OBJECT(dialog), "entry", entry);
g_signal_connect(G_OBJECT(entry), "activate",
G_CALLBACK(TransferOK), dialog);
+ gtk_widget_set_hexpand(entry, TRUE);
if (Currency.Prefix) {
- gtk_table_attach_defaults(GTK_TABLE(table), label, 1, 2, 2, 4);
- gtk_table_attach_defaults(GTK_TABLE(table), entry, 2, 3, 2, 4);
+ gtk_grid_attach(GTK_GRID(grid), label, 1, 2, 1, 2);
+ gtk_grid_attach(GTK_GRID(grid), entry, 2, 2, 1, 2);
} else {
- gtk_table_attach_defaults(GTK_TABLE(table), label, 2, 3, 2, 4);
- gtk_table_attach_defaults(GTK_TABLE(table), entry, 1, 2, 2, 4);
+ gtk_grid_attach(GTK_GRID(grid), label, 2, 2, 1, 2);
+ gtk_grid_attach(GTK_GRID(grid), entry, 1, 2, 1, 2);
}
- gtk_box_pack_start(GTK_BOX(vbox), table, TRUE, TRUE, 0);
+ gtk_box_pack_start(GTK_BOX(vbox), grid, TRUE, TRUE, 0);
hsep = gtk_separator_new(GTK_ORIENTATION_HORIZONTAL);
gtk_box_pack_start(GTK_BOX(vbox), hsep, FALSE, FALSE, 0);
t@@ -3364,7 +3381,7 @@ static void CreateSpyReports(void)
void DisplaySpyReports(Player *Play)
{
- GtkWidget *dialog, *notebook, *vbox, *hbox, *frame, *label, *table;
+ GtkWidget *dialog, *notebook, *vbox, *hbox, *frame, *label, *grid;
GtkAccelGroup *accel_group;
struct StatusWidgets Status;
struct InventoryWidgets SpyDrugs, SpyGuns;
t@@ -3378,8 +3395,8 @@ void DisplaySpyReports(Player *Play)
vbox = gtk_box_new(GTK_ORIENTATION_VERTICAL, 5);
frame = gtk_frame_new("Stats");
gtk_container_set_border_width(GTK_CONTAINER(frame), 3);
- table = CreateStatusWidgets(&Status);
- gtk_container_add(GTK_CONTAINER(frame), table);
+ grid = CreateStatusWidgets(&Status);
+ gtk_container_add(GTK_CONTAINER(frame), grid);
gtk_box_pack_start(GTK_BOX(vbox), frame, FALSE, FALSE, 0);
hbox = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 5);
(DIR) diff --git a/src/gui_client/newgamedia.c b/src/gui_client/newgamedia.c
t@@ -488,7 +488,7 @@ void NewGameDialog(Player *play)
#endif
#ifdef NETWORKING
- GtkWidget *clist, *scrollwin, *table, *hbbox, *defbutton;
+ GtkWidget *clist, *scrollwin, *grid, *hbbox, *defbutton;
GtkTreeSelection *treesel;
gchar *ServerEntry, *text;
gboolean UpdateMeta = FALSE;
t@@ -550,15 +550,14 @@ void NewGameDialog(Player *play)
#ifdef NETWORKING
vbox2 = gtk_box_new(GTK_ORIENTATION_VERTICAL, 7);
gtk_container_set_border_width(GTK_CONTAINER(vbox2), 8);
- table = gtk_table_new(2, 2, FALSE);
- gtk_table_set_row_spacings(GTK_TABLE(table), 4);
- gtk_table_set_col_spacings(GTK_TABLE(table), 4);
+ grid = gtk_grid_new();
+ gtk_grid_set_row_spacing(GTK_GRID(grid), 4);
+ gtk_grid_set_column_spacing(GTK_GRID(grid), 4);
/* Prompt for hostname to connect to in GTK+ new game dialog */
label = gtk_label_new(_("Host name"));
- gtk_table_attach(GTK_TABLE(table), label, 0, 1, 0, 1,
- GTK_SHRINK, GTK_SHRINK, 0, 0);
+ gtk_grid_attach(GTK_GRID(grid), label, 0, 0, 1, 1);
entry = stgam.hostname = gtk_entry_new();
ServerEntry = "localhost";
t@@ -573,17 +572,18 @@ void NewGameDialog(Player *play)
ServerEntry = ServerName;
gtk_entry_set_text(GTK_ENTRY(entry), ServerEntry);
- gtk_table_attach_defaults(GTK_TABLE(table), entry, 1, 2, 0, 1);
+ gtk_grid_attach(GTK_GRID(grid), entry, 1, 0, 1, 1);
+ gtk_widget_set_hexpand(entry, TRUE);
label = gtk_label_new(_("Port"));
- gtk_table_attach(GTK_TABLE(table), label, 0, 1, 1, 2,
- GTK_SHRINK, GTK_SHRINK, 0, 0);
+ gtk_grid_attach(GTK_GRID(grid), label, 0, 1, 1, 1);
entry = stgam.port = gtk_entry_new();
text = g_strdup_printf("%d", Port);
gtk_entry_set_text(GTK_ENTRY(entry), text);
g_free(text);
- gtk_table_attach_defaults(GTK_TABLE(table), entry, 1, 2, 1, 2);
+ gtk_grid_attach(GTK_GRID(grid), entry, 1, 1, 1, 1);
+ gtk_widget_set_hexpand(entry, TRUE);
- gtk_box_pack_start(GTK_BOX(vbox2), table, FALSE, FALSE, 0);
+ gtk_box_pack_start(GTK_BOX(vbox2), grid, FALSE, FALSE, 0);
button = gtk_button_new_with_label("");
/* Button to connect to a named dopewars server */
t@@ -719,7 +719,7 @@ static void DestroySocksAuth(GtkWidget *window, gpointer data)
static void SocksAuthDialog(NetworkBuffer *netbuf, gpointer data)
{
- GtkWidget *window, *button, *hsep, *vbox, *label, *entry, *table, *hbbox;
+ GtkWidget *window, *button, *hsep, *vbox, *label, *entry, *grid, *hbbox;
GtkAccelGroup *accel_group;
window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
t@@ -742,19 +742,20 @@ static void SocksAuthDialog(NetworkBuffer *netbuf, gpointer data)
vbox = gtk_box_new(GTK_ORIENTATION_VERTICAL, 7);
- table = gtk_table_new(2, 2, FALSE);
- gtk_table_set_row_spacings(GTK_TABLE(table), 10);
- gtk_table_set_col_spacings(GTK_TABLE(table), 5);
+ grid = gtk_grid_new();
+ gtk_grid_set_row_spacing(GTK_GRID(grid), 10);
+ gtk_grid_set_column_spacing(GTK_GRID(grid), 5);
label = gtk_label_new("User name:");
- gtk_table_attach_defaults(GTK_TABLE(table), label, 0, 1, 0, 1);
+ gtk_grid_attach(GTK_GRID(grid), label, 0, 0, 1, 1);
entry = gtk_entry_new();
g_object_set_data(G_OBJECT(window), "username", (gpointer)entry);
- gtk_table_attach_defaults(GTK_TABLE(table), entry, 1, 2, 0, 1);
+ gtk_grid_attach(GTK_GRID(grid), entry, 1, 0, 1, 1);
+ gtk_widget_set_hexpand(entry, TRUE);
label = gtk_label_new("Password:");
- gtk_table_attach_defaults(GTK_TABLE(table), label, 0, 1, 1, 2);
+ gtk_grid_attach(GTK_GRID(grid), label, 0, 1, 1, 1);
entry = gtk_entry_new();
g_object_set_data(G_OBJECT(window), "password", (gpointer)entry);
t@@ -764,9 +765,10 @@ static void SocksAuthDialog(NetworkBuffer *netbuf, gpointer data)
gtk_entry_set_visibility(GTK_ENTRY(entry), FALSE);
#endif
- gtk_table_attach_defaults(GTK_TABLE(table), entry, 1, 2, 1, 2);
+ gtk_grid_attach(GTK_GRID(grid), entry, 1, 1, 1, 1);
+ gtk_widget_set_hexpand(entry, TRUE);
- gtk_box_pack_start(GTK_BOX(vbox), table, TRUE, TRUE, 0);
+ gtk_box_pack_start(GTK_BOX(vbox), grid, TRUE, TRUE, 0);
hsep = gtk_separator_new(GTK_ORIENTATION_HORIZONTAL);
gtk_box_pack_start(GTK_BOX(vbox), hsep, FALSE, FALSE, 0);
(DIR) diff --git a/src/gui_client/optdialog.c b/src/gui_client/optdialog.c
t@@ -270,7 +270,7 @@ static GtkWidget *NewConfigEntry(gchar *name)
return entry;
}
-static void AddStructConfig(GtkWidget *table, int row, gchar *structname,
+static void AddStructConfig(GtkWidget *grid, int row, gchar *structname,
struct ConfigMembers *member)
{
int ind;
t@@ -284,15 +284,14 @@ static void AddStructConfig(GtkWidget *table, int row, gchar *structname,
GtkWidget *check;
check = gtk_check_button_new_with_label(_(member->label));
- gtk_table_attach(GTK_TABLE(table), check, 0, 2, row, row + 1,
- GTK_EXPAND | GTK_FILL, 0, 0, 0);
+ gtk_grid_attach(GTK_GRID(grid), check, 0, row, 2, 1);
+ gtk_widget_set_hexpand(check, TRUE);
AddConfigWidget(check, ind);
} else {
GtkWidget *label, *entry;
label = gtk_label_new(_(member->label));
- gtk_table_attach(GTK_TABLE(table), label, 0, 1, row, row + 1,
- GTK_SHRINK, GTK_SHRINK, 0, 0);
+ gtk_grid_attach(GTK_GRID(grid), label, 0, row, 1, 1);
if (gvar->IntVal && gvar->MaxVal > gvar->MinVal) {
GtkAdjustment *spin_adj = (GtkAdjustment *)
gtk_adjustment_new(gvar->MinVal, gvar->MinVal, gvar->MaxVal,
t@@ -301,8 +300,8 @@ static void AddStructConfig(GtkWidget *table, int row, gchar *structname,
} else {
entry = gtk_entry_new();
}
- gtk_table_attach(GTK_TABLE(table), entry, 1, 2, row, row + 1,
- GTK_EXPAND | GTK_FILL, 0, 0, 0);
+ gtk_grid_attach(GTK_GRID(grid), entry, 1, row, 1, 1);
+ gtk_widget_set_hexpand(entry, TRUE);
AddConfigWidget(entry, ind);
}
}
t@@ -668,7 +667,7 @@ static void FinishOptDialog(GtkWidget *widget, gpointer data)
static GtkWidget *CreateList(gchar *structname, struct ConfigMembers *members)
{
- GtkWidget *hbox, *vbox, *hbbox, *tv, *scrollwin, *button, *table;
+ GtkWidget *hbox, *vbox, *hbbox, *tv, *scrollwin, *button, *grid;
GtkTreeSelection *treesel;
GtkListStore *store;
GtkCellRenderer *renderer;
t@@ -763,16 +762,16 @@ static GtkWidget *CreateList(gchar *structname, struct ConfigMembers *members)
gtk_box_pack_start(GTK_BOX(vbox), hbbox, FALSE, FALSE, 0);
gtk_box_pack_start(GTK_BOX(hbox), vbox, FALSE, FALSE, 0);
- table = gtk_table_new(nummembers + 1, 2, FALSE);
- gtk_table_set_row_spacings(GTK_TABLE(table), 5);
- gtk_table_set_col_spacings(GTK_TABLE(table), 5);
+ grid = gtk_grid_new();
+ gtk_grid_set_row_spacing(GTK_GRID(grid), 5);
+ gtk_grid_set_column_spacing(GTK_GRID(grid), 5);
- AddStructConfig(table, 0, structname, &namemember);
+ AddStructConfig(grid, 0, structname, &namemember);
for (i = 0; i < nummembers; i++) {
- AddStructConfig(table, i + 1, structname, &members[i]);
+ AddStructConfig(grid, i + 1, structname, &members[i]);
}
- gtk_box_pack_start(GTK_BOX(hbox), table, TRUE, TRUE, 0);
+ gtk_box_pack_start(GTK_BOX(hbox), grid, TRUE, TRUE, 0);
return hbox;
}
t@@ -803,7 +802,7 @@ static void FillSoundsList(GtkTreeView *tv)
void OptDialog(GtkWidget *widget, gpointer data)
{
- GtkWidget *dialog, *notebook, *table, *label, *check, *entry;
+ GtkWidget *dialog, *notebook, *label, *check, *entry, *grid;
GtkWidget *hbox, *vbox, *vbox2, *hsep, *button, *hbbox, *tv;
GtkWidget *scrollwin;
GtkAccelGroup *accel_group;
t@@ -858,67 +857,69 @@ void OptDialog(GtkWidget *widget, gpointer data)
notebook = gtk_notebook_new();
- table = gtk_table_new(8, 3, FALSE);
- gtk_table_set_row_spacings(GTK_TABLE(table), 5);
- gtk_table_set_col_spacings(GTK_TABLE(table), 5);
+ grid = gtk_grid_new();
+ gtk_grid_set_row_spacing(GTK_GRID(grid), 5);
+ gtk_grid_set_column_spacing(GTK_GRID(grid), 5);
check = NewConfigCheck("Sanitized", _("Remove drug references"));
- gtk_table_attach_defaults(GTK_TABLE(table), check, 0, 1, 0, 1);
+ gtk_grid_attach(GTK_GRID(grid), check, 0, 0, 1, 1);
check = gtk_check_button_new_with_label(_("Unicode config file"));
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(check), IsConfigFileUTF8());
- gtk_table_attach_defaults(GTK_TABLE(table), check, 1, 3, 0, 1);
+ gtk_grid_attach(GTK_GRID(grid), check, 1, 0, 2, 1);
+ gtk_widget_set_hexpand(check, TRUE);
g_object_set_data(G_OBJECT(dialog), "unicode_check", check);
label = gtk_label_new(_("Game length (turns)"));
- gtk_table_attach(GTK_TABLE(table), label, 0, 1, 1, 2,
- GTK_SHRINK, GTK_SHRINK, 0, 0);
+ gtk_grid_attach(GTK_GRID(grid), label, 0, 1, 1, 1);
entry = NewConfigEntry("NumTurns");
- gtk_table_attach_defaults(GTK_TABLE(table), entry, 1, 3, 1, 2);
+ gtk_grid_attach(GTK_GRID(grid), entry, 1, 1, 2, 1);
+ gtk_widget_set_hexpand(entry, TRUE);
label = gtk_label_new(_("Starting cash"));
- gtk_table_attach(GTK_TABLE(table), label, 0, 1, 2, 3,
- GTK_SHRINK, GTK_SHRINK, 0, 0);
+ gtk_grid_attach(GTK_GRID(grid), label, 0, 2, 1, 1);
entry = NewConfigEntry("StartCash");
- gtk_table_attach_defaults(GTK_TABLE(table), entry, 1, 3, 2, 3);
+ gtk_grid_attach(GTK_GRID(grid), entry, 1, 2, 2, 1);
+ gtk_widget_set_hexpand(entry, TRUE);
label = gtk_label_new(_("Starting debt"));
- gtk_table_attach(GTK_TABLE(table), label, 0, 1, 3, 4,
- GTK_SHRINK, GTK_SHRINK, 0, 0);
+ gtk_grid_attach(GTK_GRID(grid), label, 0, 3, 1, 1);
entry = NewConfigEntry("StartDebt");
- gtk_table_attach_defaults(GTK_TABLE(table), entry, 1, 3, 3, 4);
+ gtk_grid_attach(GTK_GRID(grid), entry, 1, 3, 2, 1);
+ gtk_widget_set_hexpand(entry, TRUE);
label = gtk_label_new(_("Currency symbol"));
- gtk_table_attach(GTK_TABLE(table), label, 0, 1, 4, 5,
- GTK_SHRINK, GTK_SHRINK, 0, 0);
+ gtk_grid_attach(GTK_GRID(grid), label, 0, 4, 1, 1);
entry = NewConfigEntry("Currency.Symbol");
- gtk_table_attach_defaults(GTK_TABLE(table), entry, 1, 2, 4, 5);
+ gtk_grid_attach(GTK_GRID(grid), entry, 1, 4, 1, 1);
+ gtk_widget_set_hexpand(entry, TRUE);
check = NewConfigCheck("Currency.Prefix", _("Symbol prefixes prices"));
- gtk_table_attach_defaults(GTK_TABLE(table), check, 2, 3, 4, 5);
+ gtk_grid_attach(GTK_GRID(grid), check, 2, 4, 1, 1);
+ gtk_widget_set_hexpand(check, TRUE);
label = gtk_label_new(_("Name of one bitch"));
- gtk_table_attach(GTK_TABLE(table), label, 0, 1, 5, 6,
- GTK_SHRINK, GTK_SHRINK, 0, 0);
+ gtk_grid_attach(GTK_GRID(grid), label, 0, 5, 1, 1);
entry = NewConfigEntry("Names.Bitch");
- gtk_table_attach_defaults(GTK_TABLE(table), entry, 1, 3, 5, 6);
+ gtk_grid_attach(GTK_GRID(grid), entry, 1, 5, 2, 1);
+ gtk_widget_set_hexpand(entry, TRUE);
label = gtk_label_new(_("Name of several bitches"));
- gtk_table_attach(GTK_TABLE(table), label, 0, 1, 6, 7,
- GTK_SHRINK, GTK_SHRINK, 0, 0);
+ gtk_grid_attach(GTK_GRID(grid), label, 0, 6, 1, 1);
entry = NewConfigEntry("Names.Bitches");
- gtk_table_attach_defaults(GTK_TABLE(table), entry, 1, 3, 6, 7);
+ gtk_grid_attach(GTK_GRID(grid), entry, 1, 6, 2, 1);
+ gtk_widget_set_hexpand(entry, TRUE);
#ifndef CYGWIN
label = gtk_label_new(_("Web browser"));
- gtk_table_attach(GTK_TABLE(table), label, 0, 1, 7, 8,
- GTK_SHRINK, GTK_SHRINK, 0, 0);
+ gtk_grid_attach(GTK_GRID(grid), label, 0, 7, 1, 1);
entry = NewConfigEntry("WebBrowser");
- gtk_table_attach_defaults(GTK_TABLE(table), entry, 1, 3, 7, 8);
+ gtk_grid_attach(GTK_GRID(grid), entry, 1, 7, 2, 1);
+ gtk_widget_set_hexpand(entry, TRUE);
#endif
- gtk_container_set_border_width(GTK_CONTAINER(table), 7);
+ gtk_container_set_border_width(GTK_CONTAINER(grid), 7);
label = gtk_label_new(_("General"));
- gtk_notebook_append_page(GTK_NOTEBOOK(notebook), table, label);
+ gtk_notebook_append_page(GTK_NOTEBOOK(notebook), grid, label);
hbox = CreateList("Location", locmembers);
gtk_container_set_border_width(GTK_CONTAINER(hbox), 7);
t@@ -935,21 +936,21 @@ void OptDialog(GtkWidget *widget, gpointer data)
hsep = gtk_separator_new(GTK_ORIENTATION_HORIZONTAL);
gtk_box_pack_start(GTK_BOX(vbox2), hsep, FALSE, FALSE, 0);
- table = gtk_table_new(2, 2, FALSE);
- gtk_table_set_row_spacings(GTK_TABLE(table), 5);
- gtk_table_set_col_spacings(GTK_TABLE(table), 5);
+ grid = gtk_grid_new();
+ gtk_grid_set_row_spacing(GTK_GRID(grid), 5);
+ gtk_grid_set_column_spacing(GTK_GRID(grid), 5);
label = gtk_label_new(_("Expensive string 1"));
- gtk_table_attach(GTK_TABLE(table), label, 0, 1, 0, 1,
- GTK_SHRINK, GTK_SHRINK, 0, 0);
+ gtk_grid_attach(GTK_GRID(grid), label, 0, 0, 1, 1);
entry = NewConfigEntry("Drugs.ExpensiveStr1");
- gtk_table_attach_defaults(GTK_TABLE(table), entry, 1, 2, 0, 1);
+ gtk_grid_attach(GTK_GRID(grid), entry, 1, 0, 1, 1);
+ gtk_widget_set_hexpand(entry, TRUE);
label = gtk_label_new(_("Expensive string 2"));
- gtk_table_attach(GTK_TABLE(table), label, 0, 1, 1, 2,
- GTK_SHRINK, GTK_SHRINK, 0, 0);
+ gtk_grid_attach(GTK_GRID(grid), label, 0, 1, 1, 1);
entry = NewConfigEntry("Drugs.ExpensiveStr2");
- gtk_table_attach_defaults(GTK_TABLE(table), entry, 1, 2, 1, 2);
- gtk_box_pack_start(GTK_BOX(vbox2), table, FALSE, FALSE, 0);
+ gtk_grid_attach(GTK_GRID(grid), entry, 1, 1, 1, 1);
+ gtk_widget_set_hexpand(entry, TRUE);
+ gtk_box_pack_start(GTK_BOX(vbox2), grid, FALSE, FALSE, 0);
label = gtk_label_new(_("Drugs"));
gtk_notebook_append_page(GTK_NOTEBOOK(notebook), vbox2, label);
t@@ -965,45 +966,42 @@ void OptDialog(GtkWidget *widget, gpointer data)
gtk_notebook_append_page(GTK_NOTEBOOK(notebook), hbox, label);
#ifdef NETWORKING
- table = gtk_table_new(6, 4, FALSE);
- gtk_table_set_row_spacings(GTK_TABLE(table), 5);
- gtk_table_set_col_spacings(GTK_TABLE(table), 5);
+ grid = gtk_grid_new();
+ gtk_grid_set_row_spacing(GTK_GRID(grid), 5);
+ gtk_grid_set_column_spacing(GTK_GRID(grid), 5);
check = NewConfigCheck("MetaServer.Active",
_("Server reports to metaserver"));
- gtk_table_attach(GTK_TABLE(table), check, 0, 2, 0, 1,
- GTK_EXPAND | GTK_FILL, 0, 0, 0);
+ gtk_grid_attach(GTK_GRID(grid), check, 0, 0, 2, 1);
+ gtk_widget_set_hexpand(check, TRUE);
#ifdef CYGWIN
check = NewConfigCheck("MinToSysTray", _("Minimize to System Tray"));
- gtk_table_attach(GTK_TABLE(table), check, 2, 4, 0, 1,
- GTK_EXPAND | GTK_FILL, 0, 0, 0);
+ gtk_grid_attach(GTK_GRID(grid), check, 2, 0, 2, 1);
+ gtk_widget_set_hexpand(check, TRUE);
#endif
label = gtk_label_new(_("Metaserver URL"));
- gtk_table_attach(GTK_TABLE(table), label, 0, 1, 1, 2,
- GTK_SHRINK, GTK_SHRINK, 0, 0);
+ gtk_grid_attach(GTK_GRID(grid), label, 0, 1, 1, 1);
entry = NewConfigEntry("MetaServer.URL");
- gtk_table_attach(GTK_TABLE(table), entry, 1, 4, 1, 2,
- GTK_EXPAND | GTK_FILL, 0, 0, 0);
+ gtk_grid_attach(GTK_GRID(grid), entry, 1, 1, 3, 1);
+ gtk_widget_set_hexpand(entry, TRUE);
label = gtk_label_new(_("Comment"));
- gtk_table_attach(GTK_TABLE(table), label, 0, 1, 4, 5,
- GTK_SHRINK, GTK_SHRINK, 0, 0);
+ gtk_grid_attach(GTK_GRID(grid), label, 0, 4, 1, 1);
entry = NewConfigEntry("MetaServer.Comment");
- gtk_table_attach(GTK_TABLE(table), entry, 1, 4, 4, 5,
- GTK_EXPAND | GTK_FILL, 0, 0, 0);
+ gtk_grid_attach(GTK_GRID(grid), entry, 1, 4, 3, 1);
+ gtk_widget_set_hexpand(entry, TRUE);
label = gtk_label_new(_("MOTD (welcome message)"));
- gtk_table_attach(GTK_TABLE(table), label, 0, 1, 5, 6,
- GTK_SHRINK, GTK_SHRINK, 0, 0);
+ gtk_grid_attach(GTK_GRID(grid), label, 0, 5, 1, 1);
entry = NewConfigEntry("ServerMOTD");
- gtk_table_attach(GTK_TABLE(table), entry, 1, 4, 5, 6,
- GTK_EXPAND | GTK_FILL, 0, 0, 0);
+ gtk_grid_attach(GTK_GRID(grid), entry, 1, 5, 3, 1);
+ gtk_widget_set_hexpand(entry, TRUE);
- gtk_container_set_border_width(GTK_CONTAINER(table), 7);
+ gtk_container_set_border_width(GTK_CONTAINER(grid), 7);
label = gtk_label_new(_("Server"));
- gtk_notebook_append_page(GTK_NOTEBOOK(notebook), table, label);
+ gtk_notebook_append_page(GTK_NOTEBOOK(notebook), grid, label);
#endif
vbox2 = gtk_box_new(GTK_ORIENTATION_VERTICAL, 5);