1 /* 2 nautilus-window-slot.h: Nautilus window slot 3 4 Copyright (C) 2008 Free Software Foundation, Inc. 5 6 This program is free software; you can redistribute it and/or 7 modify it under the terms of the GNU General Public License as 8 published by the Free Software Foundation; either version 2 of the 9 License, or (at your option) any later version. 10 11 This program is distributed in the hope that it will be useful, 12 but WITHOUT ANY WARRANTY; without even the implied warranty of 13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 14 General Public License for more details. 15 16 You should have received a copy of the GNU General Public 17 License along with this program; if not, see <http://www.gnu.org/licenses/>. 18 19 Author: Christian Neumair <cneumair@gnome.org> 20 */ 21 22 #pragma once 23 24 #include <gdk/gdk.h> 25 #include <gio/gio.h> 26 #include <gtk/gtk.h> 27 28 #include "nautilus-types.h" 29 30 typedef enum { 31 NAUTILUS_LOCATION_CHANGE_STANDARD, 32 NAUTILUS_LOCATION_CHANGE_BACK, 33 NAUTILUS_LOCATION_CHANGE_FORWARD, 34 NAUTILUS_LOCATION_CHANGE_RELOAD 35 } NautilusLocationChangeType; 36 37 #define NAUTILUS_TYPE_WINDOW_SLOT (nautilus_window_slot_get_type ()) 38 G_DECLARE_FINAL_TYPE (NautilusWindowSlot, nautilus_window_slot, NAUTILUS, WINDOW_SLOT, GtkBox) 39 40 typedef struct 41 { 42 NautilusFile *file; 43 gint view_before_search; 44 GList *back_list; 45 GList *forward_list; 46 NautilusBookmark *current_location_bookmark; 47 } NautilusNavigationState; 48 49 NautilusWindowSlot * nautilus_window_slot_new (NautilusWindow *window); 50 51 NautilusWindow * nautilus_window_slot_get_window (NautilusWindowSlot *slot); 52 void nautilus_window_slot_set_window (NautilusWindowSlot *slot, 53 NautilusWindow *window); 54 55 void nautilus_window_slot_open_location_full (NautilusWindowSlot *slot, 56 GFile *location, 57 NautilusWindowOpenFlags flags, 58 GList *new_selection); 59 60 GFile * nautilus_window_slot_get_location (NautilusWindowSlot *slot); 61 GFile * nautilus_window_slot_get_pending_location (NautilusWindowSlot *slot); 62 63 NautilusBookmark *nautilus_window_slot_get_bookmark (NautilusWindowSlot *slot); 64 65 GList * nautilus_window_slot_get_back_history (NautilusWindowSlot *slot); 66 GList * nautilus_window_slot_get_forward_history (NautilusWindowSlot *slot); 67 68 gboolean nautilus_window_slot_get_allow_stop (NautilusWindowSlot *slot); 69 void nautilus_window_slot_set_allow_stop (NautilusWindowSlot *slot, 70 gboolean allow_stop); 71 void nautilus_window_slot_stop_loading (NautilusWindowSlot *slot); 72 73 const gchar *nautilus_window_slot_get_title (NautilusWindowSlot *slot); 74 void nautilus_window_slot_update_title (NautilusWindowSlot *slot); 75 76 gboolean nautilus_window_slot_handle_event (NautilusWindowSlot *slot, 77 GdkEvent *event); 78 79 void nautilus_window_slot_queue_reload (NautilusWindowSlot *slot); 80 81 GIcon* nautilus_window_slot_get_icon (NautilusWindowSlot *slot); 82 83 const gchar* nautilus_window_slot_get_tooltip (NautilusWindowSlot *slot); 84 85 NautilusToolbarMenuSections * nautilus_window_slot_get_toolbar_menu_sections (NautilusWindowSlot *slot); 86 87 GMenuModel* nautilus_window_slot_get_templates_menu (NautilusWindowSlot *self); 88 89 GMenuModel* nautilus_window_slot_get_extensions_background_menu (NautilusWindowSlot *self); 90 91 gboolean nautilus_window_slot_get_active (NautilusWindowSlot *slot); 92 93 void nautilus_window_slot_set_active (NautilusWindowSlot *slot, 94 gboolean active); 95 gboolean nautilus_window_slot_get_loading (NautilusWindowSlot *slot); 96 97 gboolean nautilus_window_slot_get_searching (NautilusWindowSlot *slot); 98 99 GList* nautilus_window_slot_get_selection (NautilusWindowSlot *slot); 100 101 void nautilus_window_slot_search (NautilusWindowSlot *slot, 102 NautilusQuery *query); 103 104 void nautilus_window_slot_restore_navigation_state (NautilusWindowSlot *self, 105 NautilusNavigationState *data); 106 107 NautilusNavigationState* nautilus_window_slot_get_navigation_state (NautilusWindowSlot *self); 108 109 NautilusQueryEditor *nautilus_window_slot_get_query_editor (NautilusWindowSlot *self); 110 111 /* Only used by slot-dnd */ 112 NautilusView* nautilus_window_slot_get_current_view (NautilusWindowSlot *slot); 113 114 void nautilus_window_slot_back_or_forward (NautilusWindowSlot *slot, 115 gboolean back, 116 guint distance); 117 118 void free_navigation_state (gpointer data); 119