more work on fullscreen page
This commit is contained in:
@@ -5,9 +5,11 @@ import (
|
||||
|
||||
"fyne.io/fyne/v2"
|
||||
"fyne.io/fyne/v2/container"
|
||||
"fyne.io/fyne/v2/layout"
|
||||
"fyne.io/fyne/v2/theme"
|
||||
"fyne.io/fyne/v2/widget"
|
||||
"github.com/dweymouth/supersonic/ui/layouts"
|
||||
"github.com/dweymouth/supersonic/ui/theme"
|
||||
myTheme "github.com/dweymouth/supersonic/ui/theme"
|
||||
)
|
||||
|
||||
// Shows the current album art, track name, artist name, and album name
|
||||
@@ -17,12 +19,13 @@ type LargeNowPlayingCard struct {
|
||||
|
||||
DisableRating bool
|
||||
|
||||
trackName *widget.Hyperlink
|
||||
trackName *widget.RichText
|
||||
artistName *MultiHyperlink
|
||||
albumName *widget.Hyperlink
|
||||
rating *StarRating
|
||||
favorite *widget.Icon
|
||||
cover *ImagePlaceholder
|
||||
|
||||
OnTrackNameTapped func()
|
||||
OnArtistNameTapped func(artistID string)
|
||||
OnAlbumNameTapped func()
|
||||
OnShowCoverImage func()
|
||||
@@ -33,28 +36,38 @@ type LargeNowPlayingCard struct {
|
||||
|
||||
func NewLargeNowPlayingCard() *LargeNowPlayingCard {
|
||||
n := &LargeNowPlayingCard{
|
||||
trackName: widget.NewHyperlink("", nil),
|
||||
trackName: widget.NewRichTextWithText(""),
|
||||
artistName: NewMultiHyperlink(),
|
||||
albumName: widget.NewHyperlink("", nil),
|
||||
cover: NewImagePlaceholder(theme.TracksIcon, 300),
|
||||
rating: NewStarRating(),
|
||||
favorite: widget.NewIcon(myTheme.NotFavoriteIcon),
|
||||
cover: NewImagePlaceholder(myTheme.TracksIcon, 300),
|
||||
}
|
||||
n.ExtendBaseWidget(n)
|
||||
n.rating.StarSize = theme.IconInlineSize() + theme.InnerPadding()/2
|
||||
// set up the layout
|
||||
n.Content = n.cover
|
||||
n.Caption = container.New(&layouts.VboxCustomPadding{ExtraPad: -13},
|
||||
n.trackName,
|
||||
n.albumName,
|
||||
n.artistName,
|
||||
container.NewHBox(
|
||||
layout.NewSpacer(),
|
||||
n.favorite,
|
||||
widget.NewLabel("·"),
|
||||
n.rating,
|
||||
layout.NewSpacer(),
|
||||
),
|
||||
)
|
||||
|
||||
n.trackName.Segments[0].(*widget.TextSegment).Style.SizeName = theme.SizeNameSubHeadingText
|
||||
n.trackName.Truncation = fyne.TextTruncateEllipsis
|
||||
n.trackName.Hidden = true
|
||||
n.albumName.Hidden = true
|
||||
n.albumName.Truncation = fyne.TextTruncateEllipsis
|
||||
n.trackName.Truncation = fyne.TextTruncateEllipsis
|
||||
n.trackName.TextStyle.Bold = true
|
||||
n.albumName.OnTapped = n.onAlbumNameTapped
|
||||
n.artistName.OnTapped = n.onArtistNameTapped
|
||||
n.trackName.OnTapped = n.onTrackNameTapped
|
||||
|
||||
return n
|
||||
}
|
||||
@@ -71,12 +84,6 @@ func (n *LargeNowPlayingCard) onArtistNameTapped(artistID string) {
|
||||
}
|
||||
}
|
||||
|
||||
func (n *LargeNowPlayingCard) onTrackNameTapped() {
|
||||
if n.OnTrackNameTapped != nil {
|
||||
n.OnTrackNameTapped()
|
||||
}
|
||||
}
|
||||
|
||||
func (n *LargeNowPlayingCard) onShowCoverImage(*fyne.PointEvent) {
|
||||
if n.OnShowCoverImage != nil {
|
||||
n.OnShowCoverImage()
|
||||
@@ -96,7 +103,7 @@ func (n *LargeNowPlayingCard) onSetRating(rating int) {
|
||||
}
|
||||
|
||||
func (n *LargeNowPlayingCard) Update(track string, artists, artistIDs []string, album string) {
|
||||
n.trackName.SetText(track)
|
||||
n.trackName.Segments[0].(*widget.TextSegment).Text = track
|
||||
n.trackName.Hidden = track == ""
|
||||
n.artistName.BuildSegments(artists, artistIDs)
|
||||
n.albumName.SetText(album)
|
||||
|
||||
Reference in New Issue
Block a user