fishyboteso/fishy/helper/popup.py
2022-06-13 10:11:04 +02:00

39 lines
1.1 KiB
Python

import time
from tkinter import Toplevel
from fishy import helper
def center(win):
win.update_idletasks()
win.master.update_idletasks()
width = win.winfo_width()
height = win.winfo_height()
offset_x = win.master.winfo_x() + win.master.winfo_width() // 2 - (width // 2)
offset_y = win.master.winfo_y() + win.master.winfo_height() // 2 - (height // 2)
win.geometry('{}x{}+{}+{}'.format(width, height, offset_x, offset_y))
class PopUp(Toplevel):
def __init__(self, quit_callback, *args, **kwargs):
super().__init__(*args, **kwargs)
self.running = True
self.quit_callback = quit_callback
self.protocol("WM_DELETE_WINDOW", self.quit_top)
self.iconbitmap(helper.manifest_file('icon.ico'))
def quit_top(self):
self.quit_callback()
self.destroy()
self.running = False
def start(self):
self.minsize(self.winfo_width(), self.winfo_height())
self.grab_set()
center(self)
while self.running:
self.update()
time.sleep(0.01)
self.grab_release()