2005-02-01 22:48:04 -05:00
|
|
|
! Copyright (C) 2005 Slava Pestov.
|
|
|
|
! See http://factor.sf.net/license.txt for BSD license.
|
|
|
|
IN: gadgets
|
|
|
|
USING: generic kernel lists math namespaces sdl ;
|
|
|
|
|
|
|
|
! A label draws a text label, centered on the gadget's bounding
|
|
|
|
! box.
|
|
|
|
TUPLE: label text delegate ;
|
|
|
|
|
2005-02-02 19:50:13 -05:00
|
|
|
C: label ( text -- )
|
|
|
|
0 0 0 0 <rectangle> <gadget> over set-label-delegate
|
|
|
|
[ set-label-text ] keep ;
|
|
|
|
|
|
|
|
M: label layout* ( label -- )
|
2005-02-01 22:48:04 -05:00
|
|
|
[
|
|
|
|
dup label-text swap gadget-paint
|
|
|
|
[ font get lookup-font ] bind
|
|
|
|
swap size-string
|
|
|
|
] keep resize-gadget ;
|
|
|
|
|
2005-02-02 22:00:46 -05:00
|
|
|
M: label draw-shape ( label -- )
|
2005-02-01 22:48:04 -05:00
|
|
|
dup shape-x x get +
|
|
|
|
over shape-y y get +
|
|
|
|
rot label-text
|
|
|
|
>r font get lookup-font r>
|
|
|
|
color get 3unlist make-color
|
|
|
|
draw-string drop ;
|