#!/usr/bin/newlisp

;; modified Norman's clock.lsp
;; needs only one process

(if (= ostype "Win32")
    (load (string (env "PROGRAMFILES") "/newlisp/guiserver.lsp"))
    (load "/usr/share/newlisp/guiserver.lsp"))

(gs:init) 

(gs:frame 'Hours 0 0 300 100 "hours")
(gs:label 'H " ")
(gs:set-font 'H "Mono Spaced" 64 "bold")
(gs:set-foreground 'H 1 1 1)
(gs:add-to 'Hours 'H)
(gs:set-visible 'Hours true)

(gs:frame 'Minutes 300 0 300 100 "minutes")
(gs:label 'M " ")
(gs:set-font 'M "Mono Spaced" 64 "bold")
(gs:set-foreground 'M 1 1 1)
(gs:add-to 'Minutes 'M)
(gs:set-visible 'Minutes true)

(gs:frame 'Seconds 600 0 300 100 "seconds")
(gs:label 'S " ")
(gs:set-font 'S "Mono Spaced" 64 "bold")
(gs:set-foreground 'S 1 1 1)
(gs:add-to 'Seconds 'S)
(gs:set-visible 'Seconds true)

(while (= (length (net-sessions)) 2) 
	(sleep 1000) 
	(gs:set-text 'S (date (date-value) 0 "%S") 0 10)
	(gs:set-background 'Seconds (random) (random) (random))
	(gs:set-text 'M (date (date-value) 0 "%M") 0 10)
	(gs:set-background 'Minutes (random) (random) (random))
	(gs:set-text 'H (date (date-value) 0 "%H") 0 10)
	(gs:set-background 'Hours (random) (random) (random))
)

(gs:listen) 



syntax highlighting with newLISP and syntax.cgi