viewplex: index views by Notebook page number

phoen
Daniel Barlow 2022-03-05 23:04:24 +00:00
parent f225793fb0
commit 24052ac10d
2 changed files with 6 additions and 8 deletions

View File

@ -21,9 +21,6 @@
(.. cache-dir "/cookies.db") (.. cache-dir "/cookies.db")
WebKit2.CookiePersistentStorage.SQLITE)) WebKit2.CookiePersistentStorage.SQLITE))
(fn named-image [name size] (fn named-image [name size]
(Gtk.Image.new_from_icon_name (Gtk.Image.new_from_icon_name
name name

View File

@ -10,25 +10,26 @@
:show_tabs false :show_tabs false
;;# :on_switch_page ;;# :on_switch_page
}) })
views []] views {}]
(var foreground-view nil) (var foreground-view nil)
{ {
:listen (fn [_ name fun] :listen (fn [_ name fun]
(if (not (. relay-events name)) (if (not (. relay-events name))
(each [_ v (ipairs views)]
(v:listen name #(listeners:notify name $1)))) (v:listen name #(listeners:notify name $1))))
(each [_ v (pairs views)]
(table.insert relay-events name) (table.insert relay-events name)
(listeners:add name fun)) (listeners:add name fun))
:widget widget :widget widget
:add-view (fn [self webview] :add-view (fn [self webview]
(set foreground-view webview) (set foreground-view webview)
(webview.widget:show) (webview.widget:show)
(table.insert views webview)
(each [_ event-name (ipairs relay-events)] (each [_ event-name (ipairs relay-events)]
(webview:listen event-name (webview:listen event-name
#(listeners:notify event-name $1))) #(listeners:notify event-name $1)))
(set widget.page (let [page (widget:append_page webview.widget)]
(widget:append_page webview.widget))) (tset views page webview)
(set widget.page page)
page))
:visit #(and foreground-view (foreground-view:visit $2)) :visit #(and foreground-view (foreground-view:visit $2))
:stop-loading #(and foreground-view :stop-loading #(and foreground-view
(foreground-view:stop-loading)) (foreground-view:stop-loading))