make inactive lyric color less hard to see

This commit is contained in:
Drew Weymouth
2024-05-25 20:35:42 -07:00
parent 17ede7a909
commit e7f97fd3f6
2 changed files with 15 additions and 0 deletions
+13
View File
@@ -22,6 +22,7 @@ const (
ColorNameListHeader fyne.ThemeColorName = "ListHeader" ColorNameListHeader fyne.ThemeColorName = "ListHeader"
ColorNamePageBackground fyne.ThemeColorName = "PageBackground" ColorNamePageBackground fyne.ThemeColorName = "PageBackground"
ColorNamePageHeader fyne.ThemeColorName = "PageHeader" ColorNamePageHeader fyne.ThemeColorName = "PageHeader"
ColorNameInactiveLyric fyne.ThemeColorName = "InactiveLyric"
) )
var ( var (
@@ -105,6 +106,18 @@ func (m *MyTheme) Color(name fyne.ThemeColorName, _ fyne.ThemeVariant) color.Col
defColors = m.defaultThemeFile.LightColors defColors = m.defaultThemeFile.LightColors
} }
switch name { switch name {
case ColorNameInactiveLyric:
// average the Foreground and Disabled colors
foreground := colorOrDefault(colors.Foreground, defColors.Foreground, theme.ColorNameForeground, variant)
disabled := colorOrDefault(colors.Disabled, defColors.Disabled, theme.ColorNameDisabled, variant)
pr, pg, pb, pa := foreground.RGBA()
dr, dg, db, da := disabled.RGBA()
rAvg := uint8((pr/257 + dr/257) / 2)
gAvg := uint8((pg/257 + dg/257) / 2)
bAvg := uint8((pb/257 + db/257) / 2)
aAvg := uint8((pa/257 + da/257) / 2)
return color.RGBA{R: rAvg, G: gAvg, B: bAvg, A: aAvg}
case ColorNameListHeader: case ColorNameListHeader:
return colorOrDefault(colors.ListHeader, defColors.ListHeader, name, variant) return colorOrDefault(colors.ListHeader, defColors.ListHeader, name, variant)
case ColorNamePageBackground: case ColorNamePageBackground:
+2
View File
@@ -6,6 +6,7 @@ import (
"fyne.io/fyne/v2/widget" "fyne.io/fyne/v2/widget"
fynelyrics "github.com/dweymouth/fyne-lyrics" fynelyrics "github.com/dweymouth/fyne-lyrics"
"github.com/dweymouth/supersonic/backend/mediaprovider" "github.com/dweymouth/supersonic/backend/mediaprovider"
"github.com/dweymouth/supersonic/ui/theme"
) )
type LyricsViewer struct { type LyricsViewer struct {
@@ -50,6 +51,7 @@ func (l *LyricsViewer) SetLyrics(lyrics *mediaprovider.Lyrics) {
if l.viewer == nil { if l.viewer == nil {
l.viewer = fynelyrics.NewLyricsViewer() l.viewer = fynelyrics.NewLyricsViewer()
l.viewer.ActiveLyricPosition = fynelyrics.ActiveLyricPositionTopThird l.viewer.ActiveLyricPosition = fynelyrics.ActiveLyricPositionTopThird
l.viewer.InactiveLyricColorName = theme.ColorNameInactiveLyric
} }
lines := make([]string, len(lyrics.Lines)) lines := make([]string, len(lyrics.Lines))
for i, line := range lyrics.Lines { for i, line := range lyrics.Lines {