make artist image displayable in pop-up

This commit is contained in:
Drew Weymouth
2023-02-07 09:31:49 -08:00
parent 87ae3e940f
commit 9fd6508af0
7 changed files with 113 additions and 75 deletions
+28 -5
View File
@@ -15,6 +15,8 @@ type ImagePlaceholder struct {
widget.BaseWidget
container *fyne.Container
minSize float32
OnTapped func()
}
func NewImagePlaceholder(centerIcon fyne.Resource, minSize float32) *ImagePlaceholder {
@@ -34,15 +36,36 @@ func NewImagePlaceholder(centerIcon fyne.Resource, minSize float32) *ImagePlaceh
return m
}
func (i *ImagePlaceholder) SetImage(img image.Image) {
cImg := canvas.NewImageFromImage(img)
cImg.FillMode = canvas.ImageFillContain
cImg.SetMinSize(fyne.NewSize(i.minSize, i.minSize))
type CanvasImage interface {
fyne.CanvasObject
SetMinSize(fyne.Size)
}
func (i *ImagePlaceholder) SetImage(img image.Image, tappable bool) {
var cIm CanvasImage
if tappable {
cImg := NewTappableImage(i.onTapped)
cImg.Image.Image = img
cImg.FillMode = canvas.ImageFillContain
cIm = cImg
} else {
cImg := canvas.NewImageFromImage(img)
cImg.FillMode = canvas.ImageFillContain
cIm = cImg
}
cIm.SetMinSize(fyne.NewSize(i.minSize, i.minSize))
i.container.RemoveAll()
i.container.Add(cImg)
i.container.Add(cIm)
i.container.Refresh()
}
func (i *ImagePlaceholder) onTapped() {
if i.OnTapped != nil {
i.OnTapped()
}
}
func (i *ImagePlaceholder) CreateRenderer() fyne.WidgetRenderer {
return widget.NewSimpleRenderer(i.container)
}
+2 -2
View File
@@ -14,8 +14,8 @@ type TappableImage struct {
OnTapped func()
}
func NewTappableImage() *TappableImage {
t := &TappableImage{}
func NewTappableImage(onTapped func()) *TappableImage {
t := &TappableImage{OnTapped: onTapped}
t.ExtendBaseWidget(t)
return t
}