summaryrefslogtreecommitdiff
path: root/tex/context/base/colo-ini.tex
diff options
context:
space:
mode:
Diffstat (limited to 'tex/context/base/colo-ini.tex')
-rw-r--r--tex/context/base/colo-ini.tex83
1 files changed, 71 insertions, 12 deletions
diff --git a/tex/context/base/colo-ini.tex b/tex/context/base/colo-ini.tex
index 1e2157ea9..779479681 100644
--- a/tex/context/base/colo-ini.tex
+++ b/tex/context/base/colo-ini.tex
@@ -351,6 +351,39 @@
% {\showmessage\m!colors3{#1}\empty}}%
% \unexpanded\setvalue{#1}{\color[#1]}} % \unexpanded toegevoegd
+% \def\dododefinecolor#1#2#3#4[#5][#6]% #2==set(g)value #3==set[e|x]value
+% {#1\addtocommalist{#5}\colorlist % optional
+% \doifassignmentelse{#6}
+% {\@@resetcolorparameters
+% \getparameters[\??cl @@][#6]%
+% \ifx\@@cl@@h\empty
+% \doifelse{\@@cl@@r\@@cl@@g\@@cl@@b}{\@@cl@@z\@@cl@@z\@@cl@@z}
+% {\doifelse{\@@cl@@c\@@cl@@m\@@cl@@y\@@cl@@k}{\@@cl@@z\@@cl@@z\@@cl@@z\@@cl@@z}
+% {\doifelse\@@cl@@s\@@cl@@z
+% {\showmessage\m!colors8{{[#6]},#5}%
+% #3{\??cr#5}{\colorZpattern}}
+% {#3{\??cr#5}{\colorSpattern}}}
+% {#3{\??cr#5}{\colorCpattern}}}
+% {#3{\??cr#5}{\colorRpattern}}%
+% \else
+% \setxvalue{\??cr#5}{\colorHpattern}%
+% \fi
+% % new: e=external spot color name
+% \ifx\@@cl@@e\empty \else
+% \doregisterspotcolorname{#5}\@@cl@@e
+% \fi}
+% {\doifdefinedelse{\??cr#6}
+% {\doifelse{#5}{#6}
+% {% this way we can freeze \definecolor[somecolor][somecolor]
+% % and still prevent cyclic definitions
+% \iffreezecolors#3{\??cr#5}{\getvalue{\??cr#6}}\fi}
+% {\iffreezecolors\@EA#3\else\@EA#2\fi
+% {\??cr#5}{\getvalue{\??cr#6}}}}
+% {\showmessage\m!colors3{#5 (def)}}}%
+% \ifcase#4\or
+% \unexpanded#2{#5}{\switchtocolor[#5]}% \unexpanded toegevoegd
+% \fi}
+
\def\dododefinecolor#1#2#3#4[#5][#6]% #2==set(g)value #3==set[e|x]value
{#1\addtocommalist{#5}\colorlist % optional
\doifassignmentelse{#6}
@@ -372,18 +405,30 @@
\ifx\@@cl@@e\empty \else
\doregisterspotcolorname{#5}\@@cl@@e
\fi}
- {\doifdefinedelse{\??cr#6}
- {\doifelse{#5}{#6}
- {% this way we can freeze \definecolor[somecolor][somecolor]
- % and still prevent cyclic definitions
- \iffreezecolors#3{\??cr#5}{\getvalue{\??cr#6}}\fi}
- {\iffreezecolors\@EA#3\else\@EA#2\fi
- {\??cr#5}{\getvalue{\??cr#6}}}}
- {\showmessage\m!colors3{#5 (def)}}}%
+ {\doifelsenothing\currentpalet
+ \donefalse
+ {\doifdefinedelse{\??cr\currentpalet#6}\donetrue\donefalse}
+ \ifdone
+ \doifnot{#5}{#6}
+ {#2{\??cr#5}{\paletcolorspec{#6}}}%
+ \else
+ \doifdefinedelse{\??cr#6}
+ {\doifelse{#5}{#6}
+ {% this way we can freeze \definecolor[somecolor][somecolor]
+ % and still prevent cyclic definitions
+ \iffreezecolors#3{\??cr#5}{\getvalue{\??cr#6}}\fi}
+ {\iffreezecolors\@EA#3\else\@EA#2\fi
+ {\??cr#5}{\getvalue{\??cr#6}}}}
+ {\showmessage\m!colors3{#5 (def)}}%
+ \fi}%
\ifcase#4\or
\unexpanded#2{#5}{\switchtocolor[#5]}% \unexpanded toegevoegd
\fi}
+\def\paletcolorspec#1%
+% {\executeifdefined{\??cr\currentpalet#1}{\executeifdefined{\??cr#1}\empty}}
+ {\getvalue{\??cr\currentpalet#1}}
+
%D Hex color support is not enabled by default. You need to say \setupcolor
%D [hex] to get this working.
@@ -2257,10 +2302,16 @@
{\doifvaluesomething{\??pa#1}
{\setevalue{\??pa#1}{\getvalue{\??pa#1},}}%
\setevalue{\??pa#1}{\getvalue{\??pa#1}##1}%
- \doifdefinedelse{\??cr##2}
- {\iffreezecolors\@EA\setevalue\else\@EA\setvalue\fi
- {\??cr#1:##1}{\getvalue{\??cr##2}}}
- {\letvalue{\??cr#1:##1}\colorXpattern}}%
+ \doifassignmentelse{##2}
+ {% == \definepalet[test][xx={y=.4}]
+ \definecolor[\??pa#1:##1][##2]%
+ \iffreezecolors\@EA\setevalue\else\@EA\setvalue\fi
+ {\??cr#1:##1}{\getvalue{\??cr\??pa#1:##1}}}
+ {% == \definepalet[test][xx=green]
+ \doifdefinedelse{\??cr##2}
+ {\iffreezecolors\@EA\setevalue\else\@EA\setvalue\fi
+ {\??cr#1:##1}{\getvalue{\??cr##2}}}
+ {\letvalue{\??cr#1:##1}\colorXpattern}}}%
\def\dododefinepalet##1%
{\dodododefinepalet[##1]}%
\processcommalist[#2]\dododefinepalet}
@@ -2273,6 +2324,14 @@
{\getcommacommandsize[\getvalue{\??pa\??pa#1}]%
\edef\paletsize{\number\commalistsize}}
+%D Instead of refering to colors, one can also directly specify
+%D a color:
+%D
+%D \starttyping
+%D \definepalet[test][xx=green]
+%D \definepalet[test][xx={y=.4}]
+%D \stoptyping
+
%D \macros
%D {setuppalet}
%D