1+ import random
12from tkinter import *
23from tkinter import ttk
4+ from Infrastructure .ImageUtility import ImageUtility
5+ from PIL import Image
6+ from PIL import ImageTk
37
48TAGNAME_CURRENT_MOBBER = 'current_mobber'
59
@@ -17,6 +21,9 @@ def __init__(self, master, controller, time_options_manager, mobber_manager, cou
1721 self .time_options_manager = time_options_manager
1822 self .mobber_manager = mobber_manager
1923 self .settings_manager = settings_manager
24+ self .mouse_wheel_seconds_delta = self .settings_manager .get_screen_blocker_mouse_wheel_seconds_delta ()
25+ self .click_seconds_delta = self .settings_manager .get_screen_blocker_click_seconds_delta ()
26+
2027 self .build_window_content ()
2128 self .time_options_manager .subscribe_to_timechange (self .time_change_callback )
2229 self .mobber_manager .subscribe_to_mobber_list_change (self .mobber_list_change_callback )
@@ -52,22 +59,35 @@ def mouse_wheel_minutes(self, event):
5259 self .time_options_manager .decrement_minutes ()
5360
5461 def mouse_wheel_seconds (self , event ):
62+
5563 if event .delta > 0 :
56- self .time_options_manager .increment_seconds ()
64+ self .time_options_manager .increment_seconds (self . mouse_wheel_seconds_delta )
5765 else :
58- self .time_options_manager .decrement_seconds ()
66+ self .time_options_manager .decrement_seconds (self . mouse_wheel_seconds_delta )
5967
6068 def build_window_content (self ):
69+
70+
71+
6172 center_frame = ttk .Frame (self )
73+
6274 center_frame .grid (row = 0 , column = 0 )
6375 center_frame .grid_columnconfigure (0 , weight = 1 )
6476 center_frame .grid_columnconfigure (1 , weight = 0 )
6577 center_frame .grid_columnconfigure (2 , weight = 0 )
6678 center_frame .grid_columnconfigure (3 , weight = 0 )
6779 center_frame .grid_columnconfigure (4 , weight = 1 )
6880
81+
82+
6983 row_index = 0
70- title = ttk .Label (center_frame , text = "Mobbing Timer" , font = "Helvetica 60 bold italic" )
84+
85+ if self .settings_manager .get_general_use_logo_image ():
86+ self .image_utility = ImageUtility (self .theme_manager )
87+ self .background_image = self .image_utility .load (self .settings_manager .get_general_logo_image_name (),800 ,200 ,self .settings_manager .get_general_auto_theme_logo ())
88+ title = ttk .Label (center_frame , image = self .background_image )
89+ else :
90+ title = ttk .Label (center_frame , text = "Mobbing Timer" , font = "Helvetica 60 bold italic" )
7191 title .grid (row = row_index , columnspan = 5 , padx = 30 , pady = (70 , 10 ))
7292 row_index += 1
7393
@@ -87,8 +107,10 @@ def build_window_content(self):
87107
88108 self .label_seconds = ttk .Label (center_frame , text = "30" , font = "Helvetica 180 bold" )
89109 self .label_seconds .grid (row = row_index , column = 3 , sticky = W )
90- self .label_seconds .bind ("<Button-1>" , lambda event : self .time_options_manager .increment_seconds ())
91- self .label_seconds .bind ("<Button-3>" , lambda event : self .time_options_manager .decrement_seconds ())
110+ self .label_seconds .bind ("<Button-1>" ,
111+ lambda event : self .time_options_manager .increment_seconds (self .click_seconds_delta ))
112+ self .label_seconds .bind ("<Button-3>" ,
113+ lambda event : self .time_options_manager .decrement_seconds (self .click_seconds_delta ))
92114 self .label_seconds .bind ("<MouseWheel>" , self .mouse_wheel_seconds )
93115 row_index += 1
94116
@@ -106,7 +128,8 @@ def build_window_content(self):
106128 row_index += 1
107129
108130 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 )
131+ self .names_list .tag_configure (TAGNAME_CURRENT_MOBBER , background = self .theme_manager .highlight_color ,
132+ foreground = self .theme_manager .background_color )
110133 self .names_list ['show' ] = 'tree'
111134 self .names_list .grid (row = row_index , rowspan = 7 , columnspan = 2 , column = 1 , padx = 10 , pady = button_pad ,
112135 sticky = N + E + W + S )
@@ -115,6 +138,7 @@ def build_window_content(self):
115138 remove_mobber_button .grid (row = row_index , column = 3 , sticky = N + E + W , padx = 10 , pady = button_pad )
116139 remove_mobber_button .bind ("<Button-1>" , lambda event : self .mobber_manager .remove_mobber (
117140 int (self .names_list .index (self .names_list .selection ()))))
141+ self .controller .bind ("<Delete>" , self .remove_mobber_if_screen_blocking )
118142 row_index += 1
119143
120144 move_mobber_up_button = ttk .Button (center_frame , text = "Move Mobber Up" )
@@ -134,12 +158,13 @@ def build_window_content(self):
134158
135159 clear_mobbers_button = ttk .Button (center_frame , text = "Skip Driver" )
136160 clear_mobbers_button .grid (row = row_index , column = 3 , sticky = N + E + W , padx = 10 , pady = button_pad )
137- clear_mobbers_button .bind ("<Button-1>" , lambda event : self .mobber_manager .switch_navigator_driver ())
161+ clear_mobbers_button .bind ("<Button-1>" , lambda event : self .mobber_manager .switch_next_driver ())
138162 row_index += 1
139163
140- clear_mobbers_button = ttk .Button (center_frame , text = "Rewind Driver" )
141- clear_mobbers_button .grid (row = row_index , column = 3 , sticky = N + E + W , padx = 10 , pady = button_pad )
142- clear_mobbers_button .bind ("<Button-1>" , lambda event : self .mobber_manager .rewind_driver ())
164+ if not self .settings_manager .get_randomize_randomize_next_driver ():
165+ clear_mobbers_button = ttk .Button (center_frame , text = "Rewind Driver" )
166+ clear_mobbers_button .grid (row = row_index , column = 3 , sticky = N + E + W , padx = 10 , pady = button_pad )
167+ clear_mobbers_button .bind ("<Button-1>" , lambda event : self .mobber_manager .rewind_driver ())
143168 row_index += 1
144169
145170 clear_mobbers_button = ttk .Button (center_frame , text = "Add Team" )
@@ -161,9 +186,16 @@ def build_window_content(self):
161186
162187 self .focus_mobber_entry ()
163188
164- def add_default_team (self ,event ):
189+ def remove_mobber_if_screen_blocking (self ,event ):
190+ if self .controller .last_frame == ScreenBlockerFrame :
191+ self .mobber_manager .remove_mobber (int (self .names_list .index (self .names_list .selection ())))
192+
193+ def add_default_team (self , event ):
165194 team = self .settings_manager .get_general_team ().split (',' )
195+ randomize_team = self .settings_manager .get_randomize_team ()
166196 self .mobber_manager .clear ()
197+ if randomize_team :
198+ random .shuffle (team )
167199 for member in team :
168200 self .mobber_manager .add_mobber (member )
169201
0 commit comments