summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/context/base/scrn-wid.mkvi
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/tex/context/base/scrn-wid.mkvi')
-rw-r--r--Master/texmf-dist/tex/context/base/scrn-wid.mkvi135
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