clicking album thumbnail on album page shows full size cover popup

This commit is contained in:
Drew Weymouth
2023-01-22 13:21:25 -08:00
parent c1aaed4b3e
commit c9bd3b5079
5 changed files with 146 additions and 33 deletions
+27 -6
View File
@@ -2,6 +2,9 @@ package browsing
import (
"supersonic/backend"
"fyne.io/fyne/v2"
"fyne.io/fyne/v2/widget"
)
type PageName int
@@ -57,21 +60,39 @@ type NavigationHandler interface {
}
type Router struct {
App *backend.App
Nav NavigationHandler
App *backend.App
MainWindow fyne.Window
Nav NavigationHandler
}
func NewRouter(app *backend.App, nav NavigationHandler) Router {
func NewRouter(app *backend.App, mainWindow fyne.Window, nav NavigationHandler) Router {
return Router{
App: app,
Nav: nav,
App: app,
MainWindow: mainWindow,
Nav: nav,
}
}
type popUpProvider struct {
window fyne.Window
}
func (p *popUpProvider) CreatePopUp(obj fyne.CanvasObject) *widget.PopUp {
return widget.NewPopUp(obj, p.window.Canvas())
}
func (p *popUpProvider) WindowSize() fyne.Size {
return p.window.Canvas().Size()
}
func (r Router) pop() *popUpProvider {
return &popUpProvider{window: r.MainWindow}
}
func (r Router) CreatePage(rte Route) Page {
switch rte.Page {
case Album:
return NewAlbumPage(rte.Arg, r.App.ServerManager, r.App.LibraryManager, r.App.ImageManager, r.OpenRoute)
return NewAlbumPage(rte.Arg, r.App.ServerManager, r.App.LibraryManager, r.App.ImageManager, r.pop(), r.OpenRoute)
case Albums:
return NewAlbumsPage("Albums", rte.Arg, r.App.LibraryManager, r.App.ImageManager, r.OpenRoute)
case Artist: