74 lines
1.5 KiB
Go
74 lines
1.5 KiB
Go
package terminal
|
|
|
|
// MouseButton represents mouse button identity
|
|
type MouseButton uint8
|
|
|
|
const (
|
|
MouseBtnNone MouseButton = iota
|
|
MouseBtnLeft
|
|
MouseBtnMiddle
|
|
MouseBtnRight
|
|
MouseBtnWheelUp
|
|
MouseBtnWheelDown
|
|
MouseBtnBack // Button 4 (if supported)
|
|
MouseBtnForward // Button 5 (if supported)
|
|
)
|
|
|
|
// MouseAction represents the type of mouse event
|
|
type MouseAction uint8
|
|
|
|
const (
|
|
MouseActionNone MouseAction = iota
|
|
MouseActionPress
|
|
MouseActionRelease
|
|
MouseActionMove
|
|
MouseActionDrag
|
|
)
|
|
|
|
// MouseMode controls which mouse events are reported (bitmask)
|
|
type MouseMode uint8
|
|
|
|
const (
|
|
MouseModeNone MouseMode = 0
|
|
MouseModeClick MouseMode = 1 << 0 // Press/release events
|
|
MouseModeDrag MouseMode = 1 << 1 // Drag events (button held + motion)
|
|
MouseModeMotion MouseMode = 1 << 2 // All motion events
|
|
)
|
|
|
|
// String returns human-readable button name
|
|
func (b MouseButton) String() string {
|
|
switch b {
|
|
case MouseBtnLeft:
|
|
return "Left"
|
|
case MouseBtnMiddle:
|
|
return "Middle"
|
|
case MouseBtnRight:
|
|
return "Right"
|
|
case MouseBtnWheelUp:
|
|
return "WheelUp"
|
|
case MouseBtnWheelDown:
|
|
return "WheelDown"
|
|
case MouseBtnBack:
|
|
return "Back"
|
|
case MouseBtnForward:
|
|
return "Forward"
|
|
default:
|
|
return "None"
|
|
}
|
|
}
|
|
|
|
// String returns human-readable action name
|
|
func (a MouseAction) String() string {
|
|
switch a {
|
|
case MouseActionPress:
|
|
return "Press"
|
|
case MouseActionRelease:
|
|
return "Release"
|
|
case MouseActionMove:
|
|
return "Move"
|
|
case MouseActionDrag:
|
|
return "Drag"
|
|
default:
|
|
return "None"
|
|
}
|
|
} |