]> gitweb.factorcode.org Git - factor.git/blob - extra/color-table/color-table.factor
0865dabcf7f17a69ae91fc6aa209102ef25e7654
[factor.git] / extra / color-table / color-table.factor
1 ! Copyright (C) 2009 Slava Pestov.
2 ! See http://factorcode.org/license.txt for BSD license.
3 USING: kernel accessors combinators.smart sorting.human
4 models colors.constants present sorting.slots
5 ui ui.gadgets.tables ui.gadgets.scrollers ;
6 IN: color-table
7
8 ! ui.gadgets.tables demo
9 SINGLETON: color-renderer
10
11 M: color-renderer filled-column
12     drop 0 ;
13
14 M: color-renderer column-titles
15     drop { "Name" "Red" "Green" "Blue" } ;
16
17 M: color-renderer row-columns
18     drop [
19         dup named-color
20         [ red>> present ]
21         [ green>> present ]
22         [ blue>> present ] tri
23     ] output>array ;
24
25 M: color-renderer row-color
26     drop named-color ;
27
28 M: color-renderer row-value
29     drop named-color ;
30
31 : <color-table> ( -- table )
32     named-colors { human<=> } sort-by <model>
33     color-renderer
34     <table>
35         5 >>gap
36         COLOR: dark-gray >>column-line-color
37         10 >>min-rows
38         10 >>max-rows ;
39
40 : color-table-demo ( -- )
41     [ <color-table> <scroller> "Colors" open-window ] with-ui ;
42
43 MAIN: color-table-demo