void nemo_notebook_set_current_page_relative (NemoNotebook *notebook, int offset) { GtkNotebook *gnotebook; int page; g_return_if_fail (NEMO_IS_NOTEBOOK (notebook)); if (!nemo_notebook_can_set_current_page_relative (notebook, offset)) { return; } gnotebook = GTK_NOTEBOOK (notebook); page = gtk_notebook_get_current_page (gnotebook); gtk_notebook_set_current_page (gnotebook, page + offset); }
void nemo_notebook_reorder_current_child_relative (NemoNotebook *notebook, int offset) { GtkNotebook *gnotebook; GtkWidget *child; int page; g_return_if_fail (NEMO_IS_NOTEBOOK (notebook)); if (!nemo_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); }
void nemo_notebook_reorder_child_relative (NemoNotebook *notebook, int page_num, int offset) { GtkNotebook *gnotebook; GtkWidget *page; g_return_if_fail (NEMO_IS_NOTEBOOK (notebook)); g_return_if_fail (page_num != -1); if (!nemo_notebook_can_reorder_child_relative ( notebook, page_num, offset)) { return; } gnotebook = GTK_NOTEBOOK (notebook); page = gtk_notebook_get_nth_page (gnotebook, page_num); g_return_if_fail (page != NULL); gtk_notebook_reorder_child (gnotebook, page, page_num + offset); }
int nemo_notebook_add_tab (NemoNotebook *notebook, NemoWindowSlot *slot, int position, gboolean jump_to) { GtkNotebook *gnotebook = GTK_NOTEBOOK (notebook); GtkWidget *tab_label; g_return_val_if_fail (NEMO_IS_NOTEBOOK (notebook), -1); g_return_val_if_fail (NEMO_IS_WINDOW_SLOT (slot), -1); tab_label = build_tab_label (notebook, slot); position = gtk_notebook_insert_page (GTK_NOTEBOOK (notebook), GTK_WIDGET (slot), tab_label, position); gtk_container_child_set (GTK_CONTAINER (notebook), GTK_WIDGET (slot), "tab-expand", TRUE, NULL); nemo_notebook_sync_tab_label (notebook, slot); nemo_notebook_sync_loading (notebook, slot); /* FIXME gtk bug! */ /* FIXME: this should be fixed in gtk 2.12; check & remove this! */ /* The signal handler may have reordered the tabs */ position = gtk_notebook_page_num (gnotebook, GTK_WIDGET (slot)); if (jump_to) { gtk_notebook_set_current_page (gnotebook, position); } return position; }