package main import "net/url" import "git.tebibyte.media/sashakoshka/stone" import "git.tebibyte.media/sashakoshka/skipper/bookmarks" type bindingKey struct { control bool shift bool alt bool button stone.Button } var bindings = map[bindingKey] func () { bindingKey { button: stone.Button('`'), }: func () { fetchStringUrl("about:skipper") }, bindingKey { button: stone.Button('r'), }: func () { go fetchNoTrace(page.currentUrl) }, bindingKey { button: stone.Button('u'), }: func () { go fetchSource(page.currentUrl) }, bindingKey { button: stone.Button(' '), }: func () { onUrlBarSelect("") }, bindingKey { button: stone.Button(','), }: func () { onUrlBarSelect(page.currentUrl.String()) }, bindingKey { button: stone.Button('.'), }: func () { onUrlBarSelect(".") }, bindingKey { button: stone.Button('/'), }: func () { onUrlBarSelect("?") }, bindingKey { button: stone.Button('b'), }: func () { fetchStringUrl("about:bookmarks") }, bindingKey { shift: true, button: stone.Button('B'), }: func () { bookmarks.Add (bookmarks.Bookmark { Title: page.document.Title(), Location: page.currentUrl, }) }, bindingKey { button: stone.Button('h'), }: func () { location, _ := url.Parse ( browserConfig.Parameters["homePage"].(string)) go fetch(location) }, bindingKey { button: stone.Button('0'), }: func () { followLink(0) }, bindingKey { button: stone.Button('1'), }: func () { followLink(1) }, bindingKey { button: stone.Button('2'), }: func () { followLink(2) }, bindingKey { button: stone.Button('3'), }: func () { followLink(3) }, bindingKey { button: stone.Button('4'), }: func () { followLink(4) }, bindingKey { button: stone.Button('5'), }: func () { followLink(5) }, bindingKey { button: stone.Button('6'), }: func () { followLink(6) }, bindingKey { button: stone.Button('7'), }: func () { followLink(7) }, bindingKey { button: stone.Button('8'), }: func () { followLink(8) }, bindingKey { button: stone.Button('9'), }: func () { followLink(9) }, bindingKey { button: stone.KeyLeft, }: func () { fetchBackward() }, bindingKey { button: stone.KeyRight, }: func () { fetchForward() }, bindingKey { button: stone.MouseButtonBack, }: func () { fetchBackward() }, bindingKey { button: stone.MouseButtonForward, }: func () { fetchForward() }, bindingKey { button: stone.KeyHome, }: func () { page.scroll = 0 constrainScroll() redraw() application.Draw() }, bindingKey { button: stone.KeyEnd, }: func () { page.scroll = page.height constrainScroll() redraw() application.Draw() }, bindingKey { button: stone.KeyPageUp, }: func () { page.scroll -= page.viewHeight constrainScroll() redraw() application.Draw() }, bindingKey { button: stone.KeyPageDown, }: func () { page.scroll += page.viewHeight constrainScroll() redraw() application.Draw() }, bindingKey { button: stone.KeyUp, }: func () { page.scroll -= 1 constrainScroll() redraw() application.Draw() }, bindingKey { button: stone.KeyDown, }: func () { page.scroll += 1 constrainScroll() redraw() application.Draw() }, bindingKey { button: stone.MouseButtonBack, }: func () { fetchBackward() }, bindingKey { button: stone.MouseButtonForward, }: func () { fetchForward() }, }