summaryrefslogtreecommitdiff
path: root/tex/context/base/prop-lay.mkii
diff options
context:
space:
mode:
Diffstat (limited to 'tex/context/base/prop-lay.mkii')
-rw-r--r--tex/context/base/prop-lay.mkii143
1 files changed, 143 insertions, 0 deletions
diff --git a/tex/context/base/prop-lay.mkii b/tex/context/base/prop-lay.mkii
new file mode 100644
index 000000000..aeec94bb2
--- /dev/null
+++ b/tex/context/base/prop-lay.mkii
@@ -0,0 +1,143 @@
+%D \module
+%D [ file=prop-lay,
+%D version=2003.04.20,
+%D title=\CONTEXT\ Property Macros,
+%D subtitle=Layers,
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright={PRAGMA / Hans Hagen \& Ton Otten}]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+\writestatus{loading}{ConTeXt Property Macros / Layers}
+
+%D Highly experimental, will probably change/evolve. Also, quite certainly
+%D we will no longer share code between mkii and mkiv.
+
+\unprotect
+
+\let\currentlayerproperty\empty
+
+\def\checklayerproperty
+ {\doifelse{\checkedpropertyparameter\v!printable\currentproperty}\v!no
+ {\def\printviewerlayer{0}}
+ {\def\printviewerlayer{1}}%
+ \dodefineviewerlayer
+ \currentproperty % tag
+ {\checkedpropertyparameter\c!title\currentproperty}%
+ {\checkedpropertyparameter\c!state\v!start}% visible or hidden
+ {0}% type (1=frozen)
+ {\printviewerlayer}}% 1=printable
+
+\def\startlayerproperty
+ {\let\currentlayerproperty\currentproperty
+ \dostartviewerlayer\currentproperty}
+
+\def\stoplayerproperty
+ {\dostopviewerlayer
+ \let\currentlayerproperty\previousproperty}
+
+\def\domakelayerpropertylist
+ {\iflocation
+ \expandafter\domakeviewerlayerlist
+ \else
+ \expandafter\gobbleoneargument
+ \fi}
+
+\setglobalsystemreference \rt!exec \v!HideLayer {hidelayer}
+\setglobalsystemreference \rt!exec \v!VideLayer {videlayer}
+\setglobalsystemreference \rt!exec \v!ToggleLayer {togglelayer}
+
+\setexecutecommandcheck {hidelayer} \domakelayerpropertylist
+\setexecutecommandcheck {videlayer} \domakelayerpropertylist
+\setexecutecommandcheck {togglelayer} \domakelayerpropertylist
+
+% \currentlayerproperty
+% \checklayerproperty
+% \startlayerproperty
+% \stoplayerproperty
+% \domakelayerpropertylist
+
+%D \starttext
+%D
+%D \setuppapersize[S4][S4]
+%D \setuplayout[middle]
+%D \setupcolors[state=start]
+%D \setupinteraction[state=start,color=,contrastcolor=]
+%D
+%D \defineproperty [L1] [layer] [title=layer 1]
+%D \defineproperty [L2] [layer] [title=layer 2]
+%D
+%D \button{HIDE L1}[HideLayer{L1}]
+%D \button{VIDE L1}[VideLayer{L1}]
+%D \button{TOGGLE L1}[ToggleLayer{L1}]
+%D
+%D \button{HIDE L2}[HideLayer{L2}]
+%D \button{VIDE L2}[VideLayer{L2}]
+%D \button{TOGGLE L2}[ToggleLayer{L2}]
+%D
+%D \noheaderandfooterlines \centerbox{\startoverlay
+%D {\definedfont[Mono at 150pt]%
+%D \startproperty[L1]\red TEST\stopproperty}
+%D {\definedfont[Mono at 150pt]%
+%D \startproperty[L2]\green TEST\stopproperty}
+%D \stopoverlay} \page
+%D
+%D \noheaderandfooterlines \centerbox{\startoverlay
+%D {\definedfont[Mono at 15pt]%
+%D \goto{\startproperty[L1]\red TEST\stopproperty}[CloseDocument]}
+%D {\definedfont[Mono at 15pt]%
+%D \goto{\startproperty[L2]\green TEST\stopproperty}[CloseDocument]}
+%D \stopoverlay} \page
+%D
+%D \startproperty[L1]
+%D level 1 \startproperty[L2]level 2 \stopproperty level 1
+%D \stopproperty
+%D
+%D \startproperty[L1]
+%D level 1 \page \startproperty[L2]level 2 \stopproperty level 1
+%D \stopproperty
+%D
+%D \stoptext
+
+%D Handy for tracing:
+
+\def\showlayoutcomponents
+ {\let\startlayoutcomponent\dostartlayoutcomponent
+ \let\stoplayoutcomponent \dostoplayoutcomponent}
+
+\def\dodefinelayoutcomponent#1#2%
+ {\doifelsenothing{#2}%
+ {\defineproperty[#1][\s!layer]}%
+ {\defineproperty[#1][\s!layer][\c!title=#2]}}
+
+\def\dostartlayoutcomponent#1#2%
+ {\doifelseproperty{#1}\donothing{\dodefinelayoutcomponent{#1}{#2}}%
+ \startproperty[#1]}
+
+\def\dostoplayoutcomponent
+ {\stopproperty}
+
+\let\startlayoutcomponent\gobbletwoarguments
+\let\stoplayoutcomponent \relax
+
+\protect \endinput
+
+% \def\remaplayering
+% {\dodoubleargument\doremaplayering}
+%
+% \def\remaplayering[#1][#2]%
+% {\setvalue{\??lm#1}{#2}}
+%
+% \def\remappedlayering#1%
+% {\ifcsname\??lm#1\endcsname
+% \@EA\remappedlayering\csname\??lm#1\endcsname\else#1%
+% \fi}
+%
+% \def\startshowlayering#1#2%
+% {\ifshowlayering
+% \defineproperty[\remappedlayering{#1}][\s!layer][\c!titel=#2]%
+% \startproperty[\remappedlayering{#1}]%
+% \fi}