-
This commit is contained in:
1
info.rkt
1
info.rkt
@@ -40,6 +40,7 @@
|
||||
"finalizer"
|
||||
"web-server-lib"
|
||||
"net-cookies-lib"
|
||||
"simple-log"
|
||||
)
|
||||
)
|
||||
|
||||
|
||||
@@ -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 ...)
|
||||
|
||||
@@ -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.")
|
||||
|
||||
@@ -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))
|
||||
@@ -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)
|
||||
)
|
||||
)
|
||||
|
||||
@@ -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))
|
||||
))
|
||||
)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user