v0.1.0 initial commit
This commit is contained in:
@@ -0,0 +1,74 @@
|
||||
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"
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user