first commit
This commit is contained in:
@@ -0,0 +1,54 @@
|
||||
package ui
|
||||
|
||||
import (
|
||||
"image"
|
||||
|
||||
"gomuse/ui/layout"
|
||||
|
||||
"fyne.io/fyne/v2"
|
||||
"fyne.io/fyne/v2/canvas"
|
||||
"fyne.io/fyne/v2/container"
|
||||
"fyne.io/fyne/v2/widget"
|
||||
)
|
||||
|
||||
type NowPlayingCard struct {
|
||||
widget.BaseWidget
|
||||
|
||||
trackName *widget.Label
|
||||
artistName *widget.Label
|
||||
albumName *widget.Label
|
||||
cover *canvas.Image
|
||||
|
||||
c fyne.CanvasObject
|
||||
}
|
||||
|
||||
func NewNowPlayingCard() *NowPlayingCard {
|
||||
n := &NowPlayingCard{
|
||||
trackName: widget.NewLabel(""),
|
||||
artistName: widget.NewLabel(""),
|
||||
albumName: widget.NewLabel(""),
|
||||
cover: &canvas.Image{},
|
||||
}
|
||||
n.ExtendBaseWidget(n)
|
||||
n.trackName.Wrapping = fyne.TextTruncate
|
||||
n.trackName.TextStyle = fyne.TextStyle{Bold: true}
|
||||
n.artistName.Wrapping = fyne.TextTruncate
|
||||
n.albumName.Wrapping = fyne.TextTruncate
|
||||
n.cover.SetMinSize(fyne.NewSize(100, 100))
|
||||
n.cover.FillMode = canvas.ImageFillContain
|
||||
|
||||
n.c = container.NewBorder(nil, nil, n.cover, nil, container.New(&layout.VboxCustomPadding{-10}, n.trackName, n.artistName, n.albumName))
|
||||
return n
|
||||
}
|
||||
|
||||
func (n *NowPlayingCard) CreateRenderer() fyne.WidgetRenderer {
|
||||
return widget.NewSimpleRenderer(n.c)
|
||||
}
|
||||
|
||||
func (n *NowPlayingCard) Update(track, artist, album string, cover image.Image) {
|
||||
n.trackName.Text = track
|
||||
n.artistName.Text = artist
|
||||
n.albumName.Text = album
|
||||
n.cover.Image = cover
|
||||
n.c.Refresh()
|
||||
}
|
||||
Reference in New Issue
Block a user