Sander Schobers
8560204c39
- The Allegro (alui) implementation only provides emulation of the event (comparing the position every time other events are handled).
101 lines
1.3 KiB
Go
101 lines
1.3 KiB
Go
package ui
|
|
|
|
import "opslag.de/schobers/geom"
|
|
|
|
type DisplayCloseEvent struct {
|
|
EventBase
|
|
}
|
|
|
|
type DisplayMoveEvent struct {
|
|
EventBase
|
|
Bounds geom.RectangleF32
|
|
}
|
|
|
|
type DisplayResizeEvent struct {
|
|
EventBase
|
|
Bounds geom.RectangleF32
|
|
}
|
|
|
|
type Event interface {
|
|
Stamp() float64
|
|
}
|
|
|
|
type EventBase struct {
|
|
StampInSeconds float64
|
|
}
|
|
|
|
func (e *EventBase) Stamp() float64 {
|
|
return e.StampInSeconds
|
|
}
|
|
|
|
type KeyModifier int
|
|
|
|
const (
|
|
KeyModifierNone KeyModifier = 0
|
|
KeyModifierShift = 1 << iota
|
|
KeyModifierControl
|
|
KeyModifierAlt
|
|
KeyModifierOSCommand
|
|
)
|
|
|
|
type KeyDownEvent struct {
|
|
EventBase
|
|
Key Key
|
|
Modifiers KeyModifier
|
|
}
|
|
|
|
type KeyUpEvent struct {
|
|
EventBase
|
|
Key Key
|
|
Modifiers KeyModifier
|
|
}
|
|
|
|
type MouseButton int
|
|
|
|
const (
|
|
MouseButtonLeft MouseButton = 1
|
|
MouseButtonRight MouseButton = 2
|
|
MouseButtonMiddle MouseButton = 3
|
|
)
|
|
|
|
type MouseButtonDownEvent struct {
|
|
MouseEvent
|
|
Button MouseButton
|
|
}
|
|
|
|
type MouseButtonUpEvent struct {
|
|
MouseEvent
|
|
Button MouseButton
|
|
}
|
|
|
|
type MouseEnterEvent struct {
|
|
MouseEvent
|
|
}
|
|
|
|
type MouseEvent struct {
|
|
EventBase
|
|
X, Y float32
|
|
}
|
|
|
|
func (e *MouseEvent) Pos() geom.PointF32 {
|
|
return geom.PtF32(e.X, e.Y)
|
|
}
|
|
|
|
type MouseLeaveEvent struct {
|
|
MouseEvent
|
|
}
|
|
|
|
type MouseMoveEvent struct {
|
|
MouseEvent
|
|
MouseWheel float32
|
|
}
|
|
|
|
type RefreshEvent struct {
|
|
EventBase
|
|
}
|
|
|
|
type TextInputEvent struct {
|
|
EventBase
|
|
Character rune
|
|
}
|