page-com.mkiv /size: 6593 b    last modification: 2020-07-01 14:35
1
%D \module
2
%D [ file=page-com, % moved from page-imp
3
%D version=1998.01.15,
4
%D title=\CONTEXT\ Page Macros,
5
%D subtitle=Page Comments,
6
%D author=Hans Hagen,
7
%D date=\currentdate,
8
%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
9
%C
10
%C This module is part of the \CONTEXT\ macro||package and is
11
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
12
%C details.
13 14
%D This will become runtime loaded code.
15 16
\writestatus
{
loading
}{
ConTeXt
Page
Macros
/
Page
Comments
}
17 18
\unprotect
19 20
%D \macros
21
%D {setuppagecomment,startpagecomment}
22
%D
23
%D This command is not yet documented. Usage:
24
%D
25
%D \starttyping
26
%D \setuppagecomment[state=start,location=right]
27
%D
28
%D \startpagecomment
29
%D \input knuth
30
%D \stoppagecomment
31
%D \stoptyping
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
% \ifdefined\scrn_canvas_synchronize_simple
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
% \fi
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
]
}
% maybe append if already set
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
{}
% \setuppapersize[\c!bottom=,\c!top=,\c!left=,\c!right=]}
115 116
\unexpanded
\def
\page_comments_top_bottom
117
{
\vpack
to
\printpaperheight
118
{
%\forgetall
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
{
%\forgetall
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
{
%\forgetall
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
=
,
% \v!stop would invoke background calculation
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