event/mouse.go

Functions Structs

Functions

func AnyPressed

AnyPressed returns true if any button is pressed.

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
}