From c4554107da330e74b9aedfd2ede71af571f3d1bc Mon Sep 17 00:00:00 2001 From: Andy Date: Fri, 1 May 2026 23:42:00 +0300 Subject: [PATCH 1/3] chore(deps): update gg v0.44.1 (v0.1.18) --- CHANGELOG.md | 6 ++++++ codecov.yml | 4 ++++ go.mod | 2 +- go.sum | 4 ++++ 4 files changed, 15 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index f928182..55c0262 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -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 diff --git a/codecov.yml b/codecov.yml index 3d548c4..3ce088d 100644 --- a/codecov.yml +++ b/codecov.yml @@ -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 diff --git a/go.mod b/go.mod index 8e1600d..5fc510d 100644 --- a/go.mod +++ b/go.mod @@ -4,7 +4,7 @@ go 1.25.0 require ( github.com/coregx/signals v0.1.0 - github.com/gogpu/gg v0.43.7 + github.com/gogpu/gg v0.44.1 github.com/gogpu/gogpu v0.31.0 github.com/gogpu/gpucontext v0.16.0 golang.org/x/image v0.39.0 diff --git a/go.sum b/go.sum index 4ab9bde..3bd6a47 100644 --- a/go.sum +++ b/go.sum @@ -10,6 +10,10 @@ github.com/go-webgpu/webgpu v0.4.3 h1:dIBf7WgO/7VL2Cj7IFcq151rWqvSknsFe6k/+ZEEXE github.com/go-webgpu/webgpu v0.4.3/go.mod h1:HNIBiaMJNdPeQd6hmHdQsXg4t4R99xVQybnoDGOShe0= github.com/gogpu/gg v0.43.7 h1:0+0NRc/w84CKDdYkH1ope2EIk+aJnVHpPwAevbDnqe8= github.com/gogpu/gg v0.43.7/go.mod h1:fMFOLpxJHXFn8K7GdfmOIkK7NUiPdJ+yHjcAIQbq2Qo= +github.com/gogpu/gg v0.44.0 h1:cv+zi+aQ2qyVhEaMFoU+giG+ss77ecQNxctJEdJomzI= +github.com/gogpu/gg v0.44.0/go.mod h1:fMFOLpxJHXFn8K7GdfmOIkK7NUiPdJ+yHjcAIQbq2Qo= +github.com/gogpu/gg v0.44.1 h1:g5QPLnX1xDx0JPdwYqKYnpmEhz1/GRaPC7OnMMIPhlQ= +github.com/gogpu/gg v0.44.1/go.mod h1:fMFOLpxJHXFn8K7GdfmOIkK7NUiPdJ+yHjcAIQbq2Qo= github.com/gogpu/gogpu v0.31.0 h1:vrV0d2DhPNacYoSetkqWzHu3wI+rSCEmvmF6S7pSVus= github.com/gogpu/gogpu v0.31.0/go.mod h1:pPMTJ4s+Xfw+gbcO9GWijN9CmQ2J/8JP2GcZjhVHa2w= github.com/gogpu/gpucontext v0.16.0 h1:33PhNAtaTyOjpR/foSzW4JjgWjX1W4cuJxjofGFs74M= From 8fd5fa0973d260c7d1c0e1cd38ec44720b8da481 Mon Sep 17 00:00:00 2001 From: Andy Date: Sat, 2 May 2026 00:25:23 +0300 Subject: [PATCH 2/3] fix(lint): resolve 111 goconst issues for golangci-lint v2.12 Extract repeated string literals into package-level constants across 17 files: event types, key codes, mouse buttons, modifiers, theme modes, render modes, layout alignments, widget canvas blend modes. --- app/render_mode.go | 13 +- event/event.go | 28 +++-- event/focus.go | 10 +- event/key.go | 182 +++++++++++++++++++--------- event/modifiers.go | 7 +- event/mouse.go | 41 +++++-- examples/modular-compositor/main.go | 8 +- icon/icon.go | 5 +- internal/layout/flex.go | 3 +- internal/layout/stack.go | 42 ++++--- layout/stack.go | 12 +- theme/mode.go | 9 +- theme/presets.go | 12 +- theme/registry.go | 36 +++--- theme/typography.go | 2 +- widget/canvas.go | 5 +- widget/context.go | 2 +- 17 files changed, 282 insertions(+), 135 deletions(-) diff --git a/app/render_mode.go b/app/render_mode.go index e0f1dd1..e37700a 100644 --- a/app/render_mode.go +++ b/app/render_mode.go @@ -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 } } diff --git a/event/event.go b/event/event.go index 3326031..c1ec206 100644 --- a/event/event.go +++ b/event/event.go @@ -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 } diff --git a/event/focus.go b/event/focus.go index f6bcc71..7cfe6b0 100644 --- a/event/focus.go +++ b/event/focus.go @@ -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 } diff --git a/event/key.go b/event/key.go index 25bacf3..5285682 100644 --- a/event/key.go +++ b/event/key.go @@ -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 } @@ -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 @@ -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: @@ -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: @@ -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) } diff --git a/event/modifiers.go b/event/modifiers.go index 881309a..a030246 100644 --- a/event/modifiers.go +++ b/event/modifiers.go @@ -100,9 +100,14 @@ func (m Modifiers) Without(mod Modifiers) Modifiers { // Example: // // (ModCtrl | ModShift).String() // "Ctrl+Shift" +// Modifier string constants. +const ( + modNoneStr = "None" +) + func (m Modifiers) String() string { if m == ModNone { - return "None" + return modNoneStr } var parts []string diff --git a/event/mouse.go b/event/mouse.go index 61c4044..099e644 100644 --- a/event/mouse.go +++ b/event/mouse.go @@ -34,23 +34,34 @@ const ( MouseDoubleClick ) +// Mouse event type string constants. +const ( + mousePressStr = "Press" + mouseReleaseStr = "Release" + mouseMoveStr = "Move" + mouseEnterStr = "Enter" + mouseLeaveStr = "Leave" + mouseDragStr = "Drag" + mouseDoubleClickStr = "DoubleClick" +) + // String returns a human-readable name for the mouse event type. func (t MouseEventType) String() string { switch t { case MousePress: - return "Press" + return mousePressStr case MouseRelease: - return "Release" + return mouseReleaseStr case MouseMove: - return "Move" + return mouseMoveStr case MouseEnter: - return "Enter" + return mouseEnterStr case MouseLeave: - return "Leave" + return mouseLeaveStr case MouseDrag: - return "Drag" + return mouseDragStr case MouseDoubleClick: - return "DoubleClick" + return mouseDoubleClickStr default: return unknownStr } @@ -80,17 +91,25 @@ const ( ButtonX2 ) +// Mouse button string constants. +const ( + buttonNoneStr = "None" + buttonLeftStr = "Left" + buttonRightStr = "Right" + buttonMiddleStr = "Middle" +) + // String returns a human-readable name for the button. func (b Button) String() string { switch b { case ButtonNone: - return "None" + return buttonNoneStr case ButtonLeft: - return "Left" + return buttonLeftStr case ButtonRight: - return "Right" + return buttonRightStr case ButtonMiddle: - return "Middle" + return buttonMiddleStr case ButtonX1: return "X1" case ButtonX2: diff --git a/examples/modular-compositor/main.go b/examples/modular-compositor/main.go index 6d19cff..ac3eecd 100644 --- a/examples/modular-compositor/main.go +++ b/examples/modular-compositor/main.go @@ -198,6 +198,8 @@ func notificationModule(out chan<- Frame) { displayS = 3 // seconds to show before hiding ) + const notificationModule = "notification" + m3 := material3.New(widget.Hex(0x2E7D32)) // green seed r := offscreen.NewRenderer(modW, modH, offscreen.WithTheme(m3), @@ -240,7 +242,7 @@ func notificationModule(out chan<- Frame) { y := int(float64(targetY+modH) - ease*float64(modH)) out <- Frame{ - ModuleID: "notification", + ModuleID: notificationModule, Image: img, X: 150, // centered: (600-300)/2 Y: y, @@ -250,7 +252,7 @@ func notificationModule(out chan<- Frame) { // Hold at final position. out <- Frame{ - ModuleID: "notification", + ModuleID: notificationModule, Image: img, X: 150, Y: targetY, @@ -260,7 +262,7 @@ func notificationModule(out chan<- Frame) { time.Sleep(displayS * time.Second) out <- Frame{ - ModuleID: "notification", + ModuleID: notificationModule, Image: nil, // hide X: 150, Y: targetY, diff --git a/icon/icon.go b/icon/icon.go index 8457936..1872bbc 100644 --- a/icon/icon.go +++ b/icon/icon.go @@ -23,13 +23,16 @@ const ( CmdClose ) +// cmdCloseStr is the string name for the Close command. +const cmdCloseStr = "Close" + // commandNames maps each Command to its human-readable name. var commandNames = [...]string{ CmdMoveTo: "MoveTo", CmdLineTo: "LineTo", CmdCubicTo: "CubicTo", CmdQuadraticTo: "QuadraticTo", - CmdClose: "Close", + CmdClose: cmdCloseStr, } // unknownStr is the string representation for unknown/unrecognized values. diff --git a/internal/layout/flex.go b/internal/layout/flex.go index 8f42e6a..ca43b93 100644 --- a/internal/layout/flex.go +++ b/internal/layout/flex.go @@ -9,6 +9,7 @@ const ( alignStart = "Start" alignEnd = "End" alignCenter = "Center" + alignStretch = "Stretch" alignUnknown = "Unknown" ) @@ -116,7 +117,7 @@ func (a AlignItems) String() string { case AlignCenter: return alignCenter case AlignStretch: - return "Stretch" + return alignStretch case AlignBaseline: return "Baseline" default: diff --git a/internal/layout/stack.go b/internal/layout/stack.go index 68fbcfa..f0b3814 100644 --- a/internal/layout/stack.go +++ b/internal/layout/stack.go @@ -22,15 +22,15 @@ const ( func (a StackAlignment) String() string { switch a { case StackAlignStart: - return "Start" + return alignStart case StackAlignCenter: - return "Center" + return alignCenter case StackAlignEnd: - return "End" + return alignEnd case StackAlignStretch: - return "Stretch" + return alignStretch default: - return "Unknown" + return alignUnknown } } @@ -428,29 +428,41 @@ const ( ZAlignBottomRight ) +// String constants for ZStack alignment names. +const ( + zAlignTopLeft = "TopLeft" + zAlignTop = "Top" + zAlignTopRight = "TopRight" + zAlignLeft = "Left" + zAlignRight = "Right" + zAlignBottomLeft = "BottomLeft" + zAlignBottom = "Bottom" + zAlignBottomRight = "BottomRight" +) + // String returns a string representation of ZStack alignment. func (a ZStackAlignment) String() string { switch a { case ZAlignTopLeft: - return "TopLeft" + return zAlignTopLeft case ZAlignTop: - return "Top" + return zAlignTop case ZAlignTopRight: - return "TopRight" + return zAlignTopRight case ZAlignLeft: - return "Left" + return zAlignLeft case ZAlignCenter: - return "Center" + return alignCenter case ZAlignRight: - return "Right" + return zAlignRight case ZAlignBottomLeft: - return "BottomLeft" + return zAlignBottomLeft case ZAlignBottom: - return "Bottom" + return zAlignBottom case ZAlignBottomRight: - return "BottomRight" + return zAlignBottomRight default: - return "Unknown" + return alignUnknown } } diff --git a/layout/stack.go b/layout/stack.go index 9cf0658..5ce916b 100644 --- a/layout/stack.go +++ b/layout/stack.go @@ -11,6 +11,10 @@ const ( alignStrEnd = "End" alignStrStretch = "Stretch" alignStrUnknown = "Unknown" + + stackVStackStr = "vstack" + stackHStackStr = "hstack" + stackZStackStr = "zstack" ) // StackDirection specifies the direction for stack layouts. @@ -74,11 +78,11 @@ type StackLayout struct { func (s *StackLayout) Name() string { switch s.Direction { case StackVertical: - return "vstack" + return stackVStackStr case StackHorizontal: - return "hstack" + return stackHStackStr case StackZ: - return "zstack" + return stackZStackStr default: return "stack" } @@ -321,7 +325,7 @@ type ZStackLayout struct { // Name returns "zstack". func (z *ZStackLayout) Name() string { - return "zstack" + return stackZStackStr } // alignFunc is a function that calculates position for a child in a z-stack. diff --git a/theme/mode.go b/theme/mode.go index ebea9cf..d05c6ad 100644 --- a/theme/mode.go +++ b/theme/mode.go @@ -1,11 +1,18 @@ package theme -// String constants for mode names. +// String constants for mode and theme names. const ( unknownStr = "Unknown" modeLight = "Light" modeDark = "Dark" modeSystem = "System" + + themeHighContrast = "High Contrast" + themePurple = "Purple" + themeGreen = "Green" + themeOrange = "Orange" + themeAuthor = "gogpu" + themeVersion = "1.0.0" ) // ThemeMode represents the color scheme mode for a theme. diff --git a/theme/presets.go b/theme/presets.go index 027e511..1327876 100644 --- a/theme/presets.go +++ b/theme/presets.go @@ -22,7 +22,7 @@ import "github.com/gogpu/ui/widget" // bodyStyle := theme.Typography.BodyMedium func DefaultLight() *Theme { return &Theme{ - Name: "Light", + Name: modeLight, Mode: ModeLight, Colors: ColorPalette{ // Primary colors - Material Blue @@ -85,7 +85,7 @@ func DefaultLight() *Theme { // backgroundColor := theme.Colors.Background func DefaultDark() *Theme { return &Theme{ - Name: "Dark", + Name: modeDark, Mode: ModeDark, Colors: ColorPalette{ // Primary colors - Lighter blue for dark backgrounds @@ -146,7 +146,7 @@ func DefaultDark() *Theme { // theme := theme.DefaultHighContrast() func DefaultHighContrast() *Theme { return &Theme{ - Name: "High Contrast", + Name: themeHighContrast, Mode: ModeLight, Colors: ColorPalette{ // High contrast primary colors @@ -200,7 +200,7 @@ func DefaultHighContrast() *Theme { // - Background: White func Purple() *Theme { t := DefaultLight() - t.Name = "Purple" + t.Name = themePurple t.Colors.Primary = widget.Hex(0x7B1FA2) // Purple 700 t.Colors.PrimaryLight = widget.Hex(0xAE52D4) // Purple 400 t.Colors.PrimaryDark = widget.Hex(0x4A0072) // Purple 900 @@ -220,7 +220,7 @@ func Purple() *Theme { // - Background: White func Green() *Theme { t := DefaultLight() - t.Name = "Green" + t.Name = themeGreen t.Colors.Primary = widget.Hex(0x388E3C) // Green 700 t.Colors.PrimaryLight = widget.Hex(0x6ABF69) // Green 400 t.Colors.PrimaryDark = widget.Hex(0x00600F) // Green 900 @@ -240,7 +240,7 @@ func Green() *Theme { // - Background: White func Orange() *Theme { t := DefaultLight() - t.Name = "Orange" + t.Name = themeOrange t.Colors.Primary = widget.Hex(0xF57C00) // Orange 700 t.Colors.PrimaryLight = widget.Hex(0xFFAD42) // Orange 400 t.Colors.PrimaryDark = widget.Hex(0xBB4D00) // Orange 900 diff --git a/theme/registry.go b/theme/registry.go index 671df6e..3ea9db8 100644 --- a/theme/registry.go +++ b/theme/registry.go @@ -395,50 +395,50 @@ func GlobalRegistry() *ThemeRegistry { // Register built-in themes. func init() { Register("light", DefaultLight(), ThemeInfo{ - Name: "Light", + Name: modeLight, Description: "Default light theme with blue primary colors", - Author: "gogpu", - Version: "1.0.0", + Author: themeAuthor, + Version: themeVersion, Variants: []ThemeVariant{VariantLight}, }) Register("dark", DefaultDark(), ThemeInfo{ - Name: "Dark", + Name: modeDark, Description: "Default dark theme with light blue primary colors", - Author: "gogpu", - Version: "1.0.0", + Author: themeAuthor, + Version: themeVersion, Variants: []ThemeVariant{VariantDark}, }) Register("high-contrast", DefaultHighContrast(), ThemeInfo{ - Name: "High Contrast", + Name: themeHighContrast, Description: "High contrast theme for accessibility (WCAG AAA)", - Author: "gogpu", - Version: "1.0.0", + Author: themeAuthor, + Version: themeVersion, Variants: []ThemeVariant{VariantLight}, }) Register("purple", Purple(), ThemeInfo{ - Name: "Purple", + Name: themePurple, Description: "Theme with purple primary colors", - Author: "gogpu", - Version: "1.0.0", + Author: themeAuthor, + Version: themeVersion, Variants: []ThemeVariant{VariantLight}, }) Register("green", Green(), ThemeInfo{ - Name: "Green", + Name: themeGreen, Description: "Theme with green primary colors", - Author: "gogpu", - Version: "1.0.0", + Author: themeAuthor, + Version: themeVersion, Variants: []ThemeVariant{VariantLight}, }) Register("orange", Orange(), ThemeInfo{ - Name: "Orange", + Name: themeOrange, Description: "Theme with orange primary colors", - Author: "gogpu", - Version: "1.0.0", + Author: themeAuthor, + Version: themeVersion, Variants: []ThemeVariant{VariantLight}, }) } diff --git a/theme/typography.go b/theme/typography.go index 0193933..4b98572 100644 --- a/theme/typography.go +++ b/theme/typography.go @@ -106,7 +106,7 @@ const ( func (s FontStyle) String() string { switch s { case FontStyleNormal: - return "Normal" + return fontWeightNormal case FontStyleItalic: return "Italic" case FontStyleOblique: diff --git a/widget/canvas.go b/widget/canvas.go index 4619b83..2ec7bd2 100644 --- a/widget/canvas.go +++ b/widget/canvas.go @@ -28,12 +28,15 @@ var textAlignNames = [...]string{ TextAlignRight: "Right", } +// unknownStr is the string representation for unknown/unrecognized values. +const unknownStr = "Unknown" + // String returns a human-readable name for the text alignment. func (a TextAlign) String() string { if int(a) < len(textAlignNames) { return textAlignNames[a] } - return "Unknown" + return unknownStr } // Float64 returns the alignment as a float64 value for rendering backends. diff --git a/widget/context.go b/widget/context.go index 65438cb..4c36551 100644 --- a/widget/context.go +++ b/widget/context.go @@ -289,7 +289,7 @@ func (c CursorType) String() string { case CursorNone: return "None" default: - return "Unknown" + return unknownStr } } From d7877fc68e9709bc6af31ad9cc6d6b2847b7251e Mon Sep 17 00:00:00 2001 From: Andy Date: Sat, 2 May 2026 00:28:26 +0300 Subject: [PATCH 3/3] fix: go fmt --- app/render_mode.go | 2 +- event/modifiers.go | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/app/render_mode.go b/app/render_mode.go index e37700a..a8c5b01 100644 --- a/app/render_mode.go +++ b/app/render_mode.go @@ -47,7 +47,7 @@ const ( const ( renderModeHostManagedStr = "HostManaged" renderModeFrameworkManagedStr = "FrameworkManaged" - renderModeUnknownStr = "Unknown" + renderModeUnknownStr = "Unknown" ) // String returns a human-readable name for the render mode. diff --git a/event/modifiers.go b/event/modifiers.go index a030246..f130411 100644 --- a/event/modifiers.go +++ b/event/modifiers.go @@ -100,6 +100,7 @@ func (m Modifiers) Without(mod Modifiers) Modifiers { // Example: // // (ModCtrl | ModShift).String() // "Ctrl+Shift" +// // Modifier string constants. const ( modNoneStr = "None"