diff --git a/gotop.go b/gotop.go index 411fe03..046b9a6 100644 --- a/gotop.go +++ b/gotop.go @@ -90,7 +90,7 @@ func setupGrid() { func keyBinds() { // quits - ui.On("q", "C-c", func(e ui.Event) { + ui.On("q", "", func(e ui.Event) { ui.StopLoop() }) @@ -166,7 +166,7 @@ func main() { // load help widget after init termui/termbox so that it has access to terminal size help = w.NewHelpMenu() - ui.On("resize", func(e ui.Event) { + ui.On("", func(e ui.Event) { ui.Body.Width, ui.Body.Height = e.Width, e.Height ui.Body.Resize() diff --git a/termui/events.go b/termui/events.go index 8849101..3bc5459 100644 --- a/termui/events.go +++ b/termui/events.go @@ -6,6 +6,23 @@ import ( tb "github.com/nsf/termbox-go" ) +/* +here's the list of events which you can assign handlers too using the `On` function: + mouse events: + + + keyboard events: + any uppercase or lowercase letter or a set of two letters like j or jj or J or JJ + etc + etc + + + + > etc + terminal events: + +*/ + var eventStream = EventStream{ make(map[string]func(Event)), "", @@ -104,7 +121,7 @@ func convertTermboxKeyValue(e tb.Event) string { mod := "" if e.Mod == tb.ModAlt { - mod = "M-" + mod = " 0xFFFF-12 { @@ -115,7 +132,7 @@ func convertTermboxKeyValue(e tb.Event) string { } if e.Key <= 0x7F { - pre = "C-" + pre = ""}, @@ -135,23 +152,27 @@ func convertTermboxKeyValue(e tb.Event) string { } } + if pre != "" { + k += ">" + } + return pre + mod + k } func convertTermboxMouseValue(e tb.Event) string { switch e.Key { case tb.MouseLeft: - return "MouseLeft" + return "" case tb.MouseMiddle: - return "MouseMiddle" + return "" case tb.MouseRight: - return "MouseRight" + return "" case tb.MouseWheelUp: - return "MouseWheelUp" + return "" case tb.MouseWheelDown: - return "MouseWheelDown" + return "" case tb.MouseRelease: - return "MouseRelease" + return "" } return "" } @@ -173,7 +194,7 @@ func convertTermboxEvent(e tb.Event) Event { } case tb.EventResize: ne = Event{ - Key: "resize", + Key: "", Width: e.Width, Height: e.Height, } diff --git a/widgets/proc.go b/widgets/proc.go index 95bdf41..b63a7c1 100644 --- a/widgets/proc.go +++ b/widgets/proc.go @@ -156,16 +156,16 @@ func (p *Proc) ColResize() { } func (p *Proc) keyBinds() { - ui.On("MouseLeft", func(e ui.Event) { + ui.On("", func(e ui.Event) { p.Click(e.MouseX, e.MouseY) p.KeyPressed <- true }) - ui.On("MouseWheelUp", "MouseWheelDown", func(e ui.Event) { + ui.On("", "", func(e ui.Event) { switch e.Key { - case "MouseWheelDown": + case "": p.Down() - case "MouseWheelUp": + case "": p.Up() } p.KeyPressed <- true @@ -181,7 +181,7 @@ func (p *Proc) keyBinds() { p.KeyPressed <- true }) - viKeys := []string{"j", "k", "gg", "G", "C-d", "C-u", "C-f", "C-b"} + viKeys := []string{"j", "k", "gg", "G", "", "", "", ""} ui.On(viKeys, func(e ui.Event) { switch e.Key { case "j": @@ -192,13 +192,13 @@ func (p *Proc) keyBinds() { p.Top() case "G": p.Bottom() - case "C-d": + case "": p.HalfPageDown() - case "C-u": + case "": p.HalfPageUp() - case "C-f": + case "": p.PageDown() - case "C-b": + case "": p.PageUp() } p.KeyPressed <- true