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" "finalizer"
"web-server-lib" "web-server-lib"
"net-cookies-lib" "net-cookies-lib"
"simple-log"
) )
) )

View File

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

View File

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

View File

@@ -28,6 +28,7 @@
gregor-utils gregor-utils
lru-cache lru-cache
racket-self-signed-cert racket-self-signed-cert
simple-log
) )
(provide webview-new-context (provide webview-new-context
@@ -626,21 +627,9 @@
(define (file-open-save wv title base-dir permitted-exts open-save-f) (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)) (let* ((bd (if (path? base-dir) (path->string base-dir) base-dir))
(ext-filter (make-exts-filter permitted-exts))) (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))) (let ((res (open-save-f (wv-win-handle wv) title bd ext-filter)))
res))) 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) (define/contract (webview-file-open wv title base-dir permitted-exts)
@@ -724,7 +713,6 @@
(define/contract (webview-call-js wv js) (define/contract (webview-call-js wv js)
(-> wv-win? string? (or/c string? list? boolean? hash? symbol?)) (-> wv-win? string? (or/c string? list? boolean? hash? symbol?))
(let ((result (rkt-webview-call-js (wv-win-handle wv) js))) (let ((result (rkt-webview-call-js (wv-win-handle wv) js)))
;(displayln result)
(if (webview-call-js-result? result) (if (webview-call-js-result? result)
(if (eq? (car result) 'oke) (if (eq? (car result) 'oke)
(hash-ref (fromJson (cadr result)) 'result #f) (hash-ref (fromJson (cadr result)) 'result #f)
@@ -1020,29 +1008,20 @@
;; testing ;; testing
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(define-runtime-path example-path "../example") (define-runtime-path example-path "example")
(define file-getter (webview-standard-file-getter example-path))
(define test-context (webview-new-context file-getter))
(define (test) (define (test)
(let* ((cb (λ (handle evt) (let* ((file-getter (webview-standard-file-getter example-path))
(displayln evt))) (test-context (webview-new-context file-getter))
(cb (λ (handle evt)
(dbg-webview "~a" evt)))
(h (webview-create test-context "index.html" cb)) (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-set-title! h "This is a test window")
(webview-resize h 800 600) (webview-resize h 800 600)
(webview-move h 350 220) (webview-move h 350 220)
;(webview-present h)
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 (require racket/class
"wv-window.rkt" "wv-window.rkt"
"private/utils.rkt"
) )
(provide wv-dialog% (provide wv-dialog%
@@ -18,29 +19,25 @@
(super-new) (super-new)
(define/override (init-size) (define/override (init-size)
(displayln "init-size") (dbg-webview "init-size")
(let ((px (get-field x parent)) (let ((px (get-field x parent))
(py (get-field y parent)) (py (get-field y parent))
(pw (get-field width parent)) (pw (get-field width parent))
(ph (get-field height parent)) (ph (get-field height parent))
) )
(displayln px) (dbg-webview "geom: ~a, ~a; ~a, ~a" px py pw ph)
(displayln py)
(displayln pw)
(displayln ph)
(let ((dw (send settings get 'width (if (eq? width #f) (default-w) width))) (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))) (dh (send settings get 'height (if (eq? height #f) (default-h) height)))
) )
(displayln dw) (dbg-webview "size: ~a, ~a" dw dh)
(displayln dh)
(let ((xx (/ (- pw dw) 2)) (let ((xx (/ (- pw dw) 2))
(yy (/ (- ph dh) 2))) (yy (/ (- ph dh) 2)))
(let ((x (inexact->exact (round (exact->inexact (+ px xx))))) (let ((x (inexact->exact (round (exact->inexact (+ px xx)))))
(y (inexact->exact (round (exact->inexact (+ py yy))))) (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) (send this move x y)
(displayln (format "resize ~a ~a" x y)) (dbg-webview "resize ~a ~a" dw dh)
(send this resize dw dh) (send this resize dw dh)
) )
) )

View File

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