diff options
Diffstat (limited to 'Master/texmf-dist/tex/context/base/scrn-wid.mkvi')
-rw-r--r-- | Master/texmf-dist/tex/context/base/scrn-wid.mkvi | 135 |
1 files changed, 68 insertions, 67 deletions
diff --git a/Master/texmf-dist/tex/context/base/scrn-wid.mkvi b/Master/texmf-dist/tex/context/base/scrn-wid.mkvi index 2b75f83cd75..ae5f7c5567b 100644 --- a/Master/texmf-dist/tex/context/base/scrn-wid.mkvi +++ b/Master/texmf-dist/tex/context/base/scrn-wid.mkvi @@ -66,6 +66,7 @@ \installcorenamespace{attachment} \installcorenamespace{attachmentlocation} +\installcorenamespace{attachmentmethod} \installcommandhandler \??attachment {attachment} \??attachment @@ -171,9 +172,9 @@ \def\scrn_attachment_inject[#registered][#settings]% {\edef\currentattachmentregistered{#registered}% \setupattachment[\currentattachment][#settings]% - \expandcheckedcsname{scrn_attachment_method_}{\attachmentparameter\c!method}\v!normal} + \expandnamespaceparameter\??attachmentmethod\attachmentparameter\c!method\v!normal} -\setvalue{scrn_attachment_method_\v!normal}% +\setvalue{\??attachmentmethod\v!normal}% {\edef\currentattachmentsymbol{\attachmentparameter\c!symbol}% \edef\currentattachmentwidth {\attachmentparameter\c!width }% \edef\currentattachmentheight{\attachmentparameter\c!height}% @@ -216,7 +217,7 @@ \dp\b_scrn_attachment_link\currentattachmentdepth \box\b_scrn_attachment_link} -\setvalue{scrn_attachment_method_\v!hidden}% +\setvalue{\??attachmentmethod\v!hidden}% {\ctxcommand{insertattachment{ tag = "\currentattachment", registered = "\currentattachmentregistered", @@ -235,6 +236,7 @@ \setvalue{\??attachmentlocation\v!rightmargin}{\inrightmargin} \setvalue{\??attachmentlocation\v!high }{\high} \setvalue{\??attachmentlocation\v!none }{\scrn_attachment_collect} +%setvalue{\??attachmentlocation\v!text }{\gobblenextargument} % gobbles the box \def\scrn_attachment_collect#content% {\global\setbox\b_scrn_attachment_collect\hbox\bgroup @@ -421,7 +423,7 @@ \doifassignmentelse{#title} {\setupcurrentcomment[#title]} {\setupcurrentcomment[\c!title=#title,#settings]}% - \def\scrn_comment_stop{\scrn_comment_inject\egroup}% + \unexpanded\def\scrn_comment_stop{\scrn_comment_inject\egroup}% \grabbufferdatadirect\v!comment{\e!start\currentcomment}{\e!stop\currentcomment}} \def\scrn_comment_start_ignore @@ -432,8 +434,8 @@ \installcorenamespace{commentmethods} -\def\scrn_comment_inject - {\expandcheckedcsname\??commentmethods{\commentparameter\c!method}\v!normal} +\unexpanded\def\scrn_comment_inject + {\expandnamespaceparameter\??commentmethods\commentparameter\c!method\v!normal} %D Beware: comments symbols don't scale in acrobat (cf. spec but somewhat %D weird, esp because for instance attachment symbols do scale). @@ -476,35 +478,34 @@ \wd\b_scrn_comment_link\currentcommentwidth \ht\b_scrn_comment_link\currentcommentheight \dp\b_scrn_comment_link\currentcommentdepth - \scrn_comment_place} + \expandnamespaceparameter\??commentlocation\commentparameter\c!location\s!unknown} \setvalue{\??commentmethods\v!hidden}% {} % todo: dedicated margin classes -\def\scrn_comment_place - {\executeifdefined - {\??commentlocation\commentparameter\c!location}\hbox - {\hbox{\box\b_scrn_comment_link}}} - -\setvalue{\??commentlocation\v!inmargin }{\inmargin } -\setvalue{\??commentlocation\v!leftedge }{\inleftedge } -\setvalue{\??commentlocation\v!rightedge }{\inrightedge } -\setvalue{\??commentlocation\v!leftmargin }{\inleftmargin } -\setvalue{\??commentlocation\v!rightmargin}{\inrightmargin} -\setvalue{\??commentlocation\v!high }{\high} -\setvalue{\??commentlocation\v!none }{\scrn_comment_collect} - -\def\scrn_comment_collect#content% +\setvalue{\??commentlocation\v!inmargin }{\inmargin {\box\b_scrn_comment_link}} +\setvalue{\??commentlocation\v!leftedge }{\inleftedge {\box\b_scrn_comment_link}} +\setvalue{\??commentlocation\v!rightedge }{\inrightedge {\box\b_scrn_comment_link}} +\setvalue{\??commentlocation\v!leftmargin }{\inleftmargin {\box\b_scrn_comment_link}} +\setvalue{\??commentlocation\v!rightmargin}{\inrightmargin{\box\b_scrn_comment_link}} +\setvalue{\??commentlocation\v!high }{\high {\box\b_scrn_comment_link}} + +\setvalue{\??commentlocation\v!none}% {\global\setbox\b_scrn_comment_collect\hbox\bgroup \ifvoid\b_scrn_comment_collect\else \box\b_scrn_comment_collect \hskip\commentparameter\c!distance \fi - #content% + \box\b_scrn_comment_link \egroup} +\setvalue{\??commentlocation\s!unknown}% + {\ifvoid\b_scrn_comment_collect\else + \box\b_scrn_comment_collect + \fi} + \unexpanded\def\placecomments {\ifvoid\b_scrn_comment_collect\else \box\b_scrn_comment_collect @@ -529,6 +530,13 @@ %D Todo: like external figures, also search on path, %D although, they need to be present ar viewing time, so ... +\installcorenamespace{externalsoundtracks} + +\installsetuponlycommandhandler \??externalsoundtracks {externalsoundtracks} + +\setupexternalsoundtracks + [\c!option=] + \unexpanded\def\useexternalsoundtrack {\dodoubleargument\scrn_soundtrack_indeed} @@ -541,17 +549,11 @@ \def\checksoundtrack#tag% yet untested in mkiv (also move management to lua) {\iflocation \ctxcommand{insertsoundclip{ - tag = "#tag", - repeat = "\@@sdoption", % not entirely ok but works + tag = "#tag", + ["repeat"] = "\directexternalsoundtrackparameter\c!option", % todo: pass option as-is }}% \fi} -\unexpanded\def\setupexternalsoundtracks - {\dodoubleargument\getparameters[\??sd]} - -\setupexternalsoundtracks - [\c!option=] - %D Renderings (not yet tested in mkvi): % Todo: multiple instances and inheritance .. will be done when @@ -568,7 +570,7 @@ \def\setinternalrendering{\dodoubleempty \scrn_rendering_set} \def\scrn_rendering_use[#tag][#mime][#file][#option]% - {\ctxlua{interactions.renderings.register { + {\ctxcommand{registerrendering{ type = "external", label = "#tag", mime = "#mime", @@ -579,7 +581,7 @@ \def\scrn_rendering_set[#tag][#option]% {content} {\bgroup \dowithnextbox - {\ctxlua{interactions.renderings.register { + {\ctxcommand{registerrendering{ type = "internal", label = "#tag", mime = "IRO", % brrr @@ -591,28 +593,24 @@ \egroup}% \hbox} -\def\renderingtype #tag{\ctxlua{interactions.renderings.var("#tag","type")}} -\def\renderingoption#tag{\ctxlua{interactions.renderings.var("#tag","option")}} +\def\renderingtype #tag{\ctxcommand{renderingvar("#tag","type")}} +\def\renderingoption#tag{\ctxcommand{renderingvar("#tag","option")}} -\def\renderingwidth {8cm} % will become private -\def\renderingheight{6cm} % will become private +\newdimen\d_scrn_rendering_width \d_scrn_rendering_width 8cm +\newdimen\d_scrn_rendering_height \d_scrn_rendering_height 6cm -\unexpanded\def\definerenderingwindow - {\dodoubleempty\scrn_rendering_define_window} +\let\m_scrn_rendering_page\!!zerocount -\def\scrn_rendering_define_window[#tag][#settings]% - {\presetlocalframed[\??rw#tag]% - \getparameters - [\??rw#tag]% - [\c!openpageaction=,\c!closepageaction=,% - \c!width=\renderingwidth,\c!height=\renderingheight,% - #settings]} +\installcorenamespace{renderingwindow} -\unexpanded\def\setuprenderingwindow - {\dodoubleargument\scrn_rendering_setup_window} +\installframedcommandhandler \??renderingwindow {renderingwindow} \??renderingwindow -\def\scrn_rendering_setup_window[#tag]% - {\getparameters[\??rw#tag]} +\appendtoks + \letrenderingwindowparameter\c!openpageaction \empty + \letrenderingwindowparameter\c!closepageaction\empty + \setrenderingwindowparameter\c!width {\d_scrn_rendering_width }% + \setrenderingwindowparameter\c!height {\d_scrn_rendering_height}% +\to \everypresetrenderingwindow \unexpanded\def\placerenderingwindow {\dodoubleempty\scrn_rendering_place_window} @@ -622,31 +620,32 @@ \edef\currentrendering{\ifsecondargument#rendering\else#window\fi}% \doifelse{\renderingtype\currentrendering}{internal} % an object {\getobjectdimensions{IRO}\currentrendering - \edef\renderingheight{\the\dimexpr\objectheight+\objectdepth\relax}% - \edef\renderingwidth{\objectwidth}% - \dogetobjectreferencepage{IRO}\currentrendering\renderingpage}% - {\def\renderingheight{\vsize}% - \def\renderingwidth{\hsize}% - \def\renderingpage{\realpageno}}% + \d_scrn_rendering_height\dimexpr\objectheight+\objectdepth\relax + \d_scrn_rendering_width\objectwidth\relax + \dogetobjectreferencepage{IRO}\currentrendering\m_scrn_rendering_page}% + {\d_scrn_rendering_height\vsize + \d_scrn_rendering_width\hsize + \let\m_scrn_rendering_page\realpageno}% % create fall back if needed - \ifcsname\??rw#window\c!width\endcsname - \def\currentrenderingwindow{#window}% - \else + \edef\currentrenderingwindow{\namedrenderingwindowparameter{#window}\c!width}% stupid test, we need a proper one here + \ifx\currentrenderingwindow\empty \let\currentrenderingwindow\s!default - \definerenderingwindow[\currentrenderingwindow]% + \definerenderingwindow[\currentrenderingwindow]% why not global + \else + \edef\currentrenderingwindow{#window}% \fi -% todo -% \handlereferenceactions{\getvalue{\??rw\currentrenderingwindow\c!openpageaction }}\dosetuprenderingopenpageaction -% \handlereferenceactions{\getvalue{\??rw\currentrenderingwindow\c!closepageaction}}\dosetuprenderingclosepageaction - \localframed - [\??rw\currentrenderingwindow][\c!offset=\v!overlay]% + % todo: + % \handlereferenceactions{\renderingwindowparameter\c!openpageaction }\dosetuprenderingopenpageaction + % \handlereferenceactions{\renderingwindowparameter\c!closepageaction}\dosetuprenderingclosepageaction + \letrenderingwindowparameter\c!offset\v!overlay + \inheritedrenderingwindowframed {\vfill \ctxcommand{insertrenderingwindow { label = "\currentrendering", - width = \number\dimexpr\renderingwidth\relax, - height = \number\dimexpr\renderingheight\relax, + width = \number\d_scrn_rendering_width, + height = \number\d_scrn_rendering_height, option = "\renderingoption\currentrendering", - page = \number\renderingpage, + page = \number\m_scrn_rendering_page, }}\hfill}% \egroup} @@ -662,6 +661,8 @@ % %D \dorecurse{10}{\linkedlistelement[demo]{link \recurselevel} \page} % %D \stoptyping % +% \definesystemvariable {lk} % LinK +% % \installcommandhandler\??lk{linkedlist}\??lk % % \let\setupbutton\setuplinkedlists\setuplinkedlist |