Hi Hans,
How to pass the "SomeText" parameter ?

\setupbodyfont[pagella,11pt]

\setupcolors[state=start]

\defineframedtext
  [SomeText]
  [before={\blank},
   after={\blank},
   frame=off,
   background=MyFrame,
   width=\textwidth,
   height=fit,
   style=italic]

\startuseMPgraphic{MyFrame}
 path b;
 picture p;
 p := textext.rt("\white SomeText");
 p := p shifted (2BodyFontSize,OverlayHeight-ypart center p+.25ExHeight);
 b := boundingbox p leftenlarged .5EmWidth rightenlarged .5EmWidth;
 fill OverlayBox withcolor lightgray;
 fill b withcolor darkred;
 draw bottomboundary OverlayBox withpen pencircle scaled 1pt  withcolor darkred;
 draw topboundary OverlayBox withpen pencircle scaled 1pt  withcolor darkred;
 draw p;
 setbounds currentpicture to boundingbox currentpicture enlarged 2mm;
\stopuseMPgraphic

\defineoverlay
  [MyFrame]
  [\useMPgraphic{MyFrame}]

\starttext


\startSomeText{SomeText1}
\input knuth
\stopSomeText

\startSomeText{SomeText2}
\input knuth
\stopSomeText

\stoptext

Thanks
Fabrice

2016-07-26 12:34 GMT+02:00 Hans Hagen <pragma@wxs.nl>:
On 7/26/2016 10:18 AM, Fabrice Couvreur wrote:
Hello,
Hans and Wolfgang really helped me to create new environments with Metafun.
I think Hans continuous development Metafun. So my question is simple:
can we optimize this code?

in what sense ...

speed? not much to gain

correctness? mayhe use "lightgray" and "darkred" for consistency

typography? sure, but more a discussion topic at the ctx meeting

Thanks,
Fabrice

\setupbodyfont[pagella,11pt]

\setupcolors[state=start]

\defineframedtext
  [MyDefinition]
  [before={\blank},
   after={\blank},
   frame=off,
   background=MyFrame,
   width=\textwidth,
   height=fit,
   style=italic]

\definelabel
  [Définition]
  [headstyle=\bf\smallcaps]

\startuseMPgraphic{MyFrame}
 path b;
 picture p;
 p := textext.rt("\white\Définition");
 p := p shifted (2BodyFontSize,OverlayHeight-ypart center p+.25ExHeight);
 b := boundingbox p leftenlarged .5EmWidth rightenlarged .5EmWidth;
 fill OverlayBox withcolor \MPcolor{lightgray};
 fill b withcolor darkred;
 draw bottomboundary OverlayBox withpen pencircle scaled 1pt  withcolor
darkred;
 draw topboundary OverlayBox withpen pencircle scaled 1pt  withcolor
darkred;
 draw p;
 setbounds currentpicture to boundingbox currentpicture enlarged 2mm;
\stopuseMPgraphic

\defineoverlay
  [MyFrame]
  [\useMPgraphic{MyFrame}]

\starttext

\showframe

\startMyDefinition
\input knuth
\stopMyDefinition

\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  : http://foundry.supelec.fr/projects/contextrev/
wiki     : http://contextgarden.net
___________________________________________________________________________________



--

-----------------------------------------------------------------
                                          Hans Hagen | PRAGMA ADE
              Ridderstraat 27 | 8061 GH Hasselt | The Netherlands
       tel: 038 477 53 69 | www.pragma-ade.nl | www.pragma-pod.nl
-----------------------------------------------------------------
___________________________________________________________________________________
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  : http://foundry.supelec.fr/projects/contextrev/
wiki     : http://contextgarden.net
___________________________________________________________________________________