! Copyright (C) 2005, 2009 Slava Pestov.
! See http://factorcode.org/license.txt for BSD license.
-USING: accessors arrays colors.constants combinators fonts fry
-kernel make math.functions models namespaces sequences splitting
-strings ui.baseline-alignment ui.gadgets ui.gadgets.tracks
-ui.pens.solid ui.render ui.text ui.theme.images ;
+USING: accessors arrays classes colors.constants combinators
+fonts fry kernel make math.functions models namespaces sequences
+splitting strings ui.baseline-alignment ui.gadgets
+ui.gadgets.tracks ui.pens.solid ui.render ui.text
+ui.theme.images ;
IN: ui.gadgets.labels
! A label gadget draws a string.
: ?string-lines ( string -- string/array )
CHAR: \n over member-eq? [ string-lines ] when ;
-ERROR: not-a-string object ;
-
M: label string<< ( string label -- )
[
- {
- { [ dup string-array? ] [ ] }
- { [ dup string? ] [ ?string-lines ] }
- [ not-a-string ]
- } cond
+ dup string-array? [
+ string check-instance ?string-lines
+ ] unless
] dip [ text<< ] [ relayout ] bi ; inline
: label-theme ( gadget -- gadget )