add Viewplex, basis for supporting multiple webviews

phoen
Daniel Barlow 2022-03-04 00:02:16 +00:00
parent 8679518ca3
commit 468ed240b4
1 changed files with 34 additions and 2 deletions

View File

@ -52,6 +52,36 @@
})
})
(local
Viewplex
{
:new
#(let [listeners {}
widget (Gtk.Notebook {
:show_tabs false
;;# :on_switch_page
})]
(var foreground-view nil)
(print :viewplex widget)
{
:listen #(add-listener listeners $2 $3)
:widget widget
:add-view (fn [self webview]
(set foreground-view webview)
(webview.widget:show)
(set widget.page
(widget:append_page webview.widget)))
:visit #(and foreground-view (foreground-view:visit $2))
:stop-loading #(and foreground-view
(foreground-view:stop-loading))
:refresh #(and foreground-view (foreground-view:refresh))
:go-back #(and foreground-view (foreground-view:go-back))
})
})
(fn named-image [name size]
(Gtk.Image.new_from_icon_name
name
@ -111,12 +141,14 @@
container (Gtk.Box {
:orientation Gtk.Orientation.VERTICAL
})
viewplex (Viewplex.new)
webview (Webview.new)
navbar (Navbar.new webview)
navbar (Navbar.new viewplex)
]
(container:pack_start navbar.widget false false 0)
(container:pack_start webview.widget true true 0)
(container:pack_start viewplex.widget true true 0)
(viewplex:add-view webview)
(window:add container)