Arrayify Frames for each page

This commit is contained in:
Mike A. Trethewey
2020-02-19 03:14:08 -08:00
parent 1f90e90372
commit 8c4bc60312
9 changed files with 110 additions and 71 deletions

View File

@@ -14,32 +14,37 @@ def adjust_page(top, parent, settings):
# Adjust options
self.widgets = {}
# Adjust option sections
self.frames = {}
self.frames["checkboxes"] = Frame(self)
self.frames["checkboxes"].pack(anchor=W)
with open(os.path.join("resources","app","gui","adjust","overview","checkboxes.json")) as checkboxes:
myDict = json.load(checkboxes)
dictWidgets = widgets.make_widgets_from_dict(self, myDict, self)
dictWidgets = widgets.make_widgets_from_dict(self, myDict, self.frames["checkboxes"])
for key in dictWidgets:
self.widgets[key] = dictWidgets[key]
self.widgets[key].pack(anchor=W)
selectOptionsFrame = Frame(self)
leftAdjustFrame = Frame(selectOptionsFrame)
rightAdjustFrame = Frame(selectOptionsFrame)
bottomAdjustFrame = Frame(self)
selectOptionsFrame.pack(fill=X, expand=True)
leftAdjustFrame.pack(side=LEFT)
rightAdjustFrame.pack(side=RIGHT)
bottomAdjustFrame.pack(fill=X, expand=True)
self.frames["selectOptionsFrame"] = Frame(self)
self.frames["leftAdjustFrame"] = Frame(self.frames["selectOptionsFrame"])
self.frames["rightAdjustFrame"] = Frame(self.frames["selectOptionsFrame"])
self.frames["bottomAdjustFrame"] = Frame(self)
self.frames["selectOptionsFrame"].pack(fill=X)
self.frames["leftAdjustFrame"].pack(side=LEFT)
self.frames["rightAdjustFrame"].pack(side=RIGHT)
self.frames["bottomAdjustFrame"].pack(fill=X)
with open(os.path.join("resources","app","gui","adjust","overview","leftAdjustFrame.json")) as leftAdjustFrameItems:
myDict = json.load(leftAdjustFrameItems)
dictWidgets = widgets.make_widgets_from_dict(self, myDict, leftAdjustFrame)
dictWidgets = widgets.make_widgets_from_dict(self, myDict, self.frames["leftAdjustFrame"])
for key in dictWidgets:
self.widgets[key] = dictWidgets[key]
self.widgets[key].pack(anchor=E)
# Sprite Selection
self.spriteNameVar2 = StringVar()
spriteDialogFrame2 = Frame(leftAdjustFrame)
spriteDialogFrame2 = Frame(self.frames["leftAdjustFrame"])
baseSpriteLabel2 = Label(spriteDialogFrame2, text='Sprite:')
spriteEntry2 = Label(spriteDialogFrame2, textvariable=self.spriteNameVar2)
self.sprite = None
@@ -65,12 +70,12 @@ def adjust_page(top, parent, settings):
with open(os.path.join("resources","app","gui","adjust","overview","rightAdjustFrame.json")) as rightAdjustFrameItems:
myDict = json.load(rightAdjustFrameItems)
dictWidgets = widgets.make_widgets_from_dict(self, myDict, rightAdjustFrame)
dictWidgets = widgets.make_widgets_from_dict(self, myDict, self.frames["rightAdjustFrame"])
for key in dictWidgets:
self.widgets[key] = dictWidgets[key]
self.widgets[key].pack(anchor=E)
adjustRomFrame = Frame(bottomAdjustFrame)
adjustRomFrame = Frame(self.frames["bottomAdjustFrame"])
adjustRomLabel = Label(adjustRomFrame, text='Rom to adjust: ')
self.romVar2 = StringVar(value=settings["rom"])
romEntry2 = Entry(adjustRomFrame, textvariable=self.romVar2)
@@ -85,7 +90,7 @@ def adjust_page(top, parent, settings):
adjustRomLabel.pack(side=LEFT)
romEntry2.pack(side=LEFT, fill=X, expand=True)
romSelectButton2.pack(side=LEFT)
adjustRomFrame.pack(fill=X, expand=True)
adjustRomFrame.pack(fill=X)
def adjustRom():
options = {
@@ -112,7 +117,7 @@ def adjust_page(top, parent, settings):
else:
messagebox.showinfo(title="Success", message="Rom patched successfully")
adjustButton = Button(bottomAdjustFrame, text='Adjust Rom', command=adjustRom)
adjustButton = Button(self.frames["bottomAdjustFrame"], text='Adjust Rom', command=adjustRom)
adjustButton.pack(side=BOTTOM, padx=(5, 0))
return self,settings

View File

@@ -17,56 +17,52 @@ def custom_page(top,parent):
# Custom Item Pool options
self.customWidgets = {}
itemList1 = Frame(self)
itemList2 = Frame(self)
itemList3 = Frame(self)
itemList4 = Frame(self)
itemList5 = Frame(self)
# Custom Item Pool option sections
self.frames = {}
self.frames["itemList1"] = Frame(self)
self.frames["itemList1"].pack(side=LEFT, padx=(0,0), anchor=N)
self.frames["itemList2"] = Frame(self)
self.frames["itemList2"].pack(side=LEFT, padx=(0,0), anchor=N)
self.frames["itemList3"] = Frame(self)
self.frames["itemList3"].pack(side=LEFT, padx=(0,0), anchor=N)
self.frames["itemList4"] = Frame(self)
self.frames["itemList4"].pack(side=LEFT, padx=(0,0), anchor=N)
self.frames["itemList5"] = Frame(self)
self.frames["itemList5"].pack(side=LEFT, padx=(0,0), anchor=N)
currentList = itemList1
with open(os.path.join("resources","app","gui","custom","overview","itemList1.json")) as items:
myDict = json.load(items)
dictWidgets = widgets.make_widgets_from_dict(self, myDict, currentList)
dictWidgets = widgets.make_widgets_from_dict(self, myDict, self.frames["itemList1"])
for key in dictWidgets:
self.customWidgets[key] = dictWidgets[key]
self.customWidgets[key].pack()
currentList = itemList2
with open(os.path.join("resources","app","gui","custom","overview","itemList2.json")) as items:
myDict = json.load(items)
dictWidgets = widgets.make_widgets_from_dict(self, myDict, currentList)
dictWidgets = widgets.make_widgets_from_dict(self, myDict, self.frames["itemList2"])
for key in dictWidgets:
self.customWidgets[key] = dictWidgets[key]
self.customWidgets[key].pack()
currentList = itemList3
with open(os.path.join("resources","app","gui","custom","overview","itemList3.json")) as items:
myDict = json.load(items)
dictWidgets = widgets.make_widgets_from_dict(self, myDict, currentList)
dictWidgets = widgets.make_widgets_from_dict(self, myDict, self.frames["itemList3"])
for key in dictWidgets:
self.customWidgets[key] = dictWidgets[key]
self.customWidgets[key].pack()
currentList = itemList4
with open(os.path.join("resources","app","gui","custom","overview","itemList4.json")) as items:
myDict = json.load(items)
dictWidgets = widgets.make_widgets_from_dict(self, myDict, currentList)
dictWidgets = widgets.make_widgets_from_dict(self, myDict, self.frames["itemList4"])
for key in dictWidgets:
self.customWidgets[key] = dictWidgets[key]
self.customWidgets[key].pack()
currentList = itemList5
with open(os.path.join("resources","app","gui","custom","overview","itemList5.json")) as items:
myDict = json.load(items)
dictWidgets = widgets.make_widgets_from_dict(self, myDict, currentList)
dictWidgets = widgets.make_widgets_from_dict(self, myDict, self.frames["itemList5"])
for key in dictWidgets:
self.customWidgets[key] = dictWidgets[key]
self.customWidgets[key].pack()
itemList1.pack(side=LEFT, padx=(0,0))
itemList2.pack(side=LEFT, padx=(0,0))
itemList3.pack(side=LEFT, padx=(0,0))
itemList4.pack(side=LEFT, padx=(0,0))
itemList5.pack(side=LEFT, padx=(0,0), anchor=N)
return self

View File

@@ -10,22 +10,27 @@ def dungeon_page(parent):
# Dungeon Shuffle options
self.widgets = {}
# Dungeon Shuffle option sections
self.frames = {}
self.frames["keysanity"] = Frame(self)
self.frames["keysanity"].pack(anchor=W)
## Dungeon Item Shuffle
mcsbshuffleFrame = Frame(self)
mcsbshuffleFrame.pack(anchor=W)
mscbLabel = Label(mcsbshuffleFrame, text="Shuffle: ")
mscbLabel = Label(self.frames["keysanity"], text="Shuffle: ")
mscbLabel.pack(side=LEFT)
with open(os.path.join("resources","app","gui","randomize","dungeon","keysanity.json")) as keysanityItems:
myDict = json.load(keysanityItems)
dictWidgets = widgets.make_widgets_from_dict(self, myDict, mcsbshuffleFrame)
dictWidgets = widgets.make_widgets_from_dict(self, myDict, self.frames["keysanity"])
for key in dictWidgets:
self.widgets[key] = dictWidgets[key]
self.widgets[key].pack(side=LEFT)
self.frames["widgets"] = Frame(self)
self.frames["widgets"].pack(anchor=W)
with open(os.path.join("resources","app","gui","randomize","dungeon","widgets.json")) as dungeonWidgets:
myDict = json.load(dungeonWidgets)
dictWidgets = widgets.make_widgets_from_dict(self, myDict, self)
dictWidgets = widgets.make_widgets_from_dict(self, myDict, self.frames["widgets"])
for key in dictWidgets:
self.widgets[key] = dictWidgets[key]
self.widgets[key].pack(anchor=W)

View File

@@ -11,9 +11,15 @@ def enemizer_page(parent,settings):
# Enemizer options
self.widgets = {}
# Enemizer option sections
self.frames = {}
self.frames["checkboxes"] = Frame(self)
self.frames["checkboxes"].pack(anchor=W)
with open(os.path.join("resources","app","gui","randomize","enemizer","checkboxes.json")) as checkboxes:
myDict = json.load(checkboxes)
dictWidgets = widgets.make_widgets_from_dict(self, myDict, self)
dictWidgets = widgets.make_widgets_from_dict(self, myDict, self.frames["checkboxes"])
for key in dictWidgets:
self.widgets[key] = dictWidgets[key]
self.widgets[key].pack(anchor=W)
@@ -35,23 +41,23 @@ def enemizer_page(parent,settings):
settings["enemizercli"] = path
enemizerCLIbrowseButton = Button(enemizerPathFrame, text='...', command=EnemizerSelectPath)
enemizerCLIbrowseButton.pack(side=LEFT)
enemizerPathFrame.pack(fill=X, expand=True)
enemizerPathFrame.pack(fill=X)
leftEnemizerFrame = Frame(self)
rightEnemizerFrame = Frame(self)
leftEnemizerFrame.pack(side=LEFT, anchor=N)
rightEnemizerFrame.pack(side=RIGHT, anchor=N)
self.frames["leftEnemizerFrame"] = Frame(self)
self.frames["rightEnemizerFrame"] = Frame(self)
self.frames["leftEnemizerFrame"].pack(side=LEFT, anchor=N)
self.frames["rightEnemizerFrame"].pack(side=RIGHT, anchor=N)
with open(os.path.join("resources","app","gui","randomize","enemizer","leftEnemizerFrame.json")) as leftEnemizerFrameItems:
myDict = json.load(leftEnemizerFrameItems)
dictWidgets = widgets.make_widgets_from_dict(self, myDict, leftEnemizerFrame)
dictWidgets = widgets.make_widgets_from_dict(self, myDict, self.frames["leftEnemizerFrame"])
for key in dictWidgets:
self.widgets[key] = dictWidgets[key]
self.widgets[key].pack(anchor=E)
with open(os.path.join("resources","app","gui","randomize","enemizer","rightEnemizerFrame.json")) as rightEnemizerFrameItems:
myDict = json.load(rightEnemizerFrameItems)
dictWidgets = widgets.make_widgets_from_dict(self, myDict, rightEnemizerFrame)
dictWidgets = widgets.make_widgets_from_dict(self, myDict, self.frames["rightEnemizerFrame"])
for key in dictWidgets:
self.widgets[key] = dictWidgets[key]
self.widgets[key].pack(anchor=E)

View File

@@ -10,9 +10,14 @@ def entrando_page(parent):
# Entrance Randomizer options
self.widgets = {}
# Entrance Randomizer option sections
self.frames = {}
self.frames["widgets"] = Frame(self)
self.frames["widgets"].pack(anchor=W)
with open(os.path.join("resources","app","gui","randomize","entrando","widgets.json")) as myWidgets:
myDict = json.load(myWidgets)
dictWidgets = widgets.make_widgets_from_dict(self, myDict, self)
dictWidgets = widgets.make_widgets_from_dict(self, myDict, self.frames["widgets"])
for key in dictWidgets:
self.widgets[key] = dictWidgets[key]
self.widgets[key].pack(anchor=W)

View File

@@ -12,27 +12,32 @@ def gameoptions_page(top, parent):
# Game Options options
self.widgets = {}
# Game Options option sections
self.frames = {}
self.frames["checkboxes"] = Frame(self)
self.frames["checkboxes"].pack(anchor=W)
with open(os.path.join("resources","app","gui","randomize","gameoptions","checkboxes.json")) as checkboxes:
myDict = json.load(checkboxes)
dictWidgets = widgets.make_widgets_from_dict(self, myDict, self)
dictWidgets = widgets.make_widgets_from_dict(self, myDict, self.frames["checkboxes"])
for key in dictWidgets:
self.widgets[key] = dictWidgets[key]
self.widgets[key].pack(anchor=W)
leftRomOptionsFrame = Frame(self)
rightRomOptionsFrame = Frame(self)
leftRomOptionsFrame.pack(side=LEFT)
rightRomOptionsFrame.pack(side=RIGHT)
self.frames["leftRomOptionsFrame"] = Frame(self)
self.frames["rightRomOptionsFrame"] = Frame(self)
self.frames["leftRomOptionsFrame"].pack(side=LEFT)
self.frames["rightRomOptionsFrame"].pack(side=RIGHT)
with open(os.path.join("resources","app","gui","randomize","gameoptions","leftRomOptionsFrame.json")) as leftRomOptionsFrameItems:
myDict = json.load(leftRomOptionsFrameItems)
dictWidgets = widgets.make_widgets_from_dict(self, myDict, leftRomOptionsFrame)
dictWidgets = widgets.make_widgets_from_dict(self, myDict, self.frames["leftRomOptionsFrame"])
for key in dictWidgets:
self.widgets[key] = dictWidgets[key]
self.widgets[key].pack(anchor=E)
## Sprite selection
spriteDialogFrame = Frame(leftRomOptionsFrame)
spriteDialogFrame = Frame(self.frames["leftRomOptionsFrame"])
baseSpriteLabel = Label(spriteDialogFrame, text='Sprite:')
self.widgets["sprite"] = {}
@@ -59,7 +64,7 @@ def gameoptions_page(top, parent):
with open(os.path.join("resources","app","gui","randomize","gameoptions","rightRomOptionsFrame.json")) as rightRomOptionsFrameItems:
myDict = json.load(rightRomOptionsFrameItems)
dictWidgets = widgets.make_widgets_from_dict(self, myDict, rightRomOptionsFrame)
dictWidgets = widgets.make_widgets_from_dict(self, myDict, self.frames["rightRomOptionsFrame"])
for key in dictWidgets:
self.widgets[key] = dictWidgets[key]
self.widgets[key].pack(anchor=E)

View File

@@ -11,15 +11,22 @@ def generation_page(parent,settings):
# Generation Setup options
self.widgets = {}
# Generation Setup option sections
self.frames = {}
self.frames["checkboxes"] = Frame(self)
self.frames["checkboxes"].pack(anchor=W)
with open(os.path.join("resources","app","gui","randomize","generation","checkboxes.json")) as checkboxes:
myDict = json.load(checkboxes)
dictWidgets = widgets.make_widgets_from_dict(self, myDict, self)
dictWidgets = widgets.make_widgets_from_dict(self, myDict, self.frames["checkboxes"])
for key in dictWidgets:
self.widgets[key] = dictWidgets[key]
self.widgets[key].pack(anchor=W)
self.frames["baserom"] = Frame(self)
self.frames["baserom"].pack(anchor=W, fill=X)
## Locate base ROM
baseRomFrame = Frame(self)
baseRomFrame = Frame(self.frames["baserom"])
baseRomLabel = Label(baseRomFrame, text='Base Rom: ')
self.romVar = StringVar()
def saveBaseRom(caller,_,mode):
@@ -36,6 +43,6 @@ def generation_page(parent,settings):
baseRomLabel.pack(side=LEFT)
romEntry.pack(side=LEFT, fill=X, expand=True)
romSelectButton.pack(side=LEFT)
baseRomFrame.pack(fill=X, expand=True)
baseRomFrame.pack(fill=X)
return self,settings

View File

@@ -2,7 +2,7 @@ from tkinter import ttk, IntVar, StringVar, Checkbutton, Frame, Label, OptionMen
import gui.widgets as widgets
import json
import os
def item_page(parent):
# Item Randomizer
self = ttk.Frame(parent)
@@ -10,28 +10,33 @@ def item_page(parent):
# Item Randomizer options
self.widgets = {}
# Item Randomizer option sections
self.frames = {}
self.frames["checkboxes"] = Frame(self)
self.frames["checkboxes"].pack(anchor=W)
with open(os.path.join("resources","app","gui","randomize","item","checkboxes.json")) as checkboxes:
myDict = json.load(checkboxes)
dictWidgets = widgets.make_widgets_from_dict(self, myDict, self)
dictWidgets = widgets.make_widgets_from_dict(self, myDict, self.frames["checkboxes"])
for key in dictWidgets:
self.widgets[key] = dictWidgets[key]
self.widgets[key].pack(anchor=W)
leftItemFrame = Frame(self)
rightItemFrame = Frame(self)
leftItemFrame.pack(side=LEFT)
rightItemFrame.pack(side=RIGHT)
self.frames["leftItemFrame"] = Frame(self)
self.frames["rightItemFrame"] = Frame(self)
self.frames["leftItemFrame"].pack(side=LEFT)
self.frames["rightItemFrame"].pack(side=RIGHT)
with open(os.path.join("resources","app","gui","randomize","item","leftItemFrame.json")) as leftItemFrameItems:
myDict = json.load(leftItemFrameItems)
dictWidgets = widgets.make_widgets_from_dict(self, myDict, leftItemFrame)
dictWidgets = widgets.make_widgets_from_dict(self, myDict, self.frames["leftItemFrame"])
for key in dictWidgets:
self.widgets[key] = dictWidgets[key]
self.widgets[key].pack(anchor=E)
with open(os.path.join("resources","app","gui","randomize","item","rightItemFrame.json")) as rightItemFrameItems:
myDict = json.load(rightItemFrameItems)
dictWidgets = widgets.make_widgets_from_dict(self, myDict, rightItemFrame)
dictWidgets = widgets.make_widgets_from_dict(self, myDict, self.frames["rightItemFrame"])
for key in dictWidgets:
self.widgets[key] = dictWidgets[key]
self.widgets[key].pack(anchor=E)

View File

@@ -10,16 +10,21 @@ def multiworld_page(parent,settings):
# Multiworld options
self.widgets = {}
# Multiworld option sections
self.frames = {}
self.frames["widgets"] = Frame(self)
self.frames["widgets"].pack(anchor=W, fill=X)
with open(os.path.join("resources","app","gui","randomize","multiworld","widgets.json")) as multiworldItems:
myDict = json.load(multiworldItems)
dictWidgets = widgets.make_widgets_from_dict(self, myDict, self)
dictWidgets = widgets.make_widgets_from_dict(self, myDict, self.frames["widgets"])
for key in dictWidgets:
self.widgets[key] = dictWidgets[key]
self.widgets[key].pack(side=LEFT, anchor=N)
## List of Player Names
key = "names"
self.widgets[key] = Frame(self)
self.widgets[key] = Frame(self.frames["widgets"])
self.widgets[key].label = Label(self.widgets[key], text='Player names')
self.widgets[key].storageVar = StringVar(value=settings["names"])
def saveMultiNames(caller,_,mode):