added a custom Theme using the fyne-theme-generator

This commit is contained in:
Falko Victor Habel 2024-04-25 08:34:25 +02:00
parent 4ecbbf4c83
commit b0b04d23b1
2 changed files with 99 additions and 5 deletions

View File

@ -1,6 +1,8 @@
package game
import (
"tictactoe/theme"
"fyne.io/fyne/v2"
"fyne.io/fyne/v2/app"
"fyne.io/fyne/v2/container"
@ -13,10 +15,12 @@ var TextLabel *widget.Label
// creates a window for the TicTacToe game application.
func CreateWindow() fyne.Window {
// Create the app.
myApp := app.New()
App := app.New()
// Adding a theme to my Window
App.Settings().SetTheme(theme.TicTacToeTheme{})
// Create a new window for the game application.
myWindow := myApp.NewWindow("TicTacToe")
Window := App.NewWindow("TicTacToe")
// Set the text of our TextLabel to TicTacToe
TextLabel = widget.NewLabel("TicTacToe")
@ -34,9 +38,9 @@ func CreateWindow() fyne.Window {
content := container.New(layout.NewBorderLayout(topItems, nil, nil, nil), topItems, matchField)
// Set the content and size of the window.
myWindow.SetContent(content)
myWindow.Resize(fyne.NewSize(300, 300))
Window.SetContent(content)
Window.Resize(fyne.NewSize(300, 300))
// Return the created window.
return myWindow
return Window
}

90
theme/theme_gen.go Normal file
View File

@ -0,0 +1,90 @@
// Code generated by fyne-theme-generator
package theme
import (
"image/color"
"fyne.io/fyne/v2"
"fyne.io/fyne/v2/theme"
)
type TicTacToeTheme struct{}
func (TicTacToeTheme) Color(c fyne.ThemeColorName, v fyne.ThemeVariant) color.Color {
switch c {
case theme.ColorNameBackground:
return color.NRGBA{R: 0x13, G: 0x37, B: 0x73, A: 0xff}
case theme.ColorNameButton:
return color.NRGBA{R: 0x1e, G: 0x57, B: 0xba, A: 0xff}
case theme.ColorNameDisabledButton:
return color.NRGBA{R: 0x9, G: 0x19, B: 0x36, A: 0xff}
case theme.ColorNameDisabled:
return color.NRGBA{R: 0x54, G: 0x66, B: 0x87, A: 0xff}
case theme.ColorNameError:
return color.NRGBA{R: 0xf4, G: 0x43, B: 0x36, A: 0xff}
case theme.ColorNameFocus:
return color.NRGBA{R: 0x4a, G: 0x72, B: 0xbd, A: 0xff}
case theme.ColorNameForeground:
return color.NRGBA{R: 0xbd, G: 0xd5, B: 0xff, A: 0xff}
case theme.ColorNameHover:
return color.NRGBA{R: 0x56, G: 0x7a, B: 0xba, A: 0xff}
case theme.ColorNameInputBackground:
return color.NRGBA{R: 0xff, G: 0xff, B: 0xff, A: 0x19}
case theme.ColorNamePlaceHolder:
return color.NRGBA{R: 0xb2, G: 0xb2, B: 0xb2, A: 0xff}
case theme.ColorNamePressed:
return color.NRGBA{R: 0xff, G: 0xff, B: 0xff, A: 0x66}
case theme.ColorNamePrimary:
return color.NRGBA{R: 0x21, G: 0x96, B: 0xf3, A: 0xff}
case theme.ColorNameScrollBar:
return color.NRGBA{R: 0x0, G: 0x0, B: 0x0, A: 0x99}
case theme.ColorNameShadow:
return color.NRGBA{R: 0x0, G: 0x0, B: 0x0, A: 0x66}
default:
return theme.DefaultTheme().Color(c, v)
}
}
func (TicTacToeTheme) Font(s fyne.TextStyle) fyne.Resource {
if s.Monospace {
return theme.DefaultTheme().Font(s)
}
if s.Bold {
if s.Italic {
return theme.DefaultTheme().Font(s)
}
return theme.DefaultTheme().Font(s)
}
if s.Italic {
return theme.DefaultTheme().Font(s)
}
return theme.DefaultTheme().Font(s)
}
func (TicTacToeTheme) Icon(n fyne.ThemeIconName) fyne.Resource {
return theme.DefaultTheme().Icon(n)
}
func (TicTacToeTheme) Size(s fyne.ThemeSizeName) float32 {
switch s {
case theme.SizeNameCaptionText:
return 11
case theme.SizeNameInlineIcon:
return 20
case theme.SizeNamePadding:
return 4
case theme.SizeNameScrollBar:
return 16
case theme.SizeNameScrollBarSmall:
return 3
case theme.SizeNameSeparatorThickness:
return 1
case theme.SizeNameText:
return 14
case theme.SizeNameInputBorder:
return 2
default:
return theme.DefaultTheme().Size(s)
}
}