1+ import customtkinter , tkinter .messagebox , pickle , typing
2+
3+ with open (f"my_maps_language_settings.pickle" , f"rb+" ) as data : language_data : str = pickle .load (data )
4+
5+ with open (f"my_maps_theme_settings.pickle" , f"rb+" ) as theme_data : theme : str = pickle .load (theme_data )
6+
7+ class My_Maps_setting_window (customtkinter .CTkToplevel ):
8+ WIDTH : typing .Final [int ] = 655
9+ HEIGHT : typing .Final [int ] = 330
10+ TITLE : typing .Final [str ] = "My Diary settings window"
11+
12+ def __init__ (self , * args , ** kwargs ) -> None :
13+ customtkinter .CTkToplevel .__init__ (self , * args , ** kwargs )
14+
15+ self .geometry (f"{ self .WIDTH } x{ self .HEIGHT } " )
16+ self .resizable (False , False )
17+ self .title (self .TITLE )
18+
19+ if language_data == f"Српски" :
20+ self .main_screen_settings_text : customtkinter .CTkLabel = customtkinter .CTkLabel (master = self , text = f"Подешавања" , font = (f"Roboto Bold" , 75 ))
21+ self .main_screen_settings_text .place (x = 0 , y = 0 )
22+
23+ self .main_screen_language_text : customtkinter .CTkLabel = customtkinter .CTkLabel (master = self , text = f"Језици" , font = (f"Roboto Bold" , 50 ))
24+ self .main_screen_language_text .place (x = 0 , y = 87 )
25+
26+ self .main_screen_settings_theme_mode_text : customtkinter .CTkLabel = customtkinter .CTkLabel (master = self , text = f"Тема" , font = (f"Roboto Bold" , 36 ))
27+ self .main_screen_settings_theme_mode_text .place (x = 0 , y = 187 )
28+
29+ elif language_data == f"English" :
30+ self .main_screen_settings_text : customtkinter .CTkLabel = customtkinter .CTkLabel (master = self , text = f"Settings" , font = (f"Roboto Bold" , 75 ))
31+ self .main_screen_settings_text .place (x = 0 , y = 0 )
32+
33+ self .main_screen_language_text : customtkinter .CTkLabel = customtkinter .CTkLabel (master = self , text = f"Languages" , font = (f"Roboto Bold" , 50 ))
34+ self .main_screen_language_text .place (x = 0 , y = 87 )
35+
36+ self .main_screen_settings_theme_mode_text : customtkinter .CTkLabel = customtkinter .CTkLabel (master = self , text = f"Theme" , font = (f"Roboto Bold" , 36 ))
37+ self .main_screen_settings_theme_mode_text .place (x = 0 , y = 187 )
38+
39+ else :
40+ self .main_screen_settings_text : customtkinter .CTkLabel = customtkinter .CTkLabel (master = self , text = f"Настройки" , font = (f"Roboto Bold" , 75 ))
41+ self .main_screen_settings_text .place (x = 0 , y = 0 )
42+
43+ self .main_screen_language_text : customtkinter .CTkLabel = customtkinter .CTkLabel (master = self , text = f"Языки" , font = (f"Roboto Bold" , 50 ))
44+ self .main_screen_language_text .place (x = 0 , y = 87 )
45+
46+ self .main_screen_settings_theme_mode_text : customtkinter .CTkLabel = customtkinter .CTkLabel (master = self , text = f"Тема" , font = (f"Roboto Bold" , 36 ))
47+ self .main_screen_settings_theme_mode_text .place (x = 0 , y = 187 )
48+
49+ self .main_screen_settings_language_option : customtkinter .CTkSegmentedButton = customtkinter .CTkSegmentedButton (master = self , values = [f"Српски" , f"English" , f"Русский" ], command = self .__language_settings__ )
50+ self .main_screen_settings_language_option .place (x = 15 , y = 147 )
51+
52+ self .main_screen_settings_language_option .set (language_data )
53+
54+ self .main_screen_settings_theme_mode_option : customtkinter .CTkSegmentedButton = customtkinter .CTkSegmentedButton (master = self , values = [f"dark" , f"light" ], command = self .__theme_settings__ )
55+ self .main_screen_settings_theme_mode_option .place (x = 15 , y = 227 )
56+
57+ self .main_screen_settings_theme_mode_option .set (theme )
58+
59+ def __language_settings__ (self : typing .Self , pickle_serializer : pickle ) -> None :
60+ self .main_screen_settings_language_option_data : str = self .main_screen_settings_language_option .get ()
61+ with open (f"my_maps_language_settings.pickle" , f"wb+" ) as self .data :
62+ pickle .dump (self .main_screen_settings_language_option_data , self .data )
63+
64+ if self .main_screen_settings_language_option_data == f"Српски" :
65+ tkinter .messagebox .showwarning (title = f"Пажња" , message = f"Рестартуј програм" )
66+
67+ elif self .main_screen_settings_language_option_data == f"English" :
68+ tkinter .messagebox .showwarning (title = f"Warning" , message = f"Restart program" )
69+
70+ else :
71+ tkinter .messagebox .showwarning (title = f"Внимание" , message = f"Перезагрузите программу" )
72+
73+ def __theme_settings__ (self : typing .Self , pickle_serializer : pickle ) -> None :
74+ self .main_screen_settings_theme_option_data : str = self .main_screen_settings_theme_mode_option .get ()
75+ with open (f"my_maps_theme_settings.pickle" , f"wb+" ) as self .data :
76+ pickle .dump (self .main_screen_settings_theme_option_data , self .data )
77+
78+ if language_data == "Српски" :
79+ tkinter .messagebox .showwarning (title = f"Пажња" , message = f"Рестартуј програм" )
80+
81+ elif language_data == "English" :
82+ tkinter .messagebox .showwarning (title = f"Warning" , message = f"Restart program" )
83+
84+ else :
85+ tkinter .messagebox .showwarning (title = f"Внимание" , message = f"Перезагрузите программу" )
0 commit comments