%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 / 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. \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] \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\StartStep {\ifvmode \scratchskip\lastskip \vskip-\scratchskip \startproperty[step:\StepCounter]% \vskip\scratchskip \else \startproperty[step:\StepCounter]% \fi \ignorespaces} \def\StopStep {\removeunwantedspaces \stopproperty} \def\StartSteps{\ResetStep\NextStep\StartStep} \def\StopSteps {\StopStep\PrevStep} \def\FlushStep {\StopStep\NextStep\StartStep} \appendtoks \ResetStep \to \everyaftershipout \def\StartBusy{\startproperty[step:busy]\ignorespaces} \def\StopBusy {\removeunwantedspaces\stopproperty} \setupinteraction [openaction=SetupStepper, openpageaction=CheckStepper, closepageaction=ResetStepper] \defineoverlay[invoke][\overlaybutton{InvokeStepper}] \setupbackgrounds [text] [background=invoke] \endinput