%D \module %D [ file=s-pre-60, %D version=2004.03.15, %D title=\CONTEXT\ Style File, %D subtitle=Presentation Environment 60, %D author=Hans Hagen, %D date=\currentdate, %D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}] %C %C This module is part of the \CONTEXT\ macro||package and is %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. \startmode[paper,print] \let\StartSteps\relax \let\StopSteps \relax \let\FlushStep \relax \let\ResetStep \relax \let\StartBusy\relax \let\StopBusy \relax \endinput \stopmode \newcounter\StepCounter \newcounter\StepMaximum \useJSscripts[stp] \startsetups[set-stepper] \ifnum\getvariable{stepper}{nofsteps}>\StepMaximum \dostepwiserecurse {\numexpr(\StepMaximum+1)} {\getvariable{stepper}{nofsteps}} {1} {\doifnotmode{nosteps,nostep} {\expanded{\defineproperty[step:\recurselevel][layer][state=stop,global=yes]}}} \xdef\StepMaximum{\getvariable{stepper}{nofsteps}} \fi \stopsetups \setvariables [stepper] [set=\setups{set-stepper}, nofsteps=50] \defineproperty[step:busy][layer][state=start,global=no] \definereference [SetupStepper] [JS(SetupStepper{step,\StepMaximum})] \definereference [ResetStepper] [JS(ResetStepper)] \definereference [CheckStepper] [JS(CheckStepper{\StepCounter})] \definereference [InvokeStepper] [JS(InvokeStepper)] \def\ResetStep {\doglobal\newcounter\StepCounter} \def\NextStep {\doglobal\increment \StepCounter} \def\PrevStep {\doglobal\decrement \StepCounter} % todo: roll back blank \def\StepLayer {step:\StepCounter} \def\NextStepLayer {step:\the\numexpr\StepCounter+1\relax} \def\FirstStepLayer{step:1} \def\StartStep {\ifvmode \scratchskip\lastskip \vskip-\scratchskip \startproperty[\StepLayer]% \vskip\scratchskip \else \startproperty[\StepLayer]% \fi \ignorespaces} \def\StopStep {\removeunwantedspaces \stopproperty} \def\StartSteps{\iftrialtypesetting\else\ResetStep\NextStep\StartStep\fi} \def\StopSteps {\iftrialtypesetting\else\StopStep \PrevStep \fi} \def\FlushStep {\iftrialtypesetting\else\StopStep \NextStep\StartStep\fi} \appendtoks \ResetStep \to \everyaftershipout \def\StartBusy{\startproperty[step:busy]\ignorespaces} \def\StopBusy {\removeunwantedspaces\stopproperty} \setupinteraction [%openaction=SetupStepper, closeaction=ResetStepper, openpageaction=CheckStepper, closepageaction=ResetStepper] \defineoverlay[invoke][\overlaybutton{InvokeStepper}] \setupbackgrounds [text] [background=invoke] % bonus \useMPlibrary[nav] \definepalet [navplus] [attach=interactioncolor, comment=interactioncolor] \setupcomment [symbol={comment-normal,comment-down}, textlayer=\StepLayer, option=buffer, height=\textheight, width=\textwidth, margin=0pt] \setupattachments [symbol={attach-normal,attach-down}, textlayer=\StepLayer] %D Handy: \def\StartLocalSteps{\ResetStep} \def\StopLocalSteps {} \def\StartLocalStep {\NextStep\StartStep} \def\StopLocalStep {\StopStep} %D used as (given some definitions): %D %D \starttyping %D \StartLocalSteps %D \startcombination[both] %D {\StartLocalStep\placestreamlayer[left]\StopLocalStep} {} %D {\StartLocalStep\placestreamlayer[right]\StopLocalStep} {} %D \stopcombination %D \StopLocalSteps %D \stoptyping \endinput