%D \module
%D   [      file=s-pre-14,
%D        version=1999.08.20,
%D          title=\CONTEXT\ Style File,
%D       subtitle=Presentation Environment 14,
%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.


%D In the process of making a couple of simple styles for
%D \EUROTEX\ 99, I came to this one. The joke is in the
%D pagenumber. This style can be used for short presentations
%D with much text.

\startmode[asintended] \setupbodyfont[lbr] \stopmode

\setupbodyfont[14.4pt]

%D Since we expect text, we can best be very tolerant.

\setuptolerance
  [verytolerant,stretch]

%D As most styles we choose a large screen page size.

\setuppapersize
  [S6][S6]

\setuplayout
  [width=fit,
   rightedge=3cm,
   margin=0pt,
   rightedgedistance=2cm,
   height=middle,
   header=0pt,
   footer=0pt,
   topspace=1cm,
   backspace=1cm]

%D We only use two colors, named \type {One} and \type
%D {Two}:

\setupcolors
  [state=start]

\definecolor [One] [r=.6,g=.4,b=.4]
\definecolor [Two] [r=.4,g=.6,b=.6]

%D If you've looked at the demo file, you will have noticed
%D that the background consists of four pieces: two filled
%D rectangles and two half numbers. These are put on th epage
%D using four overlays:

\setupbackgrounds
  [page]
  [background={one,two,three,four}]

%D When we code this in \TEX, we get the following
%D definitions. As an alternative we coudl have used layers
%D but I'm afraid that it would not have led to less code.

\defineoverlay
  [one]
  [{\framed
     [frame=off,background=color,backgroundcolor=Two,
      width=\overlaywidth,height=\overlayheight]
     {}}]

\defineoverlay
  [three]
  [{\hbox to \overlaywidth
      {\hfill\SetOverlayWidth
       \framed
         [frame=off,background=color,backgroundcolor=One,
          width=\overlaywidth,height=\overlayheight]
         {}}}]

%D We could have used the main backgroundcolor instead of
%D overlay \type {one}.

\definefont[NumberFont][RegularBold at 3cm]

\defineoverlay
  [two]
  [{\framed
     [frame=off,width=\overlaywidth,height=\overlayheight,
      offset=overlay]
     {\vfill
      \NumberFont\setstrut\SetOverlayWidth
      \hbox to \hsize
         {\hfill
          \setupinteraction[style=,color=]%
          \setbox0=\hbox{\strut\One\pagenumber}%
          \hbox to 0pt{\hss\gotobox{\box0}[previouspage]\hss}%
          \hskip\overlaywidth}}}]

\defineoverlay
  [four]
  [{\framed
     [frame=off,width=\overlaywidth,height=\overlayheight,offset=overlay]
     {\vfill
      \hbox to \hsize
        {\hfill
         \SetOverlayWidth
         \framed
           [frame=off,width=\overlaywidth,height=\overlayheight,offset=overlay]
           {\vfill\NumberFont\setstrut
            \setbox0=\hbox{\strut\Two\pagenumber}%
            \setbox2=\hbox{\clip[nx=2,ny=1,x=2,y=1]{\copy0}}%
            \dp2=\dp0
            \hbox to \hsize{\hbox to 0pt{\hss\hskip.5\wd0\box2\hss}\hfill}}}}}]

\def\SetOverlayWidth%
  {\scratchdimen         =  \rightedgedistance
   \divide\scratchdimen  by 2
   \advance\scratchdimen by \rightedgewidth
   \advance\scratchdimen by \backspace
   \edef\overlaywidth{\the\scratchdimen}}

%D A much cleaner implementation is the following. If you hate
%D \METAPOST, you can run this style in the specified mode:

\startnotmode[no-metapost]

\setupbackgrounds
  [page]
  [background={number}]

\defineoverlay[number][\useMPgraphic{number}]

\startuseMPgraphic{number}
  StartPage ;
    path Vage ; picture Left, Right ;
    x1 = x2 = xpart (llcorner Field[Text][RightEdge] shifted (-RightEdgeDistance/2,0)) ;
    y1 = ypart llcorner Page ;
    y2 = ypart ulcorner Page ;
    Vage := llcorner Page -- z1 -- z2 -- ulcorner Page -- cycle ;
    fill Page withcolor \MPcolor {One} ;
    fill Vage withcolor \MPcolor {Two} ;
    if PageNumber>0 :
      defaultfont  := "\truefontname{RegularBold}" ;
      Left := Right := thelabel("\folio",origin) ysized 3cm ;
      clip Right to boundingbox Right shifted (bbwidth(Right)/2,0) ;
      draw Left  shifted z1 shifted (0,2.25cm) withcolor \MPcolor {One} ;
      draw Right shifted z1 shifted (0,2.25cm) withcolor \MPcolor {Two} ;
    fi ;
  StopPage ;
\stopuseMPgraphic

\stopnotmode

%D We use the simple label typesetting present in \METAPOST\
%D because digits are seldom kerned so real \TEX ing is not
%D needed. As in the previous method, we let the graphics
%D overlap so that we don't get white lines due to rounding
%D problems in viewers.
%D
%D We put a  button behind the text (this overlay is calculated
%D each page).

\defineoverlay
  [nextpage]
  [\overlaybutton{nextpage}]

\setupbackgrounds
  [text]
  [backgroundoffset=.5cm,
   background=nextpage]

%D We still have to turn on interaction mode.

\setupinteraction
  [state=start,
   display=new,
   menu=on]

\setupinteraction
  [color=,
   contrastcolor=]

%D Next we define structuring commands.

\definehead[Topic]  [chapter] \setuphead[Topic]  [style=\bfc]
\definehead[Subject][section] \setuphead[Subject][style=\bfa]

\setuphead
  [Topic, Subject]
  [number=no,
   after={\blank[big]}]

%D Because we will provide a menu, we don't offer lists.

\let\Topics  \gobbleoneargument
\let\Subjects\relax

%D The table of contents goes to the right edge.

\startinteractionmenu[right]
  \setupinteraction
    [color=black,
     contrastcolor=Two]
  \placelist
    [Topic]
    [alternative=e,
     frame=off,
     criterium=all]
  \vfill
\stopinteractionmenu

\setuplist
  [Topic]
  [width=\rightedgewidth,
   maxwidth=\rightedgewidth,
   style=\bfa]

%D We safe some space:

\setupwhitespace
  [medium]

\setupblank
  [medium]

%D In the titlepage, we still use the \TEX\ overlays,
%D so that we don't have to define a second graphic.

\def\TitlePage#1%
  {\StartTitlePage#1\StopTitlePage}

\def\StartTitlePage%
  {\bgroup
   \setupbackgrounds[page][background={one,three}]
   \startstandardmakeup
     \setupalign[middle]
     \def\\{\vfil\bfb\setupinterlinespace}
     \bfd\setupinterlinespace
     \vfil}

\def\StopTitlePage%
  {\vfil\vfil\vfil
   \stopstandardmakeup
   \egroup}

%D This is it.

\doifnotmode{demo}{\endinput}

\starttext

\TitlePage{Some Quotes\\(that you probably know by now)}

\Topic{Tufte}   \input tufte
\Topic{Knuth}   \input knuth
\Topic{Reich}   \input reich
\Topic{Zapf}    \input zapf
\Topic{Materie} \input materie
%Topic{Stork}   \input stork

\stoptext
