summaryrefslogtreecommitdiff
path: root/tex/context/base/meta-imp-dum.mkiv
diff options
context:
space:
mode:
Diffstat (limited to 'tex/context/base/meta-imp-dum.mkiv')
-rw-r--r--tex/context/base/meta-imp-dum.mkiv123
1 files changed, 74 insertions, 49 deletions
diff --git a/tex/context/base/meta-imp-dum.mkiv b/tex/context/base/meta-imp-dum.mkiv
index a622d94f4..83fe12f09 100644
--- a/tex/context/base/meta-imp-dum.mkiv
+++ b/tex/context/base/meta-imp-dum.mkiv
@@ -59,7 +59,7 @@
% clip currentpicture to p ;
% \stopuseMPgraphic
-\startuseMPgraphic{placeholder}{width,height,reduction,color}
+\startuseMPgraphic{figure:placeholder}{width,height,reduction,color}
numeric w, h, d, r ; path p ;
if cmykcolor \MPvar{color} :
cmykcolor c, b ; b := (0,0,0,0)
@@ -82,66 +82,79 @@
clip currentpicture to p ;
\stopuseMPgraphic
+\defineoverlay
+ [figure:placeholder:graphic]
+ [\useMPgraphic
+ {figure:placeholder}%
+ {width=\figurewidth,%
+ height=\figureheight,%
+ reduction=\externalfigureparameter\c!reduction,%
+ color=placeholder:\the\c_grph_replacement_n}]
+
\definepalet
[placeholder]
[1=red,2=green,3=blue,4=cyan,5=magenta,6=yellow]
-% \newcounter \figurereplacementcycle
-
-\let\figurereplacementcycle\relax
+\newcount\c_grph_replacement_n
\setupexternalfigures
[\c!reduction=0,
\c!text=\v!yes]
-\let\normalexternalfigurereplacement\externalfigurereplacement
+\let\grph_include_replacement_saved\grph_include_replacement
-\unexpanded\def\externalfigurereplacement#1#2#3%
- {\getpaletsize[placeholder]%
- \ifx\figurereplacementcycle\relax
- \getrandomnumber \figurereplacementcycle \!!plusone \paletsize
- \globallet \figurereplacementcycle \figurereplacementcycle
+\unexpanded\def\grph_include_replacement#1#2#3%
+ {\begingroup
+ \getpaletsize[placeholder]%
+ \ifnum\c_grph_replacement_n=\zerocount
+ \getrandomnumber \m_grph_replacement_n\plusone\paletsize
+ \global\c_grph_replacement_n \m_grph_replacement_n\relax
\else
- \doglobal\increment\figurereplacementcycle
+ \global\advance\c_grph_replacement_n\plusone
\fi
- \ifnum\figurereplacementcycle>\paletsize
- \globallet\figurereplacementcycle\!!plusone
+ \ifnum\c_grph_replacement_n>\paletsize
+ \global\c_grph_replacement_n\plusone
\fi
- \defineoverlay
- [\s!dummy]
- [\useMPgraphic
- {placeholder}%
- {width=\figurewidth,
- height=\figureheight,
- reduction=\@@efreduction,
- color=placeholder:\figurereplacementcycle}]%
- \expanded{\localframed
- [\??ef]
+ \setupcurrentexternalfigure
[\c!width=\figurewidth,
\c!height=\figureheight,
\c!frame=\v!off,
\c!strut=\v!no,
- \c!background=\s!dummy,
- \c!foregroundcolor=\s!white]}%
- {\doif\@@eftext\v!yes
- {\infofont \setupinterlinespace \dohyphens % \nohyphens
- \edef\tempa{#1}\ifx\tempa\s!dummy\let\tempa\empty\fi
- \edef\tempb{#2}\ifx\tempb\s!dummy\let\tempb\empty\fi
- \edef\tempc{#3}\ifx\tempc\s!dummy\let\tempc\empty\fi
- \ifx\tempa\empty\else
- name: \expanded{\verbatimstring{#1}}\strut\endgraf
- \fi
- \ifx\tempb\empty\else
- \ifx\tempa\empty\ifx\tempc\empty\else file: \fi\else file: \fi
- \expanded{\verbatimstring{#2}}\strut\endgraf
- \fi
- \ifx\tempc\empty\else
- state: \expanded{\verbatimstring{#3}}\strut\endgraf
- \fi}}}
+ \c!background=figure:placeholder:graphic,
+ \c!foregroundcolor=\s!white]%
+ \doifelse{\externalfigureparameter\c!text}\v!yes
+ {\edef\m_graphics_text_a{#1}\edef\m_graphics_text_a{\ifx\m_graphics_text_a\s!dummy\else\detokenize\expandafter{\m_graphics_text_a}\fi}%
+ \edef\m_graphics_text_b{#2}\edef\m_graphics_text_b{\ifx\m_graphics_text_b\s!dummy\else\detokenize\expandafter{\m_graphics_text_b}\fi}%
+ \edef\m_graphics_text_c{#3}\edef\m_graphics_text_c{\ifx\m_graphics_text_c\s!dummy\else\detokenize\expandafter{\m_graphics_text_c}\fi}%
+ \infofont\setupinterlinespace\dohyphens
+ \inheritedexternalfigureframed{\directsetup{figure:placeholder:text}}}%
+ {\inheritedexternalfigureframed{}}%
+ \endgroup}
\unexpanded\def\dummyfigure
{\externalfigure[placeholder]}
+\startsetups figure:placeholder:text
+ \ifx\m_graphics_text_a\empty\else
+ \strut name: \m_graphics_text_a\par
+ \fi
+ \ifx\m_graphics_text_b\empty\else
+ \strut
+ \ifx\m_graphics_text_a\empty
+ \ifx\m_graphics_text_c\empty
+ \else
+ file:\space
+ \fi
+ \else
+ file:\space
+ \fi
+ \m_graphics_text_b\par
+ \fi
+ \ifx\m_graphics_text_c\empty\else
+ \strut state: \m_graphics_text_c\par
+ \fi
+\stopsetups
+
%D \starttyping
%D \externalfigure[mediashow.swf][comment={Alas, we have no nice preview},background=figure:comment]
%D \externalfigure[mediashow.swf][comment={Alas, we have no nice preview},background=figure:dummy]
@@ -151,7 +164,7 @@
\defineframed
[figurecomment]
[\c!background=\v!color,
- \c!backgroundcolor=\v!gray,
+ \c!backgroundcolor=\s!gray,
\c!frame=\v!off,
\c!foregroundstyle=\ttbf,
\c!align={\v!middle,\v!lohi},
@@ -160,8 +173,8 @@
\defineframed
[figuredummy]
- [\c!background=figure:placeholder,
- \c!foregroundcolor=white,
+ [\c!background=figure:dummy,
+ \c!foregroundcolor=\s!white,
\c!backgroundcolor=\v!gray,
\c!frame=\v!off,
\c!foregroundstyle=\ttbf,
@@ -170,18 +183,30 @@
\c!width=\figurewidth]
\defineoverlay
- [figure:placeholder]
- [\externalfigurereplacement{}{}{}]
+ [figure:dummy]
+ [\grph_include_replacement\empty\empty\empty]
\defineoverlay
[figure:comment]
- [\figurecomment{\@@efcomment}]
+ [\figurecomment{\externalfigureparameter\c!comment}]
\defineoverlay
[figure:dummy]
- [\figuredummy{\@@efcomment}]
+ [\figuredummy{\externalfigureparameter\c!comment}]
\setupexternalfigures
- [comment=]
+ [\c!comment=]
+
+\protect
+
+\continueifinputfile{meta-imp-dum.mkiv}
+
+\starttext
+
+ \externalfigure[whatever-missing]
+
+ \blank
+
+ \externalfigure[whatever-missing][width=2cm]
-\protect \endinput
+\stoptext