Major GUI reorganization

This commit is contained in:
codemann8
2023-03-29 08:58:48 -06:00
committed by aerinon
parent 09550cd546
commit f13880eee9
24 changed files with 522 additions and 263 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