@@ -68,7 +68,7 @@ def close_options(window, options_group):
6868 options_group .empty ()
6969 # TODO: Fix glitch where when you press the return button, it will simultaneously press the button behind it
7070 time .sleep (0.30 )
71- window .options_screen = False
71+ window .display = False
7272
7373 '''@args[0] = options_group
7474 @args[1] = screen_group
@@ -78,7 +78,7 @@ def press_main_menu(window, options_group):
7878 OptionActions .close_options (window , options_group )
7979 window .screen = Wrapper .Screen .MAIN_MENU
8080 window .screen_change = True
81- window .options_screen = False
81+ window .display = False
8282
8383 '''@args = options_group should be passed in first, then screen_group'''
8484 def display_options (window , options_group ):
@@ -87,7 +87,7 @@ def display_options(window, options_group):
8787 OPTIONS_HEIGHT = 300
8888
8989 # Switch on options
90- window .options_screen = True
90+ window .display = True
9191 options_group .empty ()
9292
9393 # Draw everything
@@ -171,39 +171,40 @@ def update(self):
171171 # self.scroll_bar[1] = sort scroll
172172 # Glitch where it will click the button behind it
173173 #print(len(self.list))
174- if (self .window .options_screen and self .handled != 1 ):
175- #print("options extended")
176- self .scroll_bar [0 ].set_unpressable ()
177- self .scroll_bar [1 ].set_unpressable ()
178- self .toggle_aux .set_unpressable ()
179- self .generate .set_unpressable ()
180- self .advanced .set_unpressable ()
181- self .handled = 1
182- elif (self .scroll_bar [0 ].extended and self .handled != 2 ):
183- #print("reset scroll extended")
184-
185- self .scroll_bar [1 ].set_unpressable ()
186- self .toggle_aux .set_unpressable ()
187- self .generate .set_unpressable ()
188- self .advanced .set_unpressable ()
189- self .handled = 2
190- elif (self .scroll_bar [1 ].extended and self .handled != 3 ):
191- #print("sorts scroll extended")
192-
193- self .scroll_bar [0 ].set_unpressable ()
194- self .toggle_aux .set_unpressable ()
195- self .generate .set_unpressable ()
196- self .advanced .set_unpressable ()
197- self .handled = 3
198- elif (self .handled != 0 ):
199- #print("nothing extended")
200-
201- self .scroll_bar [0 ].set_pressable ()
202- self .scroll_bar [1 ].set_pressable ()
203- self .toggle_aux .set_pressable ()
204- self .generate .set_pressable ()
205- self .advanced .set_pressable ()
206- self .handled = 0
174+ if (self .scroll_bar != []):
175+ if (self .window .display and self .handled != 1 ):
176+ #print("options extended")
177+ self .scroll_bar [0 ].set_unpressable ()
178+ self .scroll_bar [1 ].set_unpressable ()
179+ self .toggle_aux .set_unpressable ()
180+ self .generate .set_unpressable ()
181+ self .advanced .set_unpressable ()
182+ self .handled = 1
183+ elif (self .scroll_bar [0 ].extended and self .handled != 2 ):
184+ #print("reset scroll extended")
185+
186+ self .scroll_bar [1 ].set_unpressable ()
187+ self .toggle_aux .set_unpressable ()
188+ self .generate .set_unpressable ()
189+ self .advanced .set_unpressable ()
190+ self .handled = 2
191+ elif (self .scroll_bar [1 ].extended and self .handled != 3 ):
192+ #print("sorts scroll extended")
193+
194+ self .scroll_bar [0 ].set_unpressable ()
195+ self .toggle_aux .set_unpressable ()
196+ self .generate .set_unpressable ()
197+ self .advanced .set_unpressable ()
198+ self .handled = 3
199+ elif (self .handled != 0 ):
200+ #print("nothing extended")
201+
202+ self .scroll_bar [0 ].set_pressable ()
203+ self .scroll_bar [1 ].set_pressable ()
204+ self .toggle_aux .set_pressable ()
205+ self .generate .set_pressable ()
206+ self .advanced .set_pressable ()
207+ self .handled = 0
207208
208209 def on_reset (self ):
209210 self .window .event .set ()
@@ -213,12 +214,21 @@ def display_sorting(self, screen_group, options_screen_group, slide_in = True):
213214 if (self .window .screen == Wrapper .Screen .SORTING_SCREEN and (not self .window .screen_change and not self .window .window_size_change )):
214215 return
215216 # Change Screen
216- self .window .switch_screen ( Wrapper .Screen .SORTING_SCREEN )
217+ self .window .screen = Wrapper .Screen .SORTING_SCREEN
217218
218219 # Drawing Everything
219220 screen_group .empty ()
220- screen_group .add (Wrapper .Text (Wrapper .DefaultText .text ("Sorting" , Wrapper .FontSizes .TITLE_SIZE ), (self .window .window .get_size ()[0 ]/ 2 , self .TITLE_Y ), self .window ))
221- screen_group .add (Wrapper .Background ((self .SORTING_X , self .SORTING_Y ), (self .SORTING_WIDTH , self .SORTING_HEIGHT ), Wrapper .Colors .SMALL_BACKGROUND_COLOR , self .window , False ))
221+ self .scroll_group [0 ].empty ()
222+ self .scroll_group [1 ].empty ()
223+ self .SORTING_WIDTH = (3 * self .window .window .get_size ()[0 ]/ 4 - 2 * self .MARGIN_X ) # Ideally is ~800
224+ self .SORTING_HEIGHT = (self .window .window .get_size ()[1 ] - 2 * self .TITLE_Y - 2 * self .MARGIN_Y )
225+ self .SORTING_X = (3 * self .window .window .get_size ()[0 ]/ 4 - 2 * self .MARGIN_X )/ 2 + self .MARGIN_X
226+ self .SORTING_Y = 2 * self .TITLE_Y + self .MARGIN_Y + (self .window .window .get_size ()[1 ] - 2 * self .TITLE_Y - 2 * self .MARGIN_Y )/ 2
227+ print (self .SORTING_X , self .SORTING_Y , self .SORTING_WIDTH , self .SORTING_HEIGHT )
228+ self .array = Array (self .sorting_group , (self .SORTING_WIDTH , self .SORTING_HEIGHT ), (self .MARGIN_X , self .SORTING_Y - self .SORTING_HEIGHT / 2 ), 1 , self .array_length , self .midi )
229+
230+ screen_group .add (Wrapper .Text (Wrapper .DefaultText .text ("Sorting" , Wrapper .FontSizes .TITLE_SIZE ), (self .window .window .get_size ()[0 ]/ 2 , self .TITLE_Y ), self .window , slide_in ))
231+ screen_group .add (Wrapper .Background ((self .MARGIN_X + self .SORTING_WIDTH / 2 , self .SORTING_Y ), (self .SORTING_WIDTH , self .SORTING_HEIGHT ), Wrapper .Colors .SMALL_BACKGROUND_COLOR , self .window , False ))
222232
223233 def set_sorting_thread (thread ):
224234 if self .sorting_thread is not None :
@@ -254,14 +264,14 @@ def func():
254264 button_col_top = 130 # Where the buttons start
255265 button_margin = 70
256266
257- self .shuffle_button = Wrapper .TextButton (Wrapper .DefaultText .text ("Shuffle" , Wrapper .FontSizes .BUTTON_SIZE ), ((5 * self .window .window .get_size ()[0 ]/ 6 ), button_col_top ), Wrapper .sequential_functions (self .on_reset , self .array .shuffle ), self .window )
267+ self .shuffle_button = Wrapper .TextButton (Wrapper .DefaultText .text ("Shuffle" , Wrapper .FontSizes .BUTTON_SIZE ), ((5 * self .window .window .get_size ()[0 ]/ 6 ), button_col_top ), Wrapper .sequential_functions (self .on_reset , self .array .shuffle ), self .window , slide_in )
258268 #self.reset_button = Wrapper.TextButton(Wrapper.DefaultText.text("Reset", Wrapper.FontSizes.BUTTON_SIZE), ((5*self.window.window.get_size()[0]/6), button_col_top + button_margin), Wrapper.sequential_functions(self.on_reset, self.array.reset), self.window)
259269
260270
261- self .toggle_aux = Wrapper .TextButton (Wrapper .DefaultText .text ("Auxillary Array" , Wrapper .FontSizes .BUTTON_SIZE ), ((5 * self .window .window .get_size ()[0 ]/ 6 ), button_col_top + 3 * button_margin ), Wrapper .sequential_functions (self .on_reset , self .toggle_aux_array ), self .window )
262- self .generate = Wrapper .TextButton (Wrapper .DefaultText .text ("Generate" , Wrapper .FontSizes .BUTTON_SIZE ), ((5 * self .window .window .get_size ()[0 ]/ 6 ), button_col_top + 4 * button_margin ), Wrapper .sequential_functions (self .on_reset , self .array .generate ), self .window )
263- self .advanced = Wrapper .TextButton (Wrapper .DefaultText .text ("Advanced" , Wrapper .FontSizes .BUTTON_SIZE ), ((5 * self .window .window .get_size ()[0 ]/ 6 ), button_col_top + 5 * button_margin ), Wrapper .sequential_functions (self .on_reset , self .show_advanced ), self .window )
264- self .input = Wrapper .TextButton (Wrapper .DefaultText .text ("Input" , Wrapper .FontSizes .BUTTON_SIZE ), ((5 * self .window .window .get_size ()[0 ]/ 6 ), button_col_top + 6 * button_margin ), Wrapper .sequential_functions (self .on_reset , self .custom_array ), self .window )
271+ self .toggle_aux = Wrapper .TextButton (Wrapper .DefaultText .text ("Auxillary Array" , Wrapper .FontSizes .BUTTON_SIZE ), ((5 * self .window .window .get_size ()[0 ]/ 6 ), button_col_top + 3 * button_margin ), Wrapper .sequential_functions (self .on_reset , self .toggle_aux_array ), self .window , slide_in )
272+ self .generate = Wrapper .TextButton (Wrapper .DefaultText .text ("Generate" , Wrapper .FontSizes .BUTTON_SIZE ), ((5 * self .window .window .get_size ()[0 ]/ 6 ), button_col_top + 4 * button_margin ), Wrapper .sequential_functions (self .on_reset , self .array .generate ), self .window , slide_in )
273+ self .advanced = Wrapper .TextButton (Wrapper .DefaultText .text ("Advanced" , Wrapper .FontSizes .BUTTON_SIZE ), ((5 * self .window .window .get_size ()[0 ]/ 6 ), button_col_top + 5 * button_margin ), Wrapper .sequential_functions (self .on_reset , self .show_advanced ), self .window , slide_in )
274+ self .input = Wrapper .TextButton (Wrapper .DefaultText .text ("Input" , Wrapper .FontSizes .BUTTON_SIZE ), ((5 * self .window .window .get_size ()[0 ]/ 6 ), button_col_top + 6 * button_margin ), Wrapper .sequential_functions (self .on_reset , self .custom_array ), self .window , slide_in )
265275 self .screen_group .add (self .shuffle_button )
266276 self .screen_group .add (self .toggle_aux )
267277 self .screen_group .add (self .generate )
@@ -271,6 +281,7 @@ def func():
271281 # scroll_group[0] = reset
272282 # scroll_group[1] = sorts
273283 # This scroll bar looks so shit cuz its off by a bit, make it better somehow
284+ self .scroll_bar = []
274285 self .scroll_bar .append (Wrapper .ScrollBar (resets , ((5 * self .window .window .get_size ()[0 ]/ 6 ), button_col_top + button_margin ), (200 , 50 ), self .scroll_group [0 ], self .window , "Reset" , slide_in , 124.9 ))
275286 self .scroll_bar .append (Wrapper .ScrollBar (buttons , ((5 * self .window .window .get_size ()[0 ]/ 6 ), button_col_top + 2 * button_margin ), (200 , 50 ), self .scroll_group [1 ], self .window , "Choose Sorted" , slide_in ))
276287 # Options button
@@ -292,7 +303,7 @@ def show_advanced(self):
292303 OPTIONS_HEIGHT = 300
293304
294305 # Switch on options
295- self .window .options_screen = True
306+ self .window .display = True
296307
297308 # Where the text starts rendering
298309 text_start = self .window .window .get_size ()[1 ]/ 2 - OPTIONS_HEIGHT / 2 + 50
@@ -328,7 +339,7 @@ def close_window(self):
328339 self .text_box_group .empty ()
329340 # TODO: Fix glitch where when you press the return button, it will simultaneously press the button behind it
330341 time .sleep (0.30 )
331- self .window .options_screen = False
342+ self .window .display = False
332343
333344 def custom_array (self ):
334345 tkinter .Tk ().withdraw () # prevents an empty tkinter window from appearing
0 commit comments