OO framework

This commit is contained in:
2026-03-12 20:57:31 +01:00
parent 2cbf6fb98b
commit 241b52f6b1
10 changed files with 953 additions and 0 deletions

42
private/wv-context.rkt Normal file
View 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]))
)
)
)