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 }