Major GUI reorganization

This commit is contained in:
codemann8
2023-03-29 09:58:48 -05:00
parent 28e5b7503d
commit f1f75ec760
19 changed files with 517 additions and 307 deletions

View File

@@ -1,4 +1,4 @@
from tkinter import ttk, Frame, E, W, LEFT, RIGHT, Label
from tkinter import ttk, font, Frame, E, W, NW, TOP, LEFT, RIGHT, Y, Label
import source.gui.widgets as widgets
import json
import os
@@ -17,13 +17,39 @@ def item_page(parent):
self.frames["checkboxes"] = Frame(self)
self.frames["checkboxes"].pack(anchor=W)
various_options = Label(self.frames["checkboxes"], text="")
various_options = Label(self.frames["checkboxes"], text="Options: ")
various_options.pack(side=LEFT)
self.frames["leftItemFrame"] = Frame(self)
self.frames["rightItemFrame"] = Frame(self)
self.frames["mainFrame"] = Frame(self)
self.frames["mainFrame"].pack(side=TOP, pady=(20,0))
self.frames["poolFrame"] = Frame(self)
self.frames["poolFrame"].pack(fill=Y)
self.frames["leftItemFrame"] = Frame(self.frames["mainFrame"])
self.frames["leftItemFrame"].pack(side=LEFT)
self.frames["rightItemFrame"] = Frame(self.frames["mainFrame"])
self.frames["rightItemFrame"].pack(side=RIGHT)
self.frames["leftPoolContainer"] = Frame(self.frames["poolFrame"])
self.frames["leftPoolContainer"].pack(side=LEFT, padx=(0,20))
base_font = font.nametofont('TkTextFont').actual()
underline_font = f'"{base_font["family"]}" {base_font["size"]} underline'
various_options = Label(self.frames["leftPoolContainer"], text="Pool Expansions", font=underline_font)
various_options.pack(side=TOP, pady=(20,0))
self.frames["leftPoolHeader"] = Frame(self.frames["leftPoolContainer"])
self.frames["leftPoolHeader"].pack(side=TOP, anchor=W)
self.frames["leftPoolFrame"] = Frame(self.frames["leftPoolContainer"])
self.frames["leftPoolFrame"].pack(side=LEFT, fill=Y)
self.frames["rightPoolFrame"] = Frame(self.frames["poolFrame"])
self.frames["rightPoolFrame"].pack(side=RIGHT)
various_options = Label(self.frames["rightPoolFrame"], text="Pool Modifications", font=underline_font)
various_options.pack(side=TOP, pady=(20,0))
# Load Item Randomizer option widgets as defined by JSON file
# Defns include frame name, widget type, widget options, widget placement attributes
@@ -36,8 +62,15 @@ def item_page(parent):
for key in dictWidgets:
self.widgets[key] = dictWidgets[key]
packAttrs = {"anchor":E}
if self.widgets[key].type == "checkbox":
if self.widgets[key].type == "checkbox" or framename == "leftPoolFrame":
packAttrs["anchor"] = W
if framename == "checkboxes":
packAttrs["side"] = LEFT
packAttrs["padx"] = (10,0)
elif framename == "leftPoolHeader":
packAttrs["side"] = LEFT
packAttrs["padx"] = (0,20)
packAttrs = widgets.add_padding_from_config(packAttrs, theseWidgets[key])
self.widgets[key].pack(packAttrs)
return self