static void caja_navigation_window_save_geometry (CajaNavigationWindow *window) { char *geometry_string; gboolean is_maximized; g_assert (CAJA_IS_WINDOW (window)); if (gtk_widget_get_window (GTK_WIDGET (window))) { geometry_string = eel_gtk_window_get_geometry_string (GTK_WINDOW (window)); is_maximized = gdk_window_get_state (gtk_widget_get_window (GTK_WIDGET (window))) & GDK_WINDOW_STATE_MAXIMIZED; if (!is_maximized) { g_settings_set_string (caja_window_state, CAJA_WINDOW_STATE_GEOMETRY, geometry_string); } g_free (geometry_string); g_settings_set_boolean (caja_window_state, CAJA_WINDOW_STATE_MAXIMIZED, is_maximized); } }
static void refresh_bookmarks_menu (CajaWindow *window) { g_assert (CAJA_IS_WINDOW (window)); remove_bookmarks_menu_items (window); update_bookmarks (window); }
static void update_bookmarks (CajaWindow *window) { CajaBookmarkList *bookmarks; CajaBookmark *bookmark; guint bookmark_count; guint index; GtkUIManager *ui_manager; g_assert (CAJA_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 = caja_bookmark_list_new (); } bookmarks = window->details->bookmark_list; ui_manager = caja_window_get_ui_manager (CAJA_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 = caja_bookmark_list_length (bookmarks); for (index = 0; index < bookmark_count; ++index) { bookmark = caja_bookmark_list_item_at (bookmarks, index); if (caja_bookmark_uri_known_not_to_exist (bookmark)) { continue; } caja_menus_append_bookmark_to_menu (CAJA_WINDOW (window), bookmark, CAJA_WINDOW_GET_CLASS (window)->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 activate_extra_viewer (CajaWindow *window) { CajaWindowSlot *slot; g_assert (CAJA_IS_WINDOW (window)); slot = caja_window_get_active_slot (window); g_assert (window->details->extra_viewer != NULL); caja_window_slot_set_content_view (slot, window->details->extra_viewer); }
/** * caja_window_initialize_bookmarks_menu * * Fill in bookmarks menu with stored bookmarks, and wire up signals * so we'll be notified when bookmark list changes. */ void caja_window_initialize_bookmarks_menu (CajaWindow *window) { g_assert (CAJA_IS_WINDOW (window)); refresh_bookmarks_menu (window); /* Recreate dynamic part of menu if bookmark list changes */ g_signal_connect_object (window->details->bookmark_list, "contents_changed", G_CALLBACK (refresh_bookmarks_menu), window, G_CONNECT_SWAPPED); }
static void activate_nth_short_list_item (CajaWindow *window, guint index) { CajaWindowSlot *slot; g_assert (CAJA_IS_WINDOW (window)); slot = caja_window_get_active_slot (window); g_assert (index < g_list_length (window->details->short_list_viewers)); caja_window_slot_set_content_view (slot, g_list_nth_data (window->details->short_list_viewers, index)); }
/** * add_bookmark_for_current_location * * Add a bookmark for the displayed location to the bookmarks menu. * Does nothing if there's already a bookmark for the displayed location. */ void caja_window_add_bookmark_for_current_location (CajaWindow *window) { CajaBookmark *bookmark; CajaWindowSlot *slot; CajaBookmarkList *list; g_assert (CAJA_IS_WINDOW (window)); slot = window->details->active_pane->active_slot; bookmark = slot->current_location_bookmark; list = window->details->bookmark_list; if (!caja_bookmark_list_contains (list, bookmark)) { caja_bookmark_list_append (list, bookmark); } }
void caja_menus_append_bookmark_to_menu (CajaWindow *window, CajaBookmark *bookmark, const char *parent_path, const char *parent_id, guint index_in_parent, GtkActionGroup *action_group, guint merge_id, GCallback refresh_callback, CajaBookmarkFailedCallback failed_callback) { BookmarkHolder *bookmark_holder; char action_name[128]; char *name; char *path; GdkPixbuf *pixbuf; GtkAction *action; GtkWidget *menuitem; g_assert (CAJA_IS_WINDOW (window)); g_assert (CAJA_IS_BOOKMARK (bookmark)); bookmark_holder = bookmark_holder_new (bookmark, window, refresh_callback, failed_callback); name = caja_bookmark_get_name (bookmark); /* Create menu item with pixbuf */ pixbuf = caja_bookmark_get_pixbuf (bookmark, GTK_ICON_SIZE_MENU); g_snprintf (action_name, sizeof (action_name), "%s%d", parent_id, index_in_parent); action = gtk_action_new (action_name, name, _("Go to the location specified by this bookmark"), NULL); g_object_set_data_full (G_OBJECT (action), "menu-icon", g_object_ref (pixbuf), g_object_unref); g_signal_connect_data (action, "activate", G_CALLBACK (activate_bookmark_in_menu_item), bookmark_holder, bookmark_holder_free_cover, 0); gtk_action_group_add_action (action_group, GTK_ACTION (action)); g_object_unref (action); gtk_ui_manager_add_ui (window->details->ui_manager, merge_id, parent_path, action_name, action_name, GTK_UI_MANAGER_MENUITEM, FALSE); path = g_strdup_printf ("%s/%s", parent_path, action_name); menuitem = gtk_ui_manager_get_widget (window->details->ui_manager, path); gtk_image_menu_item_set_always_show_image (GTK_IMAGE_MENU_ITEM (menuitem), TRUE); g_object_unref (pixbuf); g_free (path); g_free (name); }