% interface=en output=pdftex
% Time-stamp: <Mittwoch, 07 September 2005 16:25:40; crop.tex>
%

\setupcolors[state=start]

\def\limitatefirstline#1#2#3%
 {\hbox\bgroup\strut
  \setbox\scratchbox\hbox{#1}%
  \ifdim\wd\scratchbox>#2\relax
    \setbox\scratchbox\hbox{#3}%
    \hsize#2\relax
    \advance\hsize-\wd\scratchbox
    \setbox\scratchbox\vbox{\forgetall#1}%
    \setbox\scratchbox\vsplit\scratchbox to \lineheight
    \vbox{\unvbox\scratchbox}%
    #3%
  \else
    #1%
  \fi
  \egroup}

\def\CropSymbol{\red...}%

\starttext

\setupframed[offset=overlay, height=\struttotal, framecolor=lightgray]

\framed[width=8ex,background=color,backgroundcolor=black]{\white 8ex}
\framed{\limitatefirstline{\underbar{Text dummy}}{8ex}{\CropSymbol}}
\framed{\limitatetext{\underbar{Text dummy}}{8ex}{\CropSymbol}}

\blank

\framed[width=120pt,background=color,backgroundcolor=black]{\white 120 pt}
\framed{\limitatefirstline{\textbar \_\textcircumflex\texttilde \%\$\#\textbraceleft \textbraceright \textpm \copyright \registered \pi \textdegree <>\&}{120pt}{\CropSymbol}}

\blank

\framed[width=110pt,background=color,backgroundcolor=black]{\white 110 pt}
\framed{\limitatefirstline{\textbar \_\textcircumflex\texttilde \%\$\#\textbraceleft \textbraceright \textpm \copyright \registered \pi \textdegree <>\&}{110pt}{\CropSymbol}}
\framed{\limitatefirstline{This text is definitely too long to fit this frame.}{110pt}{\CropSymbol}}

\blank

\framed[width=100pt,background=color,backgroundcolor=black]{\white 100 pt}
\framed{\limitatefirstline{\textbar \_\textcircumflex\texttilde \%\$\#\textbraceleft \textbraceright \textpm \copyright \registered\space \pi \textdegree <>\&}{100pt}{\CropSymbol}}


\stoptext

%%% Local Variables:
%%% mode: context
%%% TeX-master: ""
%%% End:
