Untitled

 avatar
unknown
plain_text
5 months ago
2.7 kB
3
Indexable
def modify_main():
    original_init = ctk.CTk.__init__
    
    def new_init(self):
        original_init(self)
        # Store dark mode and language as instance variables
        self.dark_mode = getattr(self, 'dark_mode', False)  # Default to False if not set
        self.LANGUAGE = getattr(self, 'LANGUAGE', 'EN')  # Default to EN if not set
        
        self.settings_overlay = None
        # Create settings button only after main_frame exists
        self.after(100, self.create_settings_button)
        
    def create_settings_button(self):
        if hasattr(self, 'main_frame'):
            self.settings_button = SettingsButton(
                self.main_frame,
                dark_mode=self.dark_mode,
                command=self.toggle_settings
            )
            self.settings_button.place(relx=0.95, rely=0.05, anchor='ne')
        
    def toggle_settings(self):
        if self.settings_overlay is None:
            self.settings_overlay = SettingsOverlay(
                self,
                dark_mode=self.dark_mode,
                language=self.LANGUAGE
            )
        else:
            self.settings_overlay.close()
            self.settings_overlay = None
            
    def update_language(self, language):
        self.LANGUAGE = language
        # Update all UI elements that need translation
        # You can add specific update logic here
        
    def update_dark_mode(self, is_dark):
        self.dark_mode = is_dark
        ctk.set_appearance_mode("dark" if is_dark else "light")
        if hasattr(self, 'settings_button'):
            self.settings_button.set_dark_mode(is_dark)
        # Update other UI elements that need dark mode changes
        # You can add specific update logic here
        
    # Add new methods to CTk class
    ctk.CTk.create_settings_button = create_settings_button
    ctk.CTk.toggle_settings = toggle_settings
    ctk.CTk.update_language = update_language
    ctk.CTk.update_dark_mode = update_dark_mode
    ctk.CTk.__init__ = new_init

def main():
    modify_circular_progress()
    modify_main()  # Call this before creating the root window

    # config
    DARK_MODE = False
    LANGUAGE = 'DE'

    ctk.set_appearance_mode("dark" if DARK_MODE else "light")
    ctk.set_default_color_theme("dark-blue")

    root = ctk.CTk()
    root.title("SortiMate")
    
    # Set initial values
    root.dark_mode = DARK_MODE
    root.LANGUAGE = LANGUAGE

    root.overrideredirect(True)
    root.geometry("1024x600+0+0")
    root.focus_set()

    bg_color = '#1c1c1e' if DARK_MODE else '#f5f5f7'
    root.configure(fg_color=bg_color)
Editor is loading...
Leave a Comment