1 package etk
2
3 import (
4 "image/color"
5 "log"
6 "sync"
7
8 "github.com/hajimehoshi/ebiten/v2/examples/resources/fonts"
9 "golang.org/x/image/font"
10 "golang.org/x/image/font/opentype"
11 )
12
13 var transparent = color.RGBA{0, 0, 0, 0}
14
15 func defaultFont() font.Face {
16 tt, err := opentype.Parse(fonts.MPlus1pRegular_ttf)
17 if err != nil {
18 log.Fatal(err)
19 }
20 const dpi = 72
21 defaultFont, err := opentype.NewFace(tt, &opentype.FaceOptions{
22 Size: 32,
23 DPI: dpi,
24 Hinting: font.HintingFull,
25 })
26 if err != nil {
27 log.Fatal(err)
28 }
29 return defaultFont
30 }
31
32
33 type Attributes struct {
34 TextFont font.Face
35 TextFontMutex *sync.Mutex
36
37 TextColorLight color.RGBA
38 TextColorDark color.RGBA
39
40 TextBgColor color.RGBA
41
42 BorderSize int
43 BorderColorTop color.RGBA
44 BorderColorRight color.RGBA
45 BorderColorBottom color.RGBA
46 BorderColorLeft color.RGBA
47
48 ScrollAreaColor color.RGBA
49 ScrollHandleColor color.RGBA
50
51 ScrollBorderSize int
52 ScrollBorderColorTop color.RGBA
53 ScrollBorderColorRight color.RGBA
54 ScrollBorderColorBottom color.RGBA
55 ScrollBorderColorLeft color.RGBA
56
57 InputBgColor color.RGBA
58
59 ButtonTextColor color.RGBA
60 ButtonBgColor color.RGBA
61 ButtonBgColorDisabled color.RGBA
62 }
63
64
65 var Style = &Attributes{
66 TextFont: defaultFont(),
67 TextFontMutex: &sync.Mutex{},
68
69 TextColorLight: color.RGBA{255, 255, 255, 255},
70 TextColorDark: color.RGBA{0, 0, 0, 255},
71
72 TextBgColor: transparent,
73
74 BorderSize: 4,
75 BorderColorTop: color.RGBA{220, 220, 220, 255},
76 BorderColorRight: color.RGBA{0, 0, 0, 255},
77 BorderColorBottom: color.RGBA{0, 0, 0, 255},
78 BorderColorLeft: color.RGBA{220, 220, 220, 255},
79
80 ScrollAreaColor: color.RGBA{200, 200, 200, 255},
81 ScrollHandleColor: color.RGBA{108, 108, 108, 255},
82
83 ScrollBorderSize: 2,
84 ScrollBorderColorTop: color.RGBA{240, 240, 240, 255},
85 ScrollBorderColorRight: color.RGBA{0, 0, 0, 255},
86 ScrollBorderColorBottom: color.RGBA{0, 0, 0, 255},
87 ScrollBorderColorLeft: color.RGBA{240, 240, 240, 255},
88
89 InputBgColor: color.RGBA{0, 128, 0, 255},
90
91 ButtonBgColor: color.RGBA{255, 255, 255, 255},
92 ButtonBgColorDisabled: color.RGBA{110, 110, 110, 255},
93 }
94
View as plain text