/* * @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) }