package main import ( // "image/color" "time" "fyne.io/fyne/v2" "fyne.io/fyne/v2/app" "fyne.io/fyne/v2/container" "fyne.io/fyne/v2/widget" "fmt" ) const ( refreshInterval = time.Second windowWidth = 300 windowHeight = 400 ) func updateTime(clock *widget.Label) { formatted := time.Now().Format("Time: 03:04:05") clock.SetText(formatted) } func main() { fmt.Println("Starting on GUI") // Create a GUI app a := app.New() w := a.NewWindow("Radio Paradise Playing...") w.Resize(fyne.NewSize(windowWidth, windowHeight)) // Get data from radioparadise and put in Label url := "https://api.radioparadise.com/api/now_playing" data, _ := readAPI(url) str := printFormattedSong(&data) rp := widget.NewLabel(str) // Create clock running as Label clock := widget.NewLabel("") updateTime(clock) go func() { for range time.Tick(refreshInterval) { updateTime(clock) } }() // Quit button on container quit := widget.NewButton("quit", func(){ a.Quit() }) // Combine all Labels on container content := container.NewVBox( rp, clock, quit, ) // Show content on window w.SetContent(content) w.Show() //Run the app a.Run() tidyUp() } func tidyUp() { fmt.Println("GUI app exited") }