Skip to content

Commit 593b20a

Browse files
committed
Refactored controller to manage screen size instead of frames.
1 parent a22dfc1 commit 593b20a

File tree

2 files changed

+33
-25
lines changed

2 files changed

+33
-25
lines changed

Frames/MobTimerController.py

Lines changed: 33 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,11 @@
11
from tkinter import *
2-
32
from Infrastructure.MobberManager import MobberManager
43
from Infrastructure.TimeOptionsManager import TimeOptionsManager
54
from Frames.ScreenBlockerFrame import ScreenBlockerFrame
65
from Frames.TransparentCountdownFrame import TransparentCountdownFrame
76

87

98
class MobTimerController(Tk):
10-
119
def __init__(self, *args, **kwargs):
1210
Tk.__init__(self, *args, **kwargs)
1311

@@ -25,14 +23,46 @@ def __init__(self, *args, **kwargs):
2523
self.frames[F] = frame
2624
frame.grid(row=0, column=0, sticky="nsew")
2725

28-
self.show_frame(ScreenBlockerFrame)
26+
self.show_screen_blocker_frame()
2927

3028
def show_frame(self, frame_class):
3129
frame = self.frames[frame_class]
3230
frame.tkraise()
3331

3432
def show_screen_blocker_frame(self):
33+
self.set_full_screen_always_on_top()
3534
self.show_frame(ScreenBlockerFrame)
3635

3736
def show_transparent_countdown_frame(self):
3837
self.show_frame(TransparentCountdownFrame)
38+
self.set_partial_screen_transparent()
39+
40+
def get_current_window_geometry(self, pad):
41+
return "{0}x{1}+0+0".format(
42+
self.winfo_screenwidth() - pad, self.winfo_screenheight() - pad)
43+
44+
def disable_resizing(self):
45+
self.resizable(0, 0)
46+
47+
def remove_title_bar(self):
48+
self.overrideredirect(1)
49+
50+
def set_always_on_top(self):
51+
self.wm_attributes("-topmost", 1)
52+
53+
def set_full_screen_always_on_top(self):
54+
controller = self
55+
controller.geometry(self.get_current_window_geometry(0))
56+
# controller.bind('<Escape>', self.toggle_geometry)
57+
self.set_always_on_top()
58+
self.remove_title_bar()
59+
self.disable_resizing()
60+
61+
def set_partial_screen_transparent(self):
62+
geometry = '200x200+0+0'
63+
controller = self
64+
controller.geometry(geometry)
65+
# controller.bind('<Escape>', self.toggle_geometry)
66+
self.set_always_on_top()
67+
self.remove_title_bar()
68+
self.disable_resizing()

Frames/ScreenBlockerFrame.py

Lines changed: 0 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -8,11 +8,9 @@ def __init__(self, parent, controller, time_options_manager, mobber_manager, **k
88
super().__init__(parent,**kwargs)
99
self.controller = controller
1010

11-
self._geom = '200x200+0+0'
1211

1312
self.time_options_manager = time_options_manager
1413
self.mobber_manager = mobber_manager
15-
self.set_window_properties(controller)
1614
self.build_window_content()
1715
self.time_options_manager.subscribe_to_timechange(self.time_change_callback)
1816
self.mobber_manager.subscribe_to_mobber_list_change(self.mobber_list_change_callback)
@@ -31,26 +29,6 @@ def time_change_callback(self, time, minutes, seconds):
3129
self.label_minutes['text'] = "{0:0>2}".format(minutes)
3230
self.label_seconds['text'] = "{0:0>2}".format(seconds)
3331

34-
def set_window_properties(self, controller):
35-
controller.geometry(self.get_current_window_geomitry(controller, 0))
36-
controller.bind('<Escape>', self.toggle_geometry)
37-
self.set_always_on_top(controller)
38-
self.remove_title_bar(controller)
39-
self.disable_resizing(controller)
40-
41-
def get_current_window_geomitry(self, master, pad):
42-
return "{0}x{1}+0+0".format(
43-
master.winfo_screenwidth() - pad, master.winfo_screenheight() - pad)
44-
45-
def disable_resizing(self, master):
46-
master.resizable(0, 0)
47-
48-
def remove_title_bar(self, master):
49-
master.overrideredirect(1)
50-
51-
def set_always_on_top(self, master):
52-
master.wm_attributes("-topmost", 1)
53-
5432
def toggle_geometry(self, event):
5533
geom = self.controller.winfo_geometry()
5634
print(geom, self._geom)

0 commit comments

Comments
 (0)