diff options
author | Taco Hoekwater <taco@elvenkind.com> | 2011-06-01 08:54:21 +0000 |
---|---|---|
committer | Taco Hoekwater <taco@elvenkind.com> | 2011-06-01 08:54:21 +0000 |
commit | d7ccb42582f85acf30568913610ccf4d602023fb (patch) | |
tree | 7292e3545a420676878e7451b68892d360c62cb6 /Master/texmf-dist/tex/context/base/attr-lay.mkiv | |
parent | 2d62a6fe9b80def59c392268022f1f9a2d6e358f (diff) |
commit context 2011.05.18
git-svn-id: svn://tug.org/texlive/trunk@22719 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/context/base/attr-lay.mkiv')
-rw-r--r-- | Master/texmf-dist/tex/context/base/attr-lay.mkiv | 106 |
1 files changed, 106 insertions, 0 deletions
diff --git a/Master/texmf-dist/tex/context/base/attr-lay.mkiv b/Master/texmf-dist/tex/context/base/attr-lay.mkiv new file mode 100644 index 00000000000..b1f3c944e46 --- /dev/null +++ b/Master/texmf-dist/tex/context/base/attr-lay.mkiv @@ -0,0 +1,106 @@ +%D \module +%D [ file=attr-lay, +%D version=2007.06.06, +%D title=\CONTEXT\ Attribute Macros, +%D subtitle=Viewerlayers, +%D author=Hans Hagen, +%D date=\currentdate, +%D copyright=PRAGMA-ADE] +%C +%C This module is part of the \CONTEXT\ macro||package and is +%C therefore copyrighted by \PRAGMA. See mreadme.pdf for +%C details. + +\writestatus{loading}{ConTeXt Attribute Macros / Viewerlayers} + +\unprotect + +\def\c!printable{printable} % todo + +\registerctxluafile{attr-lay}{1.001} + +% needs to work over stopitemize grouping etc + +\def\registerviewerlayer#1#2% global ! + {\setxvalue{(vl:#1)}{\global\attribute\viewerlayerattribute\ctxlua{tex.write(attributes.viewerlayers.register('#2'))} }} + +\setevalue{(vl:)}{\global\attribute\viewerlayerattribute\attributeunsetvalue} + +\def\dotriggerviewerlayer % move to lua + {\ctxlua{attributes.viewerlayers.enable()}% + \gdef\dotriggerviewerlayer##1{\csname(vl:##1)\endcsname}% + \dotriggerviewerlayer} + +\getparameters + [\??lr] + [\c!state=\v!start, + \c!title=, + \c!printable=\v!yes, + \c!scope=\v!local, % maybe global but needs checking with layout + \c!method=\v!none] + +\def\defineviewerlayer + {\dodoubleargument\dodefineviewerlayer} + +\def\dodefineviewerlayer[#1][#2]% document wide properties + {\begingroup + \getparameters[\??lr][#2]% + \ctxcommand{defineviewerlayer{ + tag = "#1", + title = "\@@lrtitle", + visible = "\@@lrstate", + editable = "\v!yes", + printable = "\@@lrprintable", + scope = "\@@lrscope" + }}% + \doif\@@lrmethod\v!command + {\setugvalue{\e!start#1}{\startviewerlayer[#1]}% + \setugvalue{\e!stop #1}{\stopviewerlayer }}% + \endgroup} + +\unexpanded\def\startviewerlayer[#1]{\ctxlua{attributes.viewerlayers.start("#1")}} % not grouped +\unexpanded\def\stopviewerlayer {\ctxlua{attributes.viewerlayers.stop()}} % not grouped +\unexpanded\def\viewerlayer [#1]{\groupedcommand{\startviewerlayer[#1]}{\stopviewerlayer}} % grouped + +% some day we will keep this at the lua end as the info is only needed there + +\let\currentviewerlayer\empty \newtoks\currentviewerlayertoks % soon we can set macros at the lua end + +\def\currentviewerlayer{\the\currentviewerlayertoks} + +\appendtoks + \let\currentviewerlayer\empty +\to \everypagebody + +% layout components are implemented rather directly (speed) + +\def\doinitializelayoutcomponent#1#2% + {\ctxcommand{defineviewerlayer{% this will move to the lua end i.e be merged with register + tag = "#1:#2", + title = "#1 #2", + visible = "\v!start", + editable = "\v!yes", + printable = "\v!yes" + }}% + \edef\layoutcomponentboxattribute{attr \viewerlayerattribute \ctxlua{tex.write(attributes.viewerlayers.register('#1:#2',true))}\relax}% + \expandafter\glet\csname\??ly>#1:#2\endcsname\layoutcomponentboxattribute} + +\def\dosetlayoutcomponentattribute#1#2% make this faster + {\expandafter\let\expandafter\layoutcomponentboxattribute\csname\??ly>#1:#2\endcsname + \ifx\layoutcomponentboxattribute\relax + \doinitializelayoutcomponent{#1}{#2}% get rid of { } + \fi} + +\def\doresetlayoutcomponentattribute + {\let\layoutcomponentboxattribute\empty} + +\let\setlayoutcomponentattribute \gobbletwoarguments +\let\resetlayoutcomponentattribute\relax +\let\layoutcomponentboxattribute \empty + +\def\showlayoutcomponents + {\ctxlua{attributes.viewerlayers.enable()}% + \let\setlayoutcomponentattribute \dosetlayoutcomponentattribute + \let\resetlayoutcomponentattribute\doresetlayoutcomponentattribute} + +\protect \endinput |