diff --git a/secure_sms/ui/__init__.py b/secure_sms/ui/__init__.py index e69de29..2d61e92 100644 --- a/secure_sms/ui/__init__.py +++ b/secure_sms/ui/__init__.py @@ -0,0 +1,3 @@ +from secure_sms.ui.main_window import SecureSmsApp + +__all__ = ["SecureSmsApp"] diff --git a/secure_sms/ui/__pycache__/main_window.cpython-313.pyc b/secure_sms/ui/__pycache__/main_window.cpython-313.pyc new file mode 100644 index 0000000..447d5ff Binary files /dev/null and b/secure_sms/ui/__pycache__/main_window.cpython-313.pyc differ diff --git a/secure_sms/ui.py b/secure_sms/ui/main_window.py similarity index 98% rename from secure_sms/ui.py rename to secure_sms/ui/main_window.py index e264b2a..99e9ee8 100644 --- a/secure_sms/ui.py +++ b/secure_sms/ui/main_window.py @@ -12,32 +12,32 @@ except ImportError: get_display = None -ctk.set_appearance_mode("dark") +ctk.set_appearance_mode("light") ctk.set_default_color_theme("blue") -PRIMARY = "#2AABEE" -PRIMARY_DARK = "#229ED9" -PRIMARY_SOFT = "#1C3A4F" -ACCENT = "#2AABEE" -ACCENT_DARK = "#229ED9" -BACKGROUND = "#0E1621" -CARD = "#17212B" -SURFACE = "#17212B" -INPUT_BG = "#242F3D" -TEXT = "#FFFFFF" -MUTED = "#6C7883" -DANGER = "#E05D57" -WARNING = "#E0A356" -BORDER = "#232E3C" -KEYBOARD_BG = "#17212B" -KEY_FACE = "#242F3D" -KEY_MUTED = "#1C2733" -KEY_TEXT = "#FFFFFF" -SIDEBAR = "#17212B" -SIDEBAR_SOFT = "#242F3D" -BUBBLE_OUT = "#2B5278" -BUBBLE_IN = "#182533" +PRIMARY = "#175B4B" +PRIMARY_DARK = "#0E4236" +PRIMARY_SOFT = "#DFF1E8" +ACCENT = "#E8A04D" +ACCENT_DARK = "#C97E2D" +BACKGROUND = "#F5EFE7" +CARD = "#FFFDFC" +SURFACE = "#FBF7F2" +INPUT_BG = "#FFFCF8" +TEXT = "#16312A" +MUTED = "#6B7A77" +DANGER = "#B6465F" +WARNING = "#9A6C3C" +BORDER = "#E5DCCE" +KEYBOARD_BG = "#D4DCE2" +KEY_FACE = "#FFFFFF" +KEY_MUTED = "#BCC1C9" +KEY_TEXT = "#000000" +SIDEBAR = "#1B5A4A" +SIDEBAR_SOFT = "#245E4E" +BUBBLE_OUT = "#E1F2E9" +BUBBLE_IN = "#FFFFFF" FONT_BODY = "Tahoma" if os.name == "nt" else "DejaVu Sans" FONT_TITLE = "Tahoma" if os.name == "nt" else "DejaVu Sans" RTL_PATTERN = re.compile(r"[\u0600-\u06FF]") @@ -740,13 +740,13 @@ class SecureSmsApp(ctk.CTk): RTLLabel( sidebar_header, text='صبا', - text_color=TEXT, + text_color="white", font=ctk.CTkFont(family=FONT_TITLE, size=title_size, weight="bold"), ).grid(row=0, column=0, sticky="e") RTLLabel( sidebar_header, text='پیام\u200cرسان امن', - text_color=MUTED, + text_color=PRIMARY_SOFT, font=ctk.CTkFont(family=FONT_BODY, size=subtitle_size), ).grid(row=1, column=0, sticky="e") @@ -754,8 +754,8 @@ class SecureSmsApp(ctk.CTk): self.sidebar, text="", corner_radius=6, - fg_color="#1C3A4F", - text_color=MUTED, + fg_color="#2E7D62", + text_color="white", font=ctk.CTkFont(family=FONT_BODY, size=13, weight="bold"), padx=10, pady=6, @@ -782,7 +782,7 @@ class SecureSmsApp(ctk.CTk): command=self._open_settings_panel, fg_color=INPUT_BG, text_color=TEXT, - hover_color="#2D3A49", + hover_color=BORDER, corner_radius=8, height=action_height, font=ctk.CTkFont(family=FONT_BODY, size=14, weight="bold"), @@ -843,7 +843,7 @@ class SecureSmsApp(ctk.CTk): text='بستن', fg_color=INPUT_BG, text_color=TEXT, - hover_color="#2D3A49", + hover_color=BORDER, command=self._hide_contact_form, corner_radius=8, font=ctk.CTkFont(family=FONT_BODY, size=15, weight="bold"), @@ -972,7 +972,7 @@ class SecureSmsApp(ctk.CTk): text='بازگشت به حالت عادی', fg_color=INPUT_BG, text_color=TEXT, - hover_color="#2D3A49", + hover_color=BORDER, corner_radius=8, font=ctk.CTkFont(family=FONT_BODY, size=15, weight="bold"), command=self._switch_to_normal, @@ -1044,9 +1044,9 @@ class SecureSmsApp(ctk.CTk): def _refresh_connection_badge(self): modem = self.controller.modem_status() if modem["connected"]: - self.connection_badge.configure(text=f"مودم متصل | {modem['port']}", fg_color="#1C3A4F", text_color="#2AABEE") + self.connection_badge.configure(text=f"مودم متصل | {modem['port']}", fg_color="#2E7D62", text_color="white") else: - self.connection_badge.configure(text=f"مودم آفلاین | {modem['port']}", fg_color="#3A2020", text_color="#E05D57") + self.connection_badge.configure(text=f"مودم آفلاین | {modem['port']}", fg_color="#9A6C3C", text_color="white") def _refresh_contacts(self): for widget in self.contacts_frame.winfo_children(): @@ -1069,9 +1069,9 @@ class SecureSmsApp(ctk.CTk): height=72 if self.is_portrait else 80, corner_radius=8, command=lambda phone=contact.phone: self._select_contact(phone), - fg_color="#2B5278" if selected else "transparent", - hover_color="#2B5278", - text_color=TEXT, + fg_color=SURFACE if selected else "transparent", + hover_color=BORDER, + text_color=TEXT if selected else "white", font=ctk.CTkFont(family=FONT_BODY, size=14), ) card.grid(row=index, column=0, padx=4, pady=2, sticky="ew") @@ -1128,7 +1128,7 @@ class SecureSmsApp(ctk.CTk): for message in messages: if message.direction == "system": - sys_frame = ctk.CTkFrame(self.chat_container, fg_color="#1C2733", corner_radius=8) + sys_frame = ctk.CTkFrame(self.chat_container, fg_color=SURFACE, corner_radius=8) sys_frame.pack(pady=6, anchor="center") RTLLabel( sys_frame, @@ -1154,7 +1154,7 @@ class SecureSmsApp(ctk.CTk): RTLLabel( bubble, text=message.body, - text_color="#FFFFFF", + text_color=TEXT, font=ctk.CTkFont(family=FONT_BODY, size=15), wraplength=max(180, int(self.window_width * 0.5)), justify="right" @@ -1164,7 +1164,7 @@ class SecureSmsApp(ctk.CTk): RTLLabel( bubble, text=badge_text, - text_color="#7A8E9C", + text_color=MUTED, font=ctk.CTkFont(family=FONT_BODY, size=10), justify="right" ).pack(padx=12, pady=(0, 6), anchor="w" if is_out else "e") @@ -1287,7 +1287,7 @@ class SecureSmsApp(ctk.CTk): text='بازگشت به گفتگو', fg_color=INPUT_BG, text_color=TEXT, - hover_color="#2D3A49", + hover_color=BORDER, font=ctk.CTkFont(family=FONT_BODY, size=15, weight="bold"), height=40, command=self._hide_overlay, @@ -1318,7 +1318,7 @@ class SecureSmsApp(ctk.CTk): height=36, fg_color=INPUT_BG, text_color=TEXT, - hover_color="#2D3A49", + hover_color=BORDER, font=ctk.CTkFont(family=FONT_BODY, size=14, weight="bold"), command=self._hide_overlay, ).grid(row=0, column=1, padx=(8, 0), sticky="e") @@ -1385,7 +1385,7 @@ class SecureSmsApp(ctk.CTk): text='بازگشت به تنظیمات', fg_color=INPUT_BG, text_color=TEXT, - hover_color="#2D3A49", + hover_color=BORDER, font=ctk.CTkFont(family=FONT_BODY, size=15, weight="bold"), height=40, command=self._open_settings_panel,