Skip to content

Commit 3083175

Browse files
committed
Fixed Spacing Issues on screen blocker and added mouse wheel time set
1 parent fa78ecb commit 3083175

File tree

8 files changed

+86
-55
lines changed

8 files changed

+86
-55
lines changed

Frames/MinimalScreenBlockerFrame.py

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33

44
class MinimalScreenBlockerFrame(ttk.Frame):
55
def __init__(self, master, controller, time_options_manager, mobber_manager, countdown_manager, settings_manager,
6-
tips_manager,
6+
tips_manager,theme_manager,
77
**kwargs):
88
super().__init__(master, **kwargs)
99

@@ -41,14 +41,15 @@ def build_window_content(self):
4141
self.next_mobber_label.grid(row=row_index, columnspan=5, padx=30, pady=10)
4242
row_index += 1
4343

44-
start_button = ttk.Button(center_frame, text="Start Mobbing!", style="StartButton.TButton", )
44+
start_button = ttk.Button(center_frame, text="Continue Mobbing!", style="StartButton.TButton", )
4545
start_button.grid(row=row_index, column=1, columnspan=3, sticky=N + E + W, padx=10, pady=10)
4646
start_button.bind("<Button-1>", lambda event: self.controller.show_transparent_countdown_frame())
4747
row_index += 1
4848

49-
self.tip_text = ttk.Label(center_frame, text="", font="Helvetica 15 bold", wraplength=500)
50-
self.tip_text.grid(row=row_index, columnspan=3, padx=30, pady=10)
51-
row_index += 1
49+
if self.settings_manager.get_general_enable_tips():
50+
self.tip_text = ttk.Label(center_frame, text="", font="Helvetica 15 bold", wraplength=500)
51+
self.tip_text.grid(row=row_index, columnspan=3, padx=30, pady=10)
52+
row_index += 1
5253

5354
start_button = ttk.Button(center_frame, text="Mob Setup & Time")
5455
start_button.grid(row=row_index, column=2, columnspan=3, sticky=N + E + W, padx=90, pady=10)
@@ -69,4 +70,5 @@ def mobber_list_change_callback(self, mobber_list, driver_index, navigator_index
6970
self.current_mobber_label['text'] = "{}, time to drive!".format(name)
7071
if index == navigator_index:
7172
self.next_mobber_label['text'] = "{}, up next!".format(name)
72-
self.tip_text['text'] = self.tips_manager.get_random_tip()
73+
if self.settings_manager.get_general_enable_tips():
74+
self.tip_text['text'] = self.tips_manager.get_random_tip()

Frames/MobTimerController.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,7 @@ def __init__(self, *args, **kwargs):
6262
container_frame.grid_columnconfigure(0, weight=1)
6363
for frame_type in self.frame_types:
6464
frame_instance = frame_type(container_frame, self, self.time_options_manager, self.mobber_manager,
65-
self.countdown_manager, self.settings_manager, self.tips_manager)
65+
self.countdown_manager, self.settings_manager, self.tips_manager, self.theme_manager)
6666
self.frames[frame_type].append(frame_instance)
6767
frame_instance.grid(row=0, column=0, sticky=(N, S, E, W))
6868
frame_instance.grid_rowconfigure(0, weight=1)

Frames/ScreenBlockerFrame.py

Lines changed: 44 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,18 @@
11
from tkinter import *
22
from tkinter import ttk
33

4+
TAGNAME_CURRENT_MOBBER = 'current_mobber'
5+
46

57
class ScreenBlockerFrame(ttk.Frame):
6-
def __init__(self, master, controller, time_options_manager, mobber_manager, countdown_manager, settings_manager,tips_manager,
8+
def __init__(self, master, controller, time_options_manager, mobber_manager, countdown_manager, settings_manager,
9+
tips_manager, theme_manager,
710
**kwargs):
811
super().__init__(master, **kwargs)
912

1013
self.master = master
1114
self.controller = controller
15+
self.theme_manager = theme_manager
1216
self.countdown_manager = countdown_manager
1317
self.time_options_manager = time_options_manager
1418
self.mobber_manager = mobber_manager
@@ -18,17 +22,18 @@ def __init__(self, master, controller, time_options_manager, mobber_manager, cou
1822
self.mobber_manager.subscribe_to_mobber_list_change(self.mobber_list_change_callback)
1923

2024
def mobber_list_change_callback(self, mobber_list, driver_index, navigator_index):
21-
self.current_dev['text'] = ""
2225
for i in self.names_list.get_children():
2326
self.names_list.delete(i)
2427
for index in range(0, mobber_list.__len__()):
28+
tags = ()
2529
name = mobber_list[index]
2630
if index == driver_index:
27-
self.current_dev['text'] = "{} time to drive!".format(name)
31+
tags = (TAGNAME_CURRENT_MOBBER)
2832
name += " <= Current"
2933
if index == navigator_index:
3034
name += " <= Next"
31-
self.names_list.insert('', END, text=name)
35+
36+
self.names_list.insert('', END, text=name, tags=tags)
3237

3338
def time_change_callback(self, time, minutes, seconds):
3439
self.label_minutes['text'] = "{0:0>2}".format(minutes)
@@ -40,6 +45,18 @@ def toggle_geometry(self, event):
4045
self.controller.geometry(self._geom)
4146
self._geom = geom
4247

48+
def mouse_wheel_minutes(self, event):
49+
if event.delta > 0:
50+
self.time_options_manager.increment_minutes()
51+
else:
52+
self.time_options_manager.decrement_minutes()
53+
54+
def mouse_wheel_seconds(self, event):
55+
if event.delta > 0:
56+
self.time_options_manager.increment_seconds()
57+
else:
58+
self.time_options_manager.decrement_seconds()
59+
4360
def build_window_content(self):
4461
center_frame = ttk.Frame(self)
4562
center_frame.grid(row=0, column=0)
@@ -50,19 +67,20 @@ def build_window_content(self):
5067
center_frame.grid_columnconfigure(4, weight=1)
5168

5269
row_index = 0
53-
title = ttk.Label(center_frame, text="Mobbing Timer", font="Helvetica 40 bold italic")
54-
title.grid(row=row_index, columnspan=5, padx=30, pady=50)
70+
title = ttk.Label(center_frame, text="Mobbing Timer", font="Helvetica 60 bold italic")
71+
title.grid(row=row_index, columnspan=5, padx=30, pady=(70, 10))
5572
row_index += 1
5673

57-
title = ttk.Label(center_frame, text="Left Click to Increase, Right Click to Decrease",
58-
font="Helvetica 16 bold")
59-
title.grid(row=row_index, columnspan=5, padx=30, pady=0)
74+
title = ttk.Label(center_frame, text="Left Click to Increase, Right Click to Decrease, or mouse wheel",
75+
font="Helvetica 12 bold")
76+
title.grid(row=row_index, columnspan=5, padx=30, pady=10)
6077
row_index += 1
6178

6279
self.label_minutes = ttk.Label(center_frame, text="10", font="Helvetica 180 bold")
6380
self.label_minutes.grid(row=row_index, column=1, sticky=E)
6481
self.label_minutes.bind("<Button-1>", lambda event: self.time_options_manager.increment_minutes())
6582
self.label_minutes.bind("<Button-3>", lambda event: self.time_options_manager.decrement_minutes())
83+
self.label_minutes.bind("<MouseWheel>", self.mouse_wheel_minutes)
6684

6785
label_colon = ttk.Label(center_frame, text=":", font="Helvetica 180 bold")
6886
label_colon.grid(row=row_index, column=2, sticky=N)
@@ -71,66 +89,66 @@ def build_window_content(self):
7189
self.label_seconds.grid(row=row_index, column=3, sticky=W)
7290
self.label_seconds.bind("<Button-1>", lambda event: self.time_options_manager.increment_seconds())
7391
self.label_seconds.bind("<Button-3>", lambda event: self.time_options_manager.decrement_seconds())
74-
row_index += 1
75-
76-
self.current_dev = ttk.Label(center_frame, text="", font="Helvetica 70 bold italic")
77-
self.current_dev.grid(row=row_index, columnspan=5)
92+
self.label_seconds.bind("<MouseWheel>", self.mouse_wheel_seconds)
7893
row_index += 1
7994

8095
self.add_mobber_entry = ttk.Entry(center_frame, style="EntryStyle.TEntry", text="Add Mobber",
8196
font="Helvetica 16 bold")
82-
self.add_mobber_entry.grid(row=row_index, column=1, columnspan=2, sticky=N + E + W, padx=10, pady=10)
97+
self.add_mobber_entry.grid(row=row_index, column=1, columnspan=2, sticky=N + E + W, padx=10)
8398
self.add_mobber_entry.bind("<Return>", self.add_mobber_left_click)
84-
self.add_mobber_entry.bind("<Control-Return>", lambda event: self.controller.show_transparent_countdown_frame()
85-
)
99+
self.add_mobber_entry.bind("<Control-Return>", lambda event: self.controller.show_transparent_countdown_frame())
100+
101+
button_pad = (15, 0)
86102

87103
add_mobber_button = ttk.Button(center_frame, text="Add Mobber")
88-
add_mobber_button.grid(row=row_index, column=3, sticky=N + E + W, padx=10, pady=10)
104+
add_mobber_button.grid(row=row_index, column=3, sticky=N + E + W, padx=10, pady=0)
89105
add_mobber_button.bind("<Button-1>", self.add_mobber_left_click)
90106
row_index += 1
91107

92108
self.names_list = ttk.Treeview(center_frame)
109+
self.names_list.tag_configure(TAGNAME_CURRENT_MOBBER, background=self.theme_manager.highlight_color, foreground=self.theme_manager.background_color)
93110
self.names_list['show'] = 'tree'
94-
self.names_list.grid(row=row_index, rowspan=6, columnspan=2, column=1, padx=10, pady=10, sticky=N + E + W + S)
111+
self.names_list.grid(row=row_index, rowspan=6, columnspan=2, column=1, padx=10, pady=button_pad,
112+
sticky=N + E + W + S)
95113

96114
remove_mobber_button = ttk.Button(center_frame, text="Remove Mobber")
97-
remove_mobber_button.grid(row=row_index, column=3, sticky=N + E + W, padx=10, pady=10)
115+
remove_mobber_button.grid(row=row_index, column=3, sticky=N + E + W, padx=10, pady=button_pad)
98116
remove_mobber_button.bind("<Button-1>", lambda event: self.mobber_manager.remove_mobber(
99117
int(self.names_list.index(self.names_list.selection()))))
100118
row_index += 1
101119

102120
move_mobber_up_button = ttk.Button(center_frame, text="Move Mobber Up")
103-
move_mobber_up_button.grid(row=row_index, column=3, sticky=N + E + W, padx=10, pady=10)
121+
move_mobber_up_button.grid(row=row_index, column=3, sticky=N + E + W, padx=10, pady=button_pad)
104122
move_mobber_up_button.bind("<Button-1>", self.move_mobber_up_left_click)
105123
row_index += 1
106124

107125
move_mobber_down_button = ttk.Button(center_frame, text="Move Mobber Down")
108-
move_mobber_down_button.grid(row=row_index, column=3, sticky=N + E + W, padx=10, pady=10)
126+
move_mobber_down_button.grid(row=row_index, column=3, sticky=N + E + W, padx=10, pady=button_pad)
109127
move_mobber_down_button.bind("<Button-1>", self.move_mobber_down_left_click)
110128
row_index += 1
111129

112130
clear_mobbers_button = ttk.Button(center_frame, text="Clear Mobbers")
113-
clear_mobbers_button.grid(row=row_index, column=3, sticky=N + E + W, padx=10, pady=10)
131+
clear_mobbers_button.grid(row=row_index, column=3, sticky=N + E + W, padx=10, pady=button_pad)
114132
clear_mobbers_button.bind("<Button-1>", lambda event: self.mobber_manager.clear())
115133
row_index += 1
116134

117135
clear_mobbers_button = ttk.Button(center_frame, text="Skip Driver")
118-
clear_mobbers_button.grid(row=row_index, column=3, sticky=N + E + W, padx=10, pady=10)
136+
clear_mobbers_button.grid(row=row_index, column=3, sticky=N + E + W, padx=10, pady=button_pad)
119137
clear_mobbers_button.bind("<Button-1>", lambda event: self.mobber_manager.switch_navigator_driver())
120138
row_index += 1
121139

122140
clear_mobbers_button = ttk.Button(center_frame, text="Rewind Driver")
123-
clear_mobbers_button.grid(row=row_index, column=3, sticky=N + E + W, padx=10, pady=10)
141+
clear_mobbers_button.grid(row=row_index, column=3, sticky=N + E + W, padx=10, pady=button_pad)
124142
clear_mobbers_button.bind("<Button-1>", lambda event: self.mobber_manager.rewind_driver())
125143
row_index += 1
126144

127145
start_button = ttk.Button(center_frame, text="Start Mobbing!", style="StartButton.TButton", )
128-
start_button.grid(row=row_index, column=1, columnspan=3, sticky=N + E + W, padx=10, pady=10)
146+
start_button.grid(row=row_index, column=1, columnspan=3, sticky=N + E + W, padx=10, pady=button_pad)
129147
start_button.bind("<Button-1>", lambda event: self.controller.show_transparent_countdown_frame())
130148
row_index += 1
131149

132150
start_button = ttk.Button(center_frame, text="Quit Mobbing")
133-
start_button.grid(row=row_index, column=1, columnspan=3, sticky=N + E + W, padx=50, pady=10)
151+
start_button.grid(row=row_index, column=1, columnspan=3, sticky=N + E + W, padx=50, pady=button_pad)
134152
start_button.bind("<Button-1>", lambda event: self.controller.quit_and_destroy_session())
135153
row_index += 1
136154

Frames/TransparentCountdownFrame.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66

77
class TransparentCountdownFrame(ttk.Frame):
88
def __init__(self, master, controller, time_options_manager, mobber_manager, countdown_manager, settings_manager,
9-
tips_manager,
9+
tips_manager,theme_manager,
1010
**kwargs):
1111
super().__init__(master, **kwargs)
1212
self.master = master

Infrastructure/Sessions/d00fb052-b440-11e5-9824-20c9d042e8c0

Whitespace-only changes.

Infrastructure/SettingsManager.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,4 +35,7 @@ def get_general_minutes(self):
3535
return self.timer_settings_.getint("minutes", 10)
3636

3737
def get_general_seconds(self):
38-
return self.timer_settings_.getint("seconds", 0)
38+
return self.timer_settings_.getint("seconds", 0)
39+
40+
def get_general_enable_tips(self):
41+
return self.general_settings_.getboolean("enable tips", True)

Infrastructure/ThemeManager.py

Lines changed: 27 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -5,38 +5,45 @@
55
class ThemeManager(object):
66
THEME_SETTINGS = 'THEME SETTINGS'
77

8+
def __init__(self):
9+
self.background_color = "white"
10+
self.button_color = "white"
11+
self.text_color = "white"
12+
self.highlight_color = "white"
13+
814
def set_theme(self, theme_name):
915
cfg_file = "Themes/{}.cfg".format(theme_name)
1016
config = configparser.ConfigParser()
1117
config.read(cfg_file)
1218
theme_settings_ = config[ThemeManager.THEME_SETTINGS]
13-
background_color = theme_settings_.get('background_color')
14-
button_color = theme_settings_.get('button_color')
15-
text_color = theme_settings_.get('text_color')
16-
highlight_color = theme_settings_.get('highlight_color')
19+
self.background_color = theme_settings_.get('background_color')
20+
self.button_color = theme_settings_.get('button_color')
21+
self.text_color = theme_settings_.get('text_color')
22+
self.highlight_color = theme_settings_.get('highlight_color')
1723

1824
style = ttk.Style()
1925
style.theme_use('default')
2026

21-
style.configure('TFrame', background=background_color)
27+
style.configure('TFrame', background=self.background_color)
2228
style.configure('TButton',
23-
background=button_color,
24-
foreground=text_color)
29+
background=self.button_color,
30+
foreground=self.text_color)
2531
style.map('TButton',
26-
foreground=[('disabled', text_color),
27-
('pressed', text_color),
28-
('active', background_color)],
29-
background=[('disabled', button_color),
30-
('pressed', '!focus', button_color),
31-
('active', highlight_color)])
32-
33-
style.configure('TLabel', background=background_color, foreground=text_color)
34-
style.configure('Highlight.TLabel', background=background_color, foreground=highlight_color)
35-
style.configure("Treeview", background=background_color,
36-
foreground=text_color, fieldbackground=background_color, font="Helvetica 16 bold", rowheight=30)
32+
foreground=[('disabled', self.text_color),
33+
('pressed', self.text_color),
34+
('active', self.background_color)],
35+
background=[('disabled', self.button_color),
36+
('pressed', '!focus', self.button_color),
37+
('active', self.highlight_color)])
38+
39+
style.configure('TLabel', background=self.background_color, foreground=self.text_color)
40+
style.configure('Highlight.TLabel', background=self.background_color, foreground=self.highlight_color)
41+
style.configure("Treeview", background=self.background_color,
42+
foreground=self.text_color, fieldbackground=self.background_color, font="Helvetica 16 bold", rowheight=30
43+
)
3744
style.element_create("plain.field", "from", "clam")
3845
style.configure("StartButton.TButton",font="Helvetica 50 bold")
3946

4047
style.configure("EntryStyle.TEntry",
41-
foreground=background_color,
42-
fieldbackground=highlight_color)
48+
foreground=self.background_color,
49+
fieldbackground=self.highlight_color)

MobTimer.cfg

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ next driver font size = 15
99
#Theme options either 'none' or a file form the Themes folder. e.g. 'Dark'
1010
[GENERAL SETTINGS]
1111
theme = Sky
12+
enable tips = True
1213

1314
[TIMER SETTINGS]
1415
minutes = 5

0 commit comments

Comments
 (0)