kegel/web/ctl.scm

56 lines
1.5 KiB
Scheme

;; Oblika parametra
(define-record-type parameter
(fields napis tip sprememba))
(define (poslji-vsem msg . args)
(if (> (length args) 0)
((js-eval "sendAll") msg args)
((js-eval "sendAll") msg)))
(console-log "poslji vsem" msg args)
(console-log ((js-eval "sendAll") msg args)))
;(js-eval "window" "sendAll" msg args))
;;;;;;;;;;;;;;;;;;;;;;;
;; Seznam parametrov ;;
;;;;;;;;;;;;;;;;;;;;;;;
(define parametri
(list
;; Kalibracija
(make-parameter
"kalibriraj"
"button"
(lambda (ev) (poslji-vsem "/ww/calibrate")))))
(define p-kontejner ($ "#ctl"))
(define (ustvari-element p)
(let ((vrstica (element-new '(tr)))
(napis (element-new `(td ,(parameter-napis p)))))
(case (parameter-tip p)
(("button")
(let ((gumb (element-new '(button " "))))
(element-append-child! vrstica napis)
(add-handler! gumb "click" (parameter-sprememba p))
(console-log gumb)
(element-append-child!
vrstica
(element-append-child! (element-new '(td)) gumb))
vrstica))
(else #f))))
(define (dodaj-parametre parametri)
(if (> (length parametri) 0)
(let* ((p (car parametri))
(vrstica (ustvari-element p)))
(element-append-child! p-kontejner vrstica)
(console-log "dodal" vrstica))))
;(add-handler!
; (js-eval "window") "DOMContentLoaded"
; (lambda (ev)
; (console-log "dodajam parametre")
; (dodaj-parametre parametri)))
(dodaj-parametre parametri)