HLS-builder/theme.go
2024-05-09 16:11:13 +08:00

55 lines
1.6 KiB
Go

/*
* @Author: BlackTeay
* @Date: 2024-05-09 15:40:58
* @LastEditTime: 2024-05-09 15:42:53
* @LastEditors: BlackTeay
* @Description:
* @FilePath: /hls_builder/theme.go
* Copyright 2024 JLNTV NMTD, All Rights Reserved.
*/
package main
import (
_ "embed"
"image/color"
"fyne.io/fyne/v2"
"fyne.io/fyne/v2/theme"
)
//go:embed "font/NotoSansSC-Regular.ttf"
var ttfBytes []byte
// MyTheme 定义了一个自定义的主题结构体。
type MyTheme struct{}
// Color 根据给定的主题颜色名称和变种返回相应的颜色。
// 参数 c 为主题颜色的名称。
// 参数 v 为颜色的变种。
// 返回值为符合 color.Color 接口的颜色值。
func (MyTheme) Color(c fyne.ThemeColorName, v fyne.ThemeVariant) color.Color {
return theme.DefaultTheme().Color(c, v)
}
// Font 根据给定的文本样式返回相应的字体资源。
// 参数 s 为文本的样式,决定了使用的字体。
// 返回值为一个 fyne.Resource 类型的字体资源。
func (MyTheme) Font(s fyne.TextStyle) fyne.Resource {
return fyne.NewStaticResource("./font/NotoSansSC-Regular.ttf", ttfBytes)
}
// Icon 根据给定的图标名称返回相应的图标资源。
// 参数 n 为图标的名称。
// 返回值为一个 fyne.Resource 类型的图标资源。
func (MyTheme) Icon(n fyne.ThemeIconName) fyne.Resource {
return theme.DefaultTheme().Icon(n)
}
// Size 根据给定的主题尺寸名称返回相应的尺寸值。
// 参数 s 为主题尺寸的名称。
// 返回值为相应的尺寸值,单位为 float32。
func (MyTheme) Size(s fyne.ThemeSizeName) float32 {
return theme.DefaultTheme().Size(s)
}