Commit a5fa2e8a authored by Maciej Stachowiak's avatar Maciej Stachowiak
Browse files

Task 1351: implement controllers to allow location bar and the

	search/browse button

	* src/nautilus-location-bar.h, src/nautilus-location-bar.c:
	Factored this into two classes, NautilusNavigationBar, a class
	that defines the abstract interface (the set_location function and
	the location_changed signal), and NautilusLocationBar, a concrete
	implementation that works like the previous location bar.
	(nautilus_location_bar_set_location,
	nautilus_location_bar_get_location): Made static. Made
	`nautilus_location_bar_set_location' the handler for the
	set_location virtual method.
	* src/nautilus-navigation-bar.h, src/nautilus-navigation-bar.c:
	Abstract superclass for navigation bars.
	* src/nautilus-search-bar.h, src/nautilus-search-bar.c: New
	subclass of NautilusNavigationBar. Contains placeholder widgets
	for now, will eventually be the search bar.
	* src/nautilus-switchable-navigation-bar.h,
	src/nautilus-switchable-navigation-bar.c: New subclass of
	NautilusNavigationBar that allows switching between the location
	bar and the search bar.
	* src/nautilus-window.h: Rename `ent_uri' member of the window
	struct to `navigation_bar'.
	* src/nautilus-window.c
	(nautilus_window_navigation_bar_mode_changed_callback): Callback
	to sync the "search" toggle button to the mode of the switchable
	navigation bar.
	(nautilus_window_constructed): Create a
	NautilusSwitchableNavigationBar instead of a NautilusLocationBar.
	(nautilus_window_set_search_mode): New function to be used by the
	search toggle button callback; simply sets the mode of the
	switchable navigation bar appropriately.
	* src/nautilus-window-toolbars.c: Made Search button a toggle
	button.
	(toolbar_search_callback): Call `nautilus_window_set_search_mode'.
	* src/nautilus-window-manage-views.c
	(nautilus_window_update_internals,
	nautilus_window_end_location_change_callback): Use
	NautlusNavigationBar calls instead of NautilusLocationBar ones.
	* src/Makefile.am: Add new files to the build, and split all
	headers into noinst_HEADERS out from the nautilus_SOURCES
	variable.
parent 9c7276fd
2000-06-16 Maciej Stachowiak <mjs@eazel.com>
Task 1351: implement controllers to allow location bar and the
search/browse button
* src/nautilus-location-bar.h, src/nautilus-location-bar.c:
Factored this into two classes, NautilusNavigationBar, a class
that defines the abstract interface (the set_location function and
the location_changed signal), and NautilusLocationBar, a concrete
implementation that works like the previous location bar.
(nautilus_location_bar_set_location,
nautilus_location_bar_get_location): Made static. Made
`nautilus_location_bar_set_location' the handler for the
set_location virtual method.
* src/nautilus-navigation-bar.h, src/nautilus-navigation-bar.c:
Abstract superclass for navigation bars.
* src/nautilus-search-bar.h, src/nautilus-search-bar.c: New
subclass of NautilusNavigationBar. Contains placeholder widgets
for now, will eventually be the search bar.
* src/nautilus-switchable-navigation-bar.h,
src/nautilus-switchable-navigation-bar.c: New subclass of
NautilusNavigationBar that allows switching between the location
bar and the search bar.
* src/nautilus-window.h: Rename `ent_uri' member of the window
struct to `navigation_bar'.
* src/nautilus-window.c
(nautilus_window_navigation_bar_mode_changed_callback): Callback
to sync the "search" toggle button to the mode of the switchable
navigation bar.
(nautilus_window_constructed): Create a
NautilusSwitchableNavigationBar instead of a NautilusLocationBar.
(nautilus_window_set_search_mode): New function to be used by the
search toggle button callback; simply sets the mode of the
switchable navigation bar appropriately.
* src/nautilus-window-toolbars.c: Made Search button a toggle
button.
(toolbar_search_callback): Call `nautilus_window_set_search_mode'.
* src/nautilus-window-manage-views.c
(nautilus_window_update_internals,
nautilus_window_end_location_change_callback): Use
NautlusNavigationBar calls instead of NautilusLocationBar ones.
* src/Makefile.am: Add new files to the build, and split all
headers into noinst_HEADERS out from the nautilus_SOURCES
variable.
2000-06-16 Seth Nickell <seth@eazel.com>
 
* src/nautilus-location-bar.h:
......
......@@ -36,51 +36,60 @@ LDADD =\
$(XML_LIBS) \
$(NULL)
noinst_HEADERS = \
nautilus-bookmark-list.h \
nautilus-bookmarks-window.h \
nautilus-desktop-window.h \
nautilus-sidebar-tabs.h \
nautilus-sidebar-title.h \
nautilus-link-set-window.h \
nautilus-location-bar.h \
nautilus-navigation-bar.h \
nautilus-property-browser.h \
nautilus-self-check-functions.h \
nautilus-signaller.h \
nautilus-zoom-control.h \
nautilus-application.h \
nautilus-search-bar.h \
nautilus-switchable-navigation-bar.h \
nautilus-sidebar.h \
nautilus-applicable-views.h \
nautilus-view-frame-private.h \
nautilus-view-frame.h \
nautilus-window-manage-views.h \
nautilus-window-private.h \
nautilus-window.h \
$(NULL)
nautilus_SOURCES =\
nautilus-bookmark-list.c \
nautilus-bookmark-list.h \
nautilus-bookmarks-window.c \
nautilus-bookmarks-window.h \
nautilus-desktop-window.c \
nautilus-desktop-window.h \
nautilus-sidebar-tabs.c \
nautilus-sidebar-tabs.h \
nautilus-sidebar-title.c \
nautilus-sidebar-title.h \
nautilus-link-set-window.c \
nautilus-link-set-window.h \
nautilus-location-bar.c \
nautilus-location-bar.h \
nautilus-navigation-bar.c \
nautilus-property-browser.c \
nautilus-property-browser.h \
nautilus-self-check-functions.c \
nautilus-self-check-functions.h \
nautilus-signaller.c \
nautilus-signaller.h \
nautilus-window-menus.c \
nautilus-window-toolbars.c \
nautilus-zoom-control.c \
nautilus-zoom-control.h \
nautilus-zoomable-frame-corba.c \
nautilus-application.c \
nautilus-application.h \
nautilus-search-bar.c \
nautilus-sidebar.c \
nautilus-sidebar.h \
nautilus-switchable-navigation-bar.c \
nautilus-main.c \
nautilus-applicable-views.c \
nautilus-applicable-views.h \
nautilus-view-frame-bonobo-control.c \
nautilus-view-frame-bonobo-embeddable.c \
nautilus-view-frame-corba.c \
nautilus-view-frame-nautilus-view.c \
nautilus-view-frame-private.h \
nautilus-view-frame.c \
nautilus-view-frame.h \
nautilus-window-manage-views.c \
nautilus-window-manage-views.h \
nautilus-window-private.h \
nautilus-window.c \
nautilus-window.h \
$(NULL)
TESTS=check-nautilus
......
......@@ -46,6 +46,8 @@
#include <libnautilus-extensions/nautilus-gtk-macros.h>
#include <libnautilus-extensions/nautilus-file-utilities.h>
#include <stdio.h>
#define NAUTILUS_DND_URI_LIST_TYPE "text/uri-list"
#define NAUTILUS_DND_TEXT_PLAIN_TYPE "text/plain"
#define NAUTILUS_DND_URL_TYPE "_NETSCAPE_URL"
......@@ -58,12 +60,6 @@ enum {
NAUTILUS_DND_NTARGETS
};
enum {
LOCATION_CHANGED,
LAST_SIGNAL
};
static guint signals[LAST_SIGNAL];
static GtkTargetEntry drag_types [] = {
{ NAUTILUS_DND_URI_LIST_TYPE, 0, NAUTILUS_DND_URI_LIST },
{ NAUTILUS_DND_TEXT_PLAIN_TYPE, 0, NAUTILUS_DND_TEXT_PLAIN },
......@@ -76,10 +72,16 @@ static GtkTargetEntry drop_types [] = {
{ NAUTILUS_DND_URL_TYPE, 0, NAUTILUS_DND_URL }
};
static gchar *nautilus_location_bar_get_location (NautilusLocationBar *bar);
static void nautilus_location_bar_set_location (NautilusNavigationBar *navigation_bar,
const char *location);
static void nautilus_location_bar_initialize_class (NautilusLocationBarClass *class);
static void nautilus_location_bar_initialize (NautilusLocationBar *bar);
NAUTILUS_DEFINE_CLASS_BOILERPLATE (NautilusLocationBar, nautilus_location_bar, GTK_TYPE_HBOX)
NAUTILUS_DEFINE_CLASS_BOILERPLATE (NautilusLocationBar, nautilus_location_bar, NAUTILUS_TYPE_NAVIGATION_BAR)
static void
......@@ -114,12 +116,11 @@ drag_data_received_callback (GtkWidget *widget,
uri = nautilus_location_bar_get_location (NAUTILUS_LOCATION_BAR (widget));
nautilus_location_bar_set_location (NAUTILUS_LOCATION_BAR (widget),
names->data);
gtk_signal_emit (GTK_OBJECT (widget),
signals[LOCATION_CHANGED],
uri);
nautilus_navigation_bar_set_location (NAUTILUS_NAVIGATION_BAR (widget),
names->data);
nautilus_navigation_bar_location_changed (NAUTILUS_NAVIGATION_BAR (widget),
names->data);
gnome_uri_list_free_strings (names);
gtk_drag_finish (context, TRUE, FALSE, time);
......@@ -164,9 +165,9 @@ editable_activated_callback (GtkEditable *editable,
g_assert (NAUTILUS_IS_LOCATION_BAR (bar));
uri = nautilus_location_bar_get_location (NAUTILUS_LOCATION_BAR (bar));
gtk_signal_emit (GTK_OBJECT (bar),
signals[LOCATION_CHANGED],
uri);
nautilus_navigation_bar_location_changed (NAUTILUS_NAVIGATION_BAR (bar),
uri);
g_free (uri);
}
......@@ -202,9 +203,14 @@ try_to_expand_path(GtkEditable *editable)
GnomeVFSFileInfo *current_file_info;
GnomeVFSDirectoryList *list;
GnomeVFSURI *uri;
int base_length, current_path_length, offset;
int base_length;
int current_path_length;
int offset;
const char *base_name;
char *user_location, *current_path, *dir_name, *expand_text;
char *user_location;
char *current_path;
char *dir_name;
char *expand_text;
user_location = gtk_editable_get_chars (editable, 0, -1);
......@@ -218,14 +224,14 @@ try_to_expand_path(GtkEditable *editable)
current_path_length = strlen(current_path);
offset = current_path_length - strlen(user_location);
uri = gnome_vfs_uri_new(current_path);
uri = gnome_vfs_uri_new (current_path);
base_name = gnome_vfs_uri_get_basename(uri);
base_name = gnome_vfs_uri_get_basename (uri);
if (base_name)
base_length = strlen(base_name);
base_length = strlen (base_name);
else {
gnome_vfs_uri_unref(uri);
g_free(current_path);
gnome_vfs_uri_unref (uri);
g_free (current_path);
return;
}
......@@ -248,17 +254,17 @@ try_to_expand_path(GtkEditable *editable)
current_file_info = gnome_vfs_directory_list_first(list);
expand_text = NULL;
while (current_file_info != NULL) {
if (nautilus_str_has_prefix(current_file_info->name, base_name)) {
expand_text = accumulate_name(expand_text, current_file_info->name);
if (nautilus_str_has_prefix (current_file_info->name, base_name)) {
expand_text = accumulate_name (expand_text, current_file_info->name);
}
current_file_info = gnome_vfs_directory_list_next(list);
current_file_info = gnome_vfs_directory_list_next (list);
}
/* if we've got something, add it to the entry */
if (expand_text && !nautilus_str_has_suffix(current_path, expand_text)) {
gtk_entry_append_text (GTK_ENTRY(editable), expand_text + base_length);
gtk_entry_select_region(GTK_ENTRY(editable), current_path_length - offset,
current_path_length + strlen(expand_text) - base_length - offset);
if (expand_text && !nautilus_str_has_suffix (current_path, expand_text)) {
gtk_entry_append_text (GTK_ENTRY (editable), expand_text + base_length);
gtk_entry_select_region (GTK_ENTRY (editable), current_path_length - offset,
current_path_length + strlen (expand_text) - base_length - offset);
g_free (expand_text);
}
......@@ -280,8 +286,8 @@ editable_key_press_callback (GtkEditable *editable,
GdkEventKey *event)
{
g_assert (GTK_IS_EDITABLE (editable));
if (event->string[0] != 8) {
try_to_expand_path(editable);
if (event->string[0] != '\b') {
try_to_expand_path (editable);
}
}
......@@ -292,9 +298,6 @@ destroy (GtkObject *object)
bar = NAUTILUS_LOCATION_BAR (object);
gtk_widget_destroy (GTK_WIDGET (bar->label));
gtk_widget_destroy (GTK_WIDGET (bar->entry));
NAUTILUS_CALL_PARENT_CLASS (GTK_OBJECT_CLASS, destroy, (object));
}
......@@ -302,20 +305,14 @@ static void
nautilus_location_bar_initialize_class (NautilusLocationBarClass *class)
{
GtkObjectClass *object_class;
NautilusNavigationBarClass *navigation_bar_class;
object_class = GTK_OBJECT_CLASS (class);
object_class->destroy = destroy;
signals[LOCATION_CHANGED]
= gtk_signal_new ("location_changed",
GTK_RUN_FIRST,
object_class->type,
GTK_SIGNAL_OFFSET (NautilusLocationBarClass,
location_changed),
gtk_marshal_NONE__STRING,
GTK_TYPE_NONE, 1, GTK_TYPE_STRING);
gtk_object_class_add_signals (object_class, signals, LAST_SIGNAL);
navigation_bar_class = NAUTILUS_NAVIGATION_BAR_CLASS (class);
navigation_bar_class->set_location = nautilus_location_bar_set_location;
}
static void
......@@ -324,13 +321,18 @@ nautilus_location_bar_initialize (NautilusLocationBar *bar)
GtkWidget *label;
GtkWidget *entry;
GtkWidget *event_box;
GtkWidget *hbox;
hbox = gtk_hbox_new (0, FALSE);
event_box = gtk_event_box_new ();
gtk_container_set_border_width (GTK_CONTAINER (event_box),
GNOME_PAD_SMALL);
label = gtk_label_new (_("Location:"));
gtk_container_add (GTK_CONTAINER (event_box), label);
gtk_box_pack_start (GTK_BOX (bar), event_box, FALSE, TRUE,
gtk_box_pack_start (GTK_BOX (hbox), event_box, FALSE, TRUE,
GNOME_PAD_SMALL);
entry = nautilus_entry_new ();
......@@ -340,7 +342,9 @@ nautilus_location_bar_initialize (NautilusLocationBar *bar)
gtk_signal_connect_after (GTK_OBJECT (entry), "key_press_event",
editable_key_press_callback, NULL);
gtk_box_pack_start (GTK_BOX (bar), entry, TRUE, TRUE, 0);
gtk_box_pack_start (GTK_BOX (hbox), entry, TRUE, TRUE, 0);
gtk_container_add (GTK_CONTAINER (bar), hbox);
/* Drag source */
gtk_drag_source_set (GTK_WIDGET (event_box),
......@@ -360,8 +364,7 @@ nautilus_location_bar_initialize (NautilusLocationBar *bar)
GTK_SIGNAL_FUNC (drag_data_received_callback),
NULL);
gtk_widget_show (entry);
gtk_widget_show_all (event_box);
gtk_widget_show_all (hbox);
bar->label = GTK_LABEL (label);
bar->entry = GTK_ENTRY (entry);
......@@ -371,32 +374,28 @@ nautilus_location_bar_initialize (NautilusLocationBar *bar)
GtkWidget *
nautilus_location_bar_new (void)
{
return gtk_widget_new (nautilus_location_bar_get_type (), NULL);
return gtk_widget_new (NAUTILUS_TYPE_LOCATION_BAR, NULL);
}
/**
* nautilus_location_bar_set_location
*
* Change the text displayed in the location bar.
*
* @bar: A NautilusLocationBar.
* @location: The uri that should be displayed.
*/
void
nautilus_location_bar_set_location (NautilusLocationBar *bar,
static void
nautilus_location_bar_set_location (NautilusNavigationBar *navigation_bar,
const char *location)
{
NautilusLocationBar *bar;
gchar *formatted_location;
puts ("XXX: bar");
g_assert (location != NULL);
g_return_if_fail (NAUTILUS_IS_LOCATION_BAR (bar));
bar = NAUTILUS_LOCATION_BAR (navigation_bar);
/* Note: This is called in reaction to external changes, and
* thus should not emit the LOCATION_CHANGED signal.*/
formatted_location = nautilus_format_uri_for_display (location);
nautilus_entry_set_text (NAUTILUS_ENTRY (bar->entry),
formatted_location);
formatted_location);
g_free (formatted_location);
}
......@@ -413,8 +412,9 @@ nautilus_location_bar_set_location (NautilusLocationBar *bar,
*
**/
gchar *
nautilus_location_bar_get_location (NautilusLocationBar *bar) {
static gchar *
nautilus_location_bar_get_location (NautilusLocationBar *bar)
{
gchar *user_location, *best_uri;
user_location = gtk_editable_get_chars (GTK_EDITABLE (bar->entry), 0, -1);
......
......@@ -26,19 +26,21 @@
#ifndef NAUTILUS_LOCATION_BAR_H
#define NAUTILUS_LOCATION_BAR_H
#include "nautilus-navigation-bar.h"
#include <gtk/gtkhbox.h>
#include <gtk/gtklabel.h>
#include <gtk/gtkentry.h>
#define NAUTILUS_TYPE_LOCATION_BAR (nautilus_location_bar_get_type ())
#define NAUTILUS_LOCATION_BAR(obj) \
GTK_CHECK_CAST (obj, nautilus_location_bar_get_type (), NautilusLocationBar)
GTK_CHECK_CAST (obj, NAUTILUS_TYPE_LOCATION_BAR, NautilusLocationBar)
#define NAUTILUS_LOCATION_BAR_CLASS(klass) \
GTK_CHECK_CLASS_CAST (klass, nautilus_location_bar_get_type (), NautilusLocationBarClass)
GTK_CHECK_CLASS_CAST (klass, NAUTILUS_TYPE_LOCATION_BAR, NautilusLocationBarClass)
#define NAUTILUS_IS_LOCATION_BAR(obj) \
GTK_CHECK_TYPE (obj, nautilus_location_bar_get_type ())
GTK_CHECK_TYPE (obj, NAUTILUS_TYPE_LOCATION_BAR)
typedef struct NautilusLocationBar {
GtkHBox hbox;
NautilusNavigationBar parent;
GtkLabel *label;
GtkEntry *entry;
......@@ -48,16 +50,10 @@ typedef struct NautilusLocationBar {
} NautilusLocationBar;
typedef struct {
GtkHBoxClass parent_class;
void (*location_changed) (NautilusLocationBar *location_bar,
const char *location);
NautilusNavigationBarClass parent_class;
} NautilusLocationBarClass;
GtkType nautilus_location_bar_get_type (void);
GtkWidget* nautilus_location_bar_new (void);
void nautilus_location_bar_set_location (NautilusLocationBar *bar,
const char *location);
gchar * nautilus_location_bar_get_location (NautilusLocationBar *bar);
#endif /* NAUTILUS_LOCATION_BAR_H */
/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */
/* nautilus-navigation-bar.c - Abstract navigation bar class
Copyright (C) 2000 Eazel, Inc.
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License as
published by the Free Software Foundation; either version 2 of the
License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details.
You should have received a copy of the GNU General Public
License along with this program; see the file COPYING. If not,
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA.
Author: Maciej Stachowiak <mjs@eazel.com>
*/
#include <config.h>
#include "nautilus-navigation-bar.h"
#include <gtk/gtksignal.h>
#include <libnautilus-extensions/nautilus-gtk-macros.h>
enum {
LOCATION_CHANGED,
LAST_SIGNAL
};
static guint signals[LAST_SIGNAL];
static void nautilus_navigation_bar_initialize_class (NautilusNavigationBarClass *class);
static void nautilus_navigation_bar_initialize (NautilusNavigationBar *bar);
NAUTILUS_DEFINE_CLASS_BOILERPLATE (NautilusNavigationBar, nautilus_navigation_bar, NAUTILUS_TYPE_GENEROUS_BIN)
NAUTILUS_IMPLEMENT_MUST_OVERRIDE_SIGNAL (nautilus_navigation_bar, set_location)
static void
destroy (GtkObject *object)
{
NAUTILUS_CALL_PARENT_CLASS (GTK_OBJECT_CLASS, destroy, (object));
}
static void
nautilus_navigation_bar_initialize_class (NautilusNavigationBarClass *klass)
{
GtkObjectClass *object_class;
object_class = GTK_OBJECT_CLASS (klass);
object_class->destroy = destroy;
signals[LOCATION_CHANGED]
= gtk_signal_new ("location_changed",
GTK_RUN_FIRST,
object_class->type,
GTK_SIGNAL_OFFSET (NautilusNavigationBarClass,
location_changed),
gtk_marshal_NONE__STRING,
GTK_TYPE_NONE, 1, GTK_TYPE_STRING);
gtk_object_class_add_signals (object_class, signals, LAST_SIGNAL);
NAUTILUS_ASSIGN_MUST_OVERRIDE_SIGNAL (klass, nautilus_navigation_bar, set_location);
}
static void
nautilus_navigation_bar_initialize (NautilusNavigationBar *bar)
{
}
/**
* nautilus_navigation_bar_set_navigation
*
* Change the location displayed in the navigation bar.
*
* @bar: A NautilusNavigationBar.
* @navigation: The uri that should be displayed.
*/
void
nautilus_navigation_bar_set_location (NautilusNavigationBar *bar,
const char *location)
{
g_return_if_fail (NAUTILUS_IS_NAVIGATION_BAR (bar));
(* NAUTILUS_NAVIGATION_BAR_CLASS (GTK_OBJECT (bar)->klass)->set_location) (bar, location);
}
void
nautilus_navigation_bar_location_changed (NautilusNavigationBar *bar,
const char *location)
{
g_return_if_fail (NAUTILUS_IS_NAVIGATION_BAR (bar));
gtk_signal_emit (GTK_OBJECT (bar),
signals[LOCATION_CHANGED],
location);
}
/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */
/* nautilus-navigation-bar.h - Abstract navigation bar class
Copyright (C) 2000 Eazel, Inc.
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License as
published by the Free Software Foundation; either version 2 of the
License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details.
You should have received a copy of the GNU General Public
License along with this program; see the file COPYING. If not,
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA.
Author: Maciej Stachowiak <mjs@eazel.com>
*/
#ifndef NAUTILUS_NAVIGATION_BAR_H
#define NAUTILUS_NAVIGATION_BAR_H
#include <libnautilus-extensions/nautilus-generous-bin.h>
#define NAUTILUS_TYPE_NAVIGATION_BAR (nautilus_navigation_bar_get_type ())
#define NAUTILUS_NAVIGATION_BAR(obj) \
GTK_CHECK_CAST (obj, NAUTILUS_TYPE_NAVIGATION_BAR, NautilusNavigationBar)
#define NAUTILUS_NAVIGATION_BAR_CLASS(klass) \
GTK_CHECK_CLASS_CAST (klass, NAUTILUS_TYPE_NAVIGATION_BAR, NautilusNavigationBarClass)
#define NAUTILUS_IS_NAVIGATION_BAR(obj) \
GTK_CHECK_TYPE (obj, NAUTILUS_TYPE_NAVIGATION_BAR)
typedef struct NautilusNavigationBar {
NautilusGenerousBin parent;
} NautilusNavigationBar;
typedef struct {
NautilusGenerousBinClass parent_class;
/* signals */
void (*location_changed) (NautilusNavigationBar *navigation_bar,
const char *location);
/* virtual methods */
void (*set_location) (NautilusNavigationBar *navigation_bar,
const char *location);
} NautilusNavigationBarClass;
GtkType nautilus_navigation_bar_get_type (void);
void nautilus_navigation_bar_set_location (NautilusNavigationBar *bar,
const char *location);
/* `protected' function meant to be used by subclasses to emit the `location_changed' signal */
void nautilus_navigation_bar_location_changed (NautilusNavigationBar *bar,
const char *location);
#endif /* NAUTILUS_NAVIGATION_BAR_H */