summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAntónio Fernandes <antoniof@gnome.org>2021-12-19 17:02:49 +0000
committerAntónio Fernandes <antoniof@gnome.org>2022-01-05 11:41:46 +0000
commit03b61953c4620358730200fde9d917fc52f1b75f (patch)
tree295c12bc8c394c839fee10deaf69c999e3c759de
parent5d5b49a39ae5fff81924b01bc4f1b917a1785527 (diff)
downloadnautilus-03b61953c4620358730200fde9d917fc52f1b75f.tar.gz
notebook: Don't subclass GtkNotebook
GtkNotebook is a final class in GTK 4. Drop the NautliusNotebook class and have its API act on GtkNotebook.
-rw-r--r--src/nautilus-notebook.c134
-rw-r--r--src/nautilus-notebook.h29
-rw-r--r--src/nautilus-window-slot-dnd.c2
-rw-r--r--src/nautilus-window.c20
-rw-r--r--src/resources/ui/nautilus-window.ui2
5 files changed, 77 insertions, 110 deletions
diff --git a/src/nautilus-notebook.c b/src/nautilus-notebook.c
index ef75425f2..d71e2f331 100644
--- a/src/nautilus-notebook.c
+++ b/src/nautilus-notebook.c
@@ -37,43 +37,21 @@
#define AFTER_ALL_TABS -1
-struct _NautilusNotebook
-{
- GtkNotebook parent_instance;
-};
-
-G_DEFINE_TYPE (NautilusNotebook, nautilus_notebook, GTK_TYPE_NOTEBOOK);
-
-static void
-nautilus_notebook_dispose (GObject *object)
-{
- G_OBJECT_CLASS (nautilus_notebook_parent_class)->dispose (object);
-}
-
-static void
-nautilus_notebook_class_init (NautilusNotebookClass *klass)
-{
- GObjectClass *object_class = G_OBJECT_CLASS (klass);
-
- object_class->dispose = nautilus_notebook_dispose;
-}
-
static gint
-find_tab_num_at_pos (NautilusNotebook *notebook,
- gint abs_x,
- gint abs_y)
+find_tab_num_at_pos (GtkNotebook *notebook,
+ gint abs_x,
+ gint abs_y)
{
int page_num = 0;
- GtkNotebook *nb = GTK_NOTEBOOK (notebook);
GtkWidget *page;
GtkAllocation allocation;
- while ((page = gtk_notebook_get_nth_page (nb, page_num)))
+ while ((page = gtk_notebook_get_nth_page (notebook, page_num)))
{
GtkWidget *tab;
gint max_x, max_y;
- tab = gtk_notebook_get_tab_label (nb, page);
+ tab = gtk_notebook_get_tab_label (notebook, page);
g_return_val_if_fail (tab != NULL, -1);
if (!gtk_widget_get_mapped (GTK_WIDGET (tab)))
@@ -119,32 +97,31 @@ on_page_added (GtkNotebook *notebook,
gtk_notebook_set_tab_detachable (notebook, child, TRUE);
}
-static void
-nautilus_notebook_init (NautilusNotebook *notebook)
+void
+nautilus_notebook_setup (GtkNotebook *notebook)
{
- gtk_notebook_set_scrollable (GTK_NOTEBOOK (notebook), TRUE);
- gtk_notebook_set_show_border (GTK_NOTEBOOK (notebook), FALSE);
- gtk_notebook_set_show_tabs (GTK_NOTEBOOK (notebook), FALSE);
+ gtk_notebook_set_scrollable (notebook, TRUE);
+ gtk_notebook_set_show_border (notebook, FALSE);
+ gtk_notebook_set_show_tabs (notebook, FALSE);
g_signal_connect (notebook, "page-removed", G_CALLBACK (on_page_removed), NULL);
g_signal_connect (notebook, "page-added", G_CALLBACK (on_page_added), NULL);
}
gboolean
-nautilus_notebook_contains_slot (NautilusNotebook *notebook,
+nautilus_notebook_contains_slot (GtkNotebook *notebook,
NautilusWindowSlot *slot)
{
- GtkNotebook *container = GTK_NOTEBOOK (notebook);
GtkWidget *child;
gint n_pages;
gboolean found = FALSE;
g_return_val_if_fail (slot != NULL, FALSE);
- n_pages = gtk_notebook_get_n_pages (container);
+ n_pages = gtk_notebook_get_n_pages (notebook);
for (gint i = 0; i < n_pages; i++)
{
- child = gtk_notebook_get_nth_page (container, i);
+ child = gtk_notebook_get_nth_page (notebook, i);
if ((gpointer) child == (gpointer) slot)
{
found = TRUE;
@@ -156,10 +133,10 @@ nautilus_notebook_contains_slot (NautilusNotebook *notebook,
}
gboolean
-nautilus_notebook_get_tab_clicked (NautilusNotebook *notebook,
- gint x,
- gint y,
- gint *position)
+nautilus_notebook_get_tab_clicked (GtkNotebook *notebook,
+ gint x,
+ gint y,
+ gint *position)
{
gint tab_num;
@@ -173,16 +150,16 @@ nautilus_notebook_get_tab_clicked (NautilusNotebook *notebook,
}
void
-nautilus_notebook_sync_loading (NautilusNotebook *notebook,
+nautilus_notebook_sync_loading (GtkNotebook *notebook,
NautilusWindowSlot *slot)
{
GtkWidget *tab_label, *spinner, *icon;
gboolean active, allow_stop;
- g_return_if_fail (NAUTILUS_IS_NOTEBOOK (notebook));
+ g_return_if_fail (GTK_IS_NOTEBOOK (notebook));
g_return_if_fail (NAUTILUS_IS_WINDOW_SLOT (slot));
- tab_label = gtk_notebook_get_tab_label (GTK_NOTEBOOK (notebook),
+ tab_label = gtk_notebook_get_tab_label (notebook,
GTK_WIDGET (slot));
g_return_if_fail (GTK_IS_WIDGET (tab_label));
@@ -214,7 +191,7 @@ nautilus_notebook_sync_loading (NautilusNotebook *notebook,
}
void
-nautilus_notebook_sync_tab_label (NautilusNotebook *notebook,
+nautilus_notebook_sync_tab_label (GtkNotebook *notebook,
NautilusWindowSlot *slot)
{
GtkWidget *hbox, *label;
@@ -222,10 +199,10 @@ nautilus_notebook_sync_tab_label (NautilusNotebook *notebook,
GFile *location;
const gchar *title_name;
- g_return_if_fail (NAUTILUS_IS_NOTEBOOK (notebook));
+ g_return_if_fail (GTK_IS_NOTEBOOK (notebook));
g_return_if_fail (NAUTILUS_IS_WINDOW_SLOT (slot));
- hbox = gtk_notebook_get_tab_label (GTK_NOTEBOOK (notebook), GTK_WIDGET (slot));
+ hbox = gtk_notebook_get_tab_label (notebook, GTK_WIDGET (slot));
g_return_if_fail (GTK_IS_WIDGET (hbox));
label = GTK_WIDGET (g_object_get_data (G_OBJECT (hbox), "label"));
@@ -258,7 +235,7 @@ nautilus_notebook_sync_tab_label (NautilusNotebook *notebook,
}
static GtkWidget *
-build_tab_label (NautilusNotebook *notebook,
+build_tab_label (GtkNotebook *notebook,
NautilusWindowSlot *slot)
{
GtkWidget *box;
@@ -317,20 +294,19 @@ build_tab_label (NautilusNotebook *notebook,
}
int
-nautilus_notebook_add_tab (NautilusNotebook *notebook,
+nautilus_notebook_add_tab (GtkNotebook *notebook,
NautilusWindowSlot *slot,
int position,
gboolean jump_to)
{
- GtkNotebook *gnotebook = GTK_NOTEBOOK (notebook);
GtkWidget *tab_label;
- g_return_val_if_fail (NAUTILUS_IS_NOTEBOOK (notebook), -1);
+ g_return_val_if_fail (GTK_IS_NOTEBOOK (notebook), -1);
g_return_val_if_fail (NAUTILUS_IS_WINDOW_SLOT (slot), -1);
tab_label = build_tab_label (notebook, slot);
- position = gtk_notebook_insert_page (GTK_NOTEBOOK (notebook),
+ position = gtk_notebook_insert_page (notebook,
GTK_WIDGET (slot),
tab_label,
position);
@@ -346,46 +322,40 @@ nautilus_notebook_add_tab (NautilusNotebook *notebook,
if (jump_to)
{
- gtk_notebook_set_current_page (gnotebook, position);
+ gtk_notebook_set_current_page (notebook, position);
}
return position;
}
void
-nautilus_notebook_reorder_current_child_relative (NautilusNotebook *notebook,
- int offset)
+nautilus_notebook_reorder_current_child_relative (GtkNotebook *notebook,
+ int offset)
{
- GtkNotebook *gnotebook;
GtkWidget *child;
int page;
- g_return_if_fail (NAUTILUS_IS_NOTEBOOK (notebook));
+ g_return_if_fail (GTK_IS_NOTEBOOK (notebook));
if (!nautilus_notebook_can_reorder_current_child_relative (notebook, offset))
{
return;
}
- gnotebook = GTK_NOTEBOOK (notebook);
-
- page = gtk_notebook_get_current_page (gnotebook);
- child = gtk_notebook_get_nth_page (gnotebook, page);
- gtk_notebook_reorder_child (gnotebook, child, page + offset);
+ page = gtk_notebook_get_current_page (notebook);
+ child = gtk_notebook_get_nth_page (notebook, page);
+ gtk_notebook_reorder_child (notebook, child, page + offset);
}
static gboolean
-nautilus_notebook_is_valid_relative_position (NautilusNotebook *notebook,
- int offset)
+nautilus_notebook_is_valid_relative_position (GtkNotebook *notebook,
+ int offset)
{
- GtkNotebook *gnotebook;
int page;
int n_pages;
- gnotebook = GTK_NOTEBOOK (notebook);
-
- page = gtk_notebook_get_current_page (gnotebook);
- n_pages = gtk_notebook_get_n_pages (gnotebook) - 1;
+ page = gtk_notebook_get_current_page (notebook);
+ n_pages = gtk_notebook_get_n_pages (notebook) - 1;
if (page < 0 ||
(offset < 0 && page < -offset) ||
(offset > 0 && page > n_pages - offset))
@@ -397,27 +367,27 @@ nautilus_notebook_is_valid_relative_position (NautilusNotebook *notebook,
}
gboolean
-nautilus_notebook_can_reorder_current_child_relative (NautilusNotebook *notebook,
- int offset)
+nautilus_notebook_can_reorder_current_child_relative (GtkNotebook *notebook,
+ int offset)
{
- g_return_val_if_fail (NAUTILUS_IS_NOTEBOOK (notebook), FALSE);
+ g_return_val_if_fail (GTK_IS_NOTEBOOK (notebook), FALSE);
return nautilus_notebook_is_valid_relative_position (notebook, offset);
}
void
-nautilus_notebook_next_page (NautilusNotebook *notebook)
+nautilus_notebook_next_page (GtkNotebook *notebook)
{
gint current_page, n_pages;
- g_return_if_fail (NAUTILUS_IS_NOTEBOOK (notebook));
+ g_return_if_fail (GTK_IS_NOTEBOOK (notebook));
- current_page = gtk_notebook_get_current_page (GTK_NOTEBOOK (notebook));
- n_pages = gtk_notebook_get_n_pages (GTK_NOTEBOOK (notebook));
+ current_page = gtk_notebook_get_current_page (notebook);
+ n_pages = gtk_notebook_get_n_pages (notebook);
if (current_page < n_pages - 1)
{
- gtk_notebook_next_page (GTK_NOTEBOOK (notebook));
+ gtk_notebook_next_page (notebook);
}
else
{
@@ -429,23 +399,23 @@ nautilus_notebook_next_page (NautilusNotebook *notebook)
if (wrap_around)
{
- gtk_notebook_set_current_page (GTK_NOTEBOOK (notebook), 0);
+ gtk_notebook_set_current_page (notebook, 0);
}
}
}
void
-nautilus_notebook_prev_page (NautilusNotebook *notebook)
+nautilus_notebook_prev_page (GtkNotebook *notebook)
{
gint current_page;
- g_return_if_fail (NAUTILUS_IS_NOTEBOOK (notebook));
+ g_return_if_fail (GTK_IS_NOTEBOOK (notebook));
- current_page = gtk_notebook_get_current_page (GTK_NOTEBOOK (notebook));
+ current_page = gtk_notebook_get_current_page (notebook);
if (current_page > 0)
{
- gtk_notebook_prev_page (GTK_NOTEBOOK (notebook));
+ gtk_notebook_prev_page (notebook);
}
else
{
@@ -457,7 +427,7 @@ nautilus_notebook_prev_page (NautilusNotebook *notebook)
if (wrap_around)
{
- gtk_notebook_set_current_page (GTK_NOTEBOOK (notebook), -1);
+ gtk_notebook_set_current_page (notebook, -1);
}
}
}
diff --git a/src/nautilus-notebook.h b/src/nautilus-notebook.h
index ad227d183..bbc17b00d 100644
--- a/src/nautilus-notebook.h
+++ b/src/nautilus-notebook.h
@@ -31,32 +31,29 @@
G_BEGIN_DECLS
-#define NAUTILUS_TYPE_NOTEBOOK (nautilus_notebook_get_type ())
-G_DECLARE_FINAL_TYPE (NautilusNotebook, nautilus_notebook, NAUTILUS, NOTEBOOK, GtkNotebook)
-
-int nautilus_notebook_add_tab (NautilusNotebook *nb,
+int nautilus_notebook_add_tab (GtkNotebook *nb,
NautilusWindowSlot *slot,
int position,
gboolean jump_to);
-void nautilus_notebook_sync_tab_label (NautilusNotebook *nb,
+void nautilus_notebook_sync_tab_label (GtkNotebook *nb,
NautilusWindowSlot *slot);
-void nautilus_notebook_sync_loading (NautilusNotebook *nb,
+void nautilus_notebook_sync_loading (GtkNotebook *nb,
NautilusWindowSlot *slot);
-void nautilus_notebook_reorder_current_child_relative (NautilusNotebook *notebook,
+void nautilus_notebook_reorder_current_child_relative (GtkNotebook *notebook,
int offset);
-gboolean nautilus_notebook_can_reorder_current_child_relative (NautilusNotebook *notebook,
+gboolean nautilus_notebook_can_reorder_current_child_relative (GtkNotebook *notebook,
int offset);
-void nautilus_notebook_prev_page (NautilusNotebook *notebook);
-void nautilus_notebook_next_page (NautilusNotebook *notebook);
+void nautilus_notebook_prev_page (GtkNotebook *notebook);
+void nautilus_notebook_next_page (GtkNotebook *notebook);
-gboolean nautilus_notebook_contains_slot (NautilusNotebook *notebook,
+gboolean nautilus_notebook_contains_slot (GtkNotebook *notebook,
NautilusWindowSlot *slot);
-gboolean nautilus_notebook_get_tab_clicked (NautilusNotebook *notebook,
- gint x,
- gint y,
- gint *position);
-
+gboolean nautilus_notebook_get_tab_clicked (GtkNotebook *notebook,
+ gint x,
+ gint y,
+ gint *position);
+void nautilus_notebook_setup (GtkNotebook *notebook);
G_END_DECLS
diff --git a/src/nautilus-window-slot-dnd.c b/src/nautilus-window-slot-dnd.c
index 8c3c0e46d..254084cb1 100644
--- a/src/nautilus-window-slot-dnd.c
+++ b/src/nautilus-window-slot-dnd.c
@@ -65,7 +65,7 @@ switch_tab (NautilusDragSlotProxyInfo *drag_info)
return;
}
- notebook = gtk_widget_get_ancestor (GTK_WIDGET (drag_info->target_slot), NAUTILUS_TYPE_NOTEBOOK);
+ notebook = gtk_widget_get_ancestor (GTK_WIDGET (drag_info->target_slot), GTK_TYPE_NOTEBOOK);
n_pages = gtk_notebook_get_n_pages (GTK_NOTEBOOK (notebook));
for (idx = 0; idx < n_pages; idx++)
diff --git a/src/nautilus-window.c b/src/nautilus-window.c
index 8d42e645d..f9fb66e1d 100644
--- a/src/nautilus-window.c
+++ b/src/nautilus-window.c
@@ -351,7 +351,7 @@ action_tab_previous (GSimpleAction *action,
{
NautilusWindow *window = user_data;
- nautilus_notebook_prev_page (NAUTILUS_NOTEBOOK (window->notebook));
+ nautilus_notebook_prev_page (GTK_NOTEBOOK (window->notebook));
}
static void
@@ -361,7 +361,7 @@ action_tab_next (GSimpleAction *action,
{
NautilusWindow *window = user_data;
- nautilus_notebook_next_page (NAUTILUS_NOTEBOOK (window->notebook));
+ nautilus_notebook_next_page (GTK_NOTEBOOK (window->notebook));
}
static void
@@ -371,7 +371,7 @@ action_tab_move_left (GSimpleAction *action,
{
NautilusWindow *window = user_data;
- nautilus_notebook_reorder_current_child_relative (NAUTILUS_NOTEBOOK (window->notebook), -1);
+ nautilus_notebook_reorder_current_child_relative (GTK_NOTEBOOK (window->notebook), -1);
}
static void
@@ -381,7 +381,7 @@ action_tab_move_right (GSimpleAction *action,
{
NautilusWindow *window = user_data;
- nautilus_notebook_reorder_current_child_relative (NAUTILUS_NOTEBOOK (window->notebook), 1);
+ nautilus_notebook_reorder_current_child_relative (GTK_NOTEBOOK (window->notebook), 1);
}
static void
@@ -555,7 +555,7 @@ nautilus_window_initialize_slot (NautilusWindow *window,
g_signal_handlers_block_by_func (window->notebook,
G_CALLBACK (notebook_switch_page_cb),
window);
- nautilus_notebook_add_tab (NAUTILUS_NOTEBOOK (window->notebook),
+ nautilus_notebook_add_tab (GTK_NOTEBOOK (window->notebook),
slot,
(flags & NAUTILUS_OPEN_FLAG_SLOT_APPEND) != 0 ?
-1 :
@@ -808,9 +808,9 @@ nautilus_window_sync_allow_stop (NautilusWindow *window,
/* Avoid updating the notebook if we are calling on dispose or
* on removal of a notebook tab */
- if (nautilus_notebook_contains_slot (NAUTILUS_NOTEBOOK (window->notebook), slot))
+ if (nautilus_notebook_contains_slot (GTK_NOTEBOOK (window->notebook), slot))
{
- nautilus_notebook_sync_loading (NAUTILUS_NOTEBOOK (window->notebook), slot);
+ nautilus_notebook_sync_loading (GTK_NOTEBOOK (window->notebook), slot);
}
}
}
@@ -1797,7 +1797,7 @@ notebook_button_press_cb (GtkGestureMultiPress *gesture,
window = NAUTILUS_WINDOW (user_data);
notebook = GTK_NOTEBOOK (window->notebook);
- if (!nautilus_notebook_get_tab_clicked (NAUTILUS_NOTEBOOK (notebook), x, y, &tab_clicked))
+ if (!nautilus_notebook_get_tab_clicked (notebook, x, y, &tab_clicked))
{
return;
}
@@ -2382,7 +2382,7 @@ nautilus_window_sync_title (NautilusWindow *window,
gtk_window_set_title (GTK_WINDOW (window), nautilus_window_slot_get_title (slot));
}
- nautilus_notebook_sync_tab_label (NAUTILUS_NOTEBOOK (window->notebook), slot);
+ nautilus_notebook_sync_tab_label (GTK_NOTEBOOK (window->notebook), slot);
}
#ifdef GDK_WINDOWING_WAYLAND
@@ -2614,8 +2614,8 @@ nautilus_window_init (NautilusWindow *window)
GtkWindowGroup *window_group;
g_type_ensure (NAUTILUS_TYPE_TOOLBAR);
- g_type_ensure (NAUTILUS_TYPE_NOTEBOOK);
gtk_widget_init_template (GTK_WIDGET (window));
+ nautilus_notebook_setup (GTK_NOTEBOOK (window->notebook));
window->places_sidebar = nautilus_gtk_places_sidebar_new ();
g_object_set (window->places_sidebar,
diff --git a/src/resources/ui/nautilus-window.ui b/src/resources/ui/nautilus-window.ui
index cd5799f36..c890158bc 100644
--- a/src/resources/ui/nautilus-window.ui
+++ b/src/resources/ui/nautilus-window.ui
@@ -58,7 +58,7 @@
<object class="GtkOverlay" id="main_view">
<property name="visible">True</property>
<child>
- <object class="NautilusNotebook" id="notebook">
+ <object class="GtkNotebook" id="notebook">
<property name="visible">True</property>
<property name="show-tabs">False</property>
<property name="show-border">False</property>