summaryrefslogtreecommitdiff
path: root/desktop/history_core.h
diff options
context:
space:
mode:
authorSven Weidauer <sven.weidauer@gmail.com>2011-02-28 15:24:02 +0000
committerSven Weidauer <sven.weidauer@gmail.com>2011-02-28 15:24:02 +0000
commitf47026114173a51802e8915b1f49888eb4367b46 (patch)
treeb74048a9d0ecfd0d320a7da632a598cc8a3979ad /desktop/history_core.h
parente66c7f9313c27cdc65e34eaf1383b9c6bd70af1d (diff)
downloadnetsurf-f47026114173a51802e8915b1f49888eb4367b46.tar.gz
netsurf-f47026114173a51802e8915b1f49888eb4367b46.tar.bz2
Added API to enumerate entries in history tree.
svn path=/trunk/netsurf/; revision=11854
Diffstat (limited to 'desktop/history_core.h')
-rw-r--r--desktop/history_core.h47
1 files changed, 47 insertions, 0 deletions
diff --git a/desktop/history_core.h b/desktop/history_core.h
index 55b4e0bf1..4f4cf0c2a 100644
--- a/desktop/history_core.h
+++ b/desktop/history_core.h
@@ -28,6 +28,7 @@
struct hlcache_handle;
struct history;
struct browser_window;
+struct history_entry;
struct history *history_create(void);
struct history *history_clone(struct history *history);
@@ -47,4 +48,50 @@ bool history_click(struct browser_window *bw, struct history *history,
int x, int y, bool new_window);
const char *history_position_url(struct history *history, int x, int y);
+/**
+ * Callback function type for history enumeration
+ *
+ * \param history history being enumerated
+ * \param x0, y0, x1, y1 Coordinates of entry in history tree view
+ * \param entry Current history entry
+ * \return true to continue enumeration, false to cancel enumeration
+ */
+typedef bool (*history_enumerate_cb)(const struct history *history, int x0, int y0,
+ int x1, int y1,
+ const struct history_entry *entry, void *user_data);
+
+/**
+ * Enumerate all entries in the history.
+ * Do not change the history while it is being enumerated.
+ *
+ * \param history history to enumerate
+ * \param cb callback function
+ * \param user_data context pointer passed to cb
+ */
+void history_enumerate(const struct history *history, history_enumerate_cb cb, void *user_data);
+
+/**
+ * Returns the URL to a history entry
+ *
+ * \param entry the history entry to retrieve the URL from
+ * \return the URL
+ */
+const char *history_entry_get_url(const struct history_entry *entry);
+
+/**
+ * Returns the URL to a history entry
+ *
+ * \param entry the history entry to retrieve the fragment id from
+ * \return the fragment id
+ */
+const char *history_entry_get_fragment_id(const struct history_entry *entry);
+
+/**
+ * Returns the title of a history entry
+ *
+ * \param entry the history entry to retrieve the title from
+ * \return the title
+ */
+const char *history_entry_get_title(const struct history_entry *entry);
+
#endif