static void ephy_notebook_page_reordered (GtkNotebook *notebook, GtkWidget *child, guint page_num) { if (GTK_NOTEBOOK_CLASS (ephy_notebook_parent_class)->page_reordered != NULL) GTK_NOTEBOOK_CLASS (ephy_notebook_parent_class)->page_reordered (notebook, child, page_num); ephy_notebook_rebuild_tab_menu (EPHY_NOTEBOOK (notebook)); }
static void gedit_notebook_switch_page (GtkNotebook *notebook, GtkWidget *page, guint page_num) { GeditNotebook *nb = GEDIT_NOTEBOOK (notebook); if (!nb->priv->ignore_focused_page_update) { gint prev_page; GtkWidget *previous_page; prev_page = gtk_notebook_get_current_page (notebook); previous_page = gtk_notebook_get_nth_page (notebook, prev_page); /* Remove the old page, we dont want to grow unnecessarily * the list */ if (nb->priv->focused_pages) { nb->priv->focused_pages = g_list_remove (nb->priv->focused_pages, previous_page); } nb->priv->focused_pages = g_list_append (nb->priv->focused_pages, previous_page); } GTK_NOTEBOOK_CLASS (gedit_notebook_parent_class)->switch_page (notebook, page, page_num); /* give focus to the tab */ gtk_widget_grab_focus (page); }
static void nautilus_notebook_class_init (NautilusNotebookClass *klass) { GObjectClass *object_class = G_OBJECT_CLASS (klass); GtkContainerClass *container_class = GTK_CONTAINER_CLASS (klass); GtkNotebookClass *notebook_class = GTK_NOTEBOOK_CLASS (klass); container_class->remove = nautilus_notebook_remove; notebook_class->insert_page = nautilus_notebook_insert_page; gtk_rc_parse_string ("style \"nautilus-tab-close-button-style\"\n" "{\n" "GtkWidget::focus-padding = 0\n" "GtkWidget::focus-line-width = 0\n" "xthickness = 0\n" "ythickness = 0\n" "}\n" "widget \"*.nautilus-tab-close-button\" style \"nautilus-tab-close-button-style\""); signals[TAB_CLOSE_REQUEST] = g_signal_new ("tab-close-request", G_OBJECT_CLASS_TYPE (object_class), G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (NautilusNotebookClass, tab_close_request), NULL, NULL, g_cclosure_marshal_VOID__OBJECT, G_TYPE_NONE, 1, NAUTILUS_TYPE_WINDOW_SLOT); }
static void anjuta_msgman_class_init (AnjutaMsgmanClass * klass) { GObjectClass *gobject_class = G_OBJECT_CLASS (klass); GtkNotebookClass *notebook_class = GTK_NOTEBOOK_CLASS (klass); parent_class = g_type_class_peek_parent (klass); gobject_class->finalize = anjuta_msgman_finalize; gobject_class->dispose = anjuta_msgman_dispose; notebook_class->switch_page = anjuta_msgman_switch_page; /** * AnjutaMsgMan::view-changed: * @msgman: #AnjutaMsgMan * * Emitted when the current view changes */ msgman_signal[VIEW_CHANGED] = g_signal_new ("view-changed", G_OBJECT_CLASS_TYPE (klass), G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (AnjutaMsgmanClass, view_changed), NULL, NULL, g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0); }
static void gedit_notebook_class_init (GeditNotebookClass *klass) { GObjectClass *object_class = G_OBJECT_CLASS (klass); GtkWidgetClass *gtkwidget_class = GTK_WIDGET_CLASS (klass); GtkNotebookClass *notebook_class = GTK_NOTEBOOK_CLASS (klass); GtkContainerClass *container_class = GTK_CONTAINER_CLASS (klass); object_class->dispose = gedit_notebook_dispose; object_class->finalize = gedit_notebook_finalize; object_class->get_property = gedit_notebook_get_property; object_class->set_property = gedit_notebook_set_property; gtkwidget_class->grab_focus = gedit_notebook_grab_focus; gtkwidget_class->button_press_event = gedit_notebook_button_press; notebook_class->change_current_page = gedit_notebook_change_current_page; notebook_class->switch_page = gedit_notebook_switch_page; notebook_class->page_removed = gedit_notebook_page_removed; notebook_class->page_added = gedit_notebook_page_added; container_class->remove = gedit_notebook_remove; g_object_class_install_property (object_class, PROP_SHOW_TABS_MODE, g_param_spec_enum ("show-tabs-mode", "Show Tabs Mode", "When tabs should be shown", GEDIT_TYPE_NOTEBOOK_SHOW_TABS_MODE_TYPE, GEDIT_NOTEBOOK_SHOW_TABS_ALWAYS, G_PARAM_READWRITE)); signals[TAB_CLOSE_REQUEST] = g_signal_new ("tab-close-request", G_OBJECT_CLASS_TYPE (object_class), G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (GeditNotebookClass, tab_close_request), NULL, NULL, g_cclosure_marshal_VOID__OBJECT, G_TYPE_NONE, 1, GEDIT_TYPE_TAB); signals[SHOW_POPUP_MENU] = g_signal_new ("show-popup-menu", G_OBJECT_CLASS_TYPE (object_class), G_SIGNAL_RUN_FIRST, G_STRUCT_OFFSET (GeditNotebookClass, show_popup_menu), NULL, NULL, gedit_marshal_VOID__BOXED_OBJECT, G_TYPE_NONE, 2, GDK_TYPE_EVENT | G_SIGNAL_TYPE_STATIC_SCOPE, GEDIT_TYPE_TAB); g_type_class_add_private (object_class, sizeof (GeditNotebookPrivate)); }
static void anjuta_msgman_switch_page (GtkNotebook* notebook, GtkWidget* page, guint page_num) { GTK_NOTEBOOK_CLASS (parent_class)->switch_page (notebook, page, page_num); g_signal_emit_by_name (ANJUTA_MSGMAN (notebook), "view-changed"); }
static int nemo_notebook_insert_page (GtkNotebook *gnotebook, GtkWidget *tab_widget, GtkWidget *tab_label, GtkWidget *menu_label, int position) { g_assert (GTK_IS_WIDGET (tab_widget)); position = GTK_NOTEBOOK_CLASS (nemo_notebook_parent_class)->insert_page (gnotebook, tab_widget, tab_label, menu_label, position); gtk_notebook_set_show_tabs (gnotebook, gtk_notebook_get_n_pages (gnotebook) > 1); gtk_notebook_set_tab_reorderable (gnotebook, tab_widget, TRUE); return position; }
static void nautilus_notebook_class_init (NautilusNotebookClass *klass) { GObjectClass *object_class = G_OBJECT_CLASS (klass); GtkContainerClass *container_class = GTK_CONTAINER_CLASS (klass); GtkNotebookClass *notebook_class = GTK_NOTEBOOK_CLASS (klass); container_class->remove = nautilus_notebook_remove; notebook_class->insert_page = nautilus_notebook_insert_page; signals[TAB_CLOSE_REQUEST] = g_signal_new ("tab-close-request", G_OBJECT_CLASS_TYPE (object_class), G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (NautilusNotebookClass, tab_close_request), NULL, NULL, g_cclosure_marshal_VOID__OBJECT, G_TYPE_NONE, 1, NAUTILUS_TYPE_WINDOW_SLOT); }
static int ephy_notebook_insert_page (GtkNotebook *gnotebook, GtkWidget *tab_widget, GtkWidget *tab_label, GtkWidget *menu_label, int position) { EphyNotebook *notebook = EPHY_NOTEBOOK (gnotebook); /* Destroy passed-in tab label */ if (tab_label != NULL) { g_object_ref_sink (tab_label); g_object_unref (tab_label); } g_assert (EPHY_IS_EMBED (tab_widget)); tab_label = build_tab_label (notebook, EPHY_EMBED (tab_widget)); update_tabs_visibility (notebook, TRUE); position = GTK_NOTEBOOK_CLASS (ephy_notebook_parent_class)->insert_page (gnotebook, tab_widget, tab_label, menu_label, position); gtk_notebook_set_tab_reorderable (gnotebook, tab_widget, TRUE); gtk_notebook_set_tab_detachable (gnotebook, tab_widget, TRUE); gtk_container_child_set (GTK_CONTAINER (gnotebook), GTK_WIDGET (tab_widget), "tab-expand", g_settings_get_boolean (EPHY_SETTINGS_UI, EPHY_PREFS_UI_EXPAND_TABS_BAR), NULL); return position; }
static void ephy_notebook_class_init (EphyNotebookClass *klass) { GObjectClass *object_class = G_OBJECT_CLASS (klass); GtkContainerClass *container_class = GTK_CONTAINER_CLASS (klass); GtkNotebookClass *notebook_class = GTK_NOTEBOOK_CLASS (klass); object_class->constructed = ephy_notebook_constructed; object_class->finalize = ephy_notebook_finalize; object_class->get_property = ephy_notebook_get_property; object_class->set_property = ephy_notebook_set_property; container_class->remove = ephy_notebook_remove; notebook_class->insert_page = ephy_notebook_insert_page; notebook_class->page_added = ephy_notebook_page_added; notebook_class->page_removed = ephy_notebook_page_removed; notebook_class->page_reordered = ephy_notebook_page_reordered; signals[TAB_CLOSE_REQUEST] = g_signal_new ("tab-close-request", G_OBJECT_CLASS_TYPE (object_class), G_SIGNAL_RUN_LAST, 0, NULL, NULL, NULL, G_TYPE_NONE, 1, GTK_TYPE_WIDGET /* Can't use an interface type here */); obj_properties[PROP_TABS_ALLOWED] = g_param_spec_boolean ("tabs-allowed", NULL, NULL, TRUE, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS); g_object_class_install_properties (object_class, LAST_PROP, obj_properties); }
static void gedit_notebook_class_init (GeditNotebookClass *klass) { GObjectClass *object_class = G_OBJECT_CLASS (klass); GtkWidgetClass *gtkwidget_class = GTK_WIDGET_CLASS (klass); GtkNotebookClass *notebook_class = GTK_NOTEBOOK_CLASS (klass); GtkContainerClass *container_class = GTK_CONTAINER_CLASS (klass); GtkBindingSet *binding_set; gint i; object_class->finalize = gedit_notebook_finalize; gtkwidget_class->grab_focus = gedit_notebook_grab_focus; gtkwidget_class->button_press_event = gedit_notebook_button_press; notebook_class->change_current_page = gedit_notebook_change_current_page; notebook_class->switch_page = gedit_notebook_switch_page; notebook_class->page_removed = gedit_notebook_page_removed; notebook_class->page_added = gedit_notebook_page_added; container_class->remove = gedit_notebook_remove; klass->change_to_page = gedit_notebook_change_to_page; signals[TAB_CLOSE_REQUEST] = g_signal_new ("tab-close-request", G_OBJECT_CLASS_TYPE (object_class), G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (GeditNotebookClass, tab_close_request), NULL, NULL, g_cclosure_marshal_VOID__OBJECT, G_TYPE_NONE, 1, GEDIT_TYPE_TAB); signals[SHOW_POPUP_MENU] = g_signal_new ("show-popup-menu", G_OBJECT_CLASS_TYPE (object_class), G_SIGNAL_RUN_FIRST, G_STRUCT_OFFSET (GeditNotebookClass, show_popup_menu), NULL, NULL, gedit_marshal_VOID__BOXED_OBJECT, G_TYPE_NONE, 2, GDK_TYPE_EVENT | G_SIGNAL_TYPE_STATIC_SCOPE, GEDIT_TYPE_TAB); signals[CHANGE_TO_PAGE] = g_signal_new ("change-to-page", G_TYPE_FROM_CLASS (object_class), G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION, G_STRUCT_OFFSET (GeditNotebookClass, change_to_page), NULL, NULL, gedit_marshal_BOOLEAN__INT, G_TYPE_BOOLEAN, 1, G_TYPE_INT); binding_set = gtk_binding_set_by_class (klass); for (i = 1; i < 10; i++) { gtk_binding_entry_add_signal (binding_set, GDK_KEY_0 + i, GDK_MOD1_MASK, "change-to-page", 1, G_TYPE_INT, i - 1); } }
static void cedit_notebook_class_init (CeditNotebookClass *klass) { GObjectClass *object_class = G_OBJECT_CLASS (klass); GtkNotebookClass *notebook_class = GTK_NOTEBOOK_CLASS (klass); object_class->finalize = cedit_notebook_finalize; object_class->dispose = cedit_notebook_dispose; notebook_class->change_current_page = cedit_notebook_change_current_page; signals[TAB_ADDED] = g_signal_new ("tab_added", G_OBJECT_CLASS_TYPE (object_class), G_SIGNAL_RUN_FIRST, G_STRUCT_OFFSET (CeditNotebookClass, tab_added), NULL, NULL, g_cclosure_marshal_VOID__OBJECT, G_TYPE_NONE, 1, CEDIT_TYPE_TAB); signals[TAB_REMOVED] = g_signal_new ("tab_removed", G_OBJECT_CLASS_TYPE (object_class), G_SIGNAL_RUN_FIRST, G_STRUCT_OFFSET (CeditNotebookClass, tab_removed), NULL, NULL, g_cclosure_marshal_VOID__OBJECT, G_TYPE_NONE, 1, CEDIT_TYPE_TAB); signals[TAB_DETACHED] = g_signal_new ("tab_detached", G_OBJECT_CLASS_TYPE (object_class), G_SIGNAL_RUN_FIRST, G_STRUCT_OFFSET (CeditNotebookClass, tab_detached), NULL, NULL, g_cclosure_marshal_VOID__OBJECT, G_TYPE_NONE, 1, CEDIT_TYPE_TAB); signals[TABS_REORDERED] = g_signal_new ("tabs_reordered", G_OBJECT_CLASS_TYPE (object_class), G_SIGNAL_RUN_FIRST, G_STRUCT_OFFSET (CeditNotebookClass, tabs_reordered), NULL, NULL, g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0); signals[TAB_CLOSE_REQUEST] = g_signal_new ("tab-close-request", G_OBJECT_CLASS_TYPE (object_class), G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (CeditNotebookClass, tab_close_request), NULL, NULL, g_cclosure_marshal_VOID__OBJECT, G_TYPE_NONE, 1, CEDIT_TYPE_TAB); g_type_class_add_private (object_class, sizeof(CeditNotebookPrivate)); }