package ui import ( "git.patanix.de/git/kettlebell-app/internal/ui/components" "fyne.io/fyne/v2" "fyne.io/fyne/v2/container" "fyne.io/fyne/v2/theme" ) // MakeNavBar erstellt die benutzerdefinierte Navigationsleiste und gibt die Navigationsfunktion zurück. func MakeNavBar(screens map[string]fyne.CanvasObject, content *fyne.Container) (fyne.CanvasObject, func(string)) { buttons := make(map[string]*components.NavButton) // Funktion zum Umschalten der Ansichten navigateTo := func(name string) { for key, screen := range screens { screen.Hide() if key == name { screen.Show() } } for key, button := range buttons { button.SetActive(false) if key == name { button.SetActive(true) } } content.Refresh() } buttons["home"] = components.NewNavButton("Home", theme.HomeIcon(), false, func() { navigateTo("home") }) buttons["training"] = components.NewNavButton("Training", theme.MediaPlayIcon(), false, func() { navigateTo("training") }) buttons["history"] = components.NewNavButton("Historie", theme.ListIcon(), false, func() { navigateTo("history") }) buttons["settings"] = components.NewNavButton("Einstellungen", theme.SettingsIcon(), false, func() { navigateTo("settings") }) navContainer := container.NewGridWithColumns(4, buttons["home"], buttons["training"], buttons["history"], buttons["settings"], ) return navContainer, navigateTo }