aosworlds-pairing/main.py
2023-02-18 21:15:31 +01:00

58 lines
1.8 KiB
Python

import team
import scenario
import terrain
import tkinter as tk
from tkinter import ttk
Screen = (
team.TeamsPage,
terrain.TerrainsPage,
scenario.ScenarioPage
)
class App(tk.Tk):
def __init__(self, *args, **kwargs):
tk.Tk.__init__(self, *args, **kwargs)
tk.Tk.wm_title(self, "AoS Worlds Pairing Assistant")
tk.Tk.option_add(self, "*tearOff", False)
container = ttk.Frame(self, padding="100 100")
container.pack()
container.columnconfigure(0, minsize=500, weight=1)
container.rowconfigure(0, minsize=300, weight=1)
self.frames = {}
for F in Screen:
frame = F(container, self)
self.frames[F] = frame
frame.grid(column=0, row=0, sticky="nsew")
for child in frame.winfo_children():
child.grid_configure(padx=5, pady=5)
self.makeMenu()
self.showFrame(team.TeamsPage)
def makeMenu(self):
menubar = tk.Menu(self)
menuScenarios = tk.Menu(menubar)
menubar.add_cascade(menu=menuScenarios, label="Scenarios")
menuScenarios.add_command(label="New")#, command=scenario.getScreen)
menuScenarios.add_command(label="New from CSV")#, command=scenario.getScreen)
menuScenarios.add_command(label="Load")#, command=scenario.getScreen)
menuConfig = tk.Menu(menubar)
menubar.add_cascade(menu=menuConfig, label="Configuration")
menuConfig.add_command(label="Teams", command=lambda: self.showFrame(team.TeamsPage))
menuConfig.add_command(label="Terrains", command=lambda: self.showFrame(terrain.TerrainsPage))
self['menu'] = menubar
def showFrame(self, screen):
frame = self.frames[screen]
frame.tkraise()
app = App()
app.mainloop()