from tkinter import ttk
import os
import sys


def check_password():
    password = "123"  # замените на ваш пароль
    entered_password = password_entry.get()

    if entered_password == password:
        root.destroy()  # закрыть главное окно программы
    else:
        desktop_path = os.path.join(os.path.join(os.path.expanduser('~')), 'Desktop')  # путь к рабочему столу
        folder_path = os.path.join(desktop_path, "неправильно")  # путь к папке "неправильно"
        os.makedirs(folder_path, exist_ok=True)  # создать папку "неправильно" или игнорировать, если она уже существует


def toggle_password_visibility():
    if show_password.get():
        password_entry.config(show="")
    else:
        password_entry.config(show="*")


def on_closing():
    if not root.focus_get() and not password_entry.get():
        return  # Если окно программы уже не в фокусе и поле ввода пароля пустое, не делаем ничего
    else:
        root.protocol("WM_DELETE_WINDOW", on_closing)  # Переопределение стандартной команды закрытия окна
        root.iconify()  # Сворачивание окна
        os.system(sys.argv[0])  # Перезапуск программы


def toggle_dark_mode():
    if dark_mode.get():
        root.configure(bg="black")
        panel_frame.configure(bg="black")
        blocked_label.configure(foreground="white")
        password_label.configure(foreground="white")
        password_entry.configure(foreground="white", background="black")
        show_password_checkbox.configure(foreground="white", background="black")
        submit_button.configure(foreground="white", background="black")
    else:
        root.configure(bg="white")
        panel_frame.configure(bg="white")
        blocked_label.configure(foreground="black")
        password_label.configure(foreground="black")
        password_entry.configure(foreground="black", background="white")
        show_password_checkbox.configure(foreground="black", background="white")
        submit_button.configure(foreground="black", background="white")


# Создание GUI окна
root = tk.Tk()
root.title("Аутентификация")
root.attributes("-topmost", True)  # Установка флага "всегда поверх"
root.lift()  # Перемещение окна вверх стека окон

# Установка полноэкранного режима
root.attributes("-fullscreen", True)

# Запрет изменения размеров окна
root.resizable(width=False, height=False)

# Создание стиля для ttk виджетов
style = ttk.Style(root)
style.configure("TLabel", font=("Arial", 12))
style.configure("TEntry", font=("Arial", 12))
style.configure("TButton", font=("Arial", 12))

# Создание панели
panel_frame = ttk.Frame(root, padding=40)
panel_frame.place(relx=0.5, rely=0.5, anchor=tk.CENTER)

# Создание надписи "Вы заблокированы!"
blocked_label = ttk.Label(root, text="Вы заблокированы!", font=("Arial", 20))
blocked_label.pack(side=tk.TOP, pady=20)

# Создание виджетов
password_label = ttk.Label(panel_frame, text="Введите пароль!")
password_label.pack(pady=10)

password_entry = ttk.Entry(panel_frame, show="*")
password_entry.pack(pady=10)

show_password = tk.BooleanVar()
show_password_checkbox = ttk.Checkbutton(panel_frame, text="Показать пароль", variable=show_password, command=toggle_password_visibility)
show_password_checkbox.pack(pady=5)

submit_button = ttk.Button(panel_frame, text="Подтвердить", command=check_password)
submit_button.pack(pady=10)

# Создание галочки для переключения на темную тему
dark_mode = tk.BooleanVar()
dark_mode_checkbox = ttk.Checkbutton(root, text="Темная тема", variable=dark_mode, command=toggle_dark_mode)
dark_mode_checkbox.place(x=10, y=root.winfo_screenheight() - 30)

root.protocol("WM_DELETE_WINDOW", on_closing)  # Переопределение стандартной команды закрытия окна

root.mainloop()