134 lines
1.9 KiB
Go
134 lines
1.9 KiB
Go
package ui
|
|
|
|
import "opslag.de/schobers/geom"
|
|
|
|
type DisplayCloseEvent struct {
|
|
EventBase
|
|
}
|
|
|
|
type DisplayDragEnterEvent struct {
|
|
EventBase
|
|
X, Y float32
|
|
Files []string
|
|
}
|
|
|
|
func (e DisplayDragEnterEvent) Pos() geom.PointF32 {
|
|
return geom.PtF32(e.X, e.Y)
|
|
}
|
|
|
|
type DisplayDragLeaveEvent struct {
|
|
EventBase
|
|
}
|
|
|
|
type DisplayDragMoveEvent struct {
|
|
EventBase
|
|
X, Y float32
|
|
}
|
|
|
|
func (e DisplayDragMoveEvent) Pos() geom.PointF32 {
|
|
return geom.PtF32(e.X, e.Y)
|
|
}
|
|
|
|
type DisplayDropEvent struct {
|
|
EventBase
|
|
X, Y float32
|
|
Files []string
|
|
}
|
|
|
|
func (e DisplayDropEvent) Pos() geom.PointF32 {
|
|
return geom.PtF32(e.X, e.Y)
|
|
}
|
|
|
|
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
|
|
}
|