41 lines
1.1 KiB
Common Lisp
41 lines
1.1 KiB
Common Lisp
(require 'interface)
|
|
|
|
;; helper new button with text
|
|
(define (ui-add-button text)
|
|
(define b (ui-create-element "button" '((type "button"))))
|
|
(ui-set-html b text)
|
|
(ui-add b))
|
|
|
|
|
|
(define (panel )
|
|
(ui-clear)
|
|
(info-text "My rosetta application" "blue")
|
|
|
|
;; input field (checked for numeric)
|
|
(define f-input (ui-create-element "input" '((type number))))
|
|
(ui-set-value f-input 0)
|
|
(ui-add f-input)
|
|
(ui-on-focus f-input (lambda(e) (info-text "")))
|
|
|
|
;; Increment button
|
|
(define btn-inc (ui-add-button "Increment"))
|
|
(define (increment elem)
|
|
(define val (ui-get-numvalue f-input))
|
|
(if val ;; checked legal numeric
|
|
(ui-set-value f-input (1+ val))
|
|
(info-text "Need a number" "red")))
|
|
(ui-on-click btn-inc increment)
|
|
(ui-add btn-inc)
|
|
|
|
(define btn-random (ui-add-button "Random"))
|
|
(define (set-random elem)
|
|
(when (confirm "Really random?")
|
|
(ui-set-value f-input (random-prime 1000000))))
|
|
(ui-on-click btn-random set-random)
|
|
|
|
(ui-focus btn-inc)
|
|
(stdout-hide #t)
|
|
(stdin-hide #t)) ;; end panel
|
|
|
|
(panel)
|