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