factor/library/ui/labels.factor

29 lines
929 B
Factor
Raw Normal View History

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
2005-03-01 22:11:08 -05:00
USING: generic kernel lists math namespaces sdl sdl-ttf stdio ;
2005-02-01 22:48:04 -05:00
2005-03-01 22:11:08 -05:00
! A label gadget draws a string.
2005-02-01 22:48:04 -05:00
TUPLE: label text delegate ;
2005-02-02 19:50:13 -05:00
C: label ( text -- )
2005-02-26 00:57:53 -05:00
<empty-gadget> over set-label-delegate
2005-02-02 19:50:13 -05:00
[ set-label-text ] keep ;
2005-03-01 22:11:08 -05:00
: update-rollover ( gadget -- )
dup dup my-hand hand-gadget child?
rollover? set-paint-property redraw ;
: <roll-label> ( text -- )
#! A label that shows an outline when the mouse is over it.
<label> 0 0 0 0 <roll-rect> <gadget> over set-label-delegate
dup [ update-rollover ] [ mouse-enter ] set-action
dup [ update-rollover ] [ mouse-leave ] set-action ;
2005-02-02 19:50:13 -05:00
M: label layout* ( label -- )
2005-02-11 19:09:48 -05:00
[ label-text dup shape-w swap shape-h ] keep resize-gadget ;
2005-02-01 22:48:04 -05:00
M: label draw-shape ( label -- )
2005-03-01 22:11:08 -05:00
dup label-delegate draw-shape
2005-02-27 23:17:41 -05:00
dup shape-pos [ label-text draw-shape ] with-trans ;