Initial import of ephy (rev# 7126) from svn
[ephy-soc.git] / src / bookmarks / ephy-bookmarks.h
blob52dfcbe951092fe987ab54629ade3fafb0c63e56
1 /*
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)
8 * any later version.
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"
30 G_BEGIN_DECLS
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 "->"
45 typedef enum
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;
58 struct _EphyBookmarks
60 GObject parent;
62 /*< private >*/
63 EphyBookmarksPrivate *priv;
66 struct _EphyBookmarksClass
68 GObjectClass parent_class;
70 void (* tree_changed) (EphyBookmarks *eb);
71 char * (* resolve_address) (EphyBookmarks *eb,
72 const char *address,
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,
81 long id);
83 /* Bookmarks */
85 EphyNode *ephy_bookmarks_add (EphyBookmarks *eb,
86 const char *title,
87 const char *url);
89 EphyNode* ephy_bookmarks_find_bookmark (EphyBookmarks *eb,
90 const char *url);
92 gint ephy_bookmarks_get_similar (EphyBookmarks *eb,
93 EphyNode *bookmark,
94 GPtrArray *identical,
95 GPtrArray *similar);
97 void ephy_bookmarks_set_icon (EphyBookmarks *eb,
98 const char *url,
99 const char *icon);
101 void ephy_bookmarks_set_usericon (EphyBookmarks *eb,
102 const char *url,
103 const char *icon);
105 void ephy_bookmarks_set_address (EphyBookmarks *eb,
106 EphyNode *bookmark,
107 const char *address);
109 char *ephy_bookmarks_resolve_address (EphyBookmarks *eb,
110 const char *address,
111 const char *parameter);
113 guint ephy_bookmarks_get_smart_bookmark_width (EphyNode *bookmark);
116 /* Keywords */
118 EphyNode *ephy_bookmarks_add_keyword (EphyBookmarks *eb,
119 const char *name);
121 EphyNode *ephy_bookmarks_find_keyword (EphyBookmarks *eb,
122 const char *name,
123 gboolean partial_match);
125 void ephy_bookmarks_remove_keyword (EphyBookmarks *eb,
126 EphyNode *keyword);
128 gboolean ephy_bookmarks_has_keyword (EphyBookmarks *eb,
129 EphyNode *keyword,
130 EphyNode *bookmark);
132 void ephy_bookmarks_set_keyword (EphyBookmarks *eb,
133 EphyNode *keyword,
134 EphyNode *bookmark);
136 void ephy_bookmarks_unset_keyword (EphyBookmarks *eb,
137 EphyNode *keyword,
138 EphyNode *bookmark);
140 char *ephy_bookmarks_get_topic_uri (EphyBookmarks *eb,
141 EphyNode *node);
143 /* Favorites */
145 EphyNode *ephy_bookmarks_get_favorites (EphyBookmarks *eb);
147 /* Root */
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);
165 G_END_DECLS
167 #endif