commit
609f0e3c48
51
events.go
51
events.go
@ -100,7 +100,7 @@ func crtTermboxEvt(e termbox.Event) Event {
|
|||||||
ne.Data = err
|
ne.Data = err
|
||||||
case termbox.EventMouse:
|
case termbox.EventMouse:
|
||||||
m := evtMouse(e)
|
m := evtMouse(e)
|
||||||
ne.Path = "/sys/mouse"
|
ne.Path = "/sys/mouse/" + m.Press
|
||||||
ne.Data = m
|
ne.Data = m
|
||||||
}
|
}
|
||||||
return ne
|
return ne
|
||||||
@ -114,34 +114,39 @@ type EvtWnd struct {
|
|||||||
type EvtMouse struct {
|
type EvtMouse struct {
|
||||||
X int
|
X int
|
||||||
Y int
|
Y int
|
||||||
|
Drag bool
|
||||||
Press string
|
Press string
|
||||||
}
|
}
|
||||||
|
|
||||||
func evtMouse(e termbox.Event) (te EvtMouse) {
|
func evtMouse(e termbox.Event) EvtMouse {
|
||||||
te.X = e.MouseX
|
em := EvtMouse{}
|
||||||
te.Y = e.MouseY
|
em.X = e.MouseX
|
||||||
|
em.Y = e.MouseY
|
||||||
|
|
||||||
var m string
|
if e.Mod == termbox.ModMotion {
|
||||||
|
em.Drag = true
|
||||||
|
}
|
||||||
|
|
||||||
switch e.Key {
|
switch e.Key {
|
||||||
case termbox.MouseLeft:
|
case termbox.MouseLeft:
|
||||||
m = "MouseLeft"
|
em.Press = "MouseLeft"
|
||||||
case termbox.MouseMiddle:
|
case termbox.MouseMiddle:
|
||||||
m = "MouseMiddle"
|
em.Press = "MouseMiddle"
|
||||||
case termbox.MouseRight:
|
case termbox.MouseRight:
|
||||||
m = "MouseRight"
|
em.Press = "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
|
case termbox.MouseRelease:
|
||||||
|
em.Press = "MouseRelease"
|
||||||
|
|
||||||
|
case termbox.MouseWheelUp:
|
||||||
|
em.Press = "MouseWheelUp"
|
||||||
|
case termbox.MouseWheelDown:
|
||||||
|
em.Press = "MouseWheelDown"
|
||||||
|
default:
|
||||||
|
em.Press = "Unknown_Mouse_Button"
|
||||||
|
}
|
||||||
|
|
||||||
|
return em
|
||||||
}
|
}
|
||||||
|
|
||||||
type EvtErr error
|
type EvtErr error
|
||||||
@ -151,7 +156,7 @@ func hookTermboxEvt() {
|
|||||||
e := termbox.PollEvent()
|
e := termbox.PollEvent()
|
||||||
|
|
||||||
for _, c := range sysEvtChs {
|
for _, c := range sysEvtChs {
|
||||||
func(ch chan Event) {
|
go func(ch chan Event) {
|
||||||
ch <- crtTermboxEvt(e)
|
ch <- crtTermboxEvt(e)
|
||||||
}(c)
|
}(c)
|
||||||
}
|
}
|
||||||
@ -269,7 +274,7 @@ func (es *EvtStream) Loop() {
|
|||||||
case "/sig/stoploop":
|
case "/sig/stoploop":
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
func(a Event) {
|
go func(a Event) {
|
||||||
es.RLock()
|
es.RLock()
|
||||||
defer es.RUnlock()
|
defer es.RUnlock()
|
||||||
if pattern := es.match(a.Path); pattern != "" {
|
if pattern := es.match(a.Path); pattern != "" {
|
||||||
@ -299,10 +304,6 @@ func Handle(path string, handler func(Event)) {
|
|||||||
DefaultEvtStream.Handle(path, handler)
|
DefaultEvtStream.Handle(path, handler)
|
||||||
}
|
}
|
||||||
|
|
||||||
func ResetHandlers() {
|
|
||||||
DefaultEvtStream.ResetHandlers()
|
|
||||||
}
|
|
||||||
|
|
||||||
func Loop() {
|
func Loop() {
|
||||||
DefaultEvtStream.Loop()
|
DefaultEvtStream.Loop()
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user