From eb46631a7dd475744184b0d2197315876ca11d45 Mon Sep 17 00:00:00 2001 From: deepend Date: Thu, 5 Feb 2026 01:59:15 -0700 Subject: [PATCH] Added GTK utility helpers for box/grid creation and attachment that map GTK3 layout settings while preserving GTK2 fallbacks. Updated multiple GTK UI layout paths (setup, server list, notify, ban list, join dialog, and menu) to use the new helpers for GTK3-safe box/grid creation and attachment behavior. Added GTK3-safe attach option definitions and updated helper signatures to avoid GTK2-only types/macros in public headers. Updated gtkutil grid-attachment helpers to use the new attach option type in alignment/expansion logic. Switched banlist grid attachments to the new helper option flags for GTK3 builds. --- src/fe-gtk/banlist.c | 20 ++----- src/fe-gtk/chanview-tabs.c | 42 +++----------- src/fe-gtk/gtkutil.c | 112 +++++++++++++++++++++++++++++++------ src/fe-gtk/gtkutil.h | 24 ++++++++ src/fe-gtk/joind.c | 24 ++------ src/fe-gtk/menu.c | 7 +-- src/fe-gtk/notifygui.c | 36 +++--------- src/fe-gtk/servlistgui.c | 52 ++++------------- src/fe-gtk/setup.c | 76 +++++++++++-------------- 9 files changed, 186 insertions(+), 207 deletions(-) diff --git a/src/fe-gtk/banlist.c b/src/fe-gtk/banlist.c index 5cf1c7ca..d4a6a14d 100644 --- a/src/fe-gtk/banlist.c +++ b/src/fe-gtk/banlist.c @@ -786,17 +786,14 @@ banlist_closegui (GtkWidget *wid, banlist_info *banl) static GtkWidget * banlist_table_new (void) { + GtkWidget *table = gtkutil_grid_new (1, MODE_CT, FALSE); + #if HAVE_GTK3 - GtkWidget *table = gtk_grid_new (); - gtk_grid_set_column_spacing (GTK_GRID (table), 16); - return table; #else - GtkWidget *table = gtk_table_new (1, MODE_CT, FALSE); - gtk_table_set_col_spacings (GTK_TABLE (table), 16); - return table; #endif + return table; } void @@ -856,15 +853,8 @@ banlist_opengui (struct session *sess) gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (banl->checkboxes[i]), (banl->checked & 1<checkboxes[i]), "toggled", G_CALLBACK (banlist_toggle), banl); -#if HAVE_GTK3 - gtk_widget_set_hexpand (banl->checkboxes[i], FALSE); - gtk_widget_set_vexpand (banl->checkboxes[i], FALSE); - gtk_widget_set_halign (banl->checkboxes[i], GTK_ALIGN_START); - gtk_widget_set_valign (banl->checkboxes[i], GTK_ALIGN_CENTER); - gtk_grid_attach (GTK_GRID (table), banl->checkboxes[i], i + 1, 0, 1, 1); -#else - gtk_table_attach (GTK_TABLE (table), banl->checkboxes[i], i+1, i+2, 0, 1, GTK_FILL, GTK_FILL, 0, 0); -#endif + gtkutil_grid_attach (table, banl->checkboxes[i], i + 1, i + 2, 0, 1, + GTKUTIL_ATTACH_FILL, GTKUTIL_ATTACH_FILL, 0, 0); } #if HAVE_GTK3 diff --git a/src/fe-gtk/chanview-tabs.c b/src/fe-gtk/chanview-tabs.c index 1f04d062..c4d6b3c9 100644 --- a/src/fe-gtk/chanview-tabs.c +++ b/src/fe-gtk/chanview-tabs.c @@ -341,19 +341,11 @@ cv_tabs_init (chanview *cv) if (cv->vertical) { -#if HAVE_GTK3 - outer = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0); -#elif !HAVE_GTK3 - outer = gtk_vbox_new (0, 0); -#endif + outer = gtkutil_box_new (GTK_ORIENTATION_VERTICAL, FALSE, 0); } else { -#if HAVE_GTK3 - outer = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0); -#elif !HAVE_GTK3 - outer = gtk_hbox_new (0, 0); -#endif + outer = gtkutil_box_new (GTK_ORIENTATION_HORIZONTAL, FALSE, 0); } ((tabview *)cv)->outer = outer; g_signal_connect (G_OBJECT (outer), "size_allocate", @@ -372,19 +364,11 @@ cv_tabs_init (chanview *cv) if (cv->vertical) { -#if HAVE_GTK3 - box = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0); -#elif !HAVE_GTK3 - box = gtk_vbox_new (FALSE, 0); -#endif + box = gtkutil_box_new (GTK_ORIENTATION_VERTICAL, FALSE, 0); } else { -#if HAVE_GTK3 - box = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0); -#elif !HAVE_GTK3 - box = gtk_hbox_new (FALSE, 0); -#endif + box = gtkutil_box_new (GTK_ORIENTATION_HORIZONTAL, FALSE, 0); } ((tabview *)cv)->inner = box; gtk_container_add (GTK_CONTAINER (viewport), box); @@ -393,11 +377,7 @@ cv_tabs_init (chanview *cv) /* if vertical, the buttons can be side by side */ if (cv->vertical) { -#if HAVE_GTK3 - hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0); -#elif !HAVE_GTK3 - hbox = gtk_hbox_new (FALSE, 0); -#endif + hbox = gtkutil_box_new (GTK_ORIENTATION_HORIZONTAL, FALSE, 0); gtk_box_pack_start (GTK_BOX (outer), hbox, 0, 0, 0); gtk_widget_show (hbox); } @@ -565,11 +545,7 @@ tab_add_real (chanview *cv, GtkWidget *tab, chan *ch) if (cv->vertical) { /* vertical */ -#if HAVE_GTK3 - box = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0); -#elif !HAVE_GTK3 - box = gtk_vbox_new (FALSE, 0); -#endif + box = gtkutil_box_new (GTK_ORIENTATION_VERTICAL, FALSE, 0); #if HAVE_GTK3 sep = gtk_separator_new (GTK_ORIENTATION_HORIZONTAL); #elif !HAVE_GTK3 @@ -578,11 +554,7 @@ tab_add_real (chanview *cv, GtkWidget *tab, chan *ch) } else { /* horiz */ -#if HAVE_GTK3 - box = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0); -#elif !HAVE_GTK3 - box = gtk_hbox_new (FALSE, 0); -#endif + box = gtkutil_box_new (GTK_ORIENTATION_HORIZONTAL, FALSE, 0); #if HAVE_GTK3 sep = gtk_separator_new (GTK_ORIENTATION_VERTICAL); #elif !HAVE_GTK3 diff --git a/src/fe-gtk/gtkutil.c b/src/fe-gtk/gtkutil.c index 8a8bf7e8..f4c2258a 100644 --- a/src/fe-gtk/gtkutil.c +++ b/src/fe-gtk/gtkutil.c @@ -683,12 +683,7 @@ fe_get_str (char *msg, char *def, void *callback, void *userdata) gtk_window_set_position (GTK_WINDOW (dialog), GTK_WIN_POS_MOUSE); } -#if HAVE_GTK3 - hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0); - gtk_box_set_homogeneous (GTK_BOX (hbox), TRUE); -#elif !HAVE_GTK3 - hbox = gtk_hbox_new (TRUE, 0); -#endif + hbox = gtkutil_box_new (GTK_ORIENTATION_HORIZONTAL, TRUE, 0); g_object_set_data (G_OBJECT (dialog), "cb", callback); g_object_set_data (G_OBJECT (dialog), "ud", userdata); @@ -781,12 +776,7 @@ fe_get_int (char *msg, int def, void *callback, void *userdata) gtk_window_set_position (GTK_WINDOW (dialog), GTK_WIN_POS_MOUSE); gtk_window_set_transient_for (GTK_WINDOW (dialog), GTK_WINDOW (parent_window)); -#if HAVE_GTK3 - hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0); - gtk_box_set_homogeneous (GTK_BOX (hbox), TRUE); -#elif !HAVE_GTK3 - hbox = gtk_hbox_new (TRUE, 0); -#endif + hbox = gtkutil_box_new (GTK_ORIENTATION_HORIZONTAL, TRUE, 0); g_object_set_data (G_OBJECT (dialog), "cb", callback); g_object_set_data (G_OBJECT (dialog), "ud", userdata); @@ -880,11 +870,7 @@ gtkutil_button (GtkWidget *box, char *stock, char *tip, void *callback, } else { -#if HAVE_GTK3 - bbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0); -#elif !HAVE_GTK3 - bbox = gtk_hbox_new (0, 0); -#endif + bbox = gtkutil_box_new (GTK_ORIENTATION_HORIZONTAL, FALSE, 0); gtk_container_add (GTK_CONTAINER (wid), bbox); gtk_widget_show (bbox); @@ -1177,3 +1163,95 @@ gtkutil_find_font (const char *fontname) return FALSE; } #endif + +GtkWidget * +gtkutil_box_new (GtkOrientation orientation, gboolean homogeneous, gint spacing) +{ +#if HAVE_GTK3 + GtkWidget *box = gtk_box_new (orientation, spacing); + + gtk_box_set_homogeneous (GTK_BOX (box), homogeneous); + return box; +#elif !HAVE_GTK3 + if (orientation == GTK_ORIENTATION_HORIZONTAL) + return gtk_hbox_new (homogeneous, spacing); + + return gtk_vbox_new (homogeneous, spacing); +#endif +} + +GtkWidget * +gtkutil_grid_new (guint rows, guint columns, gboolean homogeneous) +{ +#if HAVE_GTK3 + GtkWidget *grid = gtk_grid_new (); + + gtk_grid_set_row_homogeneous (GTK_GRID (grid), homogeneous); + gtk_grid_set_column_homogeneous (GTK_GRID (grid), homogeneous); + return grid; +#elif !HAVE_GTK3 + return gtk_table_new (rows, columns, homogeneous); +#endif +} + +#if HAVE_GTK3 +static GtkAlign +gtkutil_align_from_options (GtkutilAttachOptions options, GtkAlign default_align) +{ + if (options & GTKUTIL_ATTACH_FILL) + return GTK_ALIGN_FILL; + + return default_align; +} +#endif + +static gboolean +gtkutil_expansion_from_options (GtkutilAttachOptions options, gboolean default_expand) +{ + if (options & GTKUTIL_ATTACH_EXPAND) + return TRUE; + + return default_expand; +} + +void +gtkutil_grid_attach (GtkWidget *table, GtkWidget *child, + guint left_attach, guint right_attach, + guint top_attach, guint bottom_attach, + GtkutilAttachOptions xoptions, GtkutilAttachOptions yoptions, + guint xpad, guint ypad) +{ +#if HAVE_GTK3 + gtk_widget_set_hexpand (child, gtkutil_expansion_from_options (xoptions, FALSE)); + gtk_widget_set_vexpand (child, gtkutil_expansion_from_options (yoptions, FALSE)); + gtk_widget_set_halign (child, gtkutil_align_from_options (xoptions, GTK_ALIGN_CENTER)); + gtk_widget_set_valign (child, gtkutil_align_from_options (yoptions, GTK_ALIGN_CENTER)); + gtk_widget_set_margin_start (child, xpad); + gtk_widget_set_margin_end (child, xpad); + gtk_widget_set_margin_top (child, ypad); + gtk_widget_set_margin_bottom (child, ypad); + gtk_grid_attach (GTK_GRID (table), child, left_attach, top_attach, + right_attach - left_attach, bottom_attach - top_attach); +#elif !HAVE_GTK3 + gtk_table_attach (GTK_TABLE (table), child, left_attach, right_attach, + top_attach, bottom_attach, xoptions, yoptions, xpad, ypad); +#endif +} + +void +gtkutil_grid_attach_defaults (GtkWidget *table, GtkWidget *child, + guint left_attach, guint right_attach, + guint top_attach, guint bottom_attach) +{ +#if HAVE_GTK3 + gtk_widget_set_hexpand (child, TRUE); + gtk_widget_set_vexpand (child, TRUE); + gtk_widget_set_halign (child, GTK_ALIGN_FILL); + gtk_widget_set_valign (child, GTK_ALIGN_FILL); + gtk_grid_attach (GTK_GRID (table), child, left_attach, top_attach, + right_attach - left_attach, bottom_attach - top_attach); +#elif !HAVE_GTK3 + gtk_table_attach_defaults (GTK_TABLE (table), child, left_attach, right_attach, + top_attach, bottom_attach); +#endif +} diff --git a/src/fe-gtk/gtkutil.h b/src/fe-gtk/gtkutil.h index af9b8499..e336100c 100644 --- a/src/fe-gtk/gtkutil.h +++ b/src/fe-gtk/gtkutil.h @@ -26,6 +26,20 @@ typedef void (*filereqcallback) (void *, char *file); +#if HAVE_GTK3 +typedef enum +{ + GTKUTIL_ATTACH_EXPAND = 1 << 0, + GTKUTIL_ATTACH_SHRINK = 1 << 1, + GTKUTIL_ATTACH_FILL = 1 << 2 +} GtkutilAttachOptions; +#else +typedef GtkAttachOptions GtkutilAttachOptions; +#define GTKUTIL_ATTACH_EXPAND GTK_EXPAND +#define GTKUTIL_ATTACH_SHRINK GTK_SHRINK +#define GTKUTIL_ATTACH_FILL GTK_FILL +#endif + void gtkutil_file_req (GtkWindow *parent, const char *title, void *callback, void *userdata, char *filter, char *extensions, int flags); void gtkutil_destroy (GtkWidget * igad, GtkWidget * dgad); void gtkutil_destroy_on_esc (GtkWidget *win); @@ -50,6 +64,16 @@ gboolean gtkutil_treemodel_string_to_iter (GtkTreeModel *model, gchar *pathstr, gboolean gtkutil_treeview_get_selected_iter (GtkTreeView *view, GtkTreeIter *iter_ret); gboolean gtkutil_treeview_get_selected (GtkTreeView *view, GtkTreeIter *iter_ret, ...); gboolean gtkutil_tray_icon_supported (GtkWindow *window); +GtkWidget *gtkutil_box_new (GtkOrientation orientation, gboolean homogeneous, gint spacing); +GtkWidget *gtkutil_grid_new (guint rows, guint columns, gboolean homogeneous); +void gtkutil_grid_attach (GtkWidget *table, GtkWidget *child, + guint left_attach, guint right_attach, + guint top_attach, guint bottom_attach, + GtkutilAttachOptions xoptions, GtkutilAttachOptions yoptions, + guint xpad, guint ypad); +void gtkutil_grid_attach_defaults (GtkWidget *table, GtkWidget *child, + guint left_attach, guint right_attach, + guint top_attach, guint bottom_attach); #if HAVE_GTK3 void gtkutil_apply_palette (GtkWidget *widget, const GdkRGBA *bg, const GdkRGBA *fg, const PangoFontDescription *font_desc); diff --git a/src/fe-gtk/joind.c b/src/fe-gtk/joind.c index 17ee06f8..7106ff3c 100644 --- a/src/fe-gtk/joind.c +++ b/src/fe-gtk/joind.c @@ -148,19 +148,11 @@ joind_show_dialog (server *serv) dialog_vbox1 = gtk_dialog_get_content_area (GTK_DIALOG (dialog1)); gtk_widget_show (dialog_vbox1); -#if HAVE_GTK3 - vbox1 = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0); -#elif !HAVE_GTK3 - vbox1 = gtk_vbox_new (FALSE, 0); -#endif + vbox1 = gtkutil_box_new (GTK_ORIENTATION_VERTICAL, FALSE, 0); gtk_widget_show (vbox1); gtk_box_pack_start (GTK_BOX (dialog_vbox1), vbox1, TRUE, TRUE, 0); -#if HAVE_GTK3 - hbox1 = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0); -#elif !HAVE_GTK3 - hbox1 = gtk_hbox_new (FALSE, 0); -#endif + hbox1 = gtkutil_box_new (GTK_ORIENTATION_HORIZONTAL, FALSE, 0); gtk_widget_show (hbox1); gtk_box_pack_start (GTK_BOX (vbox1), hbox1, TRUE, TRUE, 0); @@ -175,11 +167,7 @@ joind_show_dialog (server *serv) gtk_misc_set_alignment (GTK_MISC (image1), 0.5f, 0.06f); #endif -#if HAVE_GTK3 - vbox2 = gtk_box_new (GTK_ORIENTATION_VERTICAL, 10); -#elif !HAVE_GTK3 - vbox2 = gtk_vbox_new (FALSE, 10); -#endif + vbox2 = gtkutil_box_new (GTK_ORIENTATION_VERTICAL, FALSE, 10); gtk_container_set_border_width (GTK_CONTAINER (vbox2), 6); gtk_widget_show (vbox2); gtk_box_pack_start (GTK_BOX (hbox1), vbox2, TRUE, TRUE, 0); @@ -224,11 +212,7 @@ joind_show_dialog (server *serv) gtk_box_pack_start (GTK_BOX (vbox2), radiobutton1, FALSE, FALSE, 0); radiobutton1_group = gtk_radio_button_get_group (GTK_RADIO_BUTTON (radiobutton1)); -#if HAVE_GTK3 - hbox2 = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0); -#elif !HAVE_GTK3 - hbox2 = gtk_hbox_new (FALSE, 0); -#endif + hbox2 = gtkutil_box_new (GTK_ORIENTATION_HORIZONTAL, FALSE, 0); gtk_widget_show (hbox2); gtk_box_pack_start (GTK_BOX (vbox2), hbox2, FALSE, FALSE, 0); diff --git a/src/fe-gtk/menu.c b/src/fe-gtk/menu.c index 55c398a6..14c0392a 100644 --- a/src/fe-gtk/menu.c +++ b/src/fe-gtk/menu.c @@ -1557,12 +1557,7 @@ menu_join (GtkWidget * wid, gpointer none) gtk_box_set_homogeneous (GTK_BOX (GTK_DIALOG (dialog)->vbox), TRUE); #endif gtk_window_set_position (GTK_WINDOW (dialog), GTK_WIN_POS_MOUSE); -#if HAVE_GTK3 - hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0); - gtk_box_set_homogeneous (GTK_BOX (hbox), TRUE); -#elif !HAVE_GTK3 - hbox = gtk_hbox_new (TRUE, 0); -#endif + hbox = gtkutil_box_new (GTK_ORIENTATION_HORIZONTAL, TRUE, 0); entry = gtk_entry_new (); #if HAVE_GTK3 diff --git a/src/fe-gtk/notifygui.c b/src/fe-gtk/notifygui.c index e52b4180..9aec185e 100644 --- a/src/fe-gtk/notifygui.c +++ b/src/fe-gtk/notifygui.c @@ -393,65 +393,43 @@ fe_notify_ask (char *nick, char *networks) gtk_window_set_transient_for (GTK_WINDOW (dialog), GTK_WINDOW (parent_window)); gtk_window_set_position (GTK_WINDOW (dialog), GTK_WIN_POS_MOUSE); -#if HAVE_GTK3 - table = gtk_grid_new (); + table = gtkutil_grid_new (2, 3, FALSE); gtk_container_set_border_width (GTK_CONTAINER (table), 12); +#if HAVE_GTK3 gtk_grid_set_row_spacing (GTK_GRID (table), 3); gtk_grid_set_column_spacing (GTK_GRID (table), 8); #else - table = gtk_table_new (2, 3, FALSE); - gtk_container_set_border_width (GTK_CONTAINER (table), 12); gtk_table_set_row_spacings (GTK_TABLE (table), 3); gtk_table_set_col_spacings (GTK_TABLE (table), 8); #endif gtk_container_add (GTK_CONTAINER (gtk_dialog_get_content_area (GTK_DIALOG (dialog))), table); label = gtk_label_new (msg); -#if HAVE_GTK3 - gtk_grid_attach (GTK_GRID (table), label, 0, 0, 1, 1); -#else - gtk_table_attach_defaults (GTK_TABLE (table), label, 0, 1, 0, 1); -#endif + gtkutil_grid_attach_defaults (table, label, 0, 1, 0, 1); entry = gtk_entry_new (); gtk_entry_set_text (GTK_ENTRY (entry), nick); g_signal_connect (G_OBJECT (entry), "activate", G_CALLBACK (notifygui_add_enter), dialog); -#if HAVE_GTK3 - gtk_grid_attach (GTK_GRID (table), entry, 1, 0, 1, 1); -#else - gtk_table_attach_defaults (GTK_TABLE (table), entry, 1, 2, 0, 1); -#endif + gtkutil_grid_attach_defaults (table, entry, 1, 2, 0, 1); g_signal_connect (G_OBJECT (dialog), "response", G_CALLBACK (notifygui_add_cb), entry); label = gtk_label_new (_("Notify on these networks:")); -#if HAVE_GTK3 - gtk_grid_attach (GTK_GRID (table), label, 0, 2, 1, 1); -#else - gtk_table_attach_defaults (GTK_TABLE (table), label, 0, 1, 2, 3); -#endif + gtkutil_grid_attach_defaults (table, label, 0, 1, 2, 3); wid = gtk_entry_new (); g_object_set_data (G_OBJECT (entry), "net", wid); g_signal_connect (G_OBJECT (wid), "activate", G_CALLBACK (notifygui_add_enter), dialog); gtk_entry_set_text (GTK_ENTRY (wid), networks ? networks : "ALL"); -#if HAVE_GTK3 - gtk_grid_attach (GTK_GRID (table), wid, 1, 2, 1, 1); -#else - gtk_table_attach_defaults (GTK_TABLE (table), wid, 1, 2, 2, 3); -#endif + gtkutil_grid_attach_defaults (table, wid, 1, 2, 2, 3); label = gtk_label_new (NULL); g_snprintf (buf, sizeof (buf), "%s", _("Comma separated list of networks is accepted.")); gtk_label_set_markup (GTK_LABEL (label), buf); -#if HAVE_GTK3 - gtk_grid_attach (GTK_GRID (table), label, 1, 3, 1, 1); -#else - gtk_table_attach_defaults (GTK_TABLE (table), label, 1, 2, 3, 4); -#endif + gtkutil_grid_attach_defaults (table, label, 1, 2, 3, 4); gtk_widget_show_all (dialog); } diff --git a/src/fe-gtk/servlistgui.c b/src/fe-gtk/servlistgui.c index bb89775e..2a014be6 100644 --- a/src/fe-gtk/servlistgui.c +++ b/src/fe-gtk/servlistgui.c @@ -1870,20 +1870,12 @@ servlist_open_edit (GtkWidget *parent, ircnet *net) gtk_window_set_type_hint (GTK_WINDOW (editwindow), GDK_WINDOW_TYPE_HINT_DIALOG); gtk_window_set_role (GTK_WINDOW (editwindow), "editserv"); -#if HAVE_GTK3 - vbox5 = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0); -#elif !HAVE_GTK3 - vbox5 = gtk_vbox_new (FALSE, 0); -#endif + vbox5 = gtkutil_box_new (GTK_ORIENTATION_VERTICAL, FALSE, 0); gtk_container_add (GTK_CONTAINER (editwindow), vbox5); /* Tabs and buttons */ -#if HAVE_GTK3 - hbox1 = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0); -#elif !HAVE_GTK3 - hbox1 = gtk_hbox_new (FALSE, 0); -#endif + hbox1 = gtkutil_box_new (GTK_ORIENTATION_HORIZONTAL, FALSE, 0); gtk_box_pack_start (GTK_BOX (vbox5), hbox1, TRUE, TRUE, 4); scrolledwindow2 = gtk_scrolled_window_new (NULL, NULL); @@ -2035,14 +2027,12 @@ servlist_open_edit (GtkWidget *parent, ircnet *net) /* Checkboxes and entries */ -#if HAVE_GTK3 - table3 = gtk_grid_new (); + table3 = gtkutil_grid_new (13, 2, FALSE); gtk_box_pack_start (GTK_BOX (vbox5), table3, FALSE, FALSE, 0); +#if HAVE_GTK3 gtk_grid_set_row_spacing (GTK_GRID (table3), 2); gtk_grid_set_column_spacing (GTK_GRID (table3), 8); #else - table3 = gtk_table_new (13, 2, FALSE); - gtk_box_pack_start (GTK_BOX (vbox5), table3, FALSE, FALSE, 0); gtk_table_set_row_spacings (GTK_TABLE (table3), 2); gtk_table_set_col_spacings (GTK_TABLE (table3), 8); #endif @@ -2202,29 +2192,21 @@ servlist_open_networks (void) if (current_sess) gtk_window_set_transient_for (GTK_WINDOW (servlist), GTK_WINDOW (current_sess->gui->window)); -#if HAVE_GTK3 - vbox1 = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0); -#elif !HAVE_GTK3 - vbox1 = gtk_vbox_new (FALSE, 0); -#endif + vbox1 = gtkutil_box_new (GTK_ORIENTATION_VERTICAL, FALSE, 0); gtk_widget_show (vbox1); gtk_container_add (GTK_CONTAINER (servlist), vbox1); label2 = bold_label (_("User Information")); gtk_box_pack_start (GTK_BOX (vbox1), label2, FALSE, FALSE, 0); -#if HAVE_GTK3 - table1 = gtk_grid_new (); + table1 = gtkutil_grid_new (5, 2, FALSE); gtk_widget_show (table1); gtk_box_pack_start (GTK_BOX (vbox1), table1, FALSE, FALSE, 0); gtk_container_set_border_width (GTK_CONTAINER (table1), 8); +#if HAVE_GTK3 gtk_grid_set_row_spacing (GTK_GRID (table1), 2); gtk_grid_set_column_spacing (GTK_GRID (table1), 4); #else - table1 = gtk_table_new (5, 2, FALSE); - gtk_widget_show (table1); - gtk_box_pack_start (GTK_BOX (vbox1), table1, FALSE, FALSE, 0); - gtk_container_set_border_width (GTK_CONTAINER (table1), 8); gtk_table_set_row_spacings (GTK_TABLE (table1), 2); gtk_table_set_col_spacings (GTK_TABLE (table1), 4); #endif @@ -2327,29 +2309,21 @@ servlist_open_networks (void) (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), (GtkAttachOptions) (0), 0, 0); */ -#if HAVE_GTK3 - vbox2 = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0); -#elif !HAVE_GTK3 - vbox2 = gtk_vbox_new (FALSE, 0); -#endif + vbox2 = gtkutil_box_new (GTK_ORIENTATION_VERTICAL, FALSE, 0); gtk_widget_show (vbox2); gtk_box_pack_start (GTK_BOX (vbox1), vbox2, TRUE, TRUE, 0); label1 = bold_label (_("Networks")); gtk_box_pack_start (GTK_BOX (vbox2), label1, FALSE, FALSE, 0); -#if HAVE_GTK3 - table4 = gtk_grid_new (); + table4 = gtkutil_grid_new (2, 2, FALSE); gtk_widget_show (table4); gtk_box_pack_start (GTK_BOX (vbox2), table4, TRUE, TRUE, 0); gtk_container_set_border_width (GTK_CONTAINER (table4), 8); +#if HAVE_GTK3 gtk_grid_set_row_spacing (GTK_GRID (table4), 2); gtk_grid_set_column_spacing (GTK_GRID (table4), 3); #else - table4 = gtk_table_new (2, 2, FALSE); - gtk_widget_show (table4); - gtk_box_pack_start (GTK_BOX (vbox2), table4, TRUE, TRUE, 0); - gtk_container_set_border_width (GTK_CONTAINER (table4), 8); gtk_table_set_row_spacings (GTK_TABLE (table4), 2); gtk_table_set_col_spacings (GTK_TABLE (table4), 3); #endif @@ -2386,11 +2360,7 @@ servlist_open_networks (void) "weight", 2, NULL); -#if HAVE_GTK3 - hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0); -#elif !HAVE_GTK3 - hbox = gtk_hbox_new (0, FALSE); -#endif + hbox = gtkutil_box_new (GTK_ORIENTATION_HORIZONTAL, FALSE, 0); servlist_table_attach (table4, hbox, 0, 2, 1, 2, FALSE, FALSE, SERVLIST_ALIGN_FILL, SERVLIST_ALIGN_CENTER, diff --git a/src/fe-gtk/setup.c b/src/fe-gtk/setup.c index 9d4b6e20..d6b9a833 100644 --- a/src/fe-gtk/setup.c +++ b/src/fe-gtk/setup.c @@ -959,7 +959,7 @@ setup_create_spin (GtkWidget *table, int row, const setting *set) LABEL_INDENT, 0); #if HAVE_GTK3 - rbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0); + rbox = gtkutil_box_new (GTK_ORIENTATION_HORIZONTAL, FALSE, 0); gtk_widget_set_halign (rbox, GTK_ALIGN_START); gtk_widget_set_valign (rbox, GTK_ALIGN_CENTER); setup_table_attach (table, rbox, 3, 4, row, row + 1, TRUE, FALSE, @@ -969,7 +969,7 @@ setup_create_spin (GtkWidget *table, int row, const setting *set) setup_table_attach (table, align, 3, 4, row, row + 1, TRUE, FALSE, SETUP_ALIGN_FILL, SETUP_ALIGN_FILL, 0, 0); - rbox = gtk_hbox_new (0, 0); + rbox = gtkutil_box_new (GTK_ORIENTATION_HORIZONTAL, FALSE, 0); gtk_container_add (GTK_CONTAINER (align), rbox); #endif @@ -1107,9 +1107,9 @@ setup_create_radio (GtkWidget *table, int row, const setting *set) LABEL_INDENT, 0); #if HAVE_GTK3 - hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0); + hbox = gtkutil_box_new (GTK_ORIENTATION_HORIZONTAL, FALSE, 0); #elif !HAVE_GTK3 - hbox = gtk_hbox_new (0, 0); + hbox = gtkutil_box_new (GTK_ORIENTATION_HORIZONTAL, FALSE, 0); #endif setup_table_attach (table, hbox, 3, 4, row, row + 1, FALSE, FALSE, SETUP_ALIGN_FILL, SETUP_ALIGN_FILL, 0, 0); @@ -1242,9 +1242,9 @@ setup_create_menu (GtkWidget *table, int row, const setting *set) G_CALLBACK (setup_menu_cb), (gpointer)set); #if HAVE_GTK3 - box = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0); + box = gtkutil_box_new (GTK_ORIENTATION_HORIZONTAL, FALSE, 0); #elif !HAVE_GTK3 - box = gtk_hbox_new (0, 0); + box = gtkutil_box_new (GTK_ORIENTATION_HORIZONTAL, FALSE, 0); #endif gtk_box_pack_start (GTK_BOX (box), cbox, 0, 0, 0); setup_table_attach (table, box, 3, 4, row, row + 1, TRUE, FALSE, @@ -1527,14 +1527,12 @@ setup_create_frame (void) { GtkWidget *tab; -#if HAVE_GTK3 - tab = gtk_grid_new (); + tab = gtkutil_grid_new (3, 2, FALSE); gtk_container_set_border_width (GTK_CONTAINER (tab), 6); +#if HAVE_GTK3 gtk_grid_set_row_spacing (GTK_GRID (tab), 2); gtk_grid_set_column_spacing (GTK_GRID (tab), 3); #else - tab = gtk_table_new (3, 2, FALSE); - gtk_container_set_border_width (GTK_CONTAINER (tab), 6); gtk_table_set_row_spacings (GTK_TABLE (tab), 2); gtk_table_set_col_spacings (GTK_TABLE (tab), 3); #endif @@ -1679,9 +1677,9 @@ setup_create_dark_mode_menu (GtkWidget *table, int row, const setting *set) G_CALLBACK (setup_dark_mode_menu_cb), (gpointer)set); #if HAVE_GTK3 - box = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0); + box = gtkutil_box_new (GTK_ORIENTATION_HORIZONTAL, FALSE, 0); #elif !HAVE_GTK3 - box = gtk_hbox_new (0, 0); + box = gtkutil_box_new (GTK_ORIENTATION_HORIZONTAL, FALSE, 0); #endif gtk_box_pack_start (GTK_BOX (box), cbox, 0, 0, 0); setup_table_attach (table, box, 3, 4, row, row + 1, TRUE, FALSE, @@ -1953,26 +1951,19 @@ setup_create_color_page (void) GtkWidget *tab, *box, *label; int i; -#if HAVE_GTK3 - box = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0); -#elif !HAVE_GTK3 - box = gtk_vbox_new (FALSE, 0); -#endif + box = gtkutil_box_new (GTK_ORIENTATION_VERTICAL, FALSE, 0); gtk_container_set_border_width (GTK_CONTAINER (box), 6); -#if HAVE_GTK3 - tab = gtk_grid_new (); + tab = gtkutil_grid_new (9, 2, FALSE); gtk_container_set_border_width (GTK_CONTAINER (tab), 6); +#if HAVE_GTK3 gtk_grid_set_row_spacing (GTK_GRID (tab), 2); gtk_grid_set_column_spacing (GTK_GRID (tab), 3); - gtk_container_add (GTK_CONTAINER (box), tab); #else - tab = gtk_table_new (9, 2, FALSE); - gtk_container_set_border_width (GTK_CONTAINER (tab), 6); gtk_table_set_row_spacings (GTK_TABLE (tab), 2); gtk_table_set_col_spacings (GTK_TABLE (tab), 3); - gtk_container_add (GTK_CONTAINER (box), tab); #endif + gtk_container_add (GTK_CONTAINER (box), tab); setup_create_header (tab, 0, N_("Text Colors")); @@ -2234,9 +2225,9 @@ setup_create_theme_page (void) ui = g_new0 (setup_theme_ui, 1); #if HAVE_GTK3 - box = gtk_box_new (GTK_ORIENTATION_VERTICAL, 6); + box = gtkutil_box_new (GTK_ORIENTATION_VERTICAL, FALSE, 6); #elif !HAVE_GTK3 - box = gtk_vbox_new (FALSE, 6); + box = gtkutil_box_new (GTK_ORIENTATION_VERTICAL, FALSE, 6); #endif gtk_container_set_border_width (GTK_CONTAINER (box), 6); @@ -2256,9 +2247,9 @@ setup_create_theme_page (void) g_free (themes_dir); #if HAVE_GTK3 - hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 6); + hbox = gtkutil_box_new (GTK_ORIENTATION_HORIZONTAL, FALSE, 6); #elif !HAVE_GTK3 - hbox = gtk_hbox_new (FALSE, 6); + hbox = gtkutil_box_new (GTK_ORIENTATION_HORIZONTAL, FALSE, 6); #endif gtk_box_pack_start (GTK_BOX (box), hbox, FALSE, FALSE, 0); @@ -2268,9 +2259,9 @@ setup_create_theme_page (void) G_CALLBACK (setup_theme_selection_changed), ui); #if HAVE_GTK3 - button_box = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 6); + button_box = gtkutil_box_new (GTK_ORIENTATION_HORIZONTAL, FALSE, 6); #elif !HAVE_GTK3 - button_box = gtk_hbox_new (FALSE, 6); + button_box = gtkutil_box_new (GTK_ORIENTATION_HORIZONTAL, FALSE, 6); #endif gtk_box_pack_start (GTK_BOX (hbox), button_box, FALSE, FALSE, 0); @@ -2489,17 +2480,17 @@ setup_create_sound_page (void) GtkTreeSelection *sel; #if HAVE_GTK3 - vbox1 = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0); + vbox1 = gtkutil_box_new (GTK_ORIENTATION_VERTICAL, FALSE, 0); #elif !HAVE_GTK3 - vbox1 = gtk_vbox_new (FALSE, 0); + vbox1 = gtkutil_box_new (GTK_ORIENTATION_VERTICAL, FALSE, 0); #endif gtk_container_set_border_width (GTK_CONTAINER (vbox1), 6); gtk_widget_show (vbox1); #if HAVE_GTK3 - vbox2 = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0); + vbox2 = gtkutil_box_new (GTK_ORIENTATION_VERTICAL, FALSE, 0); #elif !HAVE_GTK3 - vbox2 = gtk_vbox_new (FALSE, 0); + vbox2 = gtkutil_box_new (GTK_ORIENTATION_VERTICAL, FALSE, 0); #endif gtk_widget_show (vbox2); gtk_container_add (GTK_CONTAINER (vbox1), vbox2); @@ -2523,16 +2514,13 @@ setup_create_sound_page (void) gtk_container_add (GTK_CONTAINER (scrolledwindow1), sound_tree); gtk_tree_view_set_rules_hint (GTK_TREE_VIEW (sound_tree), TRUE); -#if HAVE_GTK3 - table1 = gtk_grid_new (); + table1 = gtkutil_grid_new (2, 3, FALSE); gtk_widget_show (table1); gtk_box_pack_start (GTK_BOX (vbox2), table1, FALSE, TRUE, 8); +#if HAVE_GTK3 gtk_grid_set_row_spacing (GTK_GRID (table1), 2); gtk_grid_set_column_spacing (GTK_GRID (table1), 4); #else - table1 = gtk_table_new (2, 3, FALSE); - gtk_widget_show (table1); - gtk_box_pack_start (GTK_BOX (vbox2), table1, FALSE, TRUE, 8); gtk_table_set_row_spacings (GTK_TABLE (table1), 2); gtk_table_set_col_spacings (GTK_TABLE (table1), 4); #endif @@ -2576,9 +2564,9 @@ setup_add_page (const char *title, GtkWidget *book, GtkWidget *tab) char buf[128]; #if HAVE_GTK3 - vvbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0); + vvbox = gtkutil_box_new (GTK_ORIENTATION_VERTICAL, FALSE, 0); #elif !HAVE_GTK3 - vvbox = gtk_vbox_new (FALSE, 0); + vvbox = gtkutil_box_new (GTK_ORIENTATION_VERTICAL, FALSE, 0); #endif /* label */ @@ -3140,17 +3128,17 @@ setup_window_open (void) win = gtkutil_window_new (buf, "prefs", 0, 600, 2); #if HAVE_GTK3 - vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 5); + vbox = gtkutil_box_new (GTK_ORIENTATION_VERTICAL, FALSE, 5); #elif !HAVE_GTK3 - vbox = gtk_vbox_new (FALSE, 5); + vbox = gtkutil_box_new (GTK_ORIENTATION_VERTICAL, FALSE, 5); #endif gtk_container_set_border_width (GTK_CONTAINER (vbox), 6); gtk_container_add (GTK_CONTAINER (win), vbox); #if HAVE_GTK3 - hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 4); + hbox = gtkutil_box_new (GTK_ORIENTATION_HORIZONTAL, FALSE, 4); #elif !HAVE_GTK3 - hbox = gtk_hbox_new (FALSE, 4); + hbox = gtkutil_box_new (GTK_ORIENTATION_HORIZONTAL, FALSE, 4); #endif gtk_container_add (GTK_CONTAINER (vbox), hbox);