1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16\writestatus
{
loading
}
{
ConTeXt
Page
Macros
Page
Comments
}
17
18\unprotect
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33\installcorenamespace
{
pagecomment
}
34\installcorenamespace
{
pagecommentlocations
}
35\installcorenamespace
{
pagecommentstates
}
36
37\newdimen
\d_page_comments_offset
38\newdimen
\d_page_comments_page_width
39\newdimen
\d_page_comments_page_height
40\newdimen
\d_page_comments_width
41\newdimen
\d_page_comments_height
42\newdimen
\d_page_comments_distance
43
44\newconditional
\c_page_comment_enabled
45
46\let
\p_page_commands_location
\v!none
47\let
\p_page_commands_state
\v!stop
48
49\installsetuponlycommandhandler
\??pagecomment
{
pagecomment
}
50
51\appendtoks
52 \edef
\p_page_commands_location
{
\directpagecommentparameter
\c!location
}
53 \edef
\p_page_commands_state
{
\directpagecommentparameter
\c!state
}
54 \expandnamespacemacro
\??pagecommentstates
\p_page_commands_state
\v!none
55\to
\everysetuppagecomment
56
57
58
59 \appendtoks
60 \ifx
\p_page_commands_state
\v!start
61 \scrn_canvas_synchronize_simple
62 \else
63 \scrn_canvas_synchronize_complex
64 \fi
65 \to
\everyshipout
66
67
68
69\setvalue
{
\??pagecommentstates
\v!start
}
70 {
\d_page_comments_offset
\directpagecommentparameter
\c!offset
\relax
71 \d_page_comments_distance
\directpagecommentparameter
\c!distance
\relax
72 \d_page_comments_width
\directpagecommentparameter
\c!width
\relax
73 \d_page_comments_height
\directpagecommentparameter
\c!height
\relax
74 \expandnamespacemacro
\??pagecommentlocations
\p_page_commands_location
\v!none
75 \definepapersize
[
\v!pagecomment
]
[
\c!height
=
\d_page_comments_page_height
,
\c!width
=
\d_page_comments_page_width
]
76 \setuppapersize
[
\papersize
]
[
\v!pagecomment
]
77 \setupbackgrounds
[
\v!paper
]
[
\c!background
=
\v!pagecomment
]
}
78
79\setvalue
{
\??pagecommentstates
\v!stop
}
80 {
\setupbackgrounds
[
\v!paper
]
[
\c!background
=
]
}
81
82\setvalue
{
\??pagecommentstates
\v!none
}
83 {
}
84
85\setvalue
{
\??pagecommentlocations
\v!bottom
}
86 {
\setuplayout
[
\c!location
=
]
87 \setuppapersize
[
\c!top
=
\vskip
\d_page_comments_offset
,
\c!bottom
=
\vss
,
\c!left
=
\hskip
\d_page_comments_offset
,
\c!right
=
]
88 \d_page_comments_page_height
\dimexpr
\paperheight
2
\d_page_comments_offset
\d_page_comments_distance
\d_page_comments_height
\relax
89 \d_page_comments_page_width
\dimexpr
\paperwidth
2
\d_page_comments_offset
\relax
90 \defineoverlay
[
\v!pagecomment
]
[
\page_comments_top_bottom
]
}
91
92\setvalue
{
\??pagecommentlocations
\v!top
}
93 {
\setuplayout
[
\c!location
=
]
94 \setuppapersize
[
\c!top
=
\vss
,
\c!bottom
=
\vskip
\d_page_comments_offset
,
\c!left
=
\hskip
\d_page_comments_offset
,
\c!right
=
]
95 \d_page_comments_page_height
\dimexpr
\paperheight
2
\d_page_comments_offset
\d_page_comments_distance
\d_page_comments_height
\relax
96 \d_page_comments_page_width
\dimexpr
\paperwidth
2
\d_page_comments_offset
\relax
97 \defineoverlay
[
\v!pagecomment
]
[
\page_comments_top_bottom
]
}
98
99\setvalue
{
\??pagecommentlocations
\v!left
}
100 {
\setuplayout
[
\c!location
=
]
101 \setuppapersize
[
\c!top
=
\vskip
\d_page_comments_offset
,
\c!bottom
=
,
\c!left
=
\hss
,
\c!right
=
\hskip
\d_page_comments_offset
]
102 \d_page_comments_page_height
\dimexpr
\paperheight
2
\d_page_comments_offset
\relax
103 \d_page_comments_page_width
\dimexpr
\paperwidth
2
\d_page_comments_offset
\d_page_comments_distance
\d_page_comments_width
\relax
104 \defineoverlay
[
\v!pagecomment
]
[
\page_comments_left_right
]
}
105
106\setvalue
{
\??pagecommentlocations
\v!right
}
107 {
\setuplayout
[
\c!location
=
]
108 \setuppapersize
[
\c!top
=
\vskip
\d_page_comments_offset
,
\c!bottom
=
,
\c!left
=
\hskip
\d_page_comments_offset
,
\c!right
=
\hss
]
109 \d_page_comments_page_height
\dimexpr
\paperheight
2
\d_page_comments_offset
\relax
110 \d_page_comments_page_width
\dimexpr
\paperwidth
2
\d_page_comments_offset
\d_page_comments_distance
\d_page_comments_width
\relax
111 \defineoverlay
[
\v!pagecomment
]
[
\page_comments_left_right
]
}
112
113\setvalue
{
\??pagecommentlocations
\v!none
}
114 {
}
115
116\unexpanded
\def
\page_comments_top_bottom
117 {
\vpack
to
\printpaperheight
118 {
119 \hsize
\printpaperwidth
\relax
120 \ifx
\p_page_commands_location
\v!bottom
121 \vskip
\dimexpr
\paperheight
\d_page_comments_distance
\d_page_comments_offset
\relax
122 \else
123 \vskip
\d_page_comments_offset
124 \vss
125 \fi
126 \hskip
\d_page_comments_offset
127 \vbox
to
\d_page_comments_height
128 {
129 \hsize
\paperwidth
130 \ifconditional
\c_page_comment_enabled
131 \getbuffer
[
\v!pagecomment
]
132 \global
\setfalse
\c_page_comment_enabled
133 \fi
}
134 \hfill
135 \ifx
\p_page_commands_location
\v!bottom
136 \vss
137 \vskip
\d_page_comments_offset
138 \else
139 \vskip
\dimexpr
\paperheight
\d_page_comments_distance
\d_page_comments_offset
\relax
140 \fi
}
}
141
142\unexpanded
\def
\page_comments_left_right
143 {
\hpack
to
\printpaperwidth
144 {
\ifx
\p_page_commands_location
\v!right
145 \hskip
\dimexpr
\paperwidth
\d_page_comments_distance
\d_page_comments_offset
\relax
146 \else
147 \hskip
\d_page_comments_offset
148 \hss
149 \fi
150 \vbox
to
\printpaperheight
151 {
152 \vskip
\d_page_comments_offset
153 \hsize
\d_page_comments_width
154 \ifconditional
\c_page_comment_enabled
155 \getbuffer
[
\v!pagecomment
]
156 \global
\setfalse
\c_page_comment_enabled
157 \fi
158 \vss
}
159 \ifx
\p_page_commands_location
\v!right
160 \hss
161 \hskip
\d_page_comments_offset
162 \else
163 \hskip
\dimexpr
\paperwidth
\d_page_comments_distance
\d_page_comments_offset
\relax
164 \fi
}
}
165
166\setvalue
{
\e!start
\v!pagecomment
}
167 {
\global
\settrue
\c_page_comment_enabled
168 \grabbufferdatadirect
\v!pagecomment
{
\e!start
\v!pagecomment
}
{
\e!stop
\v!pagecomment
}
}
169
170\setuppagecomment
171 [
\c!state
=
,
172 \c!location
=
\v!bottom
,
173 \c!offset
=
.
5
cm
,
174 \c!distance
=
.
5
cm
,
175 \c!height
=
5
cm
,
176 \c!width
=
1
0
cm
]
177
178\protect
\endinput
179