Untitled
unknown
plain_text
5 months ago
4.1 kB
3
Indexable
class ConnectionScreen(ctk.CTkToplevel): def __init__(self, parent, network_ssid: str, dark_mode: bool, language: str): super().__init__(parent) self.network_ssid = network_ssid self.dark_mode = dark_mode self.language = language self.wifi = WiFiConnection() # Make it fullscreen self.overrideredirect(True) self.geometry(f"{self.winfo_screenwidth()}x{self.winfo_screenheight()}+0+0") # Colors bg_color = '#1c1c1e' if dark_mode else '#f5f5f7' accent_color = '#2c2c2e' if dark_mode else '#e5e5e7' text_color = 'white' if dark_mode else 'black' self.configure(fg_color=bg_color) # Header header = ctk.CTkFrame(self, fg_color=bg_color, height=50) header.pack(fill='x', padx=20, pady=(20,10)) title = ctk.CTkLabel( header, text=f"Connect to {network_ssid}", font=("Dongle", 24, "bold"), text_color=text_color ) title.pack(side='left') back_btn = ctk.CTkButton( header, text="×", width=40, height=40, font=("Dongle", 20), fg_color=accent_color, hover_color='#3a3a3c' if dark_mode else '#d1d1d6', command=self.destroy ) back_btn.pack(side='right') # Password entry self.password_frame = ctk.CTkFrame(self, fg_color=bg_color) self.password_frame.pack(fill='x', padx=20, pady=10) self.password_var = ctk.StringVar() self.password_entry = ctk.CTkEntry( self.password_frame, textvariable=self.password_var, placeholder_text="Enter network password", font=("Dongle", 18), height=50, show="*", fg_color=accent_color ) self.password_entry.pack(side='left', fill='x', expand=True, padx=(0,10)) self.show_password_btn = ctk.CTkButton( self.password_frame, text="👁", width=50, height=50, font=("Dongle", 20), fg_color=accent_color, hover_color='#3a3a3c' if dark_mode else '#d1d1d6', command=self.toggle_password_visibility ) self.show_password_btn.pack(side='right') # Custom keyboard self.keyboard = CustomKeyboard( self, self.password_entry, dark_mode, command=self.connect_to_network ) self.keyboard.pack(fill='both', expand=True, padx=20, pady=10) self.status_label = ctk.CTkLabel( self, text="", font=("Dongle", 16), text_color=text_color ) self.status_label.pack(pady=10) def toggle_password_visibility(self): current = self.password_entry.cget('show') self.password_entry.configure(show='' if current == '*' else '*') def connect_to_network(self): password = self.password_var.get() if not password: self.status_label.configure(text="Please enter a password") return self.status_label.configure(text="Connecting...") def connect(): result = self.wifi.connect_to_network(self.network_ssid, password) if result['status'] == 'success': self.status_label.configure( text="Connected successfully", text_color='#34c759' ) self.after(1000, self.destroy) else: self.status_label.configure( text=result['message'], text_color='#ff3b30' ) threading.Thread(target=connect, daemon=True).start()
Editor is loading...
Leave a Comment