package main import ( "context" "log/slog" "os" "chub/internal/platform/logging" "chub/internal/ui" "gioui.org/app" "gioui.org/layout" "gioui.org/op" "gioui.org/unit" "gioui.org/widget/material" ) const version = "0.1.0-dev" func main() { ctx := context.Background() logger := logging.New(os.Stderr) logger.InfoContext(ctx, "chub starting", "version", version) go runWindow(logger) app.Main() } func runWindow(logger *slog.Logger) { window := new(app.Window) window.Option(app.Title("Chub 浏览器管理"), app.Size(unit.Dp(1100), unit.Dp(720))) theme := material.NewTheme() shell := ui.NewShell(theme) var ops op.Ops for { switch event := window.Event().(type) { case app.DestroyEvent: if event.Err != nil { logger.ErrorContext(context.Background(), "chub window closed", "error", event.Err) } return case app.FrameEvent: gtx := app.NewContext(&ops, event) shell.Layout(layout.Context(gtx)) event.Frame(gtx.Ops) } } }