aboutsummaryrefslogtreecommitdiff
path: root/src/nav.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/nav.h')
-rw-r--r--src/nav.h22
1 files changed, 18 insertions, 4 deletions
diff --git a/src/nav.h b/src/nav.h
index 7b6999ac..63774019 100644
--- a/src/nav.h
+++ b/src/nav.h
@@ -3,10 +3,22 @@
#include "bw.h"
-
-/* useful macros for the navigation stack */
-#define NAV_IDX(bw, i) (bw)->nav_stack[i]
-#define NAV_TOP(bw) (bw)->nav_stack[(bw)->nav_stack_ptr]
+/*
+ * useful macros for the navigation stack
+ */
+#define NAV_UIDX(bw, i) a_Nav_get_uidx(bw, i)
+#define NAV_TOP_UIDX(bw) a_Nav_get_top_uidx(bw)
+
+/*
+ * For back and forward navigation, each bw keeps an url index,
+ * and its scroll position.
+ */
+typedef struct _nav_stack_item nav_stack_item;
+struct _nav_stack_item
+{
+ int url_idx;
+ int posx, posy;
+};
#ifdef __cplusplus
@@ -26,6 +38,8 @@ void a_Nav_cancel_expect (BrowserWindow *bw);
void a_Nav_expect_done(BrowserWindow *bw);
int a_Nav_stack_ptr(BrowserWindow *bw);
int a_Nav_stack_size(BrowserWindow *bw);
+int a_Nav_get_uidx(BrowserWindow *bw, int i);
+int a_Nav_get_top_uidx(BrowserWindow *bw);
void a_Nav_save_url(BrowserWindow *bw,
const DilloUrl *url, const char *filename);