11from tkinter import *
22from tkinter import ttk
33
4+ TAGNAME_CURRENT_MOBBER = 'current_mobber'
5+
46
57class 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
0 commit comments