summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/context/base/scrn-pag.mkvi
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/tex/context/base/scrn-pag.mkvi')
-rw-r--r--Master/texmf-dist/tex/context/base/scrn-pag.mkvi249
1 files changed, 249 insertions, 0 deletions
diff --git a/Master/texmf-dist/tex/context/base/scrn-pag.mkvi b/Master/texmf-dist/tex/context/base/scrn-pag.mkvi
new file mode 100644
index 00000000000..8e1dbde8e9c
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/scrn-pag.mkvi
@@ -0,0 +1,249 @@
+%D \module
+%D [ file=scrn-pag,
+%D version=1998.01.15,
+%D title=\CONTEXT\ Screen Macros,
+%D subtitle=Pages, % moved code
+%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.
+
+% pagecomments will be done differently
+
+\writestatus{loading}{ConTeXt Screen Macros / Pages}
+
+\registerctxluafile{scrn-pag}{1.001}
+
+\unprotect
+
+\installparameterhandler \??sc {interactionscreen}
+\installsetuphandler \??sc {interactionscreen}
+
+\newdimen\canvaswidth
+\newdimen\canvasheight
+\newdimen\canvasbackoffset
+\newdimen\canvastopoffset
+\newdimen\canvasmaxwidth
+\newdimen\canvasmaxheight
+
+\newconditional\scrn_canvas_tight_page
+
+% \def\scrn_canvas_calculate
+% {\begingroup
+% \edef\currentinteractionscreenwidth {\interactionscreenparameter\c!width }%
+% \edef\currentinteractionscreenheight{\interactionscreenparameter\c!height}%
+% \canvasbackoffset\backspace
+% \canvastopoffset\topspace
+% \ifx\currentinteractionscreenwidth\v!fit
+% \global\canvaswidth\leftcombitotal
+% \ifdim\backspace>\canvaswidth
+% \ifdim\backspace>\zeropoint\relax
+% \global\advance\canvasbackoffset -\canvaswidth
+% \fi
+% \fi
+% \global\advance\canvaswidth\dimexpr
+% \rightcombitotal
+% + 2\dimexpr
+% \interactionscreenparameter\c!backspace
+% + \interactionscreenparameter\c!horoffset
+% \relax
+% \relax
+% \donetrue
+% \else\ifx\currentinteractionscreenwidth\v!max
+% \global\canvaswidth\printpaperwidth
+% \donetrue
+% \else
+% \global\canvaswidth\currentinteractionscreenwidth
+% \donefalse
+% \fi\fi
+% \ifdone
+% \ifdim\canvaswidth>\paperwidth\ifdim\canvaswidth>\zeropoint
+% \global\paperwidth\canvaswidth % kills location=middle
+% \fi\fi
+% \fi
+% \ifx\currentinteractionscreenheight\v!fit
+% \global\canvasheight\dimexpr\topheight+\topdistance\relax
+% \ifdim\topspace>\canvasheight
+% \ifdim\topspace>\zeropoint\relax
+% \global\advance\canvastopoffset -\canvasheight
+% \fi
+% \fi
+% \global\advance\canvasheight\dimexpr
+% \makeupheight
+% + \bottomdistance
+% + \bottomheight
+% + 2\dimexpr
+% \interactionscreenparameter\c!topspace
+% + \interactionscreenparameter\c!veroffset
+% \relax
+% \relax
+% \else\ifx\currentinteractionscreenheight\v!max
+% \global\canvasheight\printpaperheight
+% \else
+% \global\canvasheight\currentinteractionscreenheight
+% \fi\fi
+% \ifdone
+% \ifdim\canvasheight>\paperheight\ifdim\canvasheight>\zeropoint
+% \global\paperheight\canvasheight % kills location=middle
+% \fi\fi
+% \fi
+% \endgroup}
+
+\def\scrn_canvas_calculate
+ {\begingroup
+ \edef\currentinteractionscreenwidth {\interactionscreenparameter\c!width }%
+ \edef\currentinteractionscreenheight{\interactionscreenparameter\c!height}%
+ \canvasbackoffset\backspace
+ \canvastopoffset\topspace
+ \ifx\currentinteractionscreenwidth\v!fit
+ \global\canvaswidth\leftcombitotal
+ \ifdim\backspace>\canvaswidth
+ \ifdim\backspace>\zeropoint\relax
+ \global\advance\canvasbackoffset -\canvaswidth
+ \fi
+ \fi
+ \global\advance\canvaswidth\dimexpr
+ \rightcombitotal
+ + 2\dimexpr
+ \interactionscreenparameter\c!backspace
+ + \interactionscreenparameter\c!horoffset
+ \relax
+ \relax
+ \else\ifx\currentinteractionscreenwidth\v!max
+ \global\canvaswidth\printpaperwidth
+ \else
+ \global\canvaswidth\currentinteractionscreenwidth
+ \fi\fi
+ \ifx\currentinteractionscreenheight\v!fit
+ \global\canvasheight\dimexpr\topheight+\topdistance\relax
+ \ifdim\topspace>\canvasheight
+ \ifdim\topspace>\zeropoint\relax
+ \global\advance\canvastopoffset -\canvasheight
+ \fi
+ \fi
+ \global\advance\canvasheight\dimexpr
+ \makeupheight
+ + \bottomdistance
+ + \bottomheight
+ + 2\dimexpr
+ \interactionscreenparameter\c!topspace
+ + \interactionscreenparameter\c!veroffset
+ \relax
+ \relax
+ \else\ifx\currentinteractionscreenheight\v!max
+ \global\canvasheight\printpaperheight
+ \else
+ \global\canvasheight\currentinteractionscreenheight
+ \fi\fi
+ \ifconditional\page_location_is_set
+ \global\setfalse\scrn_canvas_tight_page
+ \fi
+ \ifconditional\scrn_canvas_tight_page
+ \global\canvasmaxwidth \paperwidth
+ \global\canvasmaxheight\paperheight
+ \else
+ \global\canvasmaxwidth \printpaperwidth
+ \global\canvasmaxheight\printpaperheight
+ \fi
+ \endgroup}
+
+% test the next when something is changed here:
+%
+% \setuppapersize[A5][A3] \showframe
+%
+% % \setuplayout[location=middle] \setupinteractionscreen[option=fit]
+% % \setuplayout[location=middle] \setupinteractionscreen[option=auto]
+% % \setupinteractionscreen[option=fit]
+% % \setupinteractionscreen[option=auto]
+%
+% \starttext \input ward \stoptext
+
+\def\scrn_canvas_synchronize_simple
+ {\ctxcommand{setupcanvas{
+ paperwidth = \number\printpaperwidth,
+ paperheight = \number\printpaperheight
+ }}}
+
+\def\scrn_canvas_synchronize_complex
+ {\scrn_canvas_calculate % otherwise we need to hook it into setuppage etc
+ \ctxcommand{setupcanvas{
+ mode = "\interactionscreenparameter\c!option",
+ singlesided = \ifsinglesided true\else false\fi,
+ doublesided = \ifdoublesided true\else false\fi,
+ leftoffset = \number\canvasbackoffset,
+ topoffset = \number\canvastopoffset,
+ width = \number\canvaswidth,
+ height = \number\canvasheight,
+ paperwidth = \number\canvasmaxwidth,
+ paperheight = \number\canvasmaxheight
+ }}}
+
+\appendtoks
+ \doifcommonelse{\interactionscreenparameter\c!option}{\v!max,\v!fit}%
+ {\global\settrue \scrn_canvas_tight_page}%
+ {\global\setfalse\scrn_canvas_tight_page}%
+\to \everysetupinteractionscreen
+
+\appendtoks
+ \doifelse\@@pcstate\v!start
+ \scrn_canvas_synchronize_simple
+ \scrn_canvas_synchronize_complex
+\to \everyshipout
+
+\setupinteractionscreen
+ [\c!width=\printpaperwidth,
+ \c!height=\printpaperheight,
+ \c!horoffset=\zeropoint,
+ \c!veroffset=\zeropoint,
+ \c!backspace=\backspace,
+ \c!topspace=\topspace,
+ \c!option=\v!auto]
+
+%D Conditional page breaks:
+
+\unexpanded\def\screen
+ {\dosingleempty\scrn_screen}
+
+\def\scrn_screen[#list]%
+ {\iflocation
+ \page[#list]%
+ \fi}
+
+%D Page transitions:
+
+\let\scrn_transitions_list\empty
+
+\unexpanded\def\setuppagetransitions
+ {\dosingleempty\scrn_transitions_setup}
+
+\def\scrn_transitions_setup[#list]%
+ {\edef\scrn_transitions_list{#list}}
+
+\def\scrn_transitions_set
+ {\iflocation \ifx\scrn_transitions_list\empty \else
+ \scrn_transitions_set_indeed
+ \fi \fi}
+
+\def\scrn_transitions_set_indeed
+ {\begingroup
+ \edef\currentinteractionscreendelay{\interactionscreenparameter\c!delay}%
+ \ctxcommand{setpagetransition{
+ n = "\scrn_transitions_list",
+ delay = "\ifx\currentinteractionscreendelay\v!none 0\else\currentinteractionscreendelay\fi"
+ }}%
+ \endgroup}
+
+\prependtoks
+ \scrn_transitions_set
+\to \everyshipout
+
+\setupinteractionscreen
+ [\c!delay=\v!none]
+
+\setuppagetransitions
+ [\v!reset]
+
+\protect \endinput