This commit is contained in:
2026-04-09 10:41:58 +02:00
parent 0e23acdfb3
commit 52892e009d
6 changed files with 34 additions and 45 deletions

View File

@@ -40,6 +40,7 @@
"finalizer"
"web-server-lib"
"net-cookies-lib"
"simple-log"
)
)

View File

@@ -8,6 +8,7 @@
(prefix-in g: gregor/time)
gregor-utils
racket-sprintf
simple-log
)
(provide while
@@ -32,8 +33,18 @@
date->string
string->datetime
datetime->string
dbg-webview
err-webview
info-webview
warn-webview
fatal-webview
)
(sl-def-log webview)
(define-syntax while
(syntax-rules ()
((_ cond body ...)

View File

@@ -572,7 +572,7 @@
(hash-remove! rkt-wv-store (rkt-wv-win handle))
'quit)
(begin
(displayln (format "Unexpected data in event queue: ~a" evt))
(warn-webview "Unexpected data in event queue: ~a" evt)
(rkt-process-events handle)))
(begin
((rkt-wv-callback handle) handle evt)
@@ -605,7 +605,7 @@
(if (eq? r 'quit)
(begin
(set-rkt-wv-valid! handle #f)
(displayln "Quitting event loop")
(info-webview "Quitting event loop")
'done)
(begin
;(displayln "Waiting for events.")

View File

@@ -28,6 +28,7 @@
gregor-utils
lru-cache
racket-self-signed-cert
simple-log
)
(provide webview-new-context
@@ -626,21 +627,9 @@
(define (file-open-save wv title base-dir permitted-exts open-save-f)
(let* ((bd (if (path? base-dir) (path->string base-dir) base-dir))
(ext-filter (make-exts-filter permitted-exts)))
(displayln ext-filter);
(dbg-webview "file-open-save - filters: ~a" ext-filter)
(let ((res (open-save-f (wv-win-handle wv) title bd ext-filter)))
res)))
; (if (eq? res #f)
; #f
; (cond ((eq? (car res) 'oke)
; (let* ((h (make-hash (hash->list (fromJson (cadr res))))))
; (hash-set! h 'state (string->symbol (hash-ref h 'state)))
; (hash-set! h 'used-filter (filter->exts (hash-ref h 'used-filter)))
; h))
; (else #f))
; )
; )
; )
; )
(define/contract (webview-file-open wv title base-dir permitted-exts)
@@ -724,7 +713,6 @@
(define/contract (webview-call-js wv js)
(-> wv-win? string? (or/c string? list? boolean? hash? symbol?))
(let ((result (rkt-webview-call-js (wv-win-handle wv) js)))
;(displayln result)
(if (webview-call-js-result? result)
(if (eq? (car result) 'oke)
(hash-ref (fromJson (cadr result)) 'result #f)
@@ -1020,29 +1008,20 @@
;; testing
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(define-runtime-path example-path "../example")
(define file-getter (webview-standard-file-getter example-path))
(define test-context (webview-new-context file-getter))
(define-runtime-path example-path "example")
(define (test)
(let* ((cb (λ (handle evt)
(displayln evt)))
(let* ((file-getter (webview-standard-file-getter example-path))
(test-context (webview-new-context file-getter))
(cb (λ (handle evt)
(dbg-webview "~a" evt)))
(h (webview-create test-context "index.html" cb))
)
(displayln h)
(sl-log-to-display)
(dbg-webview "~a" h)
(webview-set-title! h "This is a test window")
(webview-resize h 800 600)
(webview-move h 350 220)
;(webview-present h)
h))
; (while (not (webview-has-events? h))
; (displayln "Waiting...")
; (sleep 1))
; (let ((evt (webview-get-event h)))
; (when (string=? (hash-ref evt 'evt) "html-loaded")
; (webview-bind h "button" "click")))
; h))

View File

@@ -2,6 +2,7 @@
(require racket/class
"wv-window.rkt"
"private/utils.rkt"
)
(provide wv-dialog%
@@ -18,29 +19,25 @@
(super-new)
(define/override (init-size)
(displayln "init-size")
(dbg-webview "init-size")
(let ((px (get-field x parent))
(py (get-field y parent))
(pw (get-field width parent))
(ph (get-field height parent))
)
(displayln px)
(displayln py)
(displayln pw)
(displayln ph)
(dbg-webview "geom: ~a, ~a; ~a, ~a" px py pw ph)
(let ((dw (send settings get 'width (if (eq? width #f) (default-w) width)))
(dh (send settings get 'height (if (eq? height #f) (default-h) height)))
)
(displayln dw)
(displayln dh)
(dbg-webview "size: ~a, ~a" dw dh)
(let ((xx (/ (- pw dw) 2))
(yy (/ (- ph dh) 2)))
(let ((x (inexact->exact (round (exact->inexact (+ px xx)))))
(y (inexact->exact (round (exact->inexact (+ py yy)))))
)
(displayln (format "move ~a ~a" x y))
(dbg-webview "move ~a ~a" x y)
(send this move x y)
(displayln (format "resize ~a ~a" x y))
(dbg-webview "resize ~a ~a" dw dh)
(send this resize dw dh)
)
)

View File

@@ -8,6 +8,7 @@
"wv-settings.rkt"
"rgba.rkt"
"menu.rkt"
"private/utils.rkt"
net/url
net/sendurl
racket/string
@@ -147,7 +148,7 @@
(define (event-handler wv evt)
(let ((event (hash-ref evt 'event 'unknown-event))
)
(displayln evt)
(dbg-webview "event-handler - evt = ~a" evt)
(cond
((eq? event 'resize)
(send this resized (hash-ref evt 'w) (hash-ref evt 'h)))
@@ -170,7 +171,7 @@
(hash-set! e 'data (hash-ref je 'js_evt (make-hash)))
(hash-set! e 'event 'js-evt)
(when (eq? (send this js-event e) 'wv-unhandled-js-event)
(displayln (format "Unhandled javascript event: ~a" e)))
(warn-webview "Unhandled javascript event: ~a" e))
))
((eq? event 'navigation-request)
(let ((type (string->symbol (hash-ref evt 'type)))
@@ -193,7 +194,7 @@
(eq? event 'msgbox-no))
(send this message-done event))
(else
(displayln (format "Unhandled event: ~a (~a)" event evt)))
(err-webview "Unhandled event: ~a (~a)" event evt))
))
)