factor/demos/color-picker.factor

40 lines
1.1 KiB
Factor
Raw Permalink Normal View History

2006-11-26 20:36:17 -05:00
! Copyright (C) 2006 Slava Pestov.
! See http://factorcode.org/license.txt for BSD license.
IN: color-picker
USING: gadgets-sliders gadgets-labels gadgets models arrays
namespaces kernel math prettyprint sequences ;
! Simple example demonstrating the use of models.
: <color-slider> ( -- gadget )
<x-slider>
1 over set-slider-line
255 over set-slider-max ;
: <color-preview> ( model -- gadget )
<gadget> { 100 100 } over set-rect-dim
[ set-gadget-interior ] <control> ;
: <color-model> ( model -- model )
[ [ 256 /f ] map 1 add <solid> ] <filter> ;
: <color-sliders> ( -- model gadget )
[
<color-slider> dup , control-model
<color-slider> dup , control-model
<color-slider> dup , control-model
3array <compose>
] { } make make-pile 1 over set-pack-fill ;
: <color-picker> ( -- gadget )
{
{ [ <color-sliders> ] f f @top }
{ [ dup <color-model> <color-preview> ] f f @center }
{ [ [ unparse ] <filter> <label-control> ] f f @bottom }
} make-frame ;
2006-11-28 21:57:29 -05:00
PROVIDE: demos/color-picker ;
2006-11-26 20:36:17 -05:00
2006-11-28 21:57:29 -05:00
MAIN: demos/color-picker
2006-11-26 20:36:17 -05:00
<color-picker> "Color Picker" open-titled-window ;