#lang racket/base (require racket/class "wv-element.rkt" "racket-webview.rkt" ) (provide wv-input/text% wv-input/number% wv-input/boolean% wv-input/date% wv-input/time% wv-input/datetime% wv-input/range% wv-input/check% wv-input/radio% wv-input/color%) (define-syntax mk-cl (syntax-rules (wv-element%) ((_ cl-name setter getter) (define cl-name (class wv-element% (inherit-field window element-id) (super-new) (define wv (hash-ref (send window info) 'wv)) (define/public (get) (getter wv element-id)) (define/public (set! v) (setter wv element-id v)) ) ) ) ) ) (mk-cl wv-input/text% webview-set-value! webview-value) (mk-cl wv-input/number% webview-set-value! webview-value/number) (mk-cl wv-input/boolean% webview-set-value! webview-value/boolean) (mk-cl wv-input/date% webview-set-value! webview-value/date) (mk-cl wv-input/time% webview-set-value! webview-value/time) (mk-cl wv-input/datetime% webview-set-value! webview-value/datetime) (mk-cl wv-input/range% webview-set-value! webview-value/number) (mk-cl wv-input/check% webview-set-value! webview-value/boolean) (mk-cl wv-input/radio% webview-set-value! webview-value/boolean) (mk-cl wv-input/color% webview-set-value! webview-value/color)