factor/library/ui/labels.factor

25 lines
677 B
Factor

! Copyright (C) 2005 Slava Pestov.
! See http://factor.sf.net/license.txt for BSD license.
IN: gadgets
USING: generic hashtables io kernel lists math namespaces sdl
sequences styles ;
! A label gadget draws a string.
TUPLE: label text ;
C: label ( text -- label )
<empty-gadget> over set-delegate [ set-label-text ] keep ;
: label-size ( gadget text -- w h )
>r gadget-font r> size-string ;
M: label pref-size ( label -- w h )
dup label-text label-size ;
M: label draw-shape ( label -- )
[ dup gadget-font swap label-text ] keep
[ draw-string ] with-trans ;
: <styled-label> ( style text -- label )
<label> swap alist>hash over set-gadget-paint ;