]> gitweb.factorcode.org Git - factor.git/blob - library/ui/gadgets/labels.factor
6799f24ef426982f26e71a5a563f2b5478400a85
[factor.git] / library / ui / gadgets / labels.factor
1 ! Copyright (C) 2005, 2006 Slava Pestov.
2 ! See http://factorcode.org/license.txt for BSD license.
3 IN: gadgets-labels
4 USING: arrays freetype gadgets gadgets-theme
5 generic hashtables io kernel math namespaces opengl sequences
6 styles ;
7
8 ! A label gadget draws a string.
9 TUPLE: label text font color ;
10
11 C: label ( text -- label )
12     dup delegate>gadget
13     [ set-label-text ] keep
14     dup label-theme ;
15
16 : label-size ( gadget -- dim )
17     dup label-font lookup-font dup font-height >r
18     swap label-text string-width r> 2array ;
19
20 M: label pref-dim* label-size ;
21
22 : draw-label ( label -- )
23     dup label-color gl-color
24     dup label-font swap label-text draw-string ;
25
26 M: label draw-gadget* draw-label ;
27
28 : <label-control> ( model -- gadget )
29     "" <label> [ set-label-text ] <control> ;