package main import ( "fmt" "fyne.io/fyne/v2" "fyne.io/fyne/v2/app" "fyne.io/fyne/v2/container" "fyne.io/fyne/v2/widget" ) const projectsFilePath = "projects.json" var logMaxLines = 7 func main() { myApp := app.New() myWindow := myApp.NewWindow("Unreal Project Launcher") myWindow.Resize(fyne.NewSize(730, 460)) projects, err := LoadProjects(projectsFilePath) if err != nil { fmt.Println("Error while loading projects") } logText := widget.NewMultiLineEntry() logText.SetMinRowsVisible(logMaxLines); InitLogger(logText, logMaxLines) var projectList *fyne.Container reloadUI := func() { projectList.RemoveAll() for _, project := range projects { row := NewProjectRow(project) projectList.Add(row) } } projectList = container.NewVBox() reloadUI() scrollContainer := container.NewVScroll(projectList) mainContainer := container.NewBorder(nil, logText, nil, nil, scrollContainer) myWindow.SetContent(mainContainer) myWindow.ShowAndRun() }