about summary refs log tree commit diff stats
path: root/WWW/Library/Implementation/HTHistory.h
blob: a93781e96d53f9ad4fbd31bddfd67735ef43d9bc (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
/*  */

#ifndef HTHISTORY_H
#define HTHISTORY_H

#include "HTAnchor.h"

#ifdef SHORT_NAMES
#define HTHistory_record                HTHiReco
#define HTHistory_backtrack             HTHiBack
#define HTHistory_canBacktrack          HTHiCaBa
#define HTHistory_moveBy                HTHiMoBy
#define HTHistory_canMoveBy             HTHiCaMo
#define HTHistory_read                  HTHiRead
#define HTHistory_recall                HTHiReca
#define HTHistory_count                 HTHiCoun
#define HTHistory_leavingFrom           HTHiLeFr
#endif

/*                              Navigation
**                              ==========
*/

/*              Record the jump to an anchor
**              ----------------------------
*/

extern void HTHistory_record
  PARAMS(
    (HTAnchor * destination)
  );

/*              Go back in history (find the last visited node)
**              ------------------
*/

extern HTAnchor * HTHistory_backtrack
  NOPARAMS;  /* FIXME: Should we add a `sticky' option ? */

extern BOOL HTHistory_canBacktrack
  NOPARAMS;

/*              Browse through references in the same parent node
**              -------------------------------------------------
**
**      Take the n-th child's link after or before the one we took to get here.
**      Positive offset means go towards most recently added children.
*/

extern HTAnchor * HTHistory_moveBy
  PARAMS(
     (int offset)
     );

extern BOOL HTHistory_canMoveBy
  PARAMS(
     (int offset)
     );

#define HTHistory_next (HTHistory_moveBy (+1))
#define HTHistory_canNext (HTHistory_canMoveBy (+1))
#define HTHistory_previous (HTHistory_moveBy (-1))
#define HTHistory_canPrevious (HTHistory_canMoveBy (-1))


/*                              Retrieval
**                              =========
*/

/*              Read numbered visited anchor (1 is the oldest)
**              ----------------------------
*/

extern HTAnchor * HTHistory_read
  PARAMS(
    (int number)
  );

/*              Recall numbered visited anchor (1 is the oldest)
**              ------------------------------
**      This reads the anchor and stores it again in the list, except if last.
*/

extern HTAnchor * HTHistory_recall
  PARAMS(
    (int number)
  );

/*              Number of Anchors stored
**              ------------------------
**
**      This is needed in order to check the validity of certain commands
**      for menus, etc.
(not needed for now. Use canBacktrack, etc.)
extern int HTHistory_count NOPARAMS;
*/

/*              Change last history entry
**              -------------------------
**
**      Sometimes we load a node by one anchor but leave by a different
**      one, and it is the one we left from which we want to remember.
*/
extern void HTHistory_leavingFrom
  PARAMS(
    (HTAnchor * anchor)
  );

#endif /* HTHISTORY_H */
/*

    */