OO framework
This commit is contained in:
42
private/wv-context.rkt
Normal file
42
private/wv-context.rkt
Normal file
@@ -0,0 +1,42 @@
|
||||
#lang racket/base
|
||||
|
||||
(require racket/class
|
||||
"racket-webview.rkt"
|
||||
"wv-settings.rkt"
|
||||
)
|
||||
|
||||
(provide wv-context%)
|
||||
|
||||
(define wv-context%
|
||||
(class object%
|
||||
(init-field
|
||||
base-path
|
||||
[file-getter (webview-standard-file-getter base-path)]
|
||||
[context-js (λ () "")]
|
||||
[boilerplate-js (webview-default-boilerplate-js context-js)]
|
||||
[ini (error "You need to provide a 'ini' file settings interface for settings, e.g. simple-ini")]
|
||||
)
|
||||
|
||||
(define wv-context #f)
|
||||
(define settings-obj #f)
|
||||
|
||||
(define/public (context)
|
||||
wv-context)
|
||||
|
||||
(define/public (settings section)
|
||||
(send settings-obj clone section)
|
||||
)
|
||||
|
||||
(define/public (base-url)
|
||||
(wv-context-base-url wv-context))
|
||||
|
||||
(super-new)
|
||||
|
||||
(begin
|
||||
(set! wv-context
|
||||
(webview-new-context file-getter
|
||||
#:boilerplate-js boilerplate-js))
|
||||
(set! settings-obj (new wv-settings% [ini ini] [wv-context 'global]))
|
||||
)
|
||||
)
|
||||
)
|
||||
Reference in New Issue
Block a user