1 /* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*- */
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
;
59 NautilusSidePane
*sidebar
;
60 GtkWidget
*view_as_combo_box
;
61 GtkWidget
*navigation_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
,
85 void nautilus_navigation_window_allow_forward (NautilusNavigationWindow
*window
,
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
,
119 void nautilus_navigation_window_show_search (NautilusNavigationWindow
*window
);