Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,12 @@ All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## [0.1.18] — 2026-05-01

### Changed (Dependencies)

- **gg** v0.43.7 → **v0.44.1**

## [0.1.17] — 2026-05-01

### Added
Expand Down
13 changes: 10 additions & 3 deletions app/render_mode.go
Original file line number Diff line number Diff line change
Expand Up @@ -43,14 +43,21 @@ const (
RenderModeFrameworkManaged
)

// Render mode string constants.
const (
renderModeHostManagedStr = "HostManaged"
renderModeFrameworkManagedStr = "FrameworkManaged"
renderModeUnknownStr = "Unknown"
)

// String returns a human-readable name for the render mode.
func (m RenderMode) String() string {
switch m {
case RenderModeHostManaged:
return "HostManaged"
return renderModeHostManagedStr
case RenderModeFrameworkManaged:
return "FrameworkManaged"
return renderModeFrameworkManagedStr
default:
return "Unknown"
return renderModeUnknownStr
}
}
4 changes: 4 additions & 0 deletions codecov.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,10 @@ coverage:
default:
target: 70%
threshold: 5%
patch:
default:
target: 60%
threshold: 10%

# Ignore paths from coverage calculation
# Platform-dependent and rendering code cannot be easily unit tested
Expand Down
28 changes: 20 additions & 8 deletions event/event.go
Original file line number Diff line number Diff line change
Expand Up @@ -35,25 +35,37 @@ const (
TypeResize
)

// Event type string constants.
const (
typeMouseStr = "Mouse"
typeKeyStr = "Key"
typeFocusStr = "Focus"
typeWheelStr = "Wheel"
typeTouchStr = "Touch"
typeTextStr = "Text"
typeDropStr = "Drop"
typeResizeStr = "Resize"
)

// String returns a human-readable name for the event type.
func (t Type) String() string {
switch t {
case TypeMouse:
return "Mouse"
return typeMouseStr
case TypeKey:
return "Key"
return typeKeyStr
case TypeFocus:
return "Focus"
return typeFocusStr
case TypeWheel:
return "Wheel"
return typeWheelStr
case TypeTouch:
return "Touch"
return typeTouchStr
case TypeText:
return "Text"
return typeTextStr
case TypeDrop:
return "Drop"
return typeDropStr
case TypeResize:
return "Resize"
return typeResizeStr
default:
return unknownStr
}
Expand Down
10 changes: 8 additions & 2 deletions event/focus.go
Original file line number Diff line number Diff line change
Expand Up @@ -17,13 +17,19 @@ const (
FocusLost
)

// Focus event type string constants.
const (
focusGainedStr = "Gained"
focusLostStr = "Lost"
)

// String returns a human-readable name for the focus event type.
func (t FocusEventType) String() string {
switch t {
case FocusGained:
return "Gained"
return focusGainedStr
case FocusLost:
return "Lost"
return focusLostStr
default:
return unknownStr
}
Expand Down
182 changes: 124 additions & 58 deletions event/key.go
Original file line number Diff line number Diff line change
Expand Up @@ -20,15 +20,22 @@ const (
KeyRepeat
)

// Key event type string constants.
const (
keyPressStr = "Press"
keyReleaseStr = "Release"
keyRepeatStr = "Repeat"
)

// String returns a human-readable name for the key event type.
func (t KeyEventType) String() string {
switch t {
case KeyPress:
return "Press"
return keyPressStr
case KeyRelease:
return "Release"
return keyReleaseStr
case KeyRepeat:
return "Repeat"
return keyRepeatStr
default:
return unknownStr
}
Expand Down Expand Up @@ -205,6 +212,65 @@ const (
KeyUnknown Key = 0
)

// Key name string constants for keys with multiple usages across the package.
const (
keyF12Str = "F12"
keyF24Str = "F24"
keyDownStr = "Down"
keyLeftStr = "Left"
keyRightStr = "Right"
keyHomeStr = "Home"
keyEndStr = "End"
keyPageUpStr = "PageUp"
keyPageDownStr = "PageDown"
keyEnterStr = "Enter"
keyTabStr = "Tab"
keyBackspaceStr = "Backspace"
keyDeleteStr = "Delete"
keyEscapeStr = "Escape"
keySpaceStr = "Space"
keyLeftShiftStr = "LeftShift"
keyRightShiftStr = "RightShift"
keyLeftCtrlStr = "LeftCtrl"
keyRightCtrlStr = "RightCtrl"
keyLeftAltStr = "LeftAlt"
keyRightAltStr = "RightAlt"
keyLeftSuperStr = "LeftSuper"
keyRightSuperStr = "RightSuper"
keyCapsLockStr = "CapsLock"
keyNumLockStr = "NumLock"
keyScrollLockStr = "ScrollLock"
keyNumpad0Str = "Numpad0"
keyNumpad9Str = "Numpad9"
keyNumpadDecimalStr = "NumpadDecimal"
keyNumpadEnterStr = "NumpadEnter"
keyNumpadAddStr = "NumpadAdd"
keyNumpadSubtractStr = "NumpadSubtract"
keyNumpadMultiplyStr = "NumpadMultiply"
keyNumpadDivideStr = "NumpadDivide"
keyMinusStr = "Minus"
keyEqualStr = "Equal"
keyLeftBracketStr = "LeftBracket"
keyRightBracketStr = "RightBracket"
keyBackslashStr = "Backslash"
keySemicolonStr = "Semicolon"
keyApostropheStr = "Apostrophe"
keyGraveStr = "Grave"
keyCommaStr = "Comma"
keyPeriodStr = "Period"
keySlashStr = "Slash"
keyPrintScreenStr = "PrintScreen"
keyPauseStr = "Pause"
keyMenuStr = "Menu"
keyMuteStr = "Mute"
keyVolumeUpStr = "VolumeUp"
keyVolumeDownStr = "VolumeDown"
keyMediaPlayStr = "MediaPlay"
keyMediaStopStr = "MediaStop"
keyMediaNextStr = "MediaNext"
keyMediaPrevStr = "MediaPrev"
)

// String returns a human-readable name for the key.
//
//nolint:gocyclo,cyclop,funlen,maintidx // Key mapping requires a large switch statement by design
Expand Down Expand Up @@ -307,7 +373,7 @@ func (k Key) String() string {
case KeyF11:
return "F11"
case KeyF12:
return "F12"
return keyF12Str
case KeyF13:
return "F13"
case KeyF14:
Expand All @@ -331,61 +397,61 @@ func (k Key) String() string {
case KeyF23:
return "F23"
case KeyF24:
return "F24"
return keyF24Str
case KeyUp:
return "Up"
case KeyDown:
return "Down"
return keyDownStr
case KeyLeft:
return "Left"
return keyLeftStr
case KeyRight:
return "Right"
return keyRightStr
case KeyHome:
return "Home"
return keyHomeStr
case KeyEnd:
return "End"
return keyEndStr
case KeyPageUp:
return "PageUp"
return keyPageUpStr
case KeyPageDown:
return "PageDown"
return keyPageDownStr
case KeyEnter:
return "Enter"
return keyEnterStr
case KeyTab:
return "Tab"
return keyTabStr
case KeyBackspace:
return "Backspace"
return keyBackspaceStr
case KeyDelete:
return "Delete"
return keyDeleteStr
case KeyInsert:
return "Insert"
case KeyEscape:
return "Escape"
return keyEscapeStr
case KeySpace:
return "Space"
return keySpaceStr
case KeyLeftShift:
return "LeftShift"
return keyLeftShiftStr
case KeyRightShift:
return "RightShift"
return keyRightShiftStr
case KeyLeftCtrl:
return "LeftCtrl"
return keyLeftCtrlStr
case KeyRightCtrl:
return "RightCtrl"
return keyRightCtrlStr
case KeyLeftAlt:
return "LeftAlt"
return keyLeftAltStr
case KeyRightAlt:
return "RightAlt"
return keyRightAltStr
case KeyLeftSuper:
return "LeftSuper"
return keyLeftSuperStr
case KeyRightSuper:
return "RightSuper"
return keyRightSuperStr
case KeyCapsLock:
return "CapsLock"
return keyCapsLockStr
case KeyNumLock:
return "NumLock"
return keyNumLockStr
case KeyScrollLock:
return "ScrollLock"
return keyScrollLockStr
case KeyNumpad0:
return "Numpad0"
return keyNumpad0Str
case KeyNumpad1:
return "Numpad1"
case KeyNumpad2:
Expand All @@ -403,61 +469,61 @@ func (k Key) String() string {
case KeyNumpad8:
return "Numpad8"
case KeyNumpad9:
return "Numpad9"
return keyNumpad9Str
case KeyNumpadDecimal:
return "NumpadDecimal"
return keyNumpadDecimalStr
case KeyNumpadEnter:
return "NumpadEnter"
return keyNumpadEnterStr
case KeyNumpadAdd:
return "NumpadAdd"
return keyNumpadAddStr
case KeyNumpadSubtract:
return "NumpadSubtract"
return keyNumpadSubtractStr
case KeyNumpadMultiply:
return "NumpadMultiply"
return keyNumpadMultiplyStr
case KeyNumpadDivide:
return "NumpadDivide"
return keyNumpadDivideStr
case KeyMinus:
return "Minus"
return keyMinusStr
case KeyEqual:
return "Equal"
return keyEqualStr
case KeyLeftBracket:
return "LeftBracket"
return keyLeftBracketStr
case KeyRightBracket:
return "RightBracket"
return keyRightBracketStr
case KeyBackslash:
return "Backslash"
return keyBackslashStr
case KeySemicolon:
return "Semicolon"
return keySemicolonStr
case KeyApostrophe:
return "Apostrophe"
return keyApostropheStr
case KeyGrave:
return "Grave"
return keyGraveStr
case KeyComma:
return "Comma"
return keyCommaStr
case KeyPeriod:
return "Period"
return keyPeriodStr
case KeySlash:
return "Slash"
return keySlashStr
case KeyPrintScreen:
return "PrintScreen"
return keyPrintScreenStr
case KeyPause:
return "Pause"
return keyPauseStr
case KeyMenu:
return "Menu"
return keyMenuStr
case KeyMute:
return "Mute"
return keyMuteStr
case KeyVolumeUp:
return "VolumeUp"
return keyVolumeUpStr
case KeyVolumeDown:
return "VolumeDown"
return keyVolumeDownStr
case KeyMediaPlay:
return "MediaPlay"
return keyMediaPlayStr
case KeyMediaStop:
return "MediaStop"
return keyMediaStopStr
case KeyMediaNext:
return "MediaNext"
return keyMediaNextStr
case KeyMediaPrev:
return "MediaPrev"
return keyMediaPrevStr
default:
return fmt.Sprintf("Key(%d)", k)
}
Expand Down
Loading
Loading