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\paperheight2\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\paperheight2\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\paperheight2\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\paperheight2\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=.5cm,
174 \c!distance=.5cm,
175 \c!height=5cm,
176 \c!width=10cm]
177
178\protect \endinput
179 |