gui button callbacks
This commit is contained in:
parent
7f5dae82b1
commit
ee8fcb66cc
73
src/gui.py
73
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("<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()
|
||||
|
||||
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()
|
||||
|
Loading…
x
Reference in New Issue
Block a user