gui button callbacks

This commit is contained in:
Oliver Hartmann 2021-03-16 12:38:50 +01:00
parent 7f5dae82b1
commit ee8fcb66cc

View File

@ -2,33 +2,78 @@ from tkinter import ttk
from tkinter import Tk from tkinter import Tk
from tkinter import Button, Label from tkinter import Button, Label
from .data import Message from .data import Message
from src import sendkeys
class Gui(Tk): class Gui(Tk):
def __init__(self, parent=None) -> None: def __init__(self, parent=None) -> None:
Tk.__init__(self, parent) Tk.__init__(self, parent)
self.title("Welcome to LikeGeeks app") self.title("Uber Trader")
self.geometry("300x200+10+20") # self.geometry("300x200+10+20")
# self.overrideredirect(1) # remove border self.overrideredirect(1) # remove border
# window.withdraw() # hide window self.wm_withdraw() # Hide window
self.attributes('-topmost', True) # always on top 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.pack(expand=1, fill='both')
self.tab_control.bind("<ButtonPress-1>", self.start_move)
self.tab_control.bind("<ButtonRelease-1>", self.stop_move)
self.tab_control.bind("<B1-Motion>", self.do_move)
self.tabs = dict() self.tabs = dict()
def add_tab(self, number: int, message: Message) -> None: 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: if message.user not in self.tabs:
self.tabs[message.user] = dict() self.tabs[message.user] = dict()
if message.trade.item not in self.tabs[message.user]: if message.trade.item not in self.tabs[message.user]:
self.tabs[message.user][message.trade.item] = tab self.tabs[message.user][message.trade.item] = (tab, message)
Label(tab, text=message.trade.item).pack(anchor='w', side='left') ttk.Label(tab, text=message.trade.item, style='BW.TLabel').pack(anchor='e', side='left')
Button(tab, text='Accept').pack(anchor='w', side='left') Label(tab, text=f'{message.trade.amount} {message.trade.currency}').pack(anchor='e', side='left')
Button(tab, text='Decline').pack(anchor='w', side='left') Button(tab, text='Inv', command=lambda mess=message: self.inv_callback(message, tab)).pack(anchor='e', side='left')
Label(tab, text=f'{message.trade.amount} {message.trade.currency}').pack(anchor='w', 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) self.tab_control.add(tab, text=message.user)
def start_move(self, event):
self.x = event.x
self.y = event.y
if __name__ == "__main__": def stop_move(self, event):
app = Gui() self.x = None
app.mainloop() 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)
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()