66from customtkinter import filedialog
77from smct import ui_strings , config , multimonitortool , paths
88
9- customtkinter .set_ctk_parent_class (tkinter .Tk )
9+ _ROOT_WINDOW = None
10+ _SELECT_MMT_EXE_FRAME = None
11+ _SELECT_MONITOR_FRAME = None
1012
11- customtkinter .set_appearance_mode ("dark" ) # Modes: "System" (standard), "Dark", "Light"
12- customtkinter .set_default_color_theme (
13- "dark-blue"
14- ) # Themes: "blue" (standard), "green", "dark-blue"
1513
16- _root_window = customtkinter .CTk ()
14+ def init_root_window ():
15+ # pylint: disable=global-statement
16+ global _ROOT_WINDOW , _SELECT_MMT_EXE_FRAME , _SELECT_MONITOR_FRAME
1717
18- _root_window .title (ui_strings .SHORT_NAME )
19- _root_window .resizable (False , False )
18+ customtkinter .set_ctk_parent_class (tkinter .Tk )
2019
21- _root_window .geometry ()
20+ customtkinter .set_appearance_mode (
21+ "dark"
22+ ) # Modes: "System" (standard), "Dark", "Light"
23+ customtkinter .set_default_color_theme (
24+ "dark-blue"
25+ ) # Themes: "blue" (standard), "green", "dark-blue"
2226
23- _select_mmt_exe_frame = customtkinter .CTkFrame (master = _root_window )
24- _select_monitor_frame = customtkinter .CTkFrame (master = _root_window )
27+ _ROOT_WINDOW = customtkinter .CTk ()
28+
29+ _ROOT_WINDOW .title (ui_strings .SHORT_NAME )
30+ _ROOT_WINDOW .resizable (False , False )
31+
32+ _ROOT_WINDOW .geometry ()
33+ _ROOT_WINDOW .protocol ("WM_DELETE_WINDOW" , exit_application )
34+
35+ _SELECT_MMT_EXE_FRAME = customtkinter .CTkFrame (master = _ROOT_WINDOW )
36+ _SELECT_MONITOR_FRAME = customtkinter .CTkFrame (master = _ROOT_WINDOW )
37+
38+ _init_mmt_selection_frame ()
2539
2640
2741def exit_application ():
2842 # clean up files if setup was interrupted
2943 shutil .rmtree (paths .MMT_DIR_PATH )
44+ shutil .rmtree (paths .ASSETS_DIR_PATH )
3045 os .remove (paths .CONFIG_PATH )
31- _root_window .destroy ()
46+ _ROOT_WINDOW .destroy ()
3247 sys .exit (1 )
3348
3449
35- _root_window .protocol ("WM_DELETE_WINDOW" , exit_application )
36-
37-
38- def init_mmt_selection_frame ():
39- _root_window .iconbitmap (paths .ASSETS_ICO_PATH )
50+ def _init_mmt_selection_frame ():
51+ _ROOT_WINDOW .iconbitmap (paths .ASSETS_ICO_PATH )
4052 # _root_window.geometry("300x110")
41- _select_mmt_exe_frame .pack (pady = 10 , padx = 10 , fill = "both" , expand = True )
53+ _SELECT_MMT_EXE_FRAME .pack (pady = 10 , padx = 10 , fill = "both" , expand = True )
4254
4355 select_mmt_label = customtkinter .CTkLabel (
4456 text = ui_strings .SELECT_MMT_LABEL ,
45- master = _select_mmt_exe_frame ,
57+ master = _SELECT_MMT_EXE_FRAME ,
4658 justify = customtkinter .CENTER ,
4759 )
4860 select_mmt_label .pack (pady = 5 , padx = 5 )
4961
5062 browse_button = customtkinter .CTkButton (
5163 text = ui_strings .BROWSE_BUTTON ,
52- master = _select_mmt_exe_frame ,
64+ master = _SELECT_MMT_EXE_FRAME ,
5365 command = _browse_button_callback ,
5466 )
5567 browse_button .pack (pady = 10 , padx = 10 )
5668
57- _root_window .mainloop ()
69+ _ROOT_WINDOW .mainloop ()
5870
5971
6072def _browse_button_callback ():
@@ -66,25 +78,25 @@ def _browse_button_callback():
6678 print (ui_strings .NO_FILE_SELECTED )
6779 else :
6880 config .set_mmt_path_value (_exe_path )
69- _select_mmt_exe_frame .destroy ()
81+ _SELECT_MMT_EXE_FRAME .destroy ()
7082 multimonitortool .enable_all_disabled_monitors ()
7183 multimonitortool .save_mmt_config ()
7284 _init_monitor_selection_frame ()
7385
7486
7587def _init_monitor_selection_frame ():
7688 # _root_window.geometry("300x160")
77- _select_monitor_frame .pack (pady = 10 , padx = 10 , fill = "both" , expand = True )
89+ _SELECT_MONITOR_FRAME .pack (pady = 10 , padx = 10 , fill = "both" , expand = True )
7890
7991 _monitor_selection_label = customtkinter .CTkLabel (
8092 text = ui_strings .SELECT_MONITOR_LABEL ,
81- master = _select_monitor_frame ,
93+ master = _SELECT_MONITOR_FRAME ,
8294 justify = customtkinter .CENTER ,
8395 )
8496 _monitor_selection_label .pack (pady = 5 , padx = 5 )
8597
8698 monitor_selection_menu = customtkinter .CTkOptionMenu (
87- _select_monitor_frame ,
99+ _SELECT_MONITOR_FRAME ,
88100 values = multimonitortool .get_monitor_selection_list (),
89101 )
90102 monitor_selection_menu .pack (pady = 10 , padx = 10 )
@@ -94,11 +106,11 @@ def _select_monitor_button_callback():
94106 config .set_monitor_name_value (_menu_string [1 ].strip ())
95107 config .set_monitor_serial_value (_menu_string [2 ].strip ())
96108
97- _root_window .destroy ()
109+ _ROOT_WINDOW .destroy ()
98110
99111 _select_monitor_button = customtkinter .CTkButton (
100112 text = ui_strings .OK_BUTTON ,
101- master = _select_monitor_frame ,
113+ master = _SELECT_MONITOR_FRAME ,
102114 command = _select_monitor_button_callback ,
103115 )
104116 _select_monitor_button .pack (pady = 10 , padx = 10 )
0 commit comments