This commit is contained in:
2026-03-05 10:59:06 +01:00
parent 99f30a6798
commit 3b53a945f9
11 changed files with 133 additions and 13 deletions

View File

@@ -21,9 +21,11 @@
(provide webview-create
webview-devtools
webview-close
webview-run-js
webview-call-js
webview-call-js-result?
webview-move
webview-resize
webview-show
@@ -32,8 +34,12 @@
webview-maximize
webview-minimize
webview-window-state
webview-bind!
webview-set-title!
webview-choose-dir
webview-bind!
webview-set-url!
webview-set-html!
@@ -192,14 +198,15 @@
(define (webview-create file-getter event-callback
#:boilerplate-js [bj (default-boilerplate-js)]
#:parent [p 0])
#:parent [p #f])
(let* ((h (make-wv #f current-servlet-port -1 file-getter bj #f))
(server (let ((s (start-web-server h)))
(sleep 1) ;;; TODO: Check if web server is up.
s))
(event-processor (λ (wv evt)
(event-callback h (util-parse-event evt))))
(wv (rkt-webview-create p event-processor))
(ph (if (wv? p) (wv-handle p) #f))
(wv (rkt-webview-create ph event-processor))
(base-req (format "http://127.0.0.1:~a"
(wv-port h)))
)
@@ -253,6 +260,25 @@
(def-win-func webview-present rkt-webview-present)
(def-win-func webview-window-state rkt-webview-window-state)
(define/contract (webview-choose-dir wv title base-dir)
(-> wv? string? (or/c path? string?) (or/c hash? boolean?))
(let ((bd (if (path? base-dir) (path->string base-dir) base-dir)))
(let ((res (rkt-webview-choose-dir (wv-handle wv) title bd)))
(if (eq? res #f)
#f
(cond ((eq? (car res) 'oke)
(let ((h (fromJson (cadr res))))
(let ((r (make-hash)))
(hash-set! r 'dir (hash-ref h 'dir))
(hash-set! r 'state (string->symbol
(hash-ref h 'state)))
r)))
(else #f))
)
)
)
)
(define/contract (webview-set-title! wv title)
(-> wv? string? symbol?)
(rkt-webview-set-title! (wv-handle wv) title))
@@ -506,9 +532,6 @@
)
#|(define/contract (webview-set-style! wv selector style-entries)
(-> wv? (or/c symbol? string?) (or/c list? list-of-kv?) hash?)