nautilus/libnautilus-private/nautilus-bookmark.h
John Sullivan 069f8b16c1 Fixed bug 2218 (Duplicate items appear in history list)
Also changed a few places to compare uris with the new
	nautilus_uris_match instead of strcmp.

	* libnautilus-extensions/nautilus-bookmark.h,
	* libnautilus-extensions/nautilus-bookmark.c:
	(nautilus_bookmark_compare_with): Use nautilus_uris_match.
	(nautilus_bookmark_compare_uris): New function, compares
	bookmarks' uris with nautilus_uris_match; ignores names.

	* src/nautilus-window-manage-views.c:
	(nautilus_window_set_displayed_location), (handle_go_elsewhere),
	(open_location): Use nautilus_uris_match.

	* src/nautilus-window.c: (nautilus_add_to_history_list):
	Use nautilus_bookmark_compare_uris instead of _compare_with.
	This was the source of the bug. Due to asynchronicity introduced
	sometime after this code was written, when the bookmark for the
	current location was created it did not	yet know what name to use,
	and so it did not match any of the old History items that had the
	correct name. But for the History list we only want one entry per
	uri anyway, so it needn't have been comparing the names in the
	first place.
2000-09-08 01:03:21 +00:00

96 lines
3.8 KiB
C

/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */
/* nautilus-bookmark.h - interface for individual bookmarks.
Copyright (C) 1999, 2000 Eazel, Inc.
The Gnome Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public License as
published by the Free Software Foundation; either version 2 of the
License, or (at your option) any later version.
The Gnome Library 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
Library General Public License for more details.
You should have received a copy of the GNU Library General Public
License along with the Gnome Library; see the file COPYING.LIB. If not,
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA.
Authors: John Sullivan <sullivan@eazel.com>
*/
#ifndef NAUTILUS_BOOKMARK_H
#define NAUTILUS_BOOKMARK_H
#include "nautilus-icon-factory.h"
#include <gtk/gtkwidget.h>
#include <gdk/gdktypes.h>
#include <gdk-pixbuf/gdk-pixbuf.h>
typedef struct NautilusBookmark NautilusBookmark;
#define NAUTILUS_TYPE_BOOKMARK \
(nautilus_bookmark_get_type ())
#define NAUTILUS_BOOKMARK(obj) \
(GTK_CHECK_CAST ((obj), NAUTILUS_TYPE_BOOKMARK, NautilusBookmark))
#define NAUTILUS_BOOKMARK_CLASS(klass) \
(GTK_CHECK_CLASS_CAST ((klass), NAUTILUS_TYPE_BOOKMARK, NautilusBookmarkClass))
#define NAUTILUS_IS_BOOKMARK(obj) \
(GTK_CHECK_TYPE ((obj), NAUTILUS_TYPE_BOOKMARK))
#define NAUTILUS_IS_BOOKMARK_CLASS(klass) \
(GTK_CHECK_CLASS_TYPE ((klass), NAUTILUS_TYPE_BOOKMARK))
typedef struct NautilusBookmarkDetails NautilusBookmarkDetails;
struct NautilusBookmark {
GtkObject object;
NautilusBookmarkDetails *details;
};
struct NautilusBookmarkClass {
GtkObjectClass parent_class;
/* Signals that clients can connect to. */
/* The changed signal is emitted when the bookmark's
* name or icon has changed.
*/
void (* changed) (NautilusBookmark *bookmark);
};
typedef struct NautilusBookmarkClass NautilusBookmarkClass;
GtkType nautilus_bookmark_get_type (void);
NautilusBookmark * nautilus_bookmark_new (const char *uri,
const char *name);
NautilusBookmark * nautilus_bookmark_new_with_icon (const char *uri,
const char *name,
NautilusScalableIcon *icon);
NautilusBookmark * nautilus_bookmark_copy (NautilusBookmark *bookmark);
char * nautilus_bookmark_get_name (NautilusBookmark *bookmark);
char * nautilus_bookmark_get_uri (NautilusBookmark *bookmark);
NautilusScalableIcon *nautilus_bookmark_get_icon (NautilusBookmark *bookmark);
void nautilus_bookmark_set_name (NautilusBookmark *bookmark,
const char *new_name);
gboolean nautilus_bookmark_uri_known_not_to_exist (NautilusBookmark *bookmark);
int nautilus_bookmark_compare_with (gconstpointer a,
gconstpointer b);
int nautilus_bookmark_compare_uris (gconstpointer a,
gconstpointer b);
/* Helper functions for displaying bookmarks */
gboolean nautilus_bookmark_get_pixmap_and_mask (NautilusBookmark *bookmark,
guint icon_size,
GdkPixmap **pixmap_return,
GdkBitmap **mask_return);
GdkPixbuf * nautilus_bookmark_get_pixbuf (NautilusBookmark *bookmark,
guint icon_size);
GtkWidget * nautilus_bookmark_menu_item_new (NautilusBookmark *bookmark);
#endif /* NAUTILUS_BOOKMARK_H */