diff --git a/extra/color-table/authors.txt b/extra/color-table/authors.txt new file mode 100644 index 0000000000..d4f5d6b3ae --- /dev/null +++ b/extra/color-table/authors.txt @@ -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 index 0000000000..69f754dce8 --- /dev/null +++ b/extra/color-table/color-table-tests.factor @@ -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 index 0000000000..13a516eaf1 --- /dev/null +++ b/extra/color-table/color-table.factor @@ -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 ; + +: ( -- table ) + named-colors human-sort + color-renderer + + 5 >>gap + COLOR: dark-gray >>column-line-color + 10 >>min-rows + 10 >>max-rows ; + +: color-table-demo ( -- ) + [ "Colors" open-window ] with-ui ; + +MAIN: color-table-demo \ No newline at end of file