Hi, I desperately need runtime defined colors (state dependent) for my macros. The macros are used with different graphic styles, which is the reason why I want to avoid any style dependent part inside them.
To give you an example. I need something like this \color[{\StateDependentColor[stateA=green,stateC=blue,whatever=yellow,...]}] If flag 'stateA' is true at runtime, then color 'green' is used (and so on; order is significant). I have written such a macro, but sadly it crashes when used inside \color or \definecolor. Tried to debug it, but this is my first experience with the trace commands (probably not the best example to start with). Sigh, still so much to learn.. :) Any hints are welcome. Regards, Peter
\setuppagenumber[state=stop] \setupcolors[state=start] \definecolor[colorA] [red] \definecolor[colorB] [green] \definecolor[colorC] [blue] \newconditional\CondA \newconditional\CondB \newconditional\CondC \unprotect \def\GetStateDependentColor[#1]% {\bgroup [EMAIL PROTECTED],B=,C=,#1]% \def\MYdocommand##1% {\doifdefined{Cond##1} % conditional is known.. {\expandafter\ifconditional\csname Cond##1\endcsname % ..AND true.. \edef\CurrentColor{\csname [EMAIL PROTECTED] \def\CurrentColor{}\fi \doifelsenothing\CurrentColor % ..AND a color is assigned \donefalse\donetrue}% \ifdone\CurrentColor\expandafter\quitcommalist\fi}% \processcommacommand[A,B,C]\MYdocommand % raw version does not work! why? \egroup} \protect \starttext \setfalse\CondA \settrue\CondB \settrue\CondC \tracingonline=1 %\tracingall=1 %\tracingmacros=1 %\tracingcommands=2 color is -\GetStateDependentColor[A=colorA,C=colorC]- % works so far %\tracingmacros=0 %\tracingall=0 % crashes %\tracingall=1 %\tracingmacros=1 %\tracingcommands=2 %\definecolor[testcolor][{\GetStateDependentColor[A=colorA,C=colorC]}] %\color[testcolor] %\color[{\GetStateDependentColor[A=colorA,C=colorC]}] %\expandafter\color\expandafter[\expandafter{\GetStateDependentColor[A=colorA,C=colorC]}] %\tracingall=0 TEST \stoptext
___________________________________________________________________________________ If your question is of interest to others as well, please add an entry to the Wiki! maillist : ntg-context@ntg.nl / http://www.ntg.nl/mailman/listinfo/ntg-context webpage : http://www.pragma-ade.nl / http://tex.aanhet.net archive : https://foundry.supelec.fr/projects/contextrev/ wiki : http://contextgarden.net ___________________________________________________________________________________