diff options
author | Marius <mariausol@gmail.com> | 2012-10-19 01:20:13 +0300 |
---|---|---|
committer | Marius <mariausol@gmail.com> | 2012-10-19 01:20:13 +0300 |
commit | 69d2352af4b60929b37fc49f3bdb263977016244 (patch) | |
tree | db5eb11398e345dfa23b4c4500fb93575d2afb7c /tex/context/base/scrn-wid.mkvi | |
parent | c18f7cbe51449a611ea1819fedd9a4ff18529b7d (diff) | |
download | context-69d2352af4b60929b37fc49f3bdb263977016244.tar.gz |
stable 2012.05.30 11:26
Diffstat (limited to 'tex/context/base/scrn-wid.mkvi')
-rw-r--r-- | tex/context/base/scrn-wid.mkvi | 125 |
1 files changed, 63 insertions, 62 deletions
diff --git a/tex/context/base/scrn-wid.mkvi b/tex/context/base/scrn-wid.mkvi index 9b3f0cb78..2b75f83cd 100644 --- a/tex/context/base/scrn-wid.mkvi +++ b/tex/context/base/scrn-wid.mkvi @@ -421,7 +421,7 @@ \doifassignmentelse{#title} {\setupcurrentcomment[#title]} {\setupcurrentcomment[\c!title=#title,#settings]}% - \unexpanded\def\scrn_comment_stop{\scrn_comment_inject\egroup}% + \def\scrn_comment_stop{\scrn_comment_inject\egroup}% \grabbufferdatadirect\v!comment{\e!start\currentcomment}{\e!stop\currentcomment}} \def\scrn_comment_start_ignore @@ -432,7 +432,7 @@ \installcorenamespace{commentmethods} -\unexpanded\def\scrn_comment_inject +\def\scrn_comment_inject {\expandcheckedcsname\??commentmethods{\commentparameter\c!method}\v!normal} %D Beware: comments symbols don't scale in acrobat (cf. spec but somewhat @@ -476,34 +476,35 @@ \wd\b_scrn_comment_link\currentcommentwidth \ht\b_scrn_comment_link\currentcommentheight \dp\b_scrn_comment_link\currentcommentdepth - \expandcheckedcsname\??commentlocation{\commentparameter\c!location}\s!unknown} + \scrn_comment_place} \setvalue{\??commentmethods\v!hidden}% {} % todo: dedicated margin classes -\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}% +\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% {\global\setbox\b_scrn_comment_collect\hbox\bgroup \ifvoid\b_scrn_comment_collect\else \box\b_scrn_comment_collect \hskip\commentparameter\c!distance \fi - \box\b_scrn_comment_link + #content% \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 @@ -528,13 +529,6 @@ %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} @@ -547,11 +541,17 @@ \def\checksoundtrack#tag% yet untested in mkiv (also move management to lua) {\iflocation \ctxcommand{insertsoundclip{ - tag = "#tag", - ["repeat"] = "\directexternalsoundtrackparameter\c!option", % todo: pass option as-is + tag = "#tag", + repeat = "\@@sdoption", % not entirely ok but works }}% \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 +568,7 @@ \def\setinternalrendering{\dodoubleempty \scrn_rendering_set} \def\scrn_rendering_use[#tag][#mime][#file][#option]% - {\ctxcommand{registerrendering{ + {\ctxlua{interactions.renderings.register { type = "external", label = "#tag", mime = "#mime", @@ -579,7 +579,7 @@ \def\scrn_rendering_set[#tag][#option]% {content} {\bgroup \dowithnextbox - {\ctxcommand{registerrendering{ + {\ctxlua{interactions.renderings.register { type = "internal", label = "#tag", mime = "IRO", % brrr @@ -591,24 +591,28 @@ \egroup}% \hbox} -\def\renderingtype #tag{\ctxcommand{renderingvar("#tag","type")}} -\def\renderingoption#tag{\ctxcommand{renderingvar("#tag","option")}} +\def\renderingtype #tag{\ctxlua{interactions.renderings.var("#tag","type")}} +\def\renderingoption#tag{\ctxlua{interactions.renderings.var("#tag","option")}} -\newdimen\d_scrn_rendering_width \d_scrn_rendering_width 8cm -\newdimen\d_scrn_rendering_height \d_scrn_rendering_height 6cm +\def\renderingwidth {8cm} % will become private +\def\renderingheight{6cm} % will become private -\let\m_scrn_rendering_page\!!zerocount +\unexpanded\def\definerenderingwindow + {\dodoubleempty\scrn_rendering_define_window} -\installcorenamespace{renderingwindow} +\def\scrn_rendering_define_window[#tag][#settings]% + {\presetlocalframed[\??rw#tag]% + \getparameters + [\??rw#tag]% + [\c!openpageaction=,\c!closepageaction=,% + \c!width=\renderingwidth,\c!height=\renderingheight,% + #settings]} -\installframedcommandhandler \??renderingwindow {renderingwindow} \??renderingwindow +\unexpanded\def\setuprenderingwindow + {\dodoubleargument\scrn_rendering_setup_window} -\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 +\def\scrn_rendering_setup_window[#tag]% + {\getparameters[\??rw#tag]} \unexpanded\def\placerenderingwindow {\dodoubleempty\scrn_rendering_place_window} @@ -618,32 +622,31 @@ \edef\currentrendering{\ifsecondargument#rendering\else#window\fi}% \doifelse{\renderingtype\currentrendering}{internal} % an object {\getobjectdimensions{IRO}\currentrendering - \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}% + \edef\renderingheight{\the\dimexpr\objectheight+\objectdepth\relax}% + \edef\renderingwidth{\objectwidth}% + \dogetobjectreferencepage{IRO}\currentrendering\renderingpage}% + {\def\renderingheight{\vsize}% + \def\renderingwidth{\hsize}% + \def\renderingpage{\realpageno}}% % create fall back if needed - \edef\currentrenderingwindow{\namedrenderingwindowparameter{#window}\c!width}% stupid test, we need a proper one here - \ifx\currentrenderingwindow\empty - \let\currentrenderingwindow\s!default - \definerenderingwindow[\currentrenderingwindow]% why not global + \ifcsname\??rw#window\c!width\endcsname + \def\currentrenderingwindow{#window}% \else - \edef\currentrenderingwindow{#window}% + \let\currentrenderingwindow\s!default + \definerenderingwindow[\currentrenderingwindow]% \fi - % todo: - % \handlereferenceactions{\renderingwindowparameter\c!openpageaction }\dosetuprenderingopenpageaction - % \handlereferenceactions{\renderingwindowparameter\c!closepageaction}\dosetuprenderingclosepageaction - \letrenderingwindowparameter\c!offset\v!overlay - \inheritedrenderingwindowframed +% todo +% \handlereferenceactions{\getvalue{\??rw\currentrenderingwindow\c!openpageaction }}\dosetuprenderingopenpageaction +% \handlereferenceactions{\getvalue{\??rw\currentrenderingwindow\c!closepageaction}}\dosetuprenderingclosepageaction + \localframed + [\??rw\currentrenderingwindow][\c!offset=\v!overlay]% {\vfill \ctxcommand{insertrenderingwindow { label = "\currentrendering", - width = \number\d_scrn_rendering_width, - height = \number\d_scrn_rendering_height, + width = \number\dimexpr\renderingwidth\relax, + height = \number\dimexpr\renderingheight\relax, option = "\renderingoption\currentrendering", - page = \number\m_scrn_rendering_page, + page = \number\renderingpage, }}\hfill}% \egroup} @@ -659,8 +662,6 @@ % %D \dorecurse{10}{\linkedlistelement[demo]{link \recurselevel} \page} % %D \stoptyping % -% \definesystemvariable {lk} % LinK -% % \installcommandhandler\??lk{linkedlist}\??lk % % \let\setupbutton\setuplinkedlists\setuplinkedlist |