]> gitweb.factorcode.org Git - factor.git/commitdiff
Improve LCD demo
authorSlava Pestov <slava@factorcode.org>
Tue, 26 Feb 2008 20:57:37 +0000 (14:57 -0600)
committerSlava Pestov <slava@factorcode.org>
Tue, 26 Feb 2008 20:57:37 +0000 (14:57 -0600)
extra/lcd/lcd.factor
extra/lcd/summary.txt [changed mode: 0644->0755]

index 605ac4cd59650e3c7facb857d68402234d10def9..c2eba8b7b69b63604ef44ab3611ae72cb221e74d 100755 (executable)
@@ -1,4 +1,6 @@
-USING: sequences kernel math io ;
+USING: sequences kernel math io calendar calendar.model
+arrays models namespaces ui.gadgets ui.gadgets.labels
+ui.gadgets.theme ui ;
 IN: lcd
 
 : lcd-digit ( row digit -- str )
@@ -6,14 +8,26 @@ IN: lcd
         "  _       _  _       _   _   _   _   _      "
         " | |  |   _| _| |_| |_  |_    | |_| |_|  *  "
         " |_|  |  |_  _|   |  _| |_|   | |_|   |  *  "
+        "                                            "
     } nth >r 4 * dup 4 + r> subseq ;
 
 : lcd-row ( num row -- string )
     [ swap lcd-digit ] curry { } map-as concat ;
 
 : lcd ( digit-str -- string )
-    3 [ lcd-row ] with map "\n" join ;
+    4 [ lcd-row ] with map "\n" join ;
 
-: lcd-demo ( -- ) "31337" lcd print ;
+: hh:mm:ss ( timestamp -- string )
+    {
+        timestamp-hour timestamp-minute timestamp-second
+    } get-slots >fixnum 3array [ pad-00 ] map ":" join ;
 
-MAIN: lcd-demo
+: <time-display> ( timestamp -- gadget )
+    [ hh:mm:ss lcd ] <filter> <label-control>
+    "99:99:99" lcd over set-label-string
+    monospace-font over set-label-font ;
+
+: time-window ( -- )
+    [ time get <time-display> "Time" open-window ] with-ui ;
+
+MAIN: time-window
old mode 100644 (file)
new mode 100755 (executable)
index 1b6436a..e477045
@@ -1 +1 @@
-7-segment numeric display demo
+7-segment LCD clock demo