diff --git a/ui/browsing/browsingpane.go b/ui/browsing/browsingpane.go index 7c33c0d..d551dec 100644 --- a/ui/browsing/browsingpane.go +++ b/ui/browsing/browsingpane.go @@ -74,7 +74,7 @@ func NewBrowsingPane(app *backend.App) *BrowsingPane { b.app.PlaybackManager.OnSongChange(b.onSongChange) b.app.PlaybackManager.OnPlayTimeUpdate(b.onPlayTimeUpdate) bkgrnd := myTheme.NewThemedRectangle(myTheme.ColorNamePageBackground) - b.pageContainer = container.NewMax(bkgrnd, layout.NewSpacer()) + b.pageContainer = container.NewStack(bkgrnd, layout.NewSpacer()) b.settingsBtn = widget.NewButtonWithIcon("", theme.SettingsIcon(), func() { p := widget.NewPopUpMenu(b.settingsMenu, fyne.CurrentApp().Driver().CanvasForObject(b.settingsBtn)) diff --git a/ui/dialogs/graphicequalizer.go b/ui/dialogs/graphicequalizer.go index c1030d3..9b7059f 100644 --- a/ui/dialogs/graphicequalizer.go +++ b/ui/dialogs/graphicequalizer.go @@ -63,7 +63,7 @@ func (g *GraphicEqualizer) buildSliders(preamp float64, bands []string, bandGain c := container.NewBorder(nil, l, nil, nil, s) bandSliders.Add(c) } - g.container = container.NewMax( + g.container = container.NewStack( container.NewBorder(nil, widget.NewLabel(""), nil, nil, container.NewBorder(nil, nil, util.NewHSpace(5), util.NewHSpace(5), container.NewVBox( diff --git a/ui/theme/themedrectangle.go b/ui/theme/themedrectangle.go index 843f592..34ca653 100644 --- a/ui/theme/themedrectangle.go +++ b/ui/theme/themedrectangle.go @@ -15,10 +15,11 @@ type ThemedRectangle struct { rect *canvas.Rectangle - ColorName fyne.ThemeColorName - Translucent bool - BorderWidth float32 - BorderColorName fyne.ThemeColorName + ColorName fyne.ThemeColorName + Translucent bool + BorderWidth float32 + BorderColorName fyne.ThemeColorName + CornerRadiusName fyne.ThemeSizeName } func NewThemedRectangle(colorName fyne.ThemeColorName) *ThemedRectangle { @@ -42,6 +43,9 @@ func (t *ThemedRectangle) Refresh() { t.rect.FillColor = fc t.rect.StrokeWidth = t.BorderWidth t.rect.StrokeColor = theme.Color(t.BorderColorName, settings.ThemeVariant()) + if t.CornerRadiusName != "" { + t.rect.CornerRadius = theme.Size(t.CornerRadiusName) + } t.BaseWidget.Refresh() } diff --git a/ui/widgets/gridviewitem.go b/ui/widgets/gridviewitem.go index f51dfd1..f9c36aa 100644 --- a/ui/widgets/gridviewitem.go +++ b/ui/widgets/gridviewitem.go @@ -50,7 +50,7 @@ func newCoverImage(placeholderResource fyne.Resource) *coverImage { func (c *coverImage) CreateRenderer() fyne.WidgetRenderer { return widget.NewSimpleRenderer( - container.NewMax(c.Im, container.NewCenter(c.playbtn)), + container.NewStack(c.Im, container.NewCenter(c.playbtn)), ) } diff --git a/ui/widgets/imageplaceholder.go b/ui/widgets/imageplaceholder.go index 531d64c..03c3a82 100644 --- a/ui/widgets/imageplaceholder.go +++ b/ui/widgets/imageplaceholder.go @@ -43,7 +43,7 @@ func NewImagePlaceholder(centerIcon fyne.Resource, minSize float32) *ImagePlaceh i.border = myTheme.NewThemedRectangle(theme.ColorNameBackground) i.border.BorderColorName = theme.ColorNameForeground i.border.BorderWidth = 3 - i.content = container.NewMax( + i.content = container.NewStack( i.border, container.NewCenter(i.iconImage), i.imageDisp, diff --git a/ui/widgets/listheader.go b/ui/widgets/listheader.go index 3ad8911..6d3de3f 100644 --- a/ui/widgets/listheader.go +++ b/ui/widgets/listheader.go @@ -63,7 +63,9 @@ func NewListHeader(cols []ListColumn, layout *layouts.ColumnsLayout) *ListHeader for i := range l.columnVisible { l.columnVisible[i] = true } - l.container = container.NewMax(myTheme.NewThemedRectangle(myTheme.ColorNameListHeader), l.columnsContainer) + rect := myTheme.NewThemedRectangle(myTheme.ColorNameListHeader) + rect.CornerRadiusName = theme.SizeNameSelectionRadius + l.container = container.NewStack(rect, l.columnsContainer) l.ExtendBaseWidget(l) l.buildColumns() return l @@ -187,7 +189,7 @@ func newColHeader(columnCfg ListColumn, sortDisabled *bool) *colHeader { } r := myTheme.NewThemedRectangle(myTheme.ColorNameListHeader) r.Translucent = true - c.sortIconContainer = container.NewMax(widget.NewIcon(theme.MenuDropDownIcon()), r) + c.sortIconContainer = container.NewStack(widget.NewIcon(theme.MenuDropDownIcon()), r) // hack to remove extra icon space // should be hidden whenever sortIcon is hidden c.sortIconNegSpacer = util.NewHSpace(0) diff --git a/ui/widgets/listrowbase.go b/ui/widgets/listrowbase.go index bfeba84..afd1aca 100644 --- a/ui/widgets/listrowbase.go +++ b/ui/widgets/listrowbase.go @@ -85,13 +85,15 @@ func (l *ListRowBase) Refresh() { func (l *ListRowBase) CreateRenderer() fyne.WidgetRenderer { if l.selectionRect == nil { l.selectionRect = canvas.NewRectangle(theme.SelectionColor()) + l.selectionRect.CornerRadius = theme.SelectionRadiusSize() l.selectionRect.Hidden = !l.Selected } if l.focusedRect == nil { l.focusedRect = canvas.NewRectangle(theme.HoverColor()) + l.focusedRect.CornerRadius = theme.SelectionRadiusSize() l.focusedRect.Hidden = !l.Focused } return widget.NewSimpleRenderer( - container.NewMax(l.selectionRect, l.focusedRect, l.Content), + container.NewStack(l.selectionRect, l.focusedRect, l.Content), ) }