diff --git a/src/gui.py b/src/gui.py index fa3882c..a3fbfaf 100644 --- a/src/gui.py +++ b/src/gui.py @@ -2,33 +2,78 @@ from tkinter import ttk from tkinter import Tk from tkinter import Button, Label from .data import Message +from src import sendkeys class Gui(Tk): def __init__(self, parent=None) -> None: Tk.__init__(self, parent) - self.title("Welcome to LikeGeeks app") - self.geometry("300x200+10+20") - # self.overrideredirect(1) # remove border - # window.withdraw() # hide window + self.title("Uber Trader") + # self.geometry("300x200+10+20") + self.overrideredirect(1) # remove border + self.wm_withdraw() # Hide window self.attributes('-topmost', True) # always on top - self.tab_control = ttk.Notebook(self) + style = ttk.Style() + style.configure("BW.TLabel", foreground="white", background="black") + self.tab_control = ttk.Notebook(self, style='BW.TLabel') self.tab_control.pack(expand=1, fill='both') + self.tab_control.bind("", self.start_move) + self.tab_control.bind("", self.stop_move) + self.tab_control.bind("", self.do_move) self.tabs = dict() def add_tab(self, number: int, message: Message) -> None: - tab = ttk.Frame(self.tab_control) + self.wm_deiconify() + tab = ttk.Frame(self.tab_control, style='BW.TLabel') if message.user not in self.tabs: self.tabs[message.user] = dict() if message.trade.item not in self.tabs[message.user]: - self.tabs[message.user][message.trade.item] = tab - Label(tab, text=message.trade.item).pack(anchor='w', side='left') - Button(tab, text='Accept').pack(anchor='w', side='left') - Button(tab, text='Decline').pack(anchor='w', side='left') - Label(tab, text=f'{message.trade.amount} {message.trade.currency}').pack(anchor='w', side='left') + self.tabs[message.user][message.trade.item] = (tab, message) + ttk.Label(tab, text=message.trade.item, style='BW.TLabel').pack(anchor='e', side='left') + Label(tab, text=f'{message.trade.amount} {message.trade.currency}').pack(anchor='e', side='left') + Button(tab, text='Inv', command=lambda mess=message: self.inv_callback(message, tab)).pack(anchor='e', side='left') + Button(tab, text='Trade', command=lambda mess=message: self.trade_callback(message, tab)).pack(anchor='e', side='left') + Button(tab, text='Ty', command=lambda mess=message: self.ty_callback(message, tab)).pack(anchor='e', side='left') + Button(tab, text='Wait', command=lambda mess=message: self.wait_callback(message, tab)).pack(anchor='e', side='left') self.tab_control.add(tab, text=message.user) + + def start_move(self, event): + self.x = event.x + self.y = event.y + + def stop_move(self, event): + self.x = None + self.y = None + + def do_move(self, event): + deltax = event.x - self.x + deltay = event.y - self.y + x = self.winfo_x() + deltax + y = self.winfo_y() + deltay + self.geometry(f"+{x}+{y}") + + def inv_callback(self, message: Message, tab: ttk.Frame): + sendkeys.invite(message=message) + sendkeys.send_to_format(type='pickup', message=message) + + def ty_callback(self, message: Message, tab: ttk.Frame): + sendkeys.send_to_format(type='ty', message=message) + sendkeys.kick(message=message) + self.destroy_tab(message=message, tab=tab) + + def trade_callback(self, message: Message, tab: ttk.Frame): + sendkeys.trade(message=message) -if __name__ == "__main__": - app = Gui() - app.mainloop() + def wait_callback(self, message: Message, tab: ttk.Frame): + sendkeys.send_to_format(type='wait', message=message) + + def destroy_tab(self, message: Message, tab: ttk.Frame) -> None: + if message.user in self.tabs: + if message.trade.item in self.tabs[message.user]: + del self.tabs[message.user][message.trade.item] + if not self.tabs[message.user]: + del self.tabs[message.user] + tab.destroy() + if not self.tabs: + self.wm_withdraw()