Untitled

 avatar
unknown
plain_text
5 months ago
2.5 kB
4
Indexable
class WifiConfigurationScreen(ctk.CTkToplevel):
    def __init__(self, parent, dark_mode: bool, language='EN'):
        super().__init__(parent)
        
        self._is_destroyed = False
        self.bind("<Destroy>", self._on_destroy)

        # Make it fullscreen and disable all close operations
        self.overrideredirect(True)
        self.geometry(f"{self.winfo_screenwidth()}x{self.winfo_screenheight()}+0+0")
        self.protocol("WM_DELETE_WINDOW", lambda: None)
        self.attributes('-topmost', True)

        # Set colors based on dark mode
        self.dark_mode = dark_mode
        self.bg_color = '#1c1c1e' if dark_mode else '#f5f5f7'
        self.text_color = 'white' if dark_mode else 'black'
        self.button_color = '#2c2c2e' if dark_mode else '#e5e5e7'
        self.button_hover_color = '#3a3a3c' if dark_mode else '#d1d1d6'
        
        # Status message colors
        self.status_colors = {
            'success': '#34c759',  # Green
            'error': '#ff3b30',    # Red
            'warning': '#ff9f0a',  # Orange
            'info': '#0a84ff',     # Blue
            'default': 'white' if dark_mode else 'black'
        }
        
        self.configure(fg_color=self.bg_color)
        
        # Variables
        self.networks = []
        self.selected_network = StringVar()
        self.password = StringVar()
        self.show_password = ctk.BooleanVar(value=False)
        self.keyboard_visible = False
        self.current_connection = {
            "SSID": TRANSLATIONS[language]['wifi_disconnected'],
            "Signal Strength": "N/A",
            "IP Address": "N/A"
        }
        self.status_message = StringVar(value="")
        self.language = language
        self.is_scanning = False

        # Load all signal icons
        self.load_icons(dark_mode)
        
        # Create main container
        self.main_container = ctk.CTkFrame(self, fg_color=self.bg_color, corner_radius=0)
        self.main_container.pack(fill="both", expand=True, padx=40, pady=(0, 0))
        
        # Create close button
        self.create_close_button()
        
        # Create UI Elements
        self.create_widgets()
        
        # Start scanning networks
        self.scan_wifi_networks()
        self.update_current_connection()

        # Bind click outside password entry to hide keyboard
        self.bind('<Button-1>', self.check_hide_keyboard)
Editor is loading...
Leave a Comment