factor/basis/ui/gadgets/labeled/labeled.factor

37 lines
1.1 KiB
Factor
Raw Normal View History

! Copyright (C) 2006, 2009 Slava Pestov, 2015 Nicolas Pénet.
! See http://factorcode.org/license.txt for BSD license.
USING: accessors kernel system ui.gadgets ui.gadgets.borders
ui.gadgets.labels ui.gadgets.packs ui.gadgets.tracks
ui.pens.gradient ui.pens.solid ui.theme ;
IN: ui.gadgets.labeled
TUPLE: labeled-gadget < track content ;
<PRIVATE
M: labeled-gadget focusable-child* content>> ;
! gradients don't work as backgrounds on windows, see #152 and #1397
: title-bar-interior ( -- interior )
os windows?
[ toolbar-background <solid> ]
[ title-bar-gradient <gradient> ]
if ;
: <title-bar> ( title -- title-bar )
>label [ t >>bold? ] change-font
{ 0 4 } <border> title-bar-interior >>interior ;
PRIVATE>
: <labeled-gadget> ( content title -- labeled )
vertical labeled-gadget new-track
swap <title-bar> f track-add
swap [ >>content ] [ 1 track-add ] bi ;
: <colored-labeled-gadget> ( content title color -- labeled )
[ <labeled-gadget> ] dip <solid> >>interior { 0 3 } >>gap ;
: <framed-labeled-gadget> ( content title color -- labeled )
<colored-labeled-gadget> labeled-border-color <solid> >>boundary ;