summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/context/base/attr-ini.mkiv
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/tex/context/base/attr-ini.mkiv')
-rw-r--r--Master/texmf-dist/tex/context/base/attr-ini.mkiv74
1 files changed, 45 insertions, 29 deletions
diff --git a/Master/texmf-dist/tex/context/base/attr-ini.mkiv b/Master/texmf-dist/tex/context/base/attr-ini.mkiv
index b90d4976b00..87d06c48a44 100644
--- a/Master/texmf-dist/tex/context/base/attr-ini.mkiv
+++ b/Master/texmf-dist/tex/context/base/attr-ini.mkiv
@@ -20,6 +20,21 @@
\registerctxluafile{attr-ini}{1.001}
+%D This might move:
+
+\def\pushattribute#1%
+ {\global\advance\csname\??ae:\string#1\endcsname\plusone
+ \global\expandafter\mathchardef\csname\??ae:\string#1:\number\csname\??ae:\string#1\endcsname\endcsname\attribute#1}
+
+\def\popattribute#1%
+ {\attribute#1\csname\??ae:\string#1:\number\csname\??ae:\string#1\endcsname\endcsname
+ \global\advance\csname\??ae:\string#1\endcsname\minusone}
+
+\def\installattributestack#1%
+ {\expandafter\newcount\csname\??ae:\string#1\endcsname}
+
+%D For the moment we put this here (later it will move to where it's used):
+
\definesystemattribute[state]
\definesystemattribute[skip]
\definesystemattribute[penalty]
@@ -27,14 +42,16 @@
\definesystemattribute[color] \chardef\colorattribute \dogetattributeid{color}
\definesystemattribute[transparency] \chardef\transparencyattribute \dogetattributeid{transparency}
\definesystemattribute[background] \chardef\backgroundattribute \dogetattributeid{background}
-\definesystemattribute[overprint]
-\definesystemattribute[negative]
-\definesystemattribute[effect]
+\definesystemattribute[colorintent] \chardef\colorintentattribute \dogetattributeid{colorintent}
+\definesystemattribute[negative] \chardef\negativeattribute \dogetattributeid{negative}
+\definesystemattribute[effect] \chardef\effectattribute \dogetattributeid{effect}
\definesystemattribute[viewerlayer] \chardef\viewerlayerattribute \dogetattributeid{viewerlayer}
\definesystemattribute[layoutcomponent] \chardef\layoutcomponentattribute\dogetattributeid{layoutcomponent}
\definesystemattribute[reference] \chardef\referenceattribute \dogetattributeid{reference}
\definesystemattribute[destination] \chardef\destinationattribute \dogetattributeid{destination}
\definesystemattribute[graphicvadjust] \chardef\graphicvadjustattribute \dogetattributeid{graphicvadjust}
+\definesystemattribute[ruled] \chardef\ruledattribute \dogetattributeid{ruled}
+\definesystemattribute[shifted] \chardef\shiftedattribute \dogetattributeid{shifted}
% \definesystemattribute[ignore]
%
@@ -53,14 +70,14 @@
\newcount\currentcolormodel
-\def\setcolormodel#1%
+\def\dosetcolormodel#1%
{\currentcolormodel\ctxlua{tex.print(colors.setmodel('#1'))}%
- \dosetattribute{colormodel}{\the\currentcolormodel}}
+ \attribute\colormodelattribute\currentcolormodel}
-\setcolormodel{all}
+\dosetcolormodel{all}
\appendtoks
- \setcolormodel{all}% redundant?
+ \dosetcolormodel{all}% redundant?
\to \everyjob
\def\registerrgbcolor #1#2#3#4{\ctxlua{colors.register('#1','rgb' ,#2,#3,#4)}}
@@ -70,12 +87,12 @@
% transparency
\def\registertransparency#1#2#3%
- {\setevalue{(ts:#1)}{\dosetattribute{transparency}{\ctxlua{tex.print(transparencies.register(#2,#3))}}}}
+ {\setevalue{(ts:#1)}{\attribute\transparencyattribute\ctxlua{tex.write(transparencies.register(#2,#3))} }}
\def\sometransparencyswitch#1{\csname(ts:#1)\endcsname}
\def\sometransparencyswitch
- {\ctxlua{transparencies.enabled=true}%
+ {\ctxlua{transparencies.enable()}%
\gdef\sometransparencyswitch##1{\csname(ts:##1)\endcsname}%
\sometransparencyswitch}
@@ -84,24 +101,28 @@
% overprint
-\def\registeroverprint#1#2%
- {\setevalue{(os:#1)}{\dosetattribute{overprint}{\ctxlua{tex.print(overprints.register('#2'))}}}}
+\def\registercolorintent#1#2%
+ {\setevalue{(os:#1)}{\attribute\colorintentattribute\ctxlua{tex.write(colorintents.register('#2'))} }}
-\def\dotriggeroverprint
- {\ctxlua{overprints.enabled=true}%
- \gdef\dotriggeroverprint##1{\csname(os:##1)\endcsname}%
- \dotriggeroverprint}
+\def\dotriggercolorintent
+ {\ctxlua{colorintents.enable()}%
+ \gdef\dotriggercolorintent##1{\csname(os:##1)\endcsname}%
+ \dotriggercolorintent}
-\registeroverprint{knockout} {knockout}
-\registeroverprint{overprint}{overprint}
+\registercolorintent{knockout} {knockout}
+\registercolorintent{overprint}{overprint}
+
+\installattributestack\colorintentattribute
+
+\setevalue{(os:#\v!none}{\attribute\colorintentattribute\attributeunsetvalue} % does this work out ok?
% negative
\def\registernegative#1#2%
- {\setevalue{(ns:#1)}{\dosetattribute{negative}{\ctxlua{tex.print(negatives.register('#2'))}}}}
+ {\setevalue{(ns:#1)}{\attribute\negativeattribute\ctxlua{tex.write(negatives.register('#2'))} }}
\def\dotriggernegative
- {\ctxlua{negatives.enabled=true}%
+ {\ctxlua{negatives.enable()}%
\gdef\dotriggernegative##1{\csname(ns:##1)\endcsname}%
\dotriggernegative}
@@ -112,10 +133,10 @@
\def\registereffect#1#2#3% #2=stretch #3=rulethickness
{\setxvalue{(es:#1:#2:\number\dimexpr#3\relax)}%
- {\dosetattribute{effect}{\ctxlua{tex.print(effects.register('#1',#2,\number\dimexpr#3\relax))}}}}
+ {\attribute\effectattribute\ctxlua{tex.write(effects.register('#1',#2,\number\dimexpr#3\relax))} }}
\def\dotriggereffect
- {\ctxlua{effects.enabled=true}%
+ {\ctxlua{effects.enable()}%
\gdef\dotriggereffect##1##2##3%
{\ifcsname(es:##1:##2:\number\dimexpr##3\relax)\endcsname\else\registereffect{##1}{##2}{##3}\fi
\csname(es:##1:##2:\number\dimexpr##3\relax)\endcsname}%
@@ -129,20 +150,15 @@
% viewerlayers (will probably change a bit)
-% \def\registerviewerlayer#1#2% global !
-% {\setxvalue{(vl:#1)}{\dosetattribute{viewerlayer}{\ctxlua{tex.print(viewerlayers.register('#2'))}}}}
-%
-% \setevalue{(vl:)}{\doresetattribute{viewerlayer}}
-%
% needs to work over stopitemize grouping etc
\def\registerviewerlayer#1#2% global !
- {\setxvalue{(vl:#1)}{\global\dosetattribute{viewerlayer}{\ctxlua{tex.print(viewerlayers.register('#2'))}}}}
+ {\setxvalue{(vl:#1)}{\global\attribute\viewerlayerattribute\ctxlua{tex.write(viewerlayers.register('#2'))} }}
-\setevalue{(vl:)}{\global\doresetattribute{viewerlayer}}
+\setevalue{(vl:)}{\global\attribute\viewerlayerattribute\attributeunsetvalue}
\def\dotriggerviewerlayer
- {\ctxlua{viewerlayers.enabled=true}%
+ {\ctxlua{viewerlayers.enable()}%
\gdef\dotriggerviewerlayer##1{\csname(vl:##1)\endcsname}%
\dotriggerviewerlayer}