/
theme.go
161 lines (129 loc) · 4.67 KB
/
theme.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
package theme
import (
"image/color"
"gioui.org/op/paint"
"gioui.org/unit"
"github.com/g45t345rt/g45w/assets"
"github.com/g45t345rt/g45w/components"
)
type Theme struct {
Key string
Name string
IndicatorColor color.NRGBA
TextColor color.NRGBA
TextMuteColor color.NRGBA
DividerColor color.NRGBA
BgColor color.NRGBA
BgGradientStartColor color.NRGBA
BgGradientEndColor color.NRGBA
HideBalanceBgColor color.NRGBA
// Header
HeaderBackButtonColors components.ButtonColors
HeaderTopBgColor color.NRGBA
// Bottom Bar
BottomBarBgColor color.NRGBA
BottomButtonColors components.ButtonColors
BottomButtonSelectedColor color.NRGBA
BottomShadowColor color.NRGBA
// Node Status
NodeStatusBgColor color.NRGBA
NodeStatusHeightTextColor color.NRGBA
NodeStatusNodeTextColor color.NRGBA
NodeStatusDotGreenColor color.NRGBA
NodeStatusDotYellowColor color.NRGBA
NodeStatusDotRedColor color.NRGBA
// XSWD Top Bar
XSWDBgColor color.NRGBA
XSWDBgTextColor color.NRGBA
// Input
InputColors components.InputColors
// Button
ButtonIconPrimaryColors components.ButtonColors
ButtonPrimaryColors components.ButtonColors
ButtonSecondaryColors components.ButtonColors
ButtonInvertColors components.ButtonColors
ButtonDangerColors components.ButtonColors
// Tab Bars
TabBarsColors components.TabBarsColors
// Modal
ModalColors components.ModalColors
ModalButtonColors components.ButtonColors
// Notifications
NotificationSuccessColors components.NotificationColors
NotificationErrorColors components.NotificationColors
NotificationInfoColors components.NotificationColors
// Progress Bar
ProgressBarColors components.ProgressBarColors
// List
ListTextColor color.NRGBA
ListBgColor color.NRGBA
ListItemHoverBgColor color.NRGBA
ListScrollBarBgColor color.NRGBA
ListItemTagBgColor color.NRGBA
ListItemTagTextColor color.NRGBA
//ListItemsColors components.ListItemsColors
// Switch
SwitchColors SwitchColors
// Images
ArrowDownArcImage paint.ImageOp
ArrowUpArcImage paint.ImageOp
CoinbaseImage paint.ImageOp
TokenImage paint.ImageOp
ManageFilesImage paint.ImageOp
}
type SwitchColors struct {
Enabled color.NRGBA
Disabled color.NRGBA
Track color.NRGBA
}
// default to Light theme (avoid nil pointer in FrameEvent before settings.Load() is set)
// settings.Load() will overwrite theme.Current with system pref or settings.json theme value
var Current *Theme = Light
var PagePadding = unit.Dp(20) // Page Inset
// don't use map[string] the ordering is not guaranteed
var Themes = []*Theme{Light, Dark, Blue}
func Get(key string) *Theme {
for _, theme := range Themes {
if theme.Key == key {
return theme
}
}
return nil
}
func LoadImages() {
imgArrowUpArcBlack, _ := assets.GetImage("arrow_up_arc.png")
opImgArrowUpArcBlack := paint.NewImageOp(imgArrowUpArcBlack)
imgArrowUpArcWhite, _ := assets.GetImage("arrow_up_arc_white.png")
opImgArrowUpArcWhite := paint.NewImageOp(imgArrowUpArcWhite)
Light.ArrowUpArcImage = opImgArrowUpArcBlack
Dark.ArrowUpArcImage = opImgArrowUpArcWhite
Blue.ArrowUpArcImage = opImgArrowUpArcWhite
imgArrowDownArcBlack, _ := assets.GetImage("arrow_down_arc.png")
opImgArrowDownArcBlack := paint.NewImageOp(imgArrowDownArcBlack)
imgArrowDownArcWhite, _ := assets.GetImage("arrow_down_arc_white.png")
opImgArrowDownArcWhite := paint.NewImageOp(imgArrowDownArcWhite)
Light.ArrowDownArcImage = opImgArrowDownArcBlack
Dark.ArrowDownArcImage = opImgArrowDownArcWhite
Blue.ArrowDownArcImage = opImgArrowDownArcWhite
imgCoinbaseBlack, _ := assets.GetImage("coinbase.png")
opImgCoinbaseBlack := paint.NewImageOp(imgCoinbaseBlack)
imgCoinbaseWhite, _ := assets.GetImage("coinbase_white.png")
opImgCoinbaseWhite := paint.NewImageOp(imgCoinbaseWhite)
Light.CoinbaseImage = opImgCoinbaseBlack
Dark.CoinbaseImage = opImgCoinbaseWhite
Blue.CoinbaseImage = opImgCoinbaseWhite
imgTokenBlack, _ := assets.GetImage("token.png")
opImgTokenBlack := paint.NewImageOp(imgTokenBlack)
imgTokenWhite, _ := assets.GetImage("token_white.png")
opImgTokenWhite := paint.NewImageOp(imgTokenWhite)
imgManageFilesBlack, _ := assets.GetImage("manage_files.png")
opImgManageFilesBlack := paint.NewImageOp(imgManageFilesBlack)
imgManageFilesWhite, _ := assets.GetImage("manage_files_white.png")
opImgManageFilesWhite := paint.NewImageOp(imgManageFilesWhite)
Light.ManageFilesImage = opImgManageFilesBlack
Dark.ManageFilesImage = opImgManageFilesWhite
Blue.ManageFilesImage = opImgManageFilesWhite
Light.TokenImage = opImgTokenBlack
Dark.TokenImage = opImgTokenWhite
Blue.TokenImage = opImgTokenWhite
}