% output=pdftex modes=demo

% nice example:
%
% \usemodule[s-fnt-02]
%
% \usetypescriptfile[type-ghz.tex]
%
% \usetypescript [sans] [optima,optima-nova] [texnansi]
%
% \setvariables
%   [glyphs]
%   [name-1=OptimaLT,
%    name-2=OptimaNovaLT-Regular]
%
% \starttext
%
% \setups[show-glyphs]
%
% \stoptext
%
% see end, for other example (or run texexec s-fnt-02 --mode=demo)

\setvariables
  [glyphs]
  [frame=on,
   name-1=cmr10,
   name-2=cmtt10,
   map-1=,
   map-2=]

\setuppapersize[S4][S4]

\setupcolors[state=start]

\setuplayout[page]

\definecolor[Gray]     [s=.2]
\definecolor[ColorNone][s=1,t=.5,a=1]
\definecolor[ColorOne] [r=1,t=.5,a=1]
\definecolor[ColorTwo] [g=1,t=.5,a=1]
\definecolor[BackOne]  [b=1,t=.5,a=1]
\definecolor[BackTwo]  [r=1,g=1,t=.5,a=1]

\setupbackgrounds
  [page]
  [background=color,
   backgroundcolor=Gray]

\startsetups[show-glyphs]

  \doifnothing{\getvariable{glyphs}{name-1}}{\endinput}
  \doifnothing{\getvariable{glyphs}{name-2}}{\endinput}

  \doifsomething{\getvariable{glyphs}{map-1}}{\loadmapfile[\getvariable{glyphs}{map-1}]}
  \doifsomething{\getvariable{glyphs}{map-2}}{\loadmapfile[\getvariable{glyphs}{map-2}]}

  \definefont[FontOne][\getvariable{glyphs}{name-1} at 280pt]
  \definefont[FontTwo][\getvariable{glyphs}{name-2} at 280pt]

  \dostepwiserecurse{0}{255}{1}
    {\doiffontcharelse{\getvariable{glyphs}{name-1}}{\recurselevel}
       {\doiffontcharelse{\getvariable{glyphs}{name-2}}{\recurselevel}
          {\startstandardmakeup
           \boxrulewidth=2pt
           \setbox 0=\hbox{\white\ruledhbox{\FontOne \char\recurselevel}}
           \setbox 2=\hbox{\white\ruledhbox{\FontTwo \char\recurselevel}}
           \setbox 4=\hbox{\FontOne \ColorOne \char\recurselevel}
           \setbox 6=\hbox{\FontTwo \ColorTwo \char\recurselevel}
           \setbox 8=\hbox{\BackOne \ruledhbox{\FontOne \phantom{\char\recurselevel}}}
           \setbox10=\hbox{\BackTwo \ruledhbox{\FontTwo \phantom{\char\recurselevel}}}
           \vfill
           \doifelse{\getvariable{glyphs}{frame}}{on} % too many box calculations when off, but who cares
             {\hbox{\dostepwiserecurse{0}{10}{2}{\hbox to \hsize{\hss\box\recurselevel\hss}\hskip-\hsize}}}
             {\hbox{\dostepwiserecurse{4} {6}{2}{\hbox to \hsize{\hss\box\recurselevel\hss}\hskip-\hsize}}}
           \vfill
           \tttf
           \setstrut
           \hbox to \hsize{\strut\hss
             {\ColorOne \getvariable{glyphs}{name-1}}\quad
             {\ColorTwo \getvariable{glyphs}{name-2}}\quad
             {\ColorNone char \recurselevel        }\hss}
           \stopstandardmakeup}
          {}}
       {}}

\stopsetups

\doifnotmode{demo}{\endinput}

\starttext

  \setups[show-glyphs]

\stoptext