43 lines
997 B
Racket
43 lines
997 B
Racket
#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]))
|
|
)
|
|
)
|
|
)
|