feat(v2): migrate UI from Walk to Gio

Rewrites internal/ui/window.go in Gio, keeping the Window interface
(NewWindow/Run/Present/PresentAlert/ReportIssue) and the pure-Go ViewModel.
Background updates mutate shared state under a lock and Invalidate; the Gio
loop renders the latest frame. Dual tabs, widget.Image for render's RGBA, a
self-drawn confirm dialog and a MessageBeep sound. Drops lxn/walk (and the
TTM_ADDTOOL/comctl class of problems). Verified via GOOS=windows CGO_ENABLED=0
build of the UI packages; full app build needs Windows+CGo for onnxruntime.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
ila
2026-07-23 14:26:19 +08:00
co-authored by Claude Opus 4.8
parent 18e1331f8f
commit 4188a2b06c
6 changed files with 340 additions and 147 deletions
+1 -4
View File
@@ -4,10 +4,9 @@ go 1.24.0
require (
gioui.org v0.10.1
github.com/lxn/walk v0.0.0-20210112085537-c389da54e794
github.com/lxn/win v0.0.0-20210218163916-a377121e959e
github.com/yalue/onnxruntime_go v1.31.0
golang.org/x/image v0.26.0
golang.org/x/sys v0.39.0
)
require (
@@ -15,7 +14,5 @@ require (
github.com/go-text/typesetting v0.3.4 // indirect
golang.org/x/exp/shiny v0.0.0-20250408133849-7e4ce0ab07d0 // indirect
golang.org/x/net v0.48.0 // indirect
golang.org/x/sys v0.39.0 // indirect
golang.org/x/text v0.32.0 // indirect
gopkg.in/Knetic/govaluate.v3 v3.0.0 // indirect
)