Untitled
unknown
plain_text
a year ago
3.6 kB
17
Indexable
# Modify the create_saying_label function to handle WiFi status
def create_saying_label(parent, dark_mode, check_wifi=True):
# Create a main container with some extra vertical space
container = ctk.CTkFrame(
parent,
fg_color='transparent',
height=120
)
container.place(relx=0.5, rely=0.15, anchor='center')
# Create decorative elements container for top elements
top_decorative = ctk.CTkFrame(
container,
fg_color='transparent'
)
top_decorative.pack(pady=(0, 10))
line_color = '#2c2c2e' if dark_mode else '#e5e5e7'
# Top decorative elements
left_line = ctk.CTkFrame(
top_decorative,
width=40,
height=2,
fg_color=line_color
)
left_line.pack(side='left', padx=10)
dot = ctk.CTkFrame(
top_decorative,
width=4,
height=4,
corner_radius=2,
fg_color=line_color
)
dot.pack(side='left')
right_line = ctk.CTkFrame(
top_decorative,
width=40,
height=2,
fg_color=line_color
)
right_line.pack(side='left', padx=10)
# Create the main saying label
saying_label = ctk.CTkLabel(
container,
text="",
font=("Dongle", 42, "bold"),
text_color='white' if dark_mode else 'black',
pady=15
)
saying_label.pack(expand=True)
# Bottom decorative elements
bottom_decorative = ctk.CTkFrame(
container,
fg_color='transparent'
)
bottom_decorative.pack(pady=(5, 0))
# Bottom elements
left_line = ctk.CTkFrame(
bottom_decorative,
width=120,
height=2,
fg_color=line_color
)
left_line.pack(side='left', padx=10)
dot = ctk.CTkFrame(
bottom_decorative,
width=4,
height=4,
corner_radius=2,
fg_color=line_color
)
dot.pack(side='left')
right_line = ctk.CTkFrame(
bottom_decorative,
width=120,
height=2,
fg_color=line_color
)
right_line.pack(side='left', padx=10)
def check_wifi_status():
if check_wifi:
try:
# Check WiFi connection using nmcli
result = subprocess.run(
["nmcli", "-t", "-f", "STATE", "networking"],
capture_output=True,
text=True
)
if "connected" not in result.stdout.lower():
return False
# Also check if we have an active connection
result = subprocess.run(
["nmcli", "-t", "-f", "ACTIVE", "connection"],
capture_output=True,
text=True
)
return "yes" in result.stdout.lower()
except Exception:
return False
return True
def update_label():
if not check_wifi_status():
# Show disconnected warning in red
saying_label.configure(
text=TRANSLATIONS[container.winfo_toplevel().LANGUAGE]['wifi_disconnected_warning'],
text_color='#ff3b30' # Red color that works in both light and dark mode
)
container.after(5000, update_label) # Check every 5 seconds
if check_wifi:
container.after(0, update_label)
return saying_labelEditor is loading...
Leave a Comment