Browse code
feat: multiple-windows for open-url
Edward Langley authored on 26/06/2020 23:03:16
Showing 1 changed files
Showing 1 changed files
... | ... |
@@ -1,11 +1,34 @@ |
1 | 1 |
(in-package :mfa-tool) |
2 | 2 |
|
3 |
-(defun open-url (url) |
|
4 |
- (capi:contain (make-instance 'capi:browser-pane |
|
5 |
- :url url) |
|
6 |
- :title "Management Console" |
|
7 |
- :best-width 1280 |
|
8 |
- :best-height 800) |
|
3 |
+(capi:define-interface browser-ui () |
|
4 |
+ ((url :initarg :url :reader url)) |
|
5 |
+ (:panes (brows capi:browser-pane |
|
6 |
+ :url url |
|
7 |
+ |
|
8 |
+ :navigate-complete-callback |
|
9 |
+ (lambda (pane url _) |
|
10 |
+ (declare (ignore url _)) |
|
11 |
+ (capi:apply-in-pane-process-if-alive |
|
12 |
+ pane #'(setf capi:interface-title) |
|
13 |
+ (or (capi:browser-pane-title pane) "<no title>") |
|
14 |
+ capi:interface)) |
|
15 |
+ |
|
16 |
+ :new-window-callback |
|
17 |
+ (lambda (pane url &key &allow-other-keys) |
|
18 |
+ (declare (ignore pane)) |
|
19 |
+ (open-url url) |
|
20 |
+ nil))) |
|
21 |
+ (:layouts (main-layout capi:row-layout '(brows))) |
|
22 |
+ (:default-initargs |
|
23 |
+ :layout 'main-layout |
|
24 |
+ :title "Management Console" |
|
25 |
+ :best-width 1280 |
|
26 |
+ :best-height 800)) |
|
27 |
+ |
|
28 |
+(defun open-url (url &optional parnt) |
|
29 |
+ (if parnt |
|
30 |
+ (capi:display (make-instance 'browser-ui :url url)) |
|
31 |
+ (capi:display (make-instance 'browser-ui :url url))) |
|
9 | 32 |
#+(or) |
10 | 33 |
(let* ((history (make-instance 'capi:list-panel |
11 | 34 |
:items (list (make-instance 'capi:item |