From 4b7fc0a5fb946d2145f6a7b8bd1d5d8deee7e37c Mon Sep 17 00:00:00 2001 From: Deepak Guruswamy Date: Sat, 27 May 2017 03:11:46 -0700 Subject: [PATCH] Added support for mouse --- events.go | 31 ++++++++++++++++++++++++++++--- render.go | 1 + 2 files changed, 29 insertions(+), 3 deletions(-) diff --git a/events.go b/events.go index f0a45da..9335868 100644 --- a/events.go +++ b/events.go @@ -99,9 +99,7 @@ func crtTermboxEvt(e termbox.Event) Event { ne.Path = "/sys/err" ne.Data = err case termbox.EventMouse: - m := EvtMouse{} - m.X = e.MouseX - m.Y = e.MouseY + m := evtMouse(e) ne.Path = "/sys/mouse" ne.Data = m } @@ -119,6 +117,33 @@ type EvtMouse struct { Press string } +func evtMouse(e termbox.Event) (te EvtMouse) { + te.X = e.MouseX + te.Y = e.MouseY + + var m string + + switch e.Key { + case termbox.MouseLeft: + m = "MouseLeft" + case termbox.MouseMiddle: + m = "MouseMiddle" + case termbox.MouseRight: + m = "MouseRight" + case termbox.MouseRelease: + m = "MouseRelease" + case termbox.MouseWheelUp: + m = "MouseWheelUp" + case termbox.MouseWheelDown: + m = "MouseWheelDown" + default: + m = "Unknown_Mouse_Button" + } + te.Press = m + + return +} + type EvtErr error func hookTermboxEvt() { diff --git a/render.go b/render.go index b9d37d9..42fc287 100644 --- a/render.go +++ b/render.go @@ -33,6 +33,7 @@ func Init() error { if err := tm.Init(); err != nil { return err } + tm.SetInputMode(tm.InputEsc | tm.InputMouse) sysEvtChs = make([]chan Event, 0) go hookTermboxEvt()