GTK4: GtkTable
authorColin Clark <colin.clark@cclark.uk>
Wed, 27 Sep 2023 15:42:35 +0000 (16:42 +0100)
committerColin Clark <colin.clark@cclark.uk>
Wed, 27 Sep 2023 15:42:35 +0000 (16:42 +0100)
GTK4 migration

- GtkTable deleted Use GtkGrid or re-code to use GtkBox

16 files changed:
src/bar-exif.cc
src/bar-keywords.cc
src/dupe.cc
src/layout-config.cc
src/misc.cc
src/misc.h
src/osd.cc
src/pan-view/pan-view.cc
src/preferences.cc
src/ui-bookmark.cc
src/ui-misc.cc
src/ui-misc.h
src/ui-pathsel.cc
src/utilops.cc
src/view-file/view-file.cc
src/window.cc

index 71958c5..4c10ea4 100644 (file)
@@ -572,7 +572,7 @@ static void bar_pane_exif_conf_dialog(GtkWidget *widget)
        cdd->key_entry = gtk_entry_new();
        gtk_widget_set_size_request(cdd->key_entry, 300, -1);
        if (ee) gq_gtk_entry_set_text(GTK_ENTRY(cdd->key_entry), ee->key);
-       gtk_table_attach_defaults(GTK_TABLE(table), cdd->key_entry, 1, 2, 0, 1);
+       gq_gtk_grid_attach_default(GTK_GRID(table), cdd->key_entry, 1, 2, 0, 1);
        generic_dialog_attach_default(gd, cdd->key_entry);
        gtk_widget_show(cdd->key_entry);
 
@@ -581,7 +581,7 @@ static void bar_pane_exif_conf_dialog(GtkWidget *widget)
        cdd->title_entry = gtk_entry_new();
        gtk_widget_set_size_request(cdd->title_entry, 300, -1);
        if (ee) gq_gtk_entry_set_text(GTK_ENTRY(cdd->title_entry), ee->title);
-       gtk_table_attach_defaults(GTK_TABLE(table), cdd->title_entry, 1, 2, 1, 2);
+       gq_gtk_grid_attach_default(GTK_GRID(table), cdd->title_entry, 1, 2, 1, 2);
        generic_dialog_attach_default(gd, cdd->title_entry);
        gtk_widget_show(cdd->title_entry);
 
index 60c78e4..58d8581 100644 (file)
@@ -965,7 +965,7 @@ static void bar_pane_keywords_edit_dialog(PaneKeywordsData *pkd, gboolean edit_e
        cdd->edit_widget = gtk_entry_new();
        gtk_widget_set_size_request(cdd->edit_widget, 300, -1);
        if (name) gq_gtk_entry_set_text(GTK_ENTRY(cdd->edit_widget), name);
-       gtk_table_attach_defaults(GTK_TABLE(table), cdd->edit_widget, 1, 2, 0, 1);
+       gq_gtk_grid_attach_default(GTK_GRID(table), cdd->edit_widget, 1, 2, 0, 1);
        /* here could eventually be a text view instead of entry */
        generic_dialog_attach_default(gd, cdd->edit_widget);
        gtk_widget_show(cdd->edit_widget);
index 0b75eda..73b4e35 100644 (file)
@@ -3868,12 +3868,12 @@ static void dupe_second_set_toggle_cb(GtkWidget *widget, gpointer data)
        if (dw->second_set)
                {
                dupe_second_update_status(dw);
-               gtk_table_set_col_spacings(GTK_TABLE(dw->table), PREF_PAD_GAP);
+               gtk_grid_set_column_spacing(GTK_GRID(dw->table), PREF_PAD_GAP);
                gtk_widget_show(dw->second_vbox);
                }
        else
                {
-               gtk_table_set_col_spacings(GTK_TABLE(dw->table), 0);
+               gtk_grid_set_column_spacing(GTK_GRID(dw->table), 0);
                gtk_widget_hide(dw->second_vbox);
                dupe_second_clear(dw);
                }
@@ -4632,14 +4632,16 @@ DupeWindow *dupe_window_new()
        gq_gtk_container_add(GTK_WIDGET(dw->window), vbox);
        gtk_widget_show(vbox);
 
-       dw->table = gtk_table_new(1, 3, FALSE);
+       dw->table = gtk_grid_new();
        gq_gtk_box_pack_start(GTK_BOX(vbox), dw->table, TRUE, TRUE, 0);
+       gtk_grid_set_row_homogeneous(GTK_GRID(dw->table), TRUE);
+       gtk_grid_set_column_homogeneous(GTK_GRID(dw->table), TRUE);
        gtk_widget_show(dw->table);
 
        scrolled = gq_gtk_scrolled_window_new(nullptr, nullptr);
        gq_gtk_scrolled_window_set_shadow_type(GTK_SCROLLED_WINDOW(scrolled), GTK_SHADOW_IN);
        gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(scrolled), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC);
-       gtk_table_attach_defaults(GTK_TABLE(dw->table), scrolled, 0, 2, 0, 1);
+       gtk_grid_attach(GTK_GRID(dw->table), scrolled, 0, 0, 2, 1);
        gtk_widget_show(scrolled);
 
        store = gtk_list_store_new(DUPE_COLUMN_COUNT, G_TYPE_POINTER, G_TYPE_STRING, GDK_TYPE_PIXBUF, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_BOOLEAN, G_TYPE_INT, G_TYPE_INT);
@@ -4682,15 +4684,15 @@ DupeWindow *dupe_window_new()
        gtk_widget_show(dw->listview);
 
        dw->second_vbox = gtk_box_new(GTK_ORIENTATION_VERTICAL, 0);
-       gtk_table_attach_defaults(GTK_TABLE(dw->table), dw->second_vbox, 2, 3, 0, 1);
+       gtk_grid_attach(GTK_GRID(dw->table), dw->second_vbox, 2, 0, 3, 1);
        if (dw->second_set)
                {
-               gtk_table_set_col_spacings(GTK_TABLE(dw->table), PREF_PAD_GAP);
+               gtk_grid_set_column_spacing(GTK_GRID(dw->table), PREF_PAD_GAP);
                gtk_widget_show(dw->second_vbox);
                }
        else
                {
-               gtk_table_set_col_spacings(GTK_TABLE(dw->table), 0);
+               gtk_grid_set_column_spacing(GTK_GRID(dw->table), 0);
                }
 
        scrolled = gq_gtk_scrolled_window_new(nullptr, nullptr);
index 620ca7a..6dccf1f 100644 (file)
@@ -227,7 +227,7 @@ static void layout_config_table_button(GtkWidget *table, LayoutLocation l, const
        button = gtk_button_new_with_label(text);
        gtk_widget_set_sensitive(button, FALSE);
        gtk_widget_set_can_focus(button, FALSE);
-       gtk_table_attach_defaults(GTK_TABLE(table), button, x1, x2, y1, y2);
+       gtk_grid_attach(GTK_GRID(table), button, x1, y1, x2 - x1, y2 - y1);
        gtk_widget_show(button);
 }
 
@@ -262,7 +262,7 @@ static GtkWidget *layout_config_widget(GtkWidget *group, GtkWidget *box, gint st
                         G_CALLBACK(layout_config_widget_click_cb), GINT_TO_POINTER(style));
        gq_gtk_box_pack_start(GTK_BOX(box), group, FALSE, FALSE, 0);
 
-       table = gtk_table_new(2, 2, TRUE);
+       table = gtk_grid_new();
 
        layout_config_table_button(table, ls.a, "1");
        layout_config_table_button(table, ls.b, "2");
index 167d253..cb1dddf 100644 (file)
@@ -411,6 +411,16 @@ const gchar *gq_gtk_entry_get_text(GtkEntry *entry)
        return gtk_entry_buffer_get_text(buffer);
 }
 
+void gq_gtk_grid_attach(GtkGrid *grid, GtkWidget *child, guint left_attach, guint right_attach, guint top_attach, guint bottom_attach, GtkAttachOptions, GtkAttachOptions, guint, guint)
+{
+       gtk_grid_attach(grid, child, left_attach, top_attach, right_attach - left_attach, bottom_attach - top_attach);
+}
+
+void gq_gtk_grid_attach_default(GtkGrid *grid, GtkWidget *child, guint left_attach, guint right_attach, guint top_attach, guint bottom_attach )
+{
+       gtk_grid_attach(grid, child, left_attach, top_attach, right_attach - left_attach, bottom_attach - top_attach);
+}
+
 /* Copied from the libarchive .repo. examples */
 
 #ifndef HAVE_ARCHIVE
index 8b6c1b6..6b8bc64 100644 (file)
@@ -36,6 +36,8 @@ gint get_cpu_cores();
 gint utf8_compare(const gchar *s1, const gchar *s2, gboolean case_sensitive);
 int runcmd(const gchar *cmd);
 void gq_gtk_entry_set_text(GtkEntry *entry, const gchar *text);
+void gq_gtk_grid_attach_default(GtkGrid *grid, GtkWidget *child, guint left_attach, guint right_attach, guint top_attach, guint bottom_attach);
+void gq_gtk_grid_attach(GtkGrid *grid, GtkWidget *child, guint left_attach, guint right_attach, guint top_attach, guint bottom_attach, GtkAttachOptions, GtkAttachOptions, guint, guint);
 
 #ifdef HAVE_GTK4
 void convert_gdkcolor_to_gdkrgba(gpointer gdk_color, GdkRGBA *gdk_rgba);
index 31c0a1c..e0074d9 100644 (file)
@@ -123,7 +123,7 @@ static void osd_btn_destroy_cb(GtkWidget *btn, GdkDragContext *, GtkSelectionDat
        g_free(td->title);
 }
 
-static void set_osd_button(GtkTable *table, const gint rows, const gint cols, const gchar *key, const gchar *title, GtkWidget *template_view)
+static void set_osd_button(GtkGrid *grid, const gint rows, const gint cols, const gchar *key, const gchar *title, GtkWidget *template_view)
 {
        GtkWidget *new_button;
        TagData *td;
@@ -144,7 +144,7 @@ static void set_osd_button(GtkTable *table, const gint rows, const gint cols, co
        g_signal_connect(G_OBJECT(new_button), "destroy",
                                                        G_CALLBACK(osd_btn_destroy_cb), new_button);
 
-       gtk_table_attach_defaults(table, new_button, cols, cols+1, rows, rows+1);
+       gtk_grid_attach(grid, new_button, cols, rows, 1, 1);
 
 }
 
@@ -179,10 +179,10 @@ GtkWidget *osd_new(gint max_cols, GtkWidget *template_view)
        entries = (sizeof(predefined_tags) / sizeof(predefined_tags[0])) - 1;
        max_rows = ceil(entries / max_cols);
 
-       GtkTable *table;
-       table = GTK_TABLE(gtk_table_new(max_rows, max_cols, FALSE));
-       gq_gtk_container_add(GTK_WIDGET(viewport), GTK_WIDGET(table));
-       gtk_widget_show(GTK_WIDGET(table));
+       GtkGrid *grid;
+       grid = GTK_GRID(gtk_grid_new());
+       gq_gtk_container_add(GTK_WIDGET(viewport), GTK_WIDGET(grid));
+       gtk_widget_show(GTK_WIDGET(grid));
 
        for (rows = 0; rows < max_rows; rows++)
                {
@@ -190,7 +190,7 @@ GtkWidget *osd_new(gint max_cols, GtkWidget *template_view)
 
                while (cols < max_cols && predefined_tags[i][0])
                        {
-                       set_osd_button(table, rows, cols, predefined_tags[i][0], predefined_tags[i][1], template_view);
+                       set_osd_button(grid, rows, cols, predefined_tags[i][0], predefined_tags[i][1], template_view);
                        i = i + 1;
                        cols++;
                        }
index 1f44a1f..141944f 100644 (file)
@@ -31,6 +31,7 @@
 #include "layout-util.h"
 #include "menu.h"
 #include "metadata.h"
+#include "misc.h"
 #include "pan-calendar.h"
 #include "pan-folder.h"
 #include "pan-grid.h"
@@ -1886,8 +1887,8 @@ static void pan_window_new_real(FileData *dir_fd)
        gtk_widget_show(combo);
 
        table = pref_table_new(vbox, 2, 2, FALSE, TRUE);
-       gtk_table_set_row_spacings(GTK_TABLE(table), 2);
-       gtk_table_set_col_spacings(GTK_TABLE(table), 2);
+       gtk_grid_set_row_spacing(GTK_GRID(table), 2);
+       gtk_grid_set_column_spacing(GTK_GRID(table), 2);
 
        pw->imd = image_new(TRUE);
        pw->imd_normal = pw->imd;
@@ -1897,8 +1898,7 @@ static void pan_window_new_real(FileData *dir_fd)
        g_signal_connect(G_OBJECT(pw->imd->pr), "scroll_notify",
                         G_CALLBACK(pan_window_image_scroll_notify_cb), pw);
 
-       gtk_table_attach(GTK_TABLE(table), pw->imd->widget, 0, 1, 0, 1,
-                        static_cast<GtkAttachOptions>(GTK_FILL | GTK_EXPAND), static_cast<GtkAttachOptions>(GTK_FILL | GTK_EXPAND), 0, 0);
+       gq_gtk_grid_attach(GTK_GRID(table), pw->imd->widget, 0, 1, 0, 1, static_cast<GtkAttachOptions>(GTK_FILL | GTK_EXPAND), static_cast<GtkAttachOptions>(GTK_FILL | GTK_EXPAND), 0, 0);
        gtk_widget_show(GTK_WIDGET(pw->imd->widget));
 
        pan_window_dnd_init(pw);
@@ -1908,15 +1908,13 @@ static void pan_window_new_real(FileData *dir_fd)
        pw->scrollbar_h = gtk_scrollbar_new(GTK_ORIENTATION_HORIZONTAL, nullptr);
        g_signal_connect(G_OBJECT(pw->scrollbar_h), "value_changed",
                         G_CALLBACK(pan_window_scrollbar_h_value_cb), pw);
-       gtk_table_attach(GTK_TABLE(table), pw->scrollbar_h, 0, 1, 1, 2,
-                        static_cast<GtkAttachOptions>(GTK_FILL | GTK_EXPAND), static_cast<GtkAttachOptions>(0), 0, 0);
+       gq_gtk_grid_attach(GTK_GRID(table), pw->scrollbar_h, 0, 1, 1, 2,  static_cast<GtkAttachOptions>(GTK_FILL | GTK_EXPAND), static_cast<GtkAttachOptions>(0), 0, 0);
        gtk_widget_show(pw->scrollbar_h);
 
        pw->scrollbar_v = gtk_scrollbar_new(GTK_ORIENTATION_VERTICAL, nullptr);
        g_signal_connect(G_OBJECT(pw->scrollbar_v), "value_changed",
                         G_CALLBACK(pan_window_scrollbar_v_value_cb), pw);
-       gtk_table_attach(GTK_TABLE(table), pw->scrollbar_v, 1, 2, 0, 1,
-                        static_cast<GtkAttachOptions>(0), static_cast<GtkAttachOptions>(GTK_FILL | GTK_EXPAND), 0, 0);
+       gq_gtk_grid_attach(GTK_GRID(table), pw->scrollbar_v, 1, 2, 0, 1,  static_cast<GtkAttachOptions>(0), static_cast<GtkAttachOptions>(GTK_FILL | GTK_EXPAND), 0, 0);
        gtk_widget_show(pw->scrollbar_v);
 
        /* find bar */
index fe400b0..dd16ba3 100644 (file)
@@ -669,7 +669,7 @@ static void add_quality_menu(GtkWidget *table, gint column, gint row, const gcha
        g_signal_connect(G_OBJECT(combo), "changed",
                         G_CALLBACK(quality_menu_cb), option_c);
 
-       gtk_table_attach(GTK_TABLE(table), combo, column + 1, column + 2, row, row + 1, GTK_SHRINK, static_cast<GtkAttachOptions>(0), 0, 0);
+       gq_gtk_grid_attach(GTK_GRID(table), combo, column + 1, column + 2, row, row + 1, GTK_SHRINK, static_cast<GtkAttachOptions>(0), 0, 0);
        gtk_widget_show(combo);
 }
 
@@ -696,7 +696,7 @@ static void add_dnd_default_action_selection_menu(GtkWidget *table, gint column,
        g_signal_connect(G_OBJECT(combo), "changed",
                         G_CALLBACK(dnd_default_action_selection_menu_cb), option_c);
 
-       gtk_table_attach(GTK_TABLE(table), combo, column + 1, column + 2, row, row + 1, GTK_SHRINK, static_cast<GtkAttachOptions>(0), 0, 0);
+       gq_gtk_grid_attach(GTK_GRID(table), combo, column + 1, column + 2, row, row + 1, GTK_SHRINK, static_cast<GtkAttachOptions>(0), 0, 0);
        gtk_widget_show(combo);
 }
 
@@ -724,7 +724,7 @@ static void add_clipboard_selection_menu(GtkWidget *table, gint column, gint row
        g_signal_connect(G_OBJECT(combo), "changed",
                         G_CALLBACK(clipboard_selection_menu_cb), option_c);
 
-       gtk_table_attach(GTK_TABLE(table), combo, column + 1, column + 2, row, row + 1, GTK_SHRINK, static_cast<GtkAttachOptions>(0), 0, 0);
+       gq_gtk_grid_attach(GTK_GRID(table), combo, column + 1, column + 2, row, row + 1, GTK_SHRINK, static_cast<GtkAttachOptions>(0), 0, 0);
        gtk_widget_show(combo);
 }
 
@@ -765,7 +765,7 @@ static void add_zoom_style_selection_menu(GtkWidget *table, gint column, gint ro
 
        g_signal_connect(G_OBJECT(combo), "changed", G_CALLBACK(zoom_style_selection_menu_cb), option_c);
 
-       gtk_table_attach(GTK_TABLE(table), combo, column + 1, column + 2, row, row + 1, GTK_SHRINK, static_cast<GtkAttachOptions>(0), 0, 0);
+       gq_gtk_grid_attach(GTK_GRID(table), combo, column + 1, column + 2, row, row + 1, GTK_SHRINK, static_cast<GtkAttachOptions>(0), 0, 0);
        gtk_widget_show(combo);
 }
 
@@ -834,7 +834,7 @@ static void add_mouse_selection_menu(GtkWidget *table, gint column, gint row, co
 
        g_signal_connect(G_OBJECT(combo), "changed", G_CALLBACK(mouse_buttons_selection_menu_cb), option_c);
 
-       gtk_table_attach(GTK_TABLE(table), combo, column + 1, column + 2, row, row + 1, GTK_SHRINK, static_cast<GtkAttachOptions>(0), 0, 0);
+       gq_gtk_grid_attach(GTK_GRID(table), combo, column + 1, column + 2, row, row + 1, GTK_SHRINK, static_cast<GtkAttachOptions>(0), 0, 0);
        gtk_widget_show(combo);
 }
 
@@ -901,7 +901,7 @@ static void add_thumb_size_menu(GtkWidget *table, gint column, gint row, gchar *
        g_signal_connect(G_OBJECT(combo), "changed",
                         G_CALLBACK(thumb_size_menu_cb), NULL);
 
-       gtk_table_attach(GTK_TABLE(table), combo, column + 1, column + 2, row, row + 1, GTK_SHRINK, static_cast<GtkAttachOptions>(0), 0, 0);
+       gq_gtk_grid_attach(GTK_GRID(table), combo, column + 1, column + 2, row, row + 1, GTK_SHRINK, static_cast<GtkAttachOptions>(0), 0, 0);
        gtk_widget_show(combo);
 }
 
@@ -1020,7 +1020,7 @@ static void add_stereo_mode_menu(GtkWidget *table, gint column, gint row, const
        g_signal_connect(G_OBJECT(combo), "changed",
                         G_CALLBACK(stereo_mode_menu_cb), option_c);
 
-       gtk_table_attach(GTK_TABLE(table), combo, column + 1, column + 2, row, row + 1, GTK_SHRINK, static_cast<GtkAttachOptions>(0), 0, 0);
+       gq_gtk_grid_attach(GTK_GRID(table), combo, column + 1, column + 2, row, row + 1, GTK_SHRINK, static_cast<GtkAttachOptions>(0), 0, 0);
        gtk_widget_show(combo);
 }
 
@@ -1061,7 +1061,7 @@ static void add_video_menu(GtkWidget *table, gint column, gint row, const gchar
        g_signal_connect(G_OBJECT(combo), "changed",
                         G_CALLBACK(video_menu_cb), option_c);
 
-       gtk_table_attach(GTK_TABLE(table), combo, column + 1, column + 2, row, row + 1, GTK_SHRINK, static_cast<GtkAttachOptions>(0), 0, 0);
+       gq_gtk_grid_attach(GTK_GRID(table), combo, column + 1, column + 2, row, row + 1, GTK_SHRINK, static_cast<GtkAttachOptions>(0), 0, 0);
        gtk_widget_show(combo);
 }
 
@@ -3364,7 +3364,7 @@ static void add_intent_menu(GtkWidget *table, gint column, gint row, const gchar
        g_signal_connect(G_OBJECT(combo), "changed",
                         G_CALLBACK(intent_menu_cb), option_c);
 
-       gtk_table_attach(GTK_TABLE(table), combo, column + 1, column + 2, row, row + 1, GTK_SHRINK, static_cast<GtkAttachOptions>(0), 0, 0);
+       gq_gtk_grid_attach(GTK_GRID(table), combo, column + 1, column + 2, row, row + 1, GTK_SHRINK, static_cast<GtkAttachOptions>(0), 0, 0);
        gtk_widget_show(combo);
 }
 #endif
@@ -3386,7 +3386,7 @@ static void config_tab_color(GtkWidget *notebook)
 #endif
 
        table = pref_table_new(group, 3, COLOR_PROFILE_INPUTS + 1, FALSE, FALSE);
-       gtk_table_set_col_spacings(GTK_TABLE(table), PREF_PAD_GAP);
+       gtk_grid_set_column_spacing(GTK_GRID(table), PREF_PAD_GAP);
 
        label = pref_table_label(table, 0, 0, _("Type"), GTK_ALIGN_START);
        pref_label_bold(label, TRUE, FALSE);
@@ -3412,16 +3412,14 @@ static void config_tab_color(GtkWidget *notebook)
                        {
                        gq_gtk_entry_set_text(GTK_ENTRY(entry), options->color_profile.input_name[i]);
                        }
-               gtk_table_attach(GTK_TABLE(table), entry, 1, 2, i + 1, i + 2,
-                                static_cast<GtkAttachOptions>(GTK_FILL | GTK_EXPAND), static_cast<GtkAttachOptions>(0), 0, 0);
+               gq_gtk_grid_attach(GTK_GRID(table), entry, 1, 2, i + 1, i + 2, static_cast<GtkAttachOptions>(GTK_FILL | GTK_EXPAND), static_cast<GtkAttachOptions>(0), 0, 0);
                gtk_widget_show(entry);
                color_profile_input_name_entry[i] = entry;
 
                tabcomp = tab_completion_new(&entry, options->color_profile.input_file[i], nullptr, ".icc", "ICC Files", nullptr);
                tab_completion_add_select_button(entry, _("Select color profile"), FALSE);
                gtk_widget_set_size_request(entry, 160, -1);
-               gtk_table_attach(GTK_TABLE(table), tabcomp, 2, 3, i + 1, i + 2,
-                                static_cast<GtkAttachOptions>(GTK_FILL | GTK_EXPAND), static_cast<GtkAttachOptions>(0), 0, 0);
+               gq_gtk_grid_attach(GTK_GRID(table), tabcomp, 2, 3, i + 1, i + 2, static_cast<GtkAttachOptions>(GTK_FILL | GTK_EXPAND), static_cast<GtkAttachOptions>(0), 0, 0);
                gtk_widget_show(tabcomp);
                color_profile_input_file_entry[i] = entry;
                }
@@ -3443,9 +3441,7 @@ static void config_tab_color(GtkWidget *notebook)
 #ifdef HAVE_LCMS
        add_intent_menu(table, 0, 1, _("Render Intent:"), options->color_profile.render_intent, &c_options->color_profile.render_intent);
 #endif
-       gtk_table_attach(GTK_TABLE(table), tabcomp, 1, 2,
-                        0, 1,
-                        static_cast<GtkAttachOptions>(GTK_FILL | GTK_EXPAND), static_cast<GtkAttachOptions>(0), 0, 0);
+       gq_gtk_grid_attach(GTK_GRID(table), tabcomp, 1, 2, 0, 1, static_cast<GtkAttachOptions>(GTK_FILL | GTK_EXPAND), static_cast<GtkAttachOptions>(0), 0, 0);
 
        gtk_widget_show(tabcomp);
 }
index 26e64f6..4835913 100644 (file)
@@ -284,7 +284,7 @@ static void bookmark_edit(const gchar *key, const gchar *text, GtkWidget *parent
        p->name_entry = gtk_entry_new();
        gtk_widget_set_size_request(p->name_entry, 300, -1);
        if (p->bb->name) gq_gtk_entry_set_text(GTK_ENTRY(p->name_entry), p->bb->name);
-       gtk_table_attach_defaults(GTK_TABLE(table), p->name_entry, 1, 2, 0, 1);
+       gq_gtk_grid_attach_default(GTK_GRID(table), p->name_entry, 1, 2, 0, 1);
        generic_dialog_attach_default(gd, p->name_entry);
        gtk_widget_show(p->name_entry);
 
@@ -293,7 +293,7 @@ static void bookmark_edit(const gchar *key, const gchar *text, GtkWidget *parent
        label = tab_completion_new_with_history(&p->path_entry, p->bb->path,
                                                "bookmark_path", -1, nullptr, nullptr);
        tab_completion_add_select_button(p->path_entry, nullptr, TRUE);
-       gtk_table_attach_defaults(GTK_TABLE(table), label, 1, 2, 1, 2);
+       gq_gtk_grid_attach_default(GTK_GRID(table), label, 1, 2, 1, 2);
        generic_dialog_attach_default(gd, p->path_entry);
        gtk_widget_show(label);
 
@@ -304,7 +304,7 @@ static void bookmark_edit(const gchar *key, const gchar *text, GtkWidget *parent
        label = tab_completion_new_with_history(&p->icon_entry, icon,
                                                "bookmark_icons", -1, nullptr, nullptr);
        tab_completion_add_select_button(p->icon_entry, _("Select icon"), FALSE);
-       gtk_table_attach_defaults(GTK_TABLE(table), label, 1, 2, 2, 3);
+       gq_gtk_grid_attach_default(GTK_GRID(table), label, 1, 2, 2, 3);
        generic_dialog_attach_default(gd, p->icon_entry);
        gtk_widget_show(label);
 
index 699d0fc..d56f167 100644 (file)
@@ -557,14 +557,13 @@ void pref_signal_unblock_data(GtkWidget *widget, gpointer data)
                                          0, 0, nullptr, nullptr, data);
 }
 
-GtkWidget *pref_table_new(GtkWidget *parent_box, gint columns, gint rows,
-                         gboolean homogeneous, gboolean fill)
+GtkWidget *pref_table_new(GtkWidget *parent_box, gint, gint, gboolean, gboolean fill)
 {
        GtkWidget *table;
 
-       table = gtk_table_new(rows, columns, homogeneous);
-       gtk_table_set_row_spacings(GTK_TABLE(table), PREF_PAD_GAP);
-       gtk_table_set_col_spacings(GTK_TABLE(table), PREF_PAD_SPACE);
+       table = gtk_grid_new();
+       gtk_grid_set_row_spacing(GTK_GRID(table), PREF_PAD_GAP);
+       gtk_grid_set_column_spacing(GTK_GRID(table), PREF_PAD_SPACE);
 
        if (parent_box)
                {
@@ -599,8 +598,7 @@ GtkWidget *pref_table_box(GtkWidget *table, gint column, gint row,
                shell = box;
                }
 
-       gtk_table_attach(GTK_TABLE(table), shell, column, column + 1, row, row + 1,
-                        static_cast<GtkAttachOptions>(GTK_EXPAND | GTK_FILL), static_cast<GtkAttachOptions>(0), 0, 0);
+       gq_gtk_grid_attach(GTK_GRID(table), shell, column, column + 1, row, row + 1, static_cast<GtkAttachOptions>(GTK_EXPAND | GTK_FILL), static_cast<GtkAttachOptions>(0), 0, 0);
 
        gtk_widget_show(shell);
 
@@ -615,8 +613,7 @@ GtkWidget *pref_table_label(GtkWidget *table, gint column, gint row,
        label = gtk_label_new(text);
        gtk_widget_set_halign(label, alignment);
        gtk_widget_set_valign(label, GTK_ALIGN_CENTER);
-       gtk_table_attach(GTK_TABLE(table), label, column, column + 1, row, row + 1,
-                        GTK_FILL, static_cast<GtkAttachOptions>(0), 0, 0);
+       gq_gtk_grid_attach(GTK_GRID(table), label, column, column + 1, row, row + 1,  GTK_FILL, static_cast<GtkAttachOptions>(0), 0, 0);
        gtk_widget_show(label);
 
        return label;
@@ -629,8 +626,7 @@ GtkWidget *pref_table_button(GtkWidget *table, gint column, gint row,
        GtkWidget *button;
 
        button = pref_button_new(nullptr, stock_id, text, func, data);
-       gtk_table_attach(GTK_TABLE(table), button, column, column + 1, row, row + 1,
-                        GTK_FILL, static_cast<GtkAttachOptions>(0), 0, 0);
+       gq_gtk_grid_attach(GTK_GRID(table), button, column, column + 1, row, row + 1,  GTK_FILL, static_cast<GtkAttachOptions>(0), 0, 0);
        gtk_widget_show(button);
 
        return button;
@@ -675,8 +671,7 @@ GtkWidget *pref_table_spin(GtkWidget *table, gint column, gint row,
                box = spin;
                }
 
-       gtk_table_attach(GTK_TABLE(table), box, column, column + 1, row, row + 1,
-                        static_cast<GtkAttachOptions>(GTK_EXPAND | GTK_FILL), static_cast<GtkAttachOptions>(GTK_EXPAND | GTK_FILL), 0, 0);
+       gq_gtk_grid_attach(GTK_GRID(table), box, column, column + 1, row, row + 1, static_cast<GtkAttachOptions>(GTK_EXPAND | GTK_FILL), static_cast<GtkAttachOptions>(GTK_EXPAND | GTK_FILL), 0, 0);
        gtk_widget_show(box);
 
        return spin;
index f81f2ba..f8613bb 100644 (file)
@@ -155,8 +155,7 @@ void pref_signal_block_data(GtkWidget *widget, gpointer data);
 void pref_signal_unblock_data(GtkWidget *widget, gpointer data);
 
 
-GtkWidget *pref_table_new(GtkWidget *parent_box, gint columns, gint rows,
-                         gboolean homogeneous, gboolean fill);
+GtkWidget *pref_table_new(GtkWidget *parent_box, gint, gint, gboolean, gboolean);
 
 GtkWidget *pref_table_box(GtkWidget *table, gint column, gint row,
                          GtkOrientation orientation, const gchar *text);
index bfbf975..ac0e592 100644 (file)
@@ -987,54 +987,54 @@ static void dest_bookmark_select_cb(const gchar *path, gpointer data)
 GtkWidget *path_selection_new_with_files(GtkWidget *entry, const gchar *path,
                                         const gchar *filter, const gchar *filter_desc)
 {
-       GtkWidget *hbox2;
        Dest_Data *dd;
-       GtkWidget *scrolled;
-       GtkWidget *table;
-       GtkWidget *paned;
+       GtkCellRenderer *renderer;
        GtkListStore *store;
        GtkTreeSelection *selection;
        GtkTreeViewColumn *column;
-       GtkCellRenderer *renderer;
+       GtkWidget *hbox1; // home, new folder, hidden, filter
+       GtkWidget *hbox2; // files paned
+       GtkWidget *hbox3; // filter
+       GtkWidget *paned;
+       GtkWidget *scrolled;
+       GtkWidget *table; // main box
 
        dd = g_new0(Dest_Data, 1);
 
-       table = gtk_table_new(4, (filter != nullptr) ? 3 : 1, FALSE);
-       gtk_table_set_col_spacings(GTK_TABLE(table), PREF_PAD_GAP);
-       gtk_table_set_row_spacing(GTK_TABLE(table), 0, PREF_PAD_GAP);
-       gtk_widget_show(table);
+       table = gtk_box_new(GTK_ORIENTATION_VERTICAL, PREF_PAD_GAP);
 
        dd->entry = entry;
        g_object_set_data(G_OBJECT(dd->entry), "destination_data", dd);
 
-       hbox2 = pref_table_box(table, 0, 0, GTK_ORIENTATION_HORIZONTAL, nullptr);
-       gtk_box_set_spacing(GTK_BOX(hbox2), PREF_PAD_BUTTON_GAP);
-       pref_button_new(hbox2, nullptr, _("Home"),
+       hbox1 = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, PREF_PAD_GAP);
+       gtk_box_set_spacing(GTK_BOX(hbox1), PREF_PAD_BUTTON_GAP);
+       pref_button_new(hbox1, nullptr, _("Home"),
                        G_CALLBACK(dest_home_cb), dd);
-       pref_button_new(hbox2, nullptr, _("New folder"),
+       pref_button_new(hbox1, nullptr, _("New folder"),
                        G_CALLBACK(dest_new_dir_cb), dd);
 
        dd->hidden_button = gtk_check_button_new_with_label(_("Show hidden"));
        g_signal_connect(G_OBJECT(dd->hidden_button), "clicked",
                         G_CALLBACK(dest_show_hidden_cb), dd);
-       gq_gtk_box_pack_end(GTK_BOX(hbox2), dd->hidden_button, FALSE, FALSE, 0);
+       gq_gtk_box_pack_end(GTK_BOX(hbox1), dd->hidden_button, FALSE, FALSE, 0);
        gtk_widget_show(dd->hidden_button);
 
+       gq_gtk_box_pack_start(GTK_BOX(table), hbox1, FALSE, FALSE, 0);
+       gtk_widget_show_all(hbox1);
+
        hbox2 = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, PREF_PAD_GAP);
        if (filter)
                {
                paned = gtk_paned_new(GTK_ORIENTATION_HORIZONTAL);
                DEBUG_NAME(paned);
-               gtk_table_attach(GTK_TABLE(table), paned, 0, 3, 1, 2,
-                                static_cast<GtkAttachOptions>(GTK_EXPAND | GTK_FILL), static_cast<GtkAttachOptions>(GTK_EXPAND | GTK_FILL), 0, 0);
+               gq_gtk_box_pack_end(GTK_BOX(table), paned, TRUE , TRUE, 0);
                gtk_widget_show(paned);
                gtk_paned_add1(GTK_PANED(paned), hbox2);
                }
        else
                {
                paned = nullptr;
-               gtk_table_attach(GTK_TABLE(table), hbox2, 0, 1, 1, 2,
-                                static_cast<GtkAttachOptions>(GTK_EXPAND | GTK_FILL), static_cast<GtkAttachOptions>(GTK_EXPAND | GTK_FILL), 0, 0);
+               gq_gtk_box_pack_end(GTK_BOX(table), hbox2, TRUE, TRUE, 0);
                }
        gtk_widget_show(hbox2);
 
@@ -1098,8 +1098,8 @@ GtkWidget *path_selection_new_with_files(GtkWidget *entry, const gchar *path,
                {
                GtkListStore *store;
 
-               hbox2 = pref_table_box(table, 2, 0, GTK_ORIENTATION_HORIZONTAL, nullptr);
-               pref_label_new(hbox2, _("Filter:"));
+               hbox3 = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0);
+               pref_label_new(hbox3, _("Filter:"));
 
                store = gtk_list_store_new(2, G_TYPE_STRING, G_TYPE_STRING);
 
@@ -1111,11 +1111,13 @@ GtkWidget *path_selection_new_with_files(GtkWidget *entry, const gchar *path,
                gtk_cell_layout_clear(GTK_CELL_LAYOUT(dd->filter_combo));
                renderer = gtk_cell_renderer_text_new();
                gtk_cell_layout_pack_start(GTK_CELL_LAYOUT(dd->filter_combo), renderer, TRUE);
-               gtk_cell_layout_set_attributes(GTK_CELL_LAYOUT(dd->filter_combo), renderer,
-                                              "text", FILTER_COLUMN_NAME, NULL);
-               gq_gtk_box_pack_start(GTK_BOX(hbox2), dd->filter_combo, TRUE, TRUE, 0);
+               gtk_cell_layout_set_attributes(GTK_CELL_LAYOUT(dd->filter_combo), renderer, "text", FILTER_COLUMN_NAME, NULL);
+               gq_gtk_box_pack_start(GTK_BOX(hbox3), dd->filter_combo, TRUE, TRUE, 0);
                gtk_widget_show(dd->filter_combo);
 
+               gq_gtk_box_pack_end(GTK_BOX(hbox1), hbox3, FALSE, FALSE, 0);
+               gtk_widget_show(hbox3);
+
                scrolled = gq_gtk_scrolled_window_new(nullptr, nullptr);
                gq_gtk_scrolled_window_set_shadow_type(GTK_SCROLLED_WINDOW(scrolled), GTK_SHADOW_IN);
                gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(scrolled),
@@ -1126,8 +1128,7 @@ GtkWidget *path_selection_new_with_files(GtkWidget *entry, const gchar *path,
                        }
                else
                        {
-                       gtk_table_attach(GTK_TABLE(table), scrolled, 2, 3, 1, 2,
-                                static_cast<GtkAttachOptions>(GTK_EXPAND | GTK_FILL), static_cast<GtkAttachOptions>(GTK_EXPAND | GTK_FILL), 0, 0);
+                       gq_gtk_box_pack_end(GTK_BOX(table), paned, FALSE, FALSE, 0);
                        }
                gtk_widget_show(scrolled);
 
index f9f3a7f..7ab35fa 100644 (file)
@@ -1770,7 +1770,7 @@ static void file_util_dialog_init_source_dest(UtilityData *ud, gboolean second_i
        pref_table_label(table, 0, 1, _("New name:"), GTK_ALIGN_END);
 
        ud->rename_entry = gtk_entry_new();
-       gtk_table_attach(GTK_TABLE(table), ud->rename_entry, 1, 2, 1, 2, static_cast<GtkAttachOptions>(GTK_EXPAND | GTK_FILL), static_cast<GtkAttachOptions>(0), 0, 0);
+       gq_gtk_grid_attach(GTK_GRID(table), ud->rename_entry, 1, 2, 1, 2, static_cast<GtkAttachOptions>(GTK_EXPAND | GTK_FILL), static_cast<GtkAttachOptions>(0), 0, 0);
        generic_dialog_attach_default(GENERIC_DIALOG(ud->gd), ud->rename_entry);
        gtk_widget_grab_focus(ud->rename_entry);
 
@@ -2161,10 +2161,7 @@ static void file_util_write_metadata_details_dialog(UtilityData *ud, FileData *f
                gtk_label_set_yalign(GTK_LABEL(label), 0.0);
 
                pref_label_bold(label, TRUE, FALSE);
-               gtk_table_attach(GTK_TABLE(table), label,
-                                0, 1, i, i + 1,
-                                GTK_FILL, GTK_FILL,
-                                2, 2);
+               gq_gtk_grid_attach(GTK_GRID(table), label, 0, 1, i, i + 1,  GTK_FILL, GTK_FILL,  2, 2);
                gtk_widget_show(label);
 
                label = gtk_label_new(value);
@@ -2173,10 +2170,7 @@ static void file_util_write_metadata_details_dialog(UtilityData *ud, FileData *f
                gtk_label_set_yalign(GTK_LABEL(label), 0.0);
 
                gtk_label_set_line_wrap(GTK_LABEL(label), TRUE);
-               gtk_table_attach(GTK_TABLE(table), label,
-                                1, 2, i, i + 1,
-                                GTK_FILL, GTK_FILL,
-                                2, 2);
+               gq_gtk_grid_attach(GTK_GRID(table), label,  1, 2, i, i + 1, GTK_FILL, GTK_FILL,  2, 2);
                gtk_widget_show(label);
 
                g_free(title);
index 4c35a23..683245e 100644 (file)
@@ -922,7 +922,7 @@ static gboolean vf_marks_tooltip_cb(GtkWidget *widget,
                {
                gq_gtk_entry_set_text(GTK_ENTRY(mte->edit_widget), mte->text_entry);
                }
-       gtk_table_attach_defaults(GTK_TABLE(table), mte->edit_widget, 1, 2, 0, 1);
+       gq_gtk_grid_attach_default(GTK_GRID(table), mte->edit_widget, 1, 2, 0, 1);
        generic_dialog_attach_default(mte->gd, mte->edit_widget);
 
        gtk_entry_set_icon_from_icon_name(GTK_ENTRY(mte->edit_widget),
index c2f05cb..7aa437c 100644 (file)
@@ -390,7 +390,7 @@ void help_search_window_show()
        pref_table_label(table, 0, 0, _("Search terms:"), GTK_ALIGN_END);
        hsd->edit_widget = gtk_entry_new();
        gtk_widget_set_size_request(hsd->edit_widget, 300, -1);
-       gtk_table_attach_defaults(GTK_TABLE(table), hsd->edit_widget, 1, 2, 0, 1);
+       gq_gtk_grid_attach_default(GTK_GRID(table), hsd->edit_widget, 1, 2, 0, 1);
        generic_dialog_attach_default(gd, hsd->edit_widget);
        gtk_widget_show(hsd->edit_widget);