summaryrefslogtreecommitdiff
path: root/tex/context/base/attr-eff.mkiv
diff options
context:
space:
mode:
authorMarius <mariausol@gmail.com>2012-10-19 01:20:13 +0300
committerMarius <mariausol@gmail.com>2012-10-19 01:20:13 +0300
commit69d2352af4b60929b37fc49f3bdb263977016244 (patch)
treedb5eb11398e345dfa23b4c4500fb93575d2afb7c /tex/context/base/attr-eff.mkiv
parentc18f7cbe51449a611ea1819fedd9a4ff18529b7d (diff)
downloadcontext-69d2352af4b60929b37fc49f3bdb263977016244.tar.gz
stable 2012.05.30 11:26
Diffstat (limited to 'tex/context/base/attr-eff.mkiv')
-rw-r--r--tex/context/base/attr-eff.mkiv43
1 files changed, 21 insertions, 22 deletions
diff --git a/tex/context/base/attr-eff.mkiv b/tex/context/base/attr-eff.mkiv
index 43f575a7a..c5c94537c 100644
--- a/tex/context/base/attr-eff.mkiv
+++ b/tex/context/base/attr-eff.mkiv
@@ -17,39 +17,38 @@
\unprotect
-\installcorenamespace{effect}
+\gdef\dotriggereffect#1#2#3%
+ {\ctxcommand{triggereffect('#1',#2,\number\dimexpr#3\relax)}}
-\installcommandhandler \??effect {effect} \??effect
+\unexpanded\def\setupeffect
+ {\dodoubleargument\dosetupeffect}
-\setupeffect
- [\c!method=\v!none,
- \c!stretch=\zerocount,
- \c!rulethickness=\zeropoint,
- \c!alternative=\v!normal]
+\def\dosetupeffect[#1][#2]%
+ {\getparameters[\??et#1][#2]}
-\appendtoks
- \edef\p_method{\effectparameter\c!method}%
- \ifx\p_method\v!method
- \setuxvalue{\e!start\currenteffect}{\starteffect[#1]}%
- \setuxvalue{\e!stop \currenteffect}{\stopeffect}%
- \fi
-\to \everydefineeffect
+\unexpanded\def\defineeffect
+ {\dodoubleargument\dodefineeffect}
+
+\def\dodefineeffect[#1][#2]%
+ {\getparameters[\??et#1][\c!method=\v!none,\c!stretch=0,\c!rulethickness=\zeropoint,\c!alternative=\v!normal,#2]%
+ \doif{\getvalue{\??et#1\c!method}}\v!command
+ {\setugvalue{\e!start#1}{\starteffect[#1]}%
+ \setugvalue{\e!stop #1}{\stopeffect}}}
+
+% yes or no grouped
\unexpanded\def\starteffect[#1]%
- {\ctxcommand{triggereffect{
- alternative = "\namedeffectparameter{#1}\c!alternative",
- stretch = \number\namedeffectparameter{#1}\c!stretch,
- rulethickness = \number\dimexpr\namedeffectparameter{#1}\c!rulethickness\relax
- }}}
+ {\dotriggereffect
+ {\csname\??et#1\c!alternative \endcsname}%
+ {\csname\??et#1\c!stretch \endcsname}%
+ {\csname\??et#1\c!rulethickness\endcsname}}
\unexpanded\def\stopeffect % can be special
- {\ctxcommand{triggereffect()}} % v!normal 0 0
+ {\dotriggereffect\v!normal0\zeropoint}
\unexpanded\def\effect[#1]%
{\groupedcommand{\starteffect[#1]}{\stopeffect}}
-% yes or no grouped
-
\defineeffect [\v!inner] [\c!alternative=\v!inner,\c!rulethickness=.25pt]
\defineeffect [\v!outer] [\c!alternative=\v!outer,\c!rulethickness=.25pt]
\defineeffect [\v!both] [\c!alternative=\v!both, \c!rulethickness=.25pt]