import tkinter as tk
from tkinter import ttk
from datetime import datetime
import locale
import platform


def elementleri_olustur():
    style = ttk.Style()
    # Gün için neon yeşil rengi
    day_color = "#b2b2b2"
    style.configure("NeonDay.TLabel", 
                    foreground=day_color, 
                    background="black",
                    font=("Comic Sans MS", 40, "bold"))
    # Tarih için neon mavi rengi
    date_color = "#768476"
    style.configure("NeonDate.TLabel", 
                    foreground=date_color, 
                    background="black",
                    font=("Comic Sans MS", 13))
    # Saat için neon pembe rengi
    time_color = "#0bcf0e"
    style.configure("NeonTime.TLabel", 
                    foreground=time_color, 
                    background="black",
                    font=("Comic Sans MS", 13))
    
    
    
if platform.system() == "Windows":
    locale.setlocale(locale.LC_TIME, 'Turkish_Turkey.1254')
else:
    locale.setlocale(locale.LC_TIME, 'tr_TR.UTF-8')
    
def to_upper_tr(text):
    char_map = {'i': 'İ', 'ş': 'Ş', 'ğ': 'Ğ', 'ü': 'Ü', 'ö': 'Ö', 'ç': 'Ç', 'ı': 'I'}
    return ' '.join(char_map.get(c, c.upper()) for c in text)


root = tk.Tk()
root.title("Neon Gün Widget'ı")
root.overrideredirect(True)  # Pencere çerçevesini kaldır
root.geometry("600x300+457+540")  # Pencere boyutunu ve konumunu ayarla
root.configure(bg='black')  # Arka planı siyah yap
root.wm_attributes("-transparentcolor", "black")  # Siyah arka planı şeffaf yap

elementleri_olustur()


def update_time():
    today_day = to_upper_tr(datetime.today().strftime('%A'))
    today_date = datetime.today().strftime('%d %B %Y')
    current_time = datetime.today().strftime('%H:%M:%S')
    day_label.config(text=today_day)
    date_label.config(text=today_date)
    time_label.config(text=current_time)
    root.after(1000, update_time)  # Her saniyede bir güncelle

# Gün ismini gösteren label
day_label = ttk.Label(root, text="", style="NeonDay.TLabel")
day_label.place(relx=0.5, rely=0.3, anchor='center')

# Tarihi gösteren label
date_label = ttk.Label(root, text="", style="NeonDate.TLabel")
date_label.place(relx=0.5, rely=0.5, anchor='center')

# Saati gösteren label
time_label = ttk.Label(root, text="", style="NeonTime.TLabel")
time_label.place(relx=0.5, rely=0.58, anchor='center')

update_time()


def on_click(event):
    root._drag_data = {'x': event.x, 'y': event.y}

def on_drag(event):
    x = root.winfo_x() + event.x - root._drag_data['x']
    y = root.winfo_y() + event.y - root._drag_data['y']
    root.geometry(f"+{x}+{y}")

for widget in (day_label, date_label, time_label):
    widget.bind("<Button-1>", on_click)
    widget.bind("<B1-Motion>", on_drag)
    
    
root.mainloop()

