%D \module %D [ file=spec-win, %D version=1996.01.25, %D title=\CONTEXT\ Special Macros, %D subtitle=\YandY's \DVIWINDO, %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. %D Remark: chained references are not yet implemented. %D \macros %D {dosetupinteraction, %D dostartthisislocation, %D dostartthisisrealpage, %D dostartgotolocation, %D dostartgotorealpage, %D dostartrunprogram, %D usepagedestinations} %D {} %D %D As told before, these were the first interactive specials. %D In those days, these kind of specials were still elegant %D and straightforward. \startspecials[dviwindo] \definespecial\dosetupinteraction% {\showmessage\m!interactions{21}{dviwindo}} \definespecial\dostartgotolocation#1#2#3#4#5#6% {\bgroup \doifelsenothing{#3} {\doifelsenothing{#4} {\!!doneafalse} {\doifparentfileelse{#4} {\!!doneafalse} {\!!doneatrue}}% \setreferencefilename#4\to\DVIfile \scratchdimen#1\edef\width {\the\scratchdimen\space}% \scratchdimen#2\edef\height{\the\scratchdimen\space}% \special {button: \width \height \if!!donea file: \DVIfile, \fi "#5"}} {}% nog uri afhandelen \egroup} \definespecial\dostartgotorealpage#1#2#3#4#5% {\bgroup \doifelsenothing{#3} {\doifelsenothing{#4} {\!!doneafalse} {\doifparentfileelse{#4} {\!!doneafalse} {\!!doneatrue}}% \setreferencefilename#4\to\DVIfile \scratchdimen#1\edef\width {\the\scratchdimen\space}% \scratchdimen#2\edef\height{\the\scratchdimen\space}% \special {button: \width \height \if!!donea file: \DVIfile, \fi \ifnum0#5=0 \else page: #5 \fi}} {}% nog uri afhandelen \egroup} \definespecial\dostartthisislocation#1% {\special{mark: "#1"}} \definespecial\dostartthisisrealpage#1% {} \definespecial\dostartrunprogram#1#2#3#4% {\bgroup \scratchdimen#1\edef\width {\the\scratchdimen\space}% \scratchdimen#2\edef\height{\the\scratchdimen\space}% \special{button: \width \height launch: #3 #4}% \egroup} \let\doyandyinsertmov = \docommoninsertmov \let\dotrinsertmov = \docommoninsertmov \stopspecials \endinput