1
1
mirror of https://github.com/walles/moar.git synced 2024-11-26 13:46:16 +03:00
moar/twin/events.go
Johan Walles 5a33eda766 Improve console input EOF handling
Related to #126. Need some Windows tester to tell me how it works.
2023-08-30 21:26:29 +02:00

52 lines
954 B
Go

package twin
type Event interface {
// This interface will be blank until further notice
}
type EventRune struct {
rune rune
}
type EventKeyCode struct {
keyCode KeyCode
}
type MouseButtonMask uint16
const (
MouseWheelUp MouseButtonMask = 1 << iota
MouseWheelDown
MouseWheelLeft
MouseWheelRight
)
type EventMouse struct {
buttons MouseButtonMask
}
// After you get this, query Screen.Size() to get the new size
type EventResize struct {
// This interface intentionally left blank
}
// If we're unable to continue showing the screen, we'll send this event and
// drop out.
//
// Ref: https://github.com/walles/moar/issues/126
type EventExit struct {
// This interface intentionally left blank
}
func (eventRune *EventRune) Rune() rune {
return eventRune.rune
}
func (eventKeyCode *EventKeyCode) KeyCode() KeyCode {
return eventKeyCode.keyCode
}
func (eventMouse *EventMouse) Buttons() MouseButtonMask {
return eventMouse.buttons
}