90 lines
1.2 KiB
Go
90 lines
1.2 KiB
Go
package ui
|
|
|
|
import "opslag.de/schobers/geom"
|
|
|
|
type DisplayCloseEvent struct {
|
|
EventBase
|
|
}
|
|
|
|
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 Key int
|
|
|
|
const (
|
|
KeyNone Key = iota
|
|
KeyBackspace
|
|
KeyDelete
|
|
KeyDown
|
|
KeyEscape
|
|
KeyLeft
|
|
KeyRight
|
|
KeyUp
|
|
)
|
|
|
|
type KeyModifier int
|
|
|
|
const (
|
|
KeyModifiersNone KeyModifier = 0
|
|
KeyModifierShift = 1 << iota
|
|
KeyModifierControl
|
|
KeyModifierAlt
|
|
)
|
|
|
|
type KeyPressEvent struct {
|
|
EventBase
|
|
Key Key
|
|
Modifiers KeyModifier
|
|
Character rune
|
|
}
|
|
|
|
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 MouseEvent struct {
|
|
EventBase
|
|
X, Y float32
|
|
}
|
|
|
|
func (e *MouseEvent) Pos() geom.PointF32 {
|
|
return geom.PtF32(e.X, e.Y)
|
|
}
|
|
|
|
type MouseMoveEvent struct {
|
|
MouseEvent
|
|
MouseWheel float32
|
|
}
|
|
|
|
type RefreshEvent struct {
|
|
EventBase
|
|
}
|