func uiMain(driver gxui.Driver) { theme := dark.CreateTheme(driver).(*basic.Theme) theme.WindowBackground = background // TODO: figure out a better way to get this resolution window := theme.CreateWindow(1600, 800, "Vidar - GXUI Go Editor") commander := commander.New(driver, theme, theme.DefaultMonospaceFont()) window.OnKeyDown(func(event gxui.KeyboardEvent) { if (event.Modifier.Control() || event.Modifier.Super()) && event.Key == gxui.KeyQ { os.Exit(0) } }) // TODO: Check the system's DPI settings for this value window.SetScale(1) window.AddChild(commander) workingDir, err := os.Getwd() if err != nil { panic(err) } for _, file := range files { filepath := path.Join(workingDir, file) commander.Controller().Editor().Open(filepath) } window.OnClose(driver.Terminate) window.SetPadding(math.Spacing{L: 10, T: 10, R: 10, B: 10}) }
func uiMain(driver gxui.Driver) { theme := dark.CreateTheme(driver).(*basic.Theme) font := font(driver) if font == nil { font = theme.DefaultMonospaceFont() } theme.SetDefaultMonospaceFont(font) theme.SetDefaultFont(font) theme.WindowBackground = background // TODO: figure out a better way to get this resolution window := theme.CreateWindow(1600, 800, "Vidar - GXUI Go Editor") controller := controller.New(driver, theme) nav := navigator.New(driver, theme, controller) controller.SetNavigator(nav) editor := editor.New(driver, window, theme, theme.DefaultMonospaceFont()) controller.SetEditor(editor) projTree := navigator.NewProjectTree(driver, window, theme) projects := navigator.NewProjectsPane(driver, theme, projTree.Frame()) nav.Add(projects) nav.Add(projTree) nav.Resize(window.Size().H) window.OnResize(func() { nav.Resize(window.Size().H) }) commander := commander.New(driver, theme, controller) // TODO: Check the system's DPI settings for this value window.SetScale(1) window.AddChild(commander) for _, command := range commands.Commands(driver, theme, projTree.Frame()) { commander.Map(command, settings.Bindings(command.Name())...) } window.OnKeyDown(func(event gxui.KeyboardEvent) { if (event.Modifier.Control() || event.Modifier.Super()) && event.Key == gxui.KeyQ { os.Exit(0) } if event.Modifier == 0 && event.Key == gxui.KeyF11 { window.SetFullscreen(!window.Fullscreen()) } if window.Focus() == nil { commander.KeyDown(event) } }) window.OnKeyUp(func(event gxui.KeyboardEvent) { if window.Focus() == nil { commander.KeyPress(event) } }) for _, file := range files { filepath, err := filepath.Abs(file) if err != nil { log.Printf("Failed to get path: %s", err) } commander.Controller().Editor().Open(filepath, token.Position{}) } window.OnClose(driver.Terminate) window.SetPadding(math.Spacing{L: 10, T: 10, R: 10, B: 10}) }
// CreateTheme creates and returns the theme specified on the command line. // The default theme is dark. func CreateTheme(driver gxui.Driver) gxui.Theme { if FlagTheme == "light" { return light.CreateTheme(driver) } return dark.CreateTheme(driver) }