Files
AynaLivePlayer/app/fyne_demo/data/icons.go
2022-06-21 13:02:22 -07:00

44 lines
1.1 KiB
Go

package data
//go:generate fyne bundle -package data -o bundled.go assets
import (
"fyne.io/fyne/v2"
"fyne.io/fyne/v2/theme"
)
// ThemedResource is a resource wrapper that will return an appropriate resource
// for the currently selected theme.
type ThemedResource struct {
dark, light fyne.Resource
}
func isLight() bool {
r, g, b, _ := theme.ForegroundColor().RGBA()
return r < 0xaaaa && g < 0xaaaa && b < 0xaaaa
}
// Name returns the underlying resource name (used for caching)
func (res *ThemedResource) Name() string {
if isLight() {
return res.light.Name()
}
return res.dark.Name()
}
// Content returns the underlying content of the correct resource for the current theme
func (res *ThemedResource) Content() []byte {
if isLight() {
return res.light.Content()
}
return res.dark.Content()
}
// NewThemedResource creates a resource that adapts to the current theme setting.
func NewThemedResource(dark, light fyne.Resource) *ThemedResource {
return &ThemedResource{dark, light}
}
// FyneScene contains the full fyne logo with background design
var FyneScene = NewThemedResource(resourceFynescenedarkPng, resourceFynescenelightPng)