]> gitweb.factorcode.org Git - factor.git/commitdiff
Add color-table demo
authorSlava Pestov <slava@slava-pestovs-macbook-pro.local>
Fri, 20 Feb 2009 00:22:11 +0000 (18:22 -0600)
committerSlava Pestov <slava@slava-pestovs-macbook-pro.local>
Fri, 20 Feb 2009 00:22:11 +0000 (18:22 -0600)
extra/color-table/authors.txt [new file with mode: 0644]
extra/color-table/color-table-tests.factor [new file with mode: 0644]
extra/color-table/color-table.factor [new file with mode: 0644]

diff --git a/extra/color-table/authors.txt b/extra/color-table/authors.txt
new file mode 100644 (file)
index 0000000..d4f5d6b
--- /dev/null
@@ -0,0 +1 @@
+Slava Pestov
\ No newline at end of file
diff --git a/extra/color-table/color-table-tests.factor b/extra/color-table/color-table-tests.factor
new file mode 100644 (file)
index 0000000..69f754d
--- /dev/null
@@ -0,0 +1,4 @@
+! Copyright (C) 2009 Slava Pestov.
+! See http://factorcode.org/license.txt for BSD license.
+USING: tools.test color-table ;
+IN: color-table.tests
diff --git a/extra/color-table/color-table.factor b/extra/color-table/color-table.factor
new file mode 100644 (file)
index 0000000..13a516e
--- /dev/null
@@ -0,0 +1,43 @@
+! Copyright (C) 2009 Slava Pestov.
+! See http://factorcode.org/license.txt for BSD license.
+USING: kernel accessors combinators.smart sorting.human
+models colors.constants present
+ui ui.gadgets.tables ui.gadgets.scrollers ;
+IN: color-table
+
+! ui.gadgets.tables demo
+SINGLETON: color-renderer
+
+M: color-renderer filled-column
+    drop 0 ;
+
+M: color-renderer column-titles
+    drop { "Name" "Red" "Green" "Blue" } ;
+
+M: color-renderer row-columns
+    drop [
+        dup named-color
+        [ red>> present ]
+        [ green>> present ]
+        [ blue>> present ] tri
+    ] output>array ;
+
+M: color-renderer row-color
+    drop named-color ;
+
+M: color-renderer row-value
+    drop named-color ;
+
+: <color-table> ( -- table )
+    named-colors human-sort <model>
+    color-renderer
+    <table>
+        5 >>gap
+        COLOR: dark-gray >>column-line-color
+        10 >>min-rows
+        10 >>max-rows ;
+
+: color-table-demo ( -- )
+    [ <color-table> <scroller> "Colors" open-window ] with-ui ;
+
+MAIN: color-table-demo
\ No newline at end of file