2008-05-05 Paolo Borelli <pborelli@katamail.com>
[nautilus.git] / src / nautilus-navigation-window.h
blob704c2b1e5a86cd1160a28c0ec27f1cde0e34351b
1 /* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*- */
3 /*
4 * Nautilus
6 * Copyright (C) 1999, 2000 Red Hat, Inc.
7 * Copyright (C) 1999, 2000, 2001 Eazel, Inc.
8 * Copyright (C) 2003 Ximian, Inc.
10 * Nautilus is free software; you can redistribute it and/or
11 * modify it under the terms of the GNU General Public License as
12 * published by the Free Software Foundation; either version 2 of the
13 * License, or (at your option) any later version.
15 * Nautilus is distributed in the hope that it will be useful,
16 * but WITHOUT ANY WARRANTY; without even the implied warranty of
17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
18 * General Public License for more details.
20 * You should have received a copy of the GNU General Public License
21 * along with this program; if not, write to the Free Software
22 * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
24 * Authors: Elliot Lee <sopwith@redhat.com>
25 * Darin Adler <darin@bentspoon.com>
28 /* nautilus-navigation-window.h: Interface of the navigation window object */
30 #ifndef NAUTILUS_NAVIGATION_WINDOW_H
31 #define NAUTILUS_NAVIGATION_WINDOW_H
33 #include <bonobo/bonobo-window.h>
34 #include <gtk/gtktoolitem.h>
35 #include <eel/eel-glib-extensions.h>
36 #include <libnautilus-private/nautilus-bookmark.h>
37 #include <libnautilus-private/nautilus-sidebar.h>
38 #include "nautilus-application.h"
39 #include "nautilus-information-panel.h"
40 #include "nautilus-side-pane.h"
41 #include "nautilus-window.h"
43 #define NAUTILUS_TYPE_NAVIGATION_WINDOW (nautilus_navigation_window_get_type())
44 #define NAUTILUS_NAVIGATION_WINDOW(obj) (GTK_CHECK_CAST ((obj), NAUTILUS_TYPE_NAVIGATION_WINDOW, NautilusNavigationWindow))
45 #define NAUTILUS_NAVIGATION_WINDOW_CLASS(klass) (GTK_CHECK_CLASS_CAST ((klass), NAUTILUS_TYPE_NAVIGATION_WINDOW, NautilusNavigationWindowClass))
46 #define NAUTILUS_IS_NAVIGATION_WINDOW(obj) (GTK_CHECK_TYPE ((obj), NAUTILUS_TYPE_NAVIGATION_WINDOW))
47 #define NAUTILUS_IS_NAVIGATION_WINDOW_CLASS(klass) (GTK_CHECK_CLASS_TYPE ((klass), NAUTILUS_TYPE_NAVIGATION_WINDOW))
49 typedef struct _NautilusNavigationWindow NautilusNavigationWindow;
50 typedef struct _NautilusNavigationWindowClass NautilusNavigationWindowClass;
51 typedef struct _NautilusNavigationWindowDetails NautilusNavigationWindowDetails;
53 struct _NautilusNavigationWindow {
54 NautilusWindow parent_object;
56 NautilusNavigationWindowDetails *details;
58 /** UI stuff **/
59 NautilusSidePane *sidebar;
60 GtkWidget *view_as_combo_box;
61 GtkWidget *navigation_bar;
62 GtkWidget *path_bar;
63 GtkWidget *search_bar;
65 /* Back/Forward chain, and history list.
66 * The data in these lists are NautilusBookmark pointers.
68 GList *back_list, *forward_list;
70 /* Current views stuff */
71 GList *sidebar_panels;
73 /* Widgets to keep track of (for state changes, etc) */
74 GtkWidget *zoom_control;
78 struct _NautilusNavigationWindowClass {
79 NautilusWindowClass parent_spot;
82 GType nautilus_navigation_window_get_type (void);
83 void nautilus_navigation_window_allow_back (NautilusNavigationWindow *window,
84 gboolean allow);
85 void nautilus_navigation_window_allow_forward (NautilusNavigationWindow *window,
86 gboolean allow);
87 void nautilus_navigation_window_clear_back_list (NautilusNavigationWindow *window);
88 void nautilus_navigation_window_clear_forward_list (NautilusNavigationWindow *window);
89 void nautilus_forget_history (void);
90 gint nautilus_navigation_window_get_base_page_index (NautilusNavigationWindow *window);
91 void nautilus_navigation_window_hide_location_bar (NautilusNavigationWindow *window,
92 gboolean save_preference);
93 void nautilus_navigation_window_show_location_bar (NautilusNavigationWindow *window,
94 gboolean save_preference);
96 void nautilus_navigation_window_hide_path_bar (NautilusNavigationWindow *window);
97 void nautilus_navigation_window_show_path_bar (NautilusNavigationWindow *window);
98 gboolean nautilus_navigation_window_path_bar_showing (NautilusNavigationWindow *window);
100 gboolean nautilus_navigation_window_search_bar_showing (NautilusNavigationWindow *window);
102 gboolean nautilus_navigation_window_location_bar_showing (NautilusNavigationWindow *window);
103 void nautilus_navigation_window_hide_toolbar (NautilusNavigationWindow *window);
104 void nautilus_navigation_window_show_toolbar (NautilusNavigationWindow *window);
105 gboolean nautilus_navigation_window_toolbar_showing (NautilusNavigationWindow *window);
106 void nautilus_navigation_window_hide_sidebar (NautilusNavigationWindow *window);
107 void nautilus_navigation_window_show_sidebar (NautilusNavigationWindow *window);
108 gboolean nautilus_navigation_window_sidebar_showing (NautilusNavigationWindow *window);
109 void nautilus_navigation_window_add_sidebar_panel (NautilusNavigationWindow *window,
110 NautilusSidebar *sidebar_panel);
111 void nautilus_navigation_window_remove_sidebar_panel (NautilusNavigationWindow *window,
112 NautilusSidebar *sidebar_panel);
113 void nautilus_navigation_window_hide_status_bar (NautilusNavigationWindow *window);
114 void nautilus_navigation_window_show_status_bar (NautilusNavigationWindow *window);
115 gboolean nautilus_navigation_window_status_bar_showing (NautilusNavigationWindow *window);
116 void nautilus_navigation_window_back_or_forward (NautilusNavigationWindow *window,
117 gboolean back,
118 guint distance);
119 void nautilus_navigation_window_show_search (NautilusNavigationWindow *window);
121 #endif