dunlin/buffer.fnl

39 lines
1.6 KiB
Fennel

(local { : Gtk : Gdk : WebKit2 : cairo } (require :lgi))
(local { : view } (require :fennel))
(fn new-buffer [name keymap]
(let [props {}
widget (WebKit2.WebView {
;; :on_decide_policy
;; (fn [self decision dtype]
;; (if (and
;; (WebKit2.ResponsePolicyDecision:is_type_of decision)
;; (not (decision:is_mime_type_supported)))
;; (do
;; (download decision.request.uri decision.response.http_headers)
;; (decision:ignore)
;; true)
;; false))
:on_notify
(fn [self pspec]
(when (not (= pspec.name :parent))
(let [val (. self pspec.name)]
(tset props pspec.name val)
;(listeners:notify pspec.name val)
)))
})]
{:webview widget
:name name
:visit (fn [self u] (widget:load_uri u))
:properties props}))
(let [buffers {}]
{
:new (fn [name]
(let [b (new-buffer name)]
(tset buffers name b)
b))
:current (fn [] (let [k (next buffers)] (. buffers k)))
:find (fn [term] (. buffers term))
})