#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])) ) ) )