import tkinter as tk from datetime import datetime class LogWindow: def __init__(self): self.root = tk.Tk() self.root.title('Screen Clicker') self.root.geometry('420x220+0+0') self.root.attributes('-topmost', True) self.root.protocol('WM_DELETE_WINDOW', self.on_close) self.running = True self.screenshot_requested = False self.capture_requested = False self.text = tk.Text( self.root, bg='#1a1a2e', fg='#e0e0e0', font=('Consolas', 10), state='disabled', relief='flat' ) self.text.pack(fill='both', expand=True) controls = tk.Frame(self.root) controls.pack(fill='x') tk.Button( controls, text='From screenshot', command=self.request_screenshot, ).pack(side='left', padx=4, pady=4) tk.Button( controls, text='Capture screen', command=self.request_capture, ).pack(side='left', padx=4, pady=4) tk.Button( controls, text='Stop', command=self.on_close, ).pack(side='right', padx=4, pady=4) def log(self, msg): ts = datetime.now().strftime('%H:%M:%S') self.text.configure(state='normal') self.text.insert('end', f'[{ts}] {msg}\n') self.text.see('end') self.text.configure(state='disabled') try: self.root.update() except: pass def update(self): if self.running: self.root.update() def request_screenshot(self): self.screenshot_requested = True def request_capture(self): self.capture_requested = True def on_close(self): self.running = False self.root.destroy()