2 * Copyright © 2000-2004 Marco Pesenti Gritti
3 * Copyright © 2003, 2004 Christian Persch
5 * This program is free software; you can redistribute it and/or modify
6 * it under the terms of the GNU General Public License as published by
7 * the Free Software Foundation; either version 2, or (at your option)
10 * This program is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 * GNU General Public License for more details.
15 * You should have received a copy of the GNU General Public License
16 * along with this program; if not, write to the Free Software
17 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
19 * $Id: ephy-bookmarks.h 6952 2007-03-11 19:42:02Z chpe $
22 #ifndef EPHY_BOOKMARKS_H
23 #define EPHY_BOOKMARKS_H
25 #include <glib-object.h>
26 #include <gtk/gtkwidget.h>
28 #include "ephy-node.h"
32 #define EPHY_TYPE_BOOKMARKS (ephy_bookmarks_get_type ())
33 #define EPHY_BOOKMARKS(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), EPHY_TYPE_BOOKMARKS, EphyBookmarks))
34 #define EPHY_BOOKMARKS_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), EPHY_TYPE_BOOKMARKS, EphyBookmarksClass))
35 #define EPHY_IS_BOOKMARKS(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), EPHY_TYPE_BOOKMARKS))
36 #define EPHY_IS_BOOKMARKS_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), EPHY_TYPE_BOOKMARKS))
37 #define EPHY_BOOKMARKS_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), EPHY_TYPE_BOOKMARKS, EphyBookmarksClass))
39 typedef struct _EphyBookmarksClass EphyBookmarksClass
;
40 typedef struct _EphyBookmarks EphyBookmarks
;
41 typedef struct _EphyBookmarksPrivate EphyBookmarksPrivate
;
43 #define BOOKMARKS_HIERARCHY_SEP "->"
47 EPHY_NODE_BMK_PROP_TITLE
= 2,
48 EPHY_NODE_BMK_PROP_LOCATION
= 3,
49 EPHY_NODE_BMK_PROP_KEYWORDS
= 4,
50 EPHY_NODE_KEYWORD_PROP_NAME
= 5,
51 EPHY_NODE_BMK_PROP_USERICON
= 6,
52 EPHY_NODE_BMK_PROP_ICON
= 7,
53 EPHY_NODE_KEYWORD_PROP_PRIORITY
= 8,
54 EPHY_NODE_BMK_PROP_SERVICE_ID
= 14,
55 EPHY_NODE_BMK_PROP_IMMUTABLE
= 15
56 } EphyBookmarkProperty
;
63 EphyBookmarksPrivate
*priv
;
66 struct _EphyBookmarksClass
68 GObjectClass parent_class
;
70 void (* tree_changed
) (EphyBookmarks
*eb
);
71 char * (* resolve_address
) (EphyBookmarks
*eb
,
73 const char *argument
);
76 GType
ephy_bookmarks_get_type (void);
78 EphyBookmarks
*ephy_bookmarks_new (void);
80 EphyNode
*ephy_bookmarks_get_from_id (EphyBookmarks
*eb
,
85 EphyNode
*ephy_bookmarks_add (EphyBookmarks
*eb
,
89 EphyNode
* ephy_bookmarks_find_bookmark (EphyBookmarks
*eb
,
92 gint
ephy_bookmarks_get_similar (EphyBookmarks
*eb
,
97 void ephy_bookmarks_set_icon (EphyBookmarks
*eb
,
101 void ephy_bookmarks_set_usericon (EphyBookmarks
*eb
,
105 void ephy_bookmarks_set_address (EphyBookmarks
*eb
,
107 const char *address
);
109 char *ephy_bookmarks_resolve_address (EphyBookmarks
*eb
,
111 const char *parameter
);
113 guint
ephy_bookmarks_get_smart_bookmark_width (EphyNode
*bookmark
);
118 EphyNode
*ephy_bookmarks_add_keyword (EphyBookmarks
*eb
,
121 EphyNode
*ephy_bookmarks_find_keyword (EphyBookmarks
*eb
,
123 gboolean partial_match
);
125 void ephy_bookmarks_remove_keyword (EphyBookmarks
*eb
,
128 gboolean
ephy_bookmarks_has_keyword (EphyBookmarks
*eb
,
132 void ephy_bookmarks_set_keyword (EphyBookmarks
*eb
,
136 void ephy_bookmarks_unset_keyword (EphyBookmarks
*eb
,
140 char *ephy_bookmarks_get_topic_uri (EphyBookmarks
*eb
,
145 EphyNode
*ephy_bookmarks_get_favorites (EphyBookmarks
*eb
);
149 EphyNode
*ephy_bookmarks_get_keywords (EphyBookmarks
*eb
);
151 EphyNode
*ephy_bookmarks_get_bookmarks (EphyBookmarks
*eb
);
153 EphyNode
*ephy_bookmarks_get_not_categorized (EphyBookmarks
*eb
);
155 EphyNode
*ephy_bookmarks_get_smart_bookmarks (EphyBookmarks
*eb
);
157 EphyNode
*ephy_bookmarks_get_local (EphyBookmarks
*eb
);
159 /* Comparison functions, useful for sorting lists and arrays. */
160 int ephy_bookmarks_compare_topics (gconstpointer a
, gconstpointer b
);
161 int ephy_bookmarks_compare_topic_pointers (gconstpointer a
, gconstpointer b
);
162 int ephy_bookmarks_compare_bookmarks (gconstpointer a
, gconstpointer b
);
163 int ephy_bookmarks_compare_bookmark_pointers (gconstpointer a
, gconstpointer b
);