%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 / Hans Hagen \& Ton Otten}]
%C
%C This module is part of the \CONTEXT\ macro||package and is
%C therefore copyrighted by \PRAGMA. See licen-en.pdf for 
%C details. 

\unprotect

%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}}%
      %\hsmash{[l:#5]}%
      \special
        {button: 
           #1 #2
           \if!!donea 
             file: #4, 
           \fi
           "#5"}}
     {}% nog uri afhandelen 
   \egroup}

\definespecial\dostartgotorealpage#1#2#3#4#5%
  {\bgroup  
   \doifelsenothing{#3}
     {\doifelsenothing{#4}
        {\!!doneafalse}
        {\doifparentfileelse{#4}
           {\!!doneafalse}
           {\!!doneatrue}}%
      %\hsmash{[p:#5]}%
      \special
        {button: 
           #1 #2
           \if!!donea 
             file: #4, 
           \fi 
           \ifnum0#5=0 \else 
             page: #5 
           \fi}}
     {}% nog uri afhandelen 
   \egroup}

\definespecial\dostartthisislocation#1%
  {%\hsmash{[m:#1]}%
   \special{mark: "#1"}}

\definespecial\dostartthisisrealpage#1%
  {}

\definespecial\dostartrunprogram#1#2#3%
  {\special{button: #1 #2 launch: #3}}

\let\doyandyinsertmov = \docommoninsertmov
\let\dotrinsertmov    = \docommoninsertmov

\stopspecials

\protect

\endinput
