/** * gedit_notebook_add_tab: * @nb: a #GeditNotebook * @tab: a #GeditTab * @position: the position where the @tab should be added * @jump_to: %TRUE to set the @tab as active * * Adds the specified @tab to the @nb. */ void gedit_notebook_add_tab (GeditNotebook *nb, GeditTab *tab, gint position, gboolean jump_to) { GtkWidget *tab_label; g_return_if_fail (GEDIT_IS_NOTEBOOK (nb)); g_return_if_fail (GEDIT_IS_TAB (tab)); tab_label = create_tab_label (nb, tab); gtk_notebook_insert_page (GTK_NOTEBOOK (nb), GTK_WIDGET (tab), tab_label, position); gtk_notebook_set_tab_reorderable (GTK_NOTEBOOK (nb), GTK_WIDGET (tab), TRUE); gtk_notebook_set_tab_detachable (GTK_NOTEBOOK (nb), GTK_WIDGET (tab), TRUE); /* The signal handler may have reordered the tabs */ position = gtk_notebook_page_num (GTK_NOTEBOOK (nb), GTK_WIDGET (tab)); if (jump_to) { gtk_notebook_set_current_page (GTK_NOTEBOOK (nb), position); gtk_widget_grab_focus (GTK_WIDGET (tab)); } }
/** * gtr_notebook_add_page: * @notebook: a #GtrNotebook * @tab: a #GtrTab * * Adds a new #GtrTab to @notebook. */ void gtr_notebook_add_page (GtrNotebook * notebook, GtrTab * tab) { GtkWidget *label; g_return_if_fail (GTR_IS_NOTEBOOK (notebook)); g_return_if_fail (GTR_IS_TAB (tab)); label = create_tab_label (notebook, tab); gtk_notebook_append_page (GTK_NOTEBOOK (notebook), GTK_WIDGET (tab), label); update_tabs_visibility (notebook); }
static void toplevel_delete_event (GtkWidget *toplevel, GdkEvent *event, gpointer none) { GdkWindow *gdk_win; GtkWidget *label = create_tab_label (toplevel); gdk_win = gtk_widget_get_window (notebook); g_assert (gdk_win); gtk_widget_hide (toplevel); gtk_widget_unrealize (toplevel); gtk_widget_set_parent_window (toplevel, gdk_win); gtk_notebook_append_page (GTK_NOTEBOOK (notebook), toplevel, label); gtk_widget_show (toplevel); }
/** * cedit_notebook_add_tab: * @nb: a #CeditNotebook * @tab: a #CeditTab * @position: the position where the @tab should be added * @jump_to: %TRUE to set the @tab as active * * Adds the specified @tab to the @nb. */ void cedit_notebook_add_tab (CeditNotebook *nb, CeditTab *tab, gint position, gboolean jump_to) { GtkWidget *tab_label; g_return_if_fail (CEDIT_IS_NOTEBOOK (nb)); g_return_if_fail (CEDIT_IS_TAB (tab)); tab_label = create_tab_label (nb, tab); gtk_notebook_insert_page (GTK_NOTEBOOK (nb), GTK_WIDGET (tab), tab_label, position); update_tabs_visibility (nb, TRUE); g_signal_emit (G_OBJECT (nb), signals[TAB_ADDED], 0, tab); /* The signal handler may have reordered the tabs */ position = gtk_notebook_page_num (GTK_NOTEBOOK (nb), GTK_WIDGET (tab)); if (jump_to) { CeditView *view; gtk_notebook_set_current_page (GTK_NOTEBOOK (nb), position); g_object_set_data (G_OBJECT (tab), "jump_to", GINT_TO_POINTER (jump_to)); view = cedit_tab_get_view (tab); gtk_widget_grab_focus (GTK_WIDGET (view)); } }