1
2
3
4
5
6
7
8
9
10
11
12
13
14\writestatus{loading}{ConTeXt Attribute Macros Viewerlayers}
15
16
17
18
19
20
21
22
23\unprotect
24
25\registerctxluafile{attrlay}{}
26
27
28
29\installcorenamespace{viewerlayer}
30
31\installcommandhandler \??viewerlayer {viewerlayer} \??viewerlayer
32
33\setupviewerlayer
34 [\c!state=\v!start,
35 \c!title=,
36 \c!export=\v!yes,
37 \c!printable=\v!yes,
38 \c!scope=\v!local,
39 \c!method=\v!none]
40
41\appendtoks
42 \clf_defineviewerlayer
43 tag {\currentviewerlayer}
44 title {\viewerlayerparameter\c!title}
45 visible {\viewerlayerparameter\c!state}
46 editable {\v!yes}
47 export {\viewerlayerparameter\c!export}
48 printable {\viewerlayerparameter\c!printable}
49 scope {\viewerlayerparameter\c!scope}
50 \relax
51 \doif{\viewerlayerparameter\c!method}\v!command
52 {\setuxvalue{\e!start#1}{\startviewerlayer[\currentviewerlayer]}
53 \setuxvalue{\e!stop #1}{\stopviewerlayer}}
54\to \everydefineviewerlayer
55
56\unexpanded\def\startviewerlayer[#1]{\clf_startviewerlayer{#1}}
57\unexpanded\def\stopviewerlayer {\clf_stopviewerlayer}
58\unexpanded\def\viewerlayer [#1]{\groupedcommand
59 {\clf_startviewerlayer{#1}}
60 {\clf_stopviewerlayer}}
61
62
63
64\newtoks\currentviewerlayertoks
65
66\def\currentviewerlayer{\the\currentviewerlayertoks}
67
68\appendtoks
69 \let\currentviewerlayer\empty
70\to \everybeforepagebody
71
72
73
74\installcorenamespace{layoutcomponentattribute}
75
76\def\attr_layoutcomponent_initialize#1
77 {\edef\layoutcomponentboxattribute{\clf_definedlayoutcomponent{#1}}
78 \edef\layoutcomponentboxattribute{attr \viewerlayerattribute \layoutcomponentboxattribute\relax}
79 \expandafter\glet\csname\??layoutcomponentattribute#1\endcsname\layoutcomponentboxattribute}
80
81\def\attr_layoutcomponent_set#1
82 {\expandafter\let\expandafter\layoutcomponentboxattribute\csname\??layoutcomponentattribute#1\endcsname
83 \ifx\layoutcomponentboxattribute\relax
84 \attr_layoutcomponent_initialize{#1}
85 \fi}
86
87\def\attr_layoutcomponent_reset
88 {\let\layoutcomponentboxattribute\empty}
89
90\let\setlayoutcomponentattribute \gobbleoneargument
91\let\resetlayoutcomponentattribute\relax
92\let\layoutcomponentboxattribute \empty
93
94\unexpanded\def\showlayoutcomponents
95 {\let\setlayoutcomponentattribute \attr_layoutcomponent_set
96 \let\resetlayoutcomponentattribute\attr_layoutcomponent_reset}
97
98\unexpanded\def\attr_layoutcomponent_cleanup
99 {\clf_cleanuplayers}
100
101\appendtoks
102 \attr_layoutcomponent_cleanup
103\to \everyshipout
104
105\protect \endinput
106 |