21.17 Labelled Interface

ORIGIN '~beta/guienv/guienv';
LIB_DEF 'guienvutilslabelled' '../../lib';

INCLUDE '~beta/guienv/utils/group';
INCLUDE '~beta/guienv/utils/private/groupbody';

-- windowLib: attributes --

labelled: group
  (# 
     <<SLOT labelledLib:attributes>>;
     
     contentsType:< windowItem;  
     contents: @contentsType;
     
     labelHeight: 
       (# ts: ^textStyle;
       do private.theLabel.style->ts[];
       exit ts.lineHeight+3
       #);
     
     innerFrame:
       (# p: @Point; fr: @rectangle;
       do (3,labelHeight)->fr.topleft;
          size->p; (3,3)->p.subtract; p->fr.bottomright;
       exit fr
       #);
     
     open::<(# openContents:<
            (# doneInInner: @Boolean;
            do INNER;
               (if not doneInInner then
                   contents.open;
               if);
            #);
       do INNER;
          openContents;
          innerFrame->contents.frame;
          TRUE->contents.bindRight->contents.bindBottom;
       #);
  #)


21.17 Labelled Interface
© 1994-2002 Mjølner Informatics
[Modified: Friday January 21st 2000 at 8:41]