static GtkNotebook* window_creation_function (GtkNotebook *source_notebook, GtkWidget *child, gint x, gint y, gpointer data) { GtkWidget *window, *notebook; window = gtk_window_new (GTK_WINDOW_TOPLEVEL); notebook = gtk_notebook_new (); g_signal_connect (notebook, "create-window", G_CALLBACK (window_creation_function), NULL); gtk_notebook_set_group_name (GTK_NOTEBOOK (notebook), gtk_notebook_get_group_name (source_notebook)); gtk_container_add (GTK_CONTAINER (window), notebook); gtk_window_set_default_size (GTK_WINDOW (window), 300, 300); gtk_window_move (GTK_WINDOW (window), x, y); gtk_widget_show_all (window); return GTK_NOTEBOOK (notebook); }
static void gnm_notebook_init (GnmNotebook *notebook) { gtk_notebook_set_scrollable (GTK_NOTEBOOK (notebook), TRUE); gtk_notebook_set_tab_pos (GTK_NOTEBOOK (notebook), GTK_POS_BOTTOM); gtk_notebook_set_show_border (GTK_NOTEBOOK (notebook), FALSE); gtk_notebook_set_group_name (GTK_NOTEBOOK (notebook), "Gnumeric"); }
static void notebook_init(Notebook *notebook) { notebook -> tabs_showed = TRUE; GtkWidget *nb = GTK_WIDGET(notebook); gtk_notebook_set_group_name(GTK_NOTEBOOK(nb), "main_tabs"); gtk_notebook_set_scrollable(GTK_NOTEBOOK(nb), TRUE); gtk_widget_set_can_focus(nb, FALSE); //gtk_widget_set_size_request(nb, 200, 200); //gtk_window_resize(GTK_NOTEBOOK(nb), 600, 450); }
/** * schema_browser_perspective_new * * Creates new #BrowserPerspective widget which */ BrowserPerspective * schema_browser_perspective_new (BrowserWindow *bwin) { TConnection *tcnc; BrowserPerspective *bpers; SchemaBrowserPerspective *perspective; gboolean fav_supported; bpers = (BrowserPerspective*) g_object_new (TYPE_SCHEMA_BROWSER_PERSPECTIVE, NULL); perspective = (SchemaBrowserPerspective*) bpers; tcnc = browser_window_get_connection (bwin); fav_supported = t_connection_get_favorites (tcnc) ? TRUE : FALSE; perspective->priv->bwin = bwin; /* contents */ GtkWidget *paned, *wid, *nb; paned = gtk_paned_new (GTK_ORIENTATION_HORIZONTAL); if (fav_supported) { wid = favorite_selector_new (tcnc); g_signal_connect (wid, "selection-changed", G_CALLBACK (fav_selection_changed_cb), bpers); gtk_paned_add1 (GTK_PANED (paned), wid); gtk_paned_set_position (GTK_PANED (paned), DEFAULT_FAVORITES_SIZE); perspective->priv->favorites = wid; } nb = browser_perspective_create_notebook (bpers); perspective->priv->notebook = nb; gtk_paned_add2 (GTK_PANED (paned), nb); wid = objects_index_new (tcnc); g_signal_connect (wid, "selection-changed", G_CALLBACK (objects_index_selection_changed_cb), bpers); gtk_notebook_append_page (GTK_NOTEBOOK (nb), wid, ui_make_tab_label_with_icon (_("Index"), "help-about", FALSE, NULL)); gtk_notebook_set_tab_reorderable (GTK_NOTEBOOK (nb), wid, TRUE); gtk_notebook_set_group_name (GTK_NOTEBOOK (nb), "schema-browser"); gtk_notebook_set_menu_label (GTK_NOTEBOOK (nb), wid, ui_make_tab_label_with_icon (_("Index"), "help-about", FALSE, NULL)); gtk_box_pack_start (GTK_BOX (bpers), paned, TRUE, TRUE, 0); gtk_widget_show_all (paned); if (perspective->priv->favorites && !perspective->priv->favorites_shown) gtk_widget_hide (perspective->priv->favorites); return bpers; }
static GtkWidget* create_notebook_non_dragable_content (gchar **labels, const gchar *group, GtkPositionType pos) { GtkWidget *notebook, *title, *page, *action_widget; notebook = gtk_notebook_new (); gtk_widget_set_vexpand (notebook, TRUE); gtk_widget_set_hexpand (notebook, TRUE); action_widget = gtk_button_new_from_icon_name ("list-add-symbolic", GTK_ICON_SIZE_BUTTON); g_signal_connect (action_widget, "clicked", G_CALLBACK (action_clicked_cb), notebook); gtk_widget_show (action_widget); gtk_notebook_set_action_widget (GTK_NOTEBOOK (notebook), action_widget, GTK_PACK_END); g_signal_connect (notebook, "create-window", G_CALLBACK (window_creation_function), NULL); gtk_notebook_set_tab_pos (GTK_NOTEBOOK (notebook), pos); gtk_notebook_set_scrollable (GTK_NOTEBOOK (notebook), TRUE); gtk_container_set_border_width (GTK_CONTAINER (notebook), 6); gtk_notebook_set_group_name (GTK_NOTEBOOK (notebook), group); while (*labels) { GtkWidget *button; button = gtk_button_new_with_label (*labels); /* Use GtkListBox since it bubbles up motion notify event, which can * experience more issues than GtkBox. */ page = gtk_list_box_new (); gtk_container_add (GTK_CONTAINER (page), button); title = gtk_label_new (*labels); gtk_notebook_append_page (GTK_NOTEBOOK (notebook), page, title); gtk_notebook_set_tab_reorderable (GTK_NOTEBOOK (notebook), page, TRUE); gtk_notebook_set_tab_detachable (GTK_NOTEBOOK (notebook), page, TRUE); labels++; } g_signal_connect (GTK_NOTEBOOK (notebook), "page-reordered", G_CALLBACK (on_page_reordered), NULL); g_signal_connect_after (G_OBJECT (notebook), "drag-begin", G_CALLBACK (on_notebook_drag_begin), NULL); return notebook; }
static void gedit_notebook_init (GeditNotebook *notebook) { GeditNotebookPrivate *priv; notebook->priv = gedit_notebook_get_instance_private (notebook); priv = notebook->priv; priv->close_buttons_sensitive = TRUE; 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), TRUE); gtk_notebook_set_group_name (GTK_NOTEBOOK (notebook), GEDIT_NOTEBOOK_GROUP_NAME); gtk_container_set_border_width (GTK_CONTAINER (notebook), 0); }
static GtkWidget* create_notebook (gchar **labels, const gchar *group, GtkPositionType pos) { GtkWidget *notebook, *title, *page, *action_widget; notebook = gtk_notebook_new (); gtk_widget_set_vexpand (notebook, TRUE); gtk_widget_set_hexpand (notebook, TRUE); action_widget = gtk_button_new_from_icon_name ("list-add-symbolic", GTK_ICON_SIZE_BUTTON); g_signal_connect (action_widget, "clicked", G_CALLBACK (action_clicked_cb), notebook); gtk_widget_show (action_widget); gtk_notebook_set_action_widget (GTK_NOTEBOOK (notebook), action_widget, GTK_PACK_END); g_signal_connect (notebook, "create-window", G_CALLBACK (window_creation_function), NULL); gtk_notebook_set_tab_pos (GTK_NOTEBOOK (notebook), pos); gtk_notebook_set_scrollable (GTK_NOTEBOOK (notebook), TRUE); gtk_container_set_border_width (GTK_CONTAINER (notebook), 6); gtk_notebook_set_group_name (GTK_NOTEBOOK (notebook), group); while (*labels) { page = gtk_entry_new (); gtk_entry_set_text (GTK_ENTRY (page), *labels); title = gtk_label_new (*labels); gtk_notebook_append_page (GTK_NOTEBOOK (notebook), page, title); gtk_notebook_set_tab_reorderable (GTK_NOTEBOOK (notebook), page, TRUE); gtk_notebook_set_tab_detachable (GTK_NOTEBOOK (notebook), page, TRUE); labels++; } g_signal_connect (GTK_NOTEBOOK (notebook), "page-reordered", G_CALLBACK (on_page_reordered), NULL); g_signal_connect_after (G_OBJECT (notebook), "drag-begin", G_CALLBACK (on_notebook_drag_begin), NULL); return notebook; }
static void ephy_notebook_init (EphyNotebook *notebook) { GtkWidget *widget = GTK_WIDGET (notebook); GtkNotebook *gnotebook = GTK_NOTEBOOK (notebook); gtk_notebook_set_scrollable (gnotebook, TRUE); gtk_notebook_set_show_border (gnotebook, FALSE); gtk_notebook_set_show_tabs (gnotebook, FALSE); gtk_notebook_set_group_name (gnotebook, EPHY_NOTEBOOK_TAB_GROUP_ID); gtk_notebook_set_tab_pos (gnotebook, ephy_settings_get_tabs_bar_position ()); notebook->tabs_allowed = TRUE; g_signal_connect (notebook, "button-press-event", (GCallback)button_press_cb, NULL); g_signal_connect_after (notebook, "switch-page", G_CALLBACK (ephy_notebook_switch_page_cb), NULL); /* Set up drag-and-drop target */ g_signal_connect (notebook, "drag-data-received", G_CALLBACK (notebook_drag_data_received_cb), NULL); gtk_drag_dest_set (widget, 0, url_drag_types, G_N_ELEMENTS (url_drag_types), GDK_ACTION_MOVE | GDK_ACTION_COPY); gtk_drag_dest_add_text_targets (widget); g_signal_connect (EPHY_SETTINGS_UI, "changed::" EPHY_PREFS_UI_EXPAND_TABS_BAR, G_CALLBACK (expand_tabs_changed_cb), notebook); g_signal_connect (EPHY_SETTINGS_UI, "changed::" EPHY_PREFS_UI_TABS_BAR_POSITION, G_CALLBACK (position_changed_cb), notebook); g_signal_connect (EPHY_SETTINGS_UI, "changed::" EPHY_PREFS_UI_TABS_BAR_VISIBILITY_POLICY, G_CALLBACK (show_tabs_changed_cb), notebook); gtk_style_context_add_class (gtk_widget_get_style_context (widget), "main-notebook"); }
static GtkWidget* create_notebook_with_notebooks (gchar **labels, const gchar *group, GtkPositionType pos) { GtkWidget *notebook, *title, *page; gint count = 0; notebook = gtk_notebook_new (); g_signal_connect (notebook, "create-window", G_CALLBACK (window_creation_function), NULL); gtk_notebook_set_tab_pos (GTK_NOTEBOOK (notebook), pos); gtk_notebook_set_scrollable (GTK_NOTEBOOK (notebook), TRUE); gtk_container_set_border_width (GTK_CONTAINER (notebook), 6); gtk_notebook_set_group_name (GTK_NOTEBOOK (notebook), group); while (*labels) { page = create_notebook (labels, group, pos); gtk_notebook_popup_enable (GTK_NOTEBOOK (page)); title = gtk_label_new (*labels); gtk_notebook_append_page (GTK_NOTEBOOK (notebook), page, title); gtk_notebook_set_tab_reorderable (GTK_NOTEBOOK (notebook), page, TRUE); gtk_notebook_set_tab_detachable (GTK_NOTEBOOK (notebook), page, TRUE); count++; labels++; } g_signal_connect (GTK_NOTEBOOK (notebook), "page-reordered", G_CALLBACK (on_page_reordered), NULL); g_signal_connect_after (G_OBJECT (notebook), "drag-begin", G_CALLBACK (on_notebook_drag_begin), NULL); return notebook; }
static void gedit_notebook_init (GeditNotebook *notebook) { notebook->priv = GEDIT_NOTEBOOK_GET_PRIVATE (notebook); notebook->priv->ui_settings = g_settings_new ("org.gnome.gedit.preferences.ui"); notebook->priv->show_tabs_mode = GEDIT_NOTEBOOK_SHOW_TABS_ALWAYS; notebook->priv->close_buttons_sensitive = TRUE; 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), TRUE); gtk_notebook_set_group_name (GTK_NOTEBOOK (notebook), GEDIT_NOTEBOOK_GROUP_NAME); gtk_container_set_border_width (GTK_CONTAINER (notebook), 0); g_settings_bind (notebook->priv->ui_settings, GEDIT_SETTINGS_SHOW_TABS_MODE, notebook, "show-tabs-mode", G_SETTINGS_BIND_GET | G_SETTINGS_BIND_SET); }
static void nemo_window_pane_constructed (GObject *obj) { NemoWindowPane *pane = NEMO_WINDOW_PANE (obj); GtkSizeGroup *header_size_group; NemoWindow *window; GtkActionGroup *action_group; G_OBJECT_CLASS (nemo_window_pane_parent_class)->constructed (obj); window = pane->window; header_size_group = gtk_size_group_new (GTK_SIZE_GROUP_VERTICAL); gtk_size_group_set_ignore_hidden (header_size_group, FALSE); /* build the toolbar */ action_group = nemo_window_create_toolbar_action_group (window); pane->toolbar_action_group = action_group; pane->tool_bar = GTK_WIDGET (nemo_toolbar_new (action_group)); g_signal_connect_object (pane->tool_bar, "notify::show-location-entry", G_CALLBACK (location_entry_changed_cb), pane, 0); pane->action_group = action_group; setup_search_action (pane); g_signal_connect (pane->action_group, "pre-activate", G_CALLBACK (toolbar_action_group_activated_callback), pane); /* Pack to windows hbox (under the menu */ gtk_box_pack_start (GTK_BOX (window->details->toolbar_holder), pane->tool_bar, TRUE, TRUE, 0); /* start as non-active */ nemo_window_pane_set_active (pane, FALSE); g_settings_bind_with_mapping (nemo_window_state, NEMO_WINDOW_STATE_START_WITH_TOOLBAR, pane->tool_bar, "visible", G_SETTINGS_BIND_GET, nemo_window_disable_chrome_mapping, NULL, window, NULL); /* connect to the pathbar signals */ pane->path_bar = nemo_toolbar_get_path_bar (NEMO_TOOLBAR (pane->tool_bar)); gtk_size_group_add_widget (header_size_group, pane->path_bar); g_signal_connect_object (pane->path_bar, "path-clicked", G_CALLBACK (path_bar_location_changed_callback), pane, 0); g_signal_connect_object (pane->path_bar, "path-set", G_CALLBACK (path_bar_path_set_callback), pane, 0); /* connect to the location bar signals */ pane->location_bar = nemo_toolbar_get_location_bar (NEMO_TOOLBAR (pane->tool_bar)); gtk_size_group_add_widget (header_size_group, pane->location_bar); nemo_clipboard_set_up_editable (GTK_EDITABLE (nemo_location_bar_get_entry (NEMO_LOCATION_BAR (pane->location_bar))), nemo_window_get_ui_manager (NEMO_WINDOW (window)), TRUE); g_signal_connect_object (pane->location_bar, "location-changed", G_CALLBACK (navigation_bar_location_changed_callback), pane, 0); g_signal_connect_object (pane->location_bar, "cancel", G_CALLBACK (navigation_bar_cancel_callback), pane, 0); g_signal_connect_object (nemo_location_bar_get_entry (NEMO_LOCATION_BAR (pane->location_bar)), "focus-in-event", G_CALLBACK (toolbar_focus_in_callback), pane, 0); /* connect to the search bar signals */ pane->search_bar = nemo_toolbar_get_search_bar (NEMO_TOOLBAR (pane->tool_bar)); gtk_size_group_add_widget (header_size_group, pane->search_bar); g_signal_connect_object (pane->search_bar, "activate", G_CALLBACK (search_bar_activate_callback), pane, 0); g_signal_connect_object (pane->search_bar, "cancel", G_CALLBACK (search_bar_cancel_callback), pane, 0); g_signal_connect_object (nemo_search_bar_get_entry (NEMO_SEARCH_BAR (pane->search_bar)), "focus-in-event", G_CALLBACK (toolbar_focus_in_callback), pane, 0); /* initialize the notebook */ pane->notebook = g_object_new (NEMO_TYPE_NOTEBOOK, NULL); gtk_box_pack_start (GTK_BOX (pane), pane->notebook, TRUE, TRUE, 0); g_signal_connect (pane->notebook, "tab-close-request", G_CALLBACK (notebook_tab_close_requested), pane); g_signal_connect_after (pane->notebook, "button_press_event", G_CALLBACK (notebook_button_press_cb), pane); g_signal_connect (pane->notebook, "popup-menu", G_CALLBACK (notebook_popup_menu_cb), pane); g_signal_connect (pane->notebook, "switch-page", G_CALLBACK (notebook_switch_page_cb), pane); g_signal_connect (pane->notebook, "create-window", G_CALLBACK (notebook_create_window_cb), pane); g_signal_connect (pane->notebook, "page-added", G_CALLBACK (notebook_page_added_cb), pane); g_signal_connect (pane->notebook, "page-removed", G_CALLBACK (notebook_page_removed_cb), pane); gtk_notebook_set_show_tabs (GTK_NOTEBOOK (pane->notebook), FALSE); gtk_notebook_set_show_border (GTK_NOTEBOOK (pane->notebook), FALSE); gtk_notebook_set_group_name (GTK_NOTEBOOK (pane->notebook), "nemo-slots"); gtk_widget_show (pane->notebook); gtk_container_set_border_width (GTK_CONTAINER (pane->notebook), 0); /* Ensure that the view has some minimal size and that other parts * of the UI (like location bar and tabs) don't request more and * thus affect the default position of the split view paned. */ gtk_widget_set_size_request (GTK_WIDGET (pane), 60, 60); /* * If we're on the desktop we need to make sure the toolbar can never show */ if (NEMO_IS_DESKTOP_WINDOW(window)) { gtk_widget_hide (GTK_WIDGET (window->details->toolbar_holder)); } /* we can unref the size group now */ g_object_unref (header_size_group); }