from tkinter import messagebox import typing if typing.TYPE_CHECKING: from fishy.gui import GUI # noinspection PyProtectedMember class GUIFuncs: def __init__(self, gui: 'GUI'): self.gui = gui def show_error(self, error): self.gui.call_in_thread(lambda: messagebox.showerror("ERROR", error)) def bot_started(self, started): def func(): self.gui._bot_running = started self.gui._start_button["text"] = self.gui._get_start_stop_text() self.gui._engine_select["state"] = "disabled" if self.gui._bot_running else "normal" self.gui._config_button["state"] = "disabled" if self.gui._bot_running else "normal" self.gui.call_in_thread(func) def quit(self): def func(): self.gui._root.destroy() self.gui.call_in_thread(func) def start_engine(self): def start_engine(): self.gui._config.set("last_started", self.gui._engine_var.get()) self.gui.engines[self.gui._engine_var.get()][1]() self.gui.call_in_thread(start_engine)