static void update_bookmarks (NemoWindow *window) { NemoBookmarkList *bookmarks; NemoBookmark *bookmark; guint bookmark_count; guint index; GtkUIManager *ui_manager; g_assert (NEMO_IS_WINDOW (window)); g_assert (window->details->bookmarks_merge_id == 0); g_assert (window->details->bookmarks_action_group == NULL); if (window->details->bookmark_list == NULL) { window->details->bookmark_list = nemo_bookmark_list_new (); } bookmarks = window->details->bookmark_list; ui_manager = nemo_window_get_ui_manager (NEMO_WINDOW (window)); window->details->bookmarks_merge_id = gtk_ui_manager_new_merge_id (ui_manager); window->details->bookmarks_action_group = gtk_action_group_new ("BookmarksGroup"); g_signal_connect (window->details->bookmarks_action_group, "connect-proxy", G_CALLBACK (connect_proxy_cb), NULL); gtk_ui_manager_insert_action_group (ui_manager, window->details->bookmarks_action_group, -1); g_object_unref (window->details->bookmarks_action_group); /* append new set of bookmarks */ bookmark_count = nemo_bookmark_list_length (bookmarks); for (index = 0; index < bookmark_count; ++index) { bookmark = nemo_bookmark_list_item_at (bookmarks, index); if (!nemo_bookmark_get_exists (bookmark)) { continue; } nemo_menus_append_bookmark_to_menu (NEMO_WINDOW (window), bookmark, MENU_PATH_BOOKMARKS_PLACEHOLDER, "dynamic", index, window->details->bookmarks_action_group, window->details->bookmarks_merge_id, G_CALLBACK (refresh_bookmarks_menu), show_bogus_bookmark_window); } }
static void remove_bookmarks_menu_items (NemoWindow *window) { GtkUIManager *ui_manager; ui_manager = nemo_window_get_ui_manager (window); if (window->details->bookmarks_merge_id != 0) { gtk_ui_manager_remove_ui (ui_manager, window->details->bookmarks_merge_id); window->details->bookmarks_merge_id = 0; } if (window->details->bookmarks_action_group != NULL) { gtk_ui_manager_remove_action_group (ui_manager, window->details->bookmarks_action_group); window->details->bookmarks_action_group = NULL; } }
/** * refresh_go_menu: * * Refresh list of bookmarks at end of Go menu to match centralized history list. * @window: The NemoWindow whose Go menu will be refreshed. **/ static void nemo_window_initialize_go_menu (NemoWindow *window) { GtkUIManager *ui_manager; GtkWidget *menuitem; int i; ui_manager = nemo_window_get_ui_manager (NEMO_WINDOW (window)); for (i = 0; i < G_N_ELEMENTS (icon_entries); i++) { menuitem = gtk_ui_manager_get_widget ( ui_manager, icon_entries[i]); gtk_image_menu_item_set_always_show_image ( GTK_IMAGE_MENU_ITEM (menuitem), TRUE); } }
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); }