package gui import ( "github.com/wailsapp/wails/v2" "github.com/wailsapp/wails/v2/pkg/options" "github.com/wailsapp/wails/v2/pkg/options/assetserver" "github.com/wailsapp/wails/v2/pkg/options/windows" ) // Run launches the Wails GUI. It blocks until the window is closed. // // Window size matches the React design (480×640) but is resizable so // users on smaller displays can shrink it. Title shows the version. func Run(version string) error { app := NewApp(version) // Frameless = no native Windows chrome; the React Classic component // renders its own title bar (brand mark, version, theme toggle, // min/close icons) so we deliberately suppress the OS chrome to // avoid stacking two title bars. // The Classic React component renders a fixed 480×640 surface, so we // pin the host window to exactly the same. Allowing resize would // expose the bare Wails background colour around the React canvas // (the "blue strip on the side" issue from early testing). const w, h = 480, 640 return wails.Run(&options.App{ Title: "Drover-Go " + version, Width: w, Height: h, MinWidth: w, MinHeight: h, MaxWidth: w, MaxHeight: h, DisableResize: true, Frameless: true, AssetServer: &assetserver.Options{ Assets: Assets, }, BackgroundColour: &options.RGBA{R: 28, G: 29, B: 32, A: 1}, // matches Classic dark bg OnStartup: app.Startup, Windows: &windows.Options{ WebviewIsTransparent: false, WindowIsTranslucent: false, DisableFramelessWindowDecorations: false, }, Bind: []interface{}{ app, }, }) }