OO framework
This commit is contained in:
52
private/wv-input.rkt
Normal file
52
private/wv-input.rkt
Normal file
@@ -0,0 +1,52 @@
|
||||
#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)
|
||||
Reference in New Issue
Block a user