diff --git a/browser/lua/browser.lua b/browser/lua/browser.lua index 68769ce..1e4ac1e 100644 --- a/browser/lua/browser.lua +++ b/browser/lua/browser.lua @@ -12,23 +12,49 @@ local toolbar = gui.Container.create() toolbar:setstyle{flexdirection='row', padding=5} contentview:addchildview(toolbar) local back = gui.Button.create('<') +back:setenabled(false) toolbar:addchildview(back) local forward = gui.Button.create('>') +forward:setenabled(false) forward:setstyle{marginright=5} toolbar:addchildview(forward) +local refresh = gui.Button.create('S') +refresh:setstyle{width=20, marginright=5} +toolbar:addchildview(refresh) local addressbar = gui.Entry.create() addressbar:setstyle{flex=1} toolbar:addchildview(addressbar) local go = gui.Button.create('GO') go:setstyle{marginleft=5} toolbar:addchildview(go) -local browser = gui.Browser.create() +local browser = gui.Browser.create{contextmenu=true} browser:setstyle{flex=1} contentview:addchildview(browser) -- Bind browser events to toolbar. +browser.onchangeloading = function(self) + if browser:isloading() then + refresh:settitle('S') + else + refresh:settitle('R') + end +end + +browser.onupdatecommand = function(self) + back:setenabled(browser:cangoback()) + forward:setenabled(browser:cangoforward()) + addressbar:settext(browser:geturl()) +end + +browser.onupdatetitle = function(self, title) + win:settitle(title) +end + browser.oncommitnavigation = function(self, url) addressbar:settext(url) +end + +browser.onfinishnavigation = function(self, url) browser:focus() end @@ -45,6 +71,14 @@ forward.onclick = function(self) browser:goforward() end +refresh.onclick = function(self) + if browser:isloading() then + browser:stop() + else + browser:reload() + end +end + go.onclick = function(self) browser:loadurl(addressbar:gettext()) end