Skip to content

Commit 6d3f22f

Browse files
Use material icons in buttons
Use material icons in buttons, instead of custom graphics which moreover are subject to more restrictive licenses
1 parent 75e2f1f commit 6d3f22f

1 file changed

Lines changed: 51 additions & 15 deletions

File tree

‎lib/forms/ui.py‎

Lines changed: 51 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
from ttkbootstrap import dialogs
88
from ttkbootstrap import constants as ttkc
99
from ttkbootstrap.icons import Icon
10-
from ttkbootstrap_icons import BootstrapIcon as Icons
10+
from ttkbootstrap_icons_mat import MatIcon as Icons
1111

1212
from typing import Callable, Any
1313

@@ -62,6 +62,28 @@
6262
RESET_B_ICON32 = b"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"
6363

6464

65+
# colors for buttons
66+
BLACK = '#000000'
67+
DKGRAY = '#444444'
68+
MDGRAY = '#777777'
69+
LTGRAY = '#BBBBBB'
70+
WHITE = '#FFFFFF'
71+
RED = '#FF0000'
72+
DKRED = '#990000'
73+
GREEN = '#00FF00'
74+
DKGREEN = '#007500'
75+
BLUE = '#0000FF'
76+
DKBLUE = '#000099'
77+
YELLOW = '#FFFF00'
78+
DKYELLOW = '#997700'
79+
ORANGE = '#FF5500'
80+
CYAN = '#00FFFF'
81+
DKCYAN = '#007799'
82+
FUCHSIA = '#FF00FF'
83+
MAGENTA = '#990099'
84+
PURPLE = '#5500BB'
85+
86+
6587
# default UI values
6688
DIALOG_PADDING_MAIN = (8, 10)
6789
DIALOG_PADDING_INNER = (4, 6)
@@ -135,153 +157,167 @@ def enable(self, enabled=True):
135157
# standard buttons
136158
class BtnOK(_btn_Base):
137159
def __init__(self, master, text=BTN_OK, command=None, enabled=True):
160+
icon = Icons("check", color=RED).image
138161
super().__init__(
139162
master,
140163
text=text,
141-
icon=Icons("check-circle").image,
164+
icon=icon,
142165
command=command,
143166
enabled=enabled,
144167
)
145168

146169

147170
class BtnCancel(_btn_Base):
148171
def __init__(self, master, text=BTN_CANCEL, command=None, enabled=True):
172+
icon = Icons("cancel", color=RED).image
149173
super().__init__(
150174
master,
151175
text=text,
152-
icon=Icons(name="x-circle").image,
176+
icon=icon,
153177
command=command,
154178
enabled=enabled,
155179
)
156180

157181

158182
class BtnClose(_btn_Base):
159183
def __init__(self, master, text=BTN_CLOSE, command=None, enabled=True):
184+
icon = Icons("stop-circle", color=FUCHSIA).image
160185
super().__init__(
161186
master,
162187
text=text,
163-
icon=Icons("sign-stop").image,
188+
icon=icon,
164189
command=command,
165190
enabled=enabled,
166191
)
167192

168193

169194
class BtnExit(_btn_Base):
170195
def __init__(self, master, text=BTN_EXIT, command=None, enabled=True):
196+
icon = Icons("exit-run", color=FUCHSIA).image
171197
super().__init__(
172198
master,
173199
text=text,
174-
icon=Icons("door-open").image,
200+
icon=icon,
175201
command=command,
176202
enabled=enabled,
177203
)
178204

179205

180206
class BtnAdd(_btn_Base):
181207
def __init__(self, master, text=BTN_ADD, command=None, enabled=True):
208+
icon = Icons("plus-box", color=YELLOW).image
182209
super().__init__(
183210
master,
184211
text=text,
185-
icon=Icons("plus-square").image,
212+
icon=icon,
186213
command=command,
187214
enabled=enabled,
188215
)
189216

190217

191218
class BtnRemove(_btn_Base):
192219
def __init__(self, master, text=BTN_REMOVE, command=None, enabled=True):
220+
icon = Icons("minus-box", color=RED).image
193221
super().__init__(
194222
master,
195223
text=text,
196-
icon=Icons("dash-square").image,
224+
icon=icon,
197225
command=command,
198226
enabled=enabled,
199227
)
200228

201229

202230
class BtnDelete(_btn_Base):
203231
def __init__(self, master, text=BTN_DELETE, command=None, enabled=True):
232+
icon = Icons("trash-can", color=LTGRAY).image
204233
super().__init__(
205234
master,
206235
text=text,
207-
icon=Icons("trash").image,
236+
icon=icon,
208237
command=command,
209238
enabled=enabled,
210239
)
211240

212241

213242
class BtnLoad(_btn_Base):
214243
def __init__(self, master, text=BTN_LOAD, command=None, enabled=True):
244+
icon = Icons("folder", color=GREEN).image
215245
super().__init__(
216246
master,
217247
text=text,
218-
icon=Icons("folder").image,
248+
icon=icon,
219249
command=command,
220250
enabled=enabled,
221251
)
222252

223253

224254
class BtnSave(_btn_Base):
225255
def __init__(self, master, text=BTN_SAVE, command=None, enabled=True):
256+
icon = Icons("floppy", color=CYAN).image
226257
super().__init__(
227258
master,
228259
text=text,
229-
icon=Icons("floppy").image,
260+
icon=icon,
230261
command=command,
231262
enabled=enabled,
232263
)
233264

234265

235266
class BtnNew(_btn_Base):
236267
def __init__(self, master, text=BTN_NEW, command=None, enabled=True):
268+
icon = Icons("file", color=WHITE).image
237269
super().__init__(
238270
master,
239271
text=text,
240-
icon=Icons("file").image,
272+
icon=icon,
241273
command=command,
242274
enabled=enabled,
243275
)
244276

245277

246278
class BtnEdit(_btn_Base):
247279
def __init__(self, master, text=BTN_EDIT, command=None, enabled=True):
280+
icon = Icons("file-edit", color=YELLOW).image
248281
super().__init__(
249282
master,
250283
text=text,
251-
icon=Icons("pencil-square").image,
284+
icon=icon,
252285
command=command,
253286
enabled=enabled,
254287
)
255288

256289

257290
class BtnModify(_btn_Base):
258291
def __init__(self, master, text=BTN_MODIFY, command=None, enabled=True):
292+
icon = Icons("pencil", color=YELLOW).image
259293
super().__init__(
260294
master,
261295
text=text,
262-
icon=Icons(name="pencil"),
296+
icon=icon,
263297
command=command,
264298
enabled=enabled,
265299
)
266300

267301

268302
class BtnReset(_btn_Base):
269303
def __init__(self, master, text=BTN_RESET, command=None, enabled=True):
304+
icon = Icons("power-cycle", color=RED).image
270305
super().__init__(
271306
master,
272307
text=text,
273-
icon=Icons(name="bootstrap-reboot"),
308+
icon=icon,
274309
command=command,
275310
enabled=enabled,
276311
)
277312

278313

279314
class BtnReload(_btn_Base):
280315
def __init__(self, master, text=BTN_RELOAD, command=None, enabled=True):
316+
icon = Icons("reload", color=GREEN).image
281317
super().__init__(
282318
master,
283319
text=text,
284-
icon=Icons(name="repeat"),
320+
icon=icon,
285321
command=command,
286322
enabled=enabled,
287323
)

0 commit comments

Comments
 (0)