event/mouse.go
Functions
func AnyPressed
func (s ButtonState) AnyPressed() bool {
return s != 0
}
func Has
Has returns true if the specified button is pressed.
func (s ButtonState) Has(state ButtonState) bool {
return s&state == state
}
func IsDoubleClick
IsDoubleClick returns true if this is a double-click event.
func (e *MouseEvent) IsDoubleClick() bool {
return e.MouseType == MouseDoubleClick
}
func IsDrag
IsDrag returns true if this is a drag event.
func (e *MouseEvent) IsDrag() bool {
return e.MouseType == MouseDrag
}
func IsEnter
IsEnter returns true if this is a mouse enter event.
func (e *MouseEvent) IsEnter() bool {
return e.MouseType == MouseEnter
}
func IsLeave
IsLeave returns true if this is a mouse leave event.
func (e *MouseEvent) IsLeave() bool {
return e.MouseType == MouseLeave
}
func IsLeftButton
IsLeftButton returns true if the left button is involved.
func (e *MouseEvent) IsLeftButton() bool {
return e.Button == ButtonLeft
}
func IsLeftPressed
IsLeftPressed returns true if the left button is pressed.
func (s ButtonState) IsLeftPressed() bool {
return s.Has(ButtonStateLeft)
}
func IsMiddleButton
IsMiddleButton returns true if the middle button is involved.
func (e *MouseEvent) IsMiddleButton() bool {
return e.Button == ButtonMiddle
}
func IsMiddlePressed
IsMiddlePressed returns true if the middle button is pressed.
func (s ButtonState) IsMiddlePressed() bool {
return s.Has(ButtonStateMiddle)
}
func IsMove
IsMove returns true if this is a mouse move event.
func (e *MouseEvent) IsMove() bool {
return e.MouseType == MouseMove
}
func IsPress
IsPress returns true if this is a button press event.
func (e *MouseEvent) IsPress() bool {
return e.MouseType == MousePress
}
func IsRelease
IsRelease returns true if this is a button release event.
func (e *MouseEvent) IsRelease() bool {
return e.MouseType == MouseRelease
}
func IsRightButton
IsRightButton returns true if the right button is involved.
func (e *MouseEvent) IsRightButton() bool {
return e.Button == ButtonRight
}
func IsRightPressed
IsRightPressed returns true if the right button is pressed.
func (s ButtonState) IsRightPressed() bool {
return s.Has(ButtonStateRight)
}
func IsX1Pressed
IsX1Pressed returns true if the X1 button is pressed.
func (s ButtonState) IsX1Pressed() bool {
return s.Has(ButtonStateX1)
}
func IsX2Pressed
IsX2Pressed returns true if the X2 button is pressed.
func (s ButtonState) IsX2Pressed() bool {
return s.Has(ButtonStateX2)
}
func NewMouseEvent
NewMouseEvent creates a new mouse event with the current time.
func NewMouseEvent(
mouseType MouseEventType,
button Button,
buttons ButtonState,
position geometry.Point,
globalPosition geometry.Point,
mods Modifiers,
) *MouseEvent {
return &MouseEvent{
Base: NewBase(TypeMouse, mods),
MouseType: mouseType,
Button: button,
Buttons: buttons,
Position: position,
GlobalPosition: globalPosition,
ClickCount: 1,
}
}
func NewMouseEventWithTime
NewMouseEventWithTime creates a new mouse event with a specific timestamp.
func NewMouseEventWithTime(
mouseType MouseEventType,
button Button,
buttons ButtonState,
position geometry.Point,
globalPosition geometry.Point,
mods Modifiers,
t time.Time,
) *MouseEvent {
return &MouseEvent{
Base: NewBaseWithTime(TypeMouse, t, mods),
MouseType: mouseType,
Button: button,
Buttons: buttons,
Position: position,
GlobalPosition: globalPosition,
ClickCount: 1,
}
}
func String
String returns a human-readable name for the mouse event type.
func (t MouseEventType) String() string {
switch t {
case MousePress:
return mousePressStr
case MouseRelease:
return mouseReleaseStr
case MouseMove:
return mouseMoveStr
case MouseEnter:
return mouseEnterStr
case MouseLeave:
return mouseLeaveStr
case MouseDrag:
return mouseDragStr
case MouseDoubleClick:
return mouseDoubleClickStr
default:
return unknownStr
}
}
func String
String returns a human-readable name for the button.
func (b Button) String() string {
switch b {
case ButtonNone:
return buttonNoneStr
case ButtonLeft:
return buttonLeftStr
case ButtonRight:
return buttonRightStr
case ButtonMiddle:
return buttonMiddleStr
case ButtonX1:
return "X1"
case ButtonX2:
return "X2"
default:
return unknownStr
}
}
func String
String returns a human-readable representation of the event.
func (e *MouseEvent) String() string {
return fmt.Sprintf("MouseEvent{Type: %s, Button: %s, Position: %s, Mods: %s}",
e.MouseType, e.Button, e.Position, e.Modifiers())
}
Structs
type MouseEvent struct
MouseEvent represents a mouse input event.
Position is relative to the widget receiving the event.
GlobalPosition is the position in screen coordinates.
type MouseEvent struct {
Base
// MouseType is the specific type of mouse event.
MouseType MouseEventType
// Button is the button involved in press/release events.
Button Button
// Buttons is the state of all mouse buttons.
Buttons ButtonState
// Position is the mouse position relative to the widget.
Position geometry.Point
// GlobalPosition is the mouse position in screen coordinates.
GlobalPosition geometry.Point
// ClickCount is the number of consecutive clicks (1 for single, 2 for double).
ClickCount int
}
AnyPressed returns true if any button is pressed.