diff options
Diffstat (limited to 'tex/context/base/x-res-50.mkiv')
-rw-r--r-- | tex/context/base/x-res-50.mkiv | 427 |
1 files changed, 427 insertions, 0 deletions
diff --git a/tex/context/base/x-res-50.mkiv b/tex/context/base/x-res-50.mkiv new file mode 100644 index 000000000..f29b1d61e --- /dev/null +++ b/tex/context/base/x-res-50.mkiv @@ -0,0 +1,427 @@ +%D \module +%D [ file=x-res-50, +%D version=2004.02.18, +%D title=\CONTEXT\ Style File, +%D subtitle=Multimedia Presentation, +%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 This is a preliminary module, using a preliminary xml media format that +%D looks as follows (record is embedded in resource library element): +%D +%D \starttyping +%D <rl:mediaclip label="sample 1"> +%D <rl:name>Sample One</rl:name> +%D <rl:mime>application/x-shockwave-flash</rl:mime> +%D <rl:file>http://localhost/mb.swf</rl:file> +%D <rl:width>8cm</rl:width> +%D <rl:height>6cm</rl:height> +%D <rl:text>Nothing special to be said.</rl:text> +%D <rl:picture>cow.pdf</rl:picture> +%D </rl:mediaclip> +%D +%D <rl:mediaclip label="sample 2"> +%D <rl:name>Sample Two</rl:name> +%D <rl:mime>audio/mpeg</rl:mime> +%D <rl:file>mb.mp3</rl:file> +%D <rl:picture>mb.jpg</rl:picture> +%D </rl:mediaclip> +%D \stoptyping +%D +%D \starttyping +%D texexec --pdf --use=med-show yourfile.xml +%D \stoptyping +%D +%D Bonus: +%D +%D \starttyping +%D --arg="url=http://localhost:8881/e:/media" +%D \stoptyping + +% output=pdftex + +% \nopdfcompression + +% bugs in recognizing embedded stream cq. player +% bugs in layers + hide/vide +% bugs in save javascripts +% bugs all over the place + +% in principe kan menu overal hetzelfde zijn als we via JS per pagina de clip var zetten, +% hoewel, misschien zal het menu gaan afhangen van de soort clip + +% viewerlayer (eigenschap) aan framed en layer + +\usemodule[meta-dum] \usemodule[contml] \autoXMLnamespace [context] + +\doifelsevariable{environment}{url} + {\setvariables[mediaclip][url=\getvariable{environment}{url}/]} + {\setvariables[mediaclip][url=]} + +\startmode [silent] + + \setvariables[mediaclip:option][start=] + +\stopmode + +\startnotmode [silent] + + \setvariables[mediaclip:option][start=auto] + +\stopnotmode + +\chardef\XMLtokensreduction=1 \dontcomplain % \showframe \pdfcompresslevel=0 + +\setuppapersize + [S6][S6] + +\definemeasure [GapSize] [\dimexpr( 15pt)] +\definemeasure [EdgeWidth] [\dimexpr(100pt)] +\definemeasure [TextWidth] [\dimexpr(.5\textwidth)] +\definemeasure [RenderingWidth] [\dimexpr(\textwidth)] +\definemeasure [RenderingHeight] [\dimexpr(\textheight)] + +% \XMLflush{rl:ratio}\dimexpr(.75\textwidth), + +\setuplayout + [backspace=\measure{GapSize}, + topspace=\measure{GapSize}, + header=0pt, + footer=0pt, + margin=0pt, + edgedistance=2\measure{GapSize}, + rightedge=\measure{EdgeWidth}, + bottomdistance=2\measure{GapSize}, + bottom=2\measure{GapSize}, + height=fit, + width=fit] + +\setupinteraction + [state=start, + color=lightgray, + contrastcolor=lightgray, + openaction=PresetFields, + closeaction=ForgetChanges, + menu=on, + click=no] + +\setupinteractionscreen + [option=max] + +\setupcolors + [state=start] + +\usetypescript + [palatino][texnansi] + +\setupbodyfont + [palatino] + +\definecolor[darkgray] [s=.2] +\definecolor[mediumgray][s=.5] +\definecolor[lightgray] [s=.8] +\definecolor[transgray] [s=1,t=.9,a=1] + +\setupbackgrounds + [page] + [backgroundoffset=\measure{GapSize}, + background={color,pagebutton}, + backgroundcolor=black] + +\definelayer + [main] + [width=\textwidth, + height=\textheight] + +\definelayer + [extra] + [width=\rightedgewidth, + height=\bottomheight] + +\setupbackgrounds + [text] + [backgroundoffset=0pt, + background=main] + +\setupbackgrounds + [bottom][rightedge] + [backgroundoffset=0pt, + background=extra] + +% java scripts + +\startJSpreamble {handy} used now + + function ForgetChanges () + { this.dirty = false } + + function PresetFields () + { this.syncAnnotScan() } + +\stopJSpreamble + +\definereference[PresetFields] [JS(PresetFields)] +\definereference[ForgetChanges][JS(ForgetChanges)] + +% layers + +\defineviewerlayer [menulayer] [title=menulayer] +\defineviewerlayer [textlayer] [title=textlayer,state=stop] +\defineviewerlayer [datalayer] [title=datalayer,state=stop] + +\setupfield + [rollbutton] + [fieldlayer=menulayer] + +\setupfield + [rollbutton] + [option=auto] + +\definepalet + [rollover] + [n=darkgray, + r=lightgray, + d=darkgray] + +% list + +\definelist + [clips] + [expansion=yes, + criterium=text, + alternative=f] + +% navigation + +\defineoverlay[pagebutton][\overlaybutton{HideLayer{textlayer},HideLayer{datalayer},ToggleLayer{menulayer}}] +\defineoverlay[textbutton][\overlaybutton{HideLayer{textlayer},HideLayer{datalayer}}] +\defineoverlay[databutton][\overlaybutton{HideLayer{textlayer},HideLayer{datalayer}}] + +% clips + +\defineXMLenvironment + [rl:mediaclip] + {\setups[mediaclip:start]} + {\setups[mediaclip:stop]} + +\newcounter\MediaClip + +\startsetups[mediaclip:start] + + \bgroup \startXMLignore + + % no \startstandardmakeup here since we need the dsta in the menuconstruction + + \defineXMLsave [rl:name] + \defineXMLsave [rl:visualization] + \defineXMLsave [rl:file] + \defineXMLsave [rl:mime] + \defineXMLsave [rl:picture] [backgroundcolor=lightgray] + + \defineXMLsavecontent [rl:text] {No additional info.} + \defineXMLsavecontent [rl:width] {\measure{RenderingWidth}} + \defineXMLsavecontent [rl:height] {\measure{RenderingHeight}} + \defineXMLsavecontent [rl:aspect] {1} + +\stopsetups + +\startsetups[mediaclip:stop] + + \startstandardmakeup + + \doifXMLdataelse{rl:file} + {\setups[mediaclip:file:yes]} + {} + + \doifXMLdataelse{rl:picture} + {\doifelse{\XMLflush{rl:picture}}{self} + {\setups[mediaclip:picture:self]} + {\setups[mediaclip:picture:yes]}} + {\setups[mediaclip:picture:no]} + + \doifXMLdata{rl:text} + {\setups[mediaclip:text]} + + \setlayerframed + [extra] + [preset=rightbottom] + [frame=off,offset=overlay,width=fit,background=databutton,align=left] + {\startviewerlayer[datalayer]\setups[mediaclip:data]\stopviewerlayer} + + \doifXMLdataelse{rl:name} + {\writetolist[clips]{}{\XMLflush{rl:name}}} + {\writetolist[clips]{}{\XMLpar{rl:mediaclip}{label}{unknown}}} + + \stopstandardmakeup + + \stopXMLignore \egroup + +\stopsetups + +\setuptabulate + [before=, + after=] + +\def\rlCleanupFileName#1% + {\bgroup + \def\cleanup##1##2{\ifnum##1##2=20 \space\else\char\octnumber{##1##2}\fi}% + \defineactivecharacter 37 {\cleanup}% + \scantokens{#1}% + \egroup} + +\startsetups[mediaclip:data] + + \noindent \buttonframed + [framecolor=lightgray, + foregroundcolor=lightgray] + {\bf\expanded{\rlCleanupFileName{\XMLflush{rl:file}}}} + + \vskip.75\measure{GapSize} + + \noindent \buttonframed + [framecolor=lightgray, + foregroundcolor=lightgray] + {\bf\XMLflush{rl:mime}} + +\stopsetups + +\startsetups[mediaclip:picture:self] + + \definerenderingwindow + [mediaclip] + [width=\XMLflush{rl:width}, + height=\XMLflush{rl:height}, + frame=off, + openpageaction=StartCurrentRendering, + closepageaction=StopCurrentRendering] + + \setlayer + [main] + {\placerenderingwindow[mediaclip][mediaclip-\MediaClip]} + +\stopsetups + +\startsetups[mediaclip:picture:yes] + + \setlayer + [main] + {\externalfigure + [\XMLflush{rl:picture}] + [background=color, + backgroundcolor=\XMLpar{rl:picture}{backgroundcolor}{lightgray}, + factor=max, + width=\XMLflush{rl:width}, + height=\XMLflush{rl:height}]} + +\stopsetups + +\startsetups[mediaclip:picture:no] + + \setlayer + [main] + {\externalfigure + [dummy] + [width=\XMLflush{rl:width}, + height=\XMLflush{rl:height}]} + +\stopsetups + +\startsetups[mediaclip:file:yes] + + \doglobal\increment\MediaClip + + \useexternalrendering + [mediaclip-\MediaClip] + [\XMLflush{rl:mime}] + [\getvariable{mediaclip}{url}\XMLflush{rl:file}] + [\getvariable{mediaclip:option}{start}] + +\stopsetups + +\defineinteractionmenu + [navigation] [right] + +\defineinteractionmenu + [control] [bottom] + +\setupinteractionmenu + [navigation,control] + [state=start, + frame=on, + middle=\hskip.5\measure{GapSize}, + inbetween=\vskip.5\measure{GapSize}] + +\setupinteractionmenu + [right,bottom] + [distance=overlay] + +\startinteractionmenu [navigation] + \rob [HideLayer{textlayer},FirstPage] First Page \\ + \rob [HideLayer{textlayer},PreviousPage] Previous Page \\ + \rob [HideLayer{textlayer},NextPage] Next Page \\ + \rob [HideLayer{textlayer},LastPage] Last Page \\ + \rob [HideLayer{textlayer},clips] List Of Clips \\ + \rob [ForgetChanges,CloseDocument] Close Document \\ +\stopinteractionmenu + +\startinteractionmenu [control] + \rob [StartRendering{mediaclip-\MediaClip}] Start \\ + \rob [StopRendering{mediaclip-\MediaClip}] Stop \\ + \rob [PauseRendering{mediaclip-\MediaClip}] Pause \\ + \rob [ResumeRendering{mediaclip-\MediaClip}] Resume \\ + \rob [ToggleLayer{datalayer}] Info \\ + \doifXMLdata{rl:text}{\rob [HideLayer{datalayer},ToggleLayer{textlayer}] Text \\} +\stopinteractionmenu + +\startsetups[mediaclip:text] + + \setlayer + [extra] + [preset=rightbottom] + {\startviewerlayer[textlayer] + \framed + [align=normal, + frame=off, + width=\measure{TextWidth}, + foregroundcolor=darkgray, + background={color,textbutton}, + backgroundcolor=lightgray] + {\XMLflush{rl:text}} + \stopviewerlayer} + +\stopsetups + +\setupcolors[textcolor=lightgray] + +\startsetups [library:start] + + \starttext + + \setupinteractionmenu[control][state=stop] + + \title[clips]{List of Media Clips} + + \placelist[clips] \page + + \setupinteractionmenu[control][state=start] + +\stopsetups + +\startsetups [library:stop] + + \stoptext + +\stopsetups + +\defineXMLenvironment [rl:resourcelibrary] + {\setups[library:start]} + {\setups[library:stop]} + +\doifelsenothing{\inputfilename} + {\processXMLfile{mediaclient.xml}} + {\processXMLfile{\inputfilename}} |