Skip to content

Commit 6a1ac36

Browse files
committed
Minutes are incrementing and decrementing
1 parent d0cb7e9 commit 6a1ac36

File tree

6 files changed

+61
-118
lines changed

6 files changed

+61
-118
lines changed

Main.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,11 @@
11
from tkinter import *
22

33
from forms.ScreenBlockerMenu import ScreenBlockerMenu
4+
from infrastructure.TimeOptionsManager import TimeOptionsManager
45

56
root = Tk()
67

7-
screen_blocker_menu = ScreenBlockerMenu(root)
8+
time_optons_manager = TimeOptionsManager()
9+
screen_blocker_menu = ScreenBlockerMenu(root, time_optons_manager)
810

911
root.mainloop()

forms/ScreenBlockerMenu.py

Lines changed: 26 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -2,15 +2,22 @@
22

33

44
class ScreenBlockerMenu(Frame):
5-
6-
def __init__(self, master, **kwargs):
5+
def __init__(self, master, time_options_manager, **kwargs):
76
super().__init__(master, **kwargs)
87
self.master = master
98
pad = 0
109
self._geom = '200x200+0+0'
10+
11+
self.time_options_manager = time_options_manager
12+
self.time_options_manager.subscribe_to_timechange(self.time_change_callback)
1113
self.set_window_properties(master, pad)
1214
self.build_window_content(master)
1315

16+
def time_change_callback(self, time, minutes, seconds):
17+
print(time)
18+
print(minutes)
19+
self.label_minutes['text'] = minutes
20+
1421
def set_window_properties(self, master, pad):
1522
master.geometry(self.get_current_window_geomitry(master, pad))
1623
master.bind('<Escape>', self.toggle_geometry)
@@ -49,14 +56,16 @@ def build_window_content(self, master):
4956
title.grid(row=row_index, columnspan=3, padx=30, pady=0, sticky=N)
5057
row_index += 1
5158

52-
minutes = Label(center_frame, text="10", font="Helvetica 180 bold")
53-
minutes.grid(row=row_index, column=0, sticky=E)
59+
self.label_minutes = Label(center_frame, text="10", font="Helvetica 180 bold")
60+
self.label_minutes.grid(row=row_index, column=0, sticky=E)
61+
self.label_minutes.bind("<Button-1>", lambda event: self.time_options_manager.increment_minutes())
62+
self.label_minutes.bind("<Button-3>", lambda event: self.time_options_manager.decrement_minutes())
5463

55-
colon = Label(center_frame, text=":", font="Helvetica 180 bold")
56-
colon.grid(row=row_index, column=1, sticky=N)
64+
label_colon = Label(center_frame, text=":", font="Helvetica 180 bold")
65+
label_colon.grid(row=row_index, column=1, sticky=N)
5766

58-
seconds = Label(center_frame, text="30", font="Helvetica 180 bold")
59-
seconds.grid(row=row_index, column=2, sticky=W)
67+
label_seconds = Label(center_frame, text="30", font="Helvetica 180 bold")
68+
label_seconds.grid(row=row_index, column=2, sticky=W)
6069
row_index += 1
6170

6271
label_up_next = Label(center_frame, text="Mobber Sit At the Keyboard", font="Helvetica 50 bold")
@@ -68,33 +77,33 @@ def build_window_content(self, master):
6877
row_index += 1
6978

7079
add_mobber_label = Entry(center_frame, text="Add Mobber")
71-
add_mobber_label.grid(row=row_index, columnspan=2, sticky=N+E+W, padx=10, pady=10)
80+
add_mobber_label.grid(row=row_index, columnspan=2, sticky=N + E + W, padx=10, pady=10)
7281

7382
add_mobber_button = Button(center_frame, text="Add Mobber")
74-
add_mobber_button.grid(row=row_index, column=2, sticky=N+E+W, padx=10, pady=10)
83+
add_mobber_button.grid(row=row_index, column=2, sticky=N + E + W, padx=10, pady=10)
7584
row_index += 1
7685

7786
names_list = Listbox(center_frame)
78-
names_list.grid(row=row_index, rowspan=4, columnspan=2, column=0, padx=10, pady=10, sticky=N+E+W)
87+
names_list.grid(row=row_index, rowspan=4, columnspan=2, column=0, padx=10, pady=10, sticky=N + E + W)
7988

8089
remove_mobber_button = Button(center_frame, text="Remove Mobber")
81-
remove_mobber_button.grid(row=row_index, column=2, sticky=N+E+W, padx=10, pady=10)
90+
remove_mobber_button.grid(row=row_index, column=2, sticky=N + E + W, padx=10, pady=10)
8291
row_index += 1
8392

8493
move_mobber_up_button = Button(center_frame, text="Move Mobber Up")
85-
move_mobber_up_button.grid(row=row_index, column=2, sticky=N+E+W, padx=10, pady=10)
94+
move_mobber_up_button.grid(row=row_index, column=2, sticky=N + E + W, padx=10, pady=10)
8695
row_index += 1
8796

8897
move_mobber_down_button = Button(center_frame, text="Move Mobber Down")
89-
move_mobber_down_button.grid(row=row_index, column=2, sticky=N+E+W, padx=10, pady=10)
98+
move_mobber_down_button.grid(row=row_index, column=2, sticky=N + E + W, padx=10, pady=10)
9099
row_index += 1
91100

92101
clear_mobbers_button = Button(center_frame, text="Clear Mobbers")
93-
clear_mobbers_button.grid(row=row_index, column=2, sticky=N+E+W, padx=10, pady=10)
102+
clear_mobbers_button.grid(row=row_index, column=2, sticky=N + E + W, padx=10, pady=10)
94103
row_index += 1
95104

96-
start_button = Button(center_frame, text="Start Mobbing!",font="Helvetica 30 bold")
97-
start_button.grid(row=row_index, columnspan=3, sticky=N+E+W, padx=10, pady=10)
105+
start_button = Button(center_frame, text="Start Mobbing!", font="Helvetica 30 bold")
106+
start_button.grid(row=row_index, columnspan=3, sticky=N + E + W, padx=10, pady=10)
98107
row_index += 1
99108

100109
center_frame.pack(anchor=CENTER, pady=60)
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
class TimeOptionsManager(object):
2+
def __init__(self):
3+
self.minutes = 10
4+
self.seconds = 0
5+
self.time_change_callbacks = []
6+
7+
def get_time_string(self):
8+
return "{0:0>2}:{1:0>2}".format(self.minutes, self.seconds)
9+
10+
def increment_minutes(self):
11+
self.minutes += 1
12+
self.fire_time_change_callbacks()
13+
14+
def decrement_minutes(self):
15+
self.minutes -= 1
16+
self.fire_time_change_callbacks()
17+
18+
def increment_seconds(self):
19+
self.seconds = (self.seconds + 15) % 60
20+
self.fire_time_change_callbacks()
21+
22+
def decrement_seconds(self):
23+
self.seconds = ((self.seconds + 60) - 15) % 60
24+
self.fire_time_change_callbacks()
25+
26+
def subscribe_to_timechange(self, time_change_callback):
27+
self.time_change_callbacks.append(time_change_callback)
28+
29+
def fire_time_change_callbacks(self):
30+
for time_change_callback in self.time_change_callbacks:
31+
if time_change_callback:
32+
time_change_callback(self.get_time_string(), self.minutes, self.seconds)

tests/TestsTimeOptions.py

Lines changed: 0 additions & 100 deletions
This file was deleted.

tests/__init__.py

Whitespace-only changes.

tests/infrastrcture/__init__.py

Whitespace-only changes.

0 commit comments

Comments
 (0)