Update Widgets to be able to use grid

This commit is contained in:
Mike A. Trethewey
2020-02-21 23:47:29 -08:00
parent dbaaef662a
commit 6c9fdcd203
21 changed files with 341 additions and 602 deletions

2
CLI.py
View File

@@ -361,7 +361,7 @@ def get_settings():
"ow_palettes": "default",
"uw_palettes": "default",
"shuffleganon": True,
"hints": False,
"hints": True,
"enemizercli": os.path.join(".","EnemizerCLI","EnemizerCLI.Core"),
"shufflebosses": "none",
"shuffleenemies": "none",

View File

@@ -38,6 +38,7 @@ def bottom_frame(self, parent, args=None):
self,
"Count",
None,
None,
{"label": {"side": LEFT}, "spinbox": {"side": RIGHT}}
)
self.widgets[key].pack(side=LEFT)

View File

@@ -1,4 +1,4 @@
from tkinter import ttk, StringVar, Entry, Frame, Label, N, E, W, LEFT, RIGHT, X
from tkinter import ttk, StringVar, Entry, Frame, Label, N, E, W, LEFT, RIGHT, X, VERTICAL, Y
import gui.widgets as widgets
import json
import os
@@ -7,6 +7,16 @@ def custom_page(top,parent):
# Custom Item Pool
self = ttk.Frame(parent)
def create_list_frame(parent, framename):
parent.frames[framename] = Frame(parent)
parent.frames[framename].pack(side=LEFT, padx=(0,0), anchor=N)
parent.frames[framename].thisRow = 0
parent.frames[framename].thisCol = 0
def create_vertical_rule(num=1):
for i in range(0,num):
ttk.Separator(self, orient=VERTICAL).pack(side=LEFT, anchor=N, fill=Y)
def validation(P):
if str.isdigit(P) or P == "":
return True
@@ -19,51 +29,45 @@ def custom_page(top,parent):
# 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)
create_list_frame(self,"itemList1")
create_vertical_rule(2)
create_list_frame(self,"itemList2")
create_vertical_rule(2)
create_list_frame(self,"itemList3")
create_vertical_rule(2)
create_list_frame(self,"itemList4")
create_vertical_rule(2)
create_list_frame(self,"itemList5")
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, self.frames["itemList1"])
for key in dictWidgets:
self.customWidgets[key] = dictWidgets[key]
self.customWidgets[key].pack()
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, self.frames["itemList2"])
for key in dictWidgets:
self.customWidgets[key] = dictWidgets[key]
self.customWidgets[key].pack()
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, self.frames["itemList3"])
for key in dictWidgets:
self.customWidgets[key] = dictWidgets[key]
self.customWidgets[key].pack()
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, self.frames["itemList4"])
for key in dictWidgets:
self.customWidgets[key] = dictWidgets[key]
self.customWidgets[key].pack()
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, self.frames["itemList5"])
for key in dictWidgets:
self.customWidgets[key] = dictWidgets[key]
self.customWidgets[key].pack()
keys = list(self.customWidgets.keys())
for i in range(0, len(keys)):

View File

@@ -1,4 +1,7 @@
from tkinter import Checkbutton, Entry, Frame, IntVar, Label, OptionMenu, Spinbox, StringVar, RIGHT
from tkinter import Checkbutton, Entry, Frame, IntVar, Label, OptionMenu, Spinbox, StringVar, RIGHT, X
class Empty():
pass
class mySpinbox(Spinbox):
def __init__(self, *args, **kwargs):
@@ -13,17 +16,17 @@ class mySpinbox(Spinbox):
elif event.num == 4 or event.delta == 120:
self.invoke('buttonup')
def make_checkbox(self, parent, label, storageVar, packAttrs):
def make_checkbox(self, parent, label, storageVar, manager, managerAttrs):
self = Frame(parent, name="checkframe-" + label.lower())
self.storageVar = storageVar
self.checkbox = Checkbutton(self, text=label, variable=self.storageVar, name="checkbox-" + label.lower())
if packAttrs is not None:
self.checkbox.pack(packAttrs)
if managerAttrs is not None:
self.checkbox.pack(managerAttrs)
else:
self.checkbox.pack()
return self
def make_selectbox(self, parent, label, options, storageVar, packAttrs):
def make_selectbox(self, parent, label, options, storageVar, manager, managerAttrs):
def change_storage(*args):
self.storageVar.set(options[self.labelVar.get()])
def change_selected(*args):
@@ -38,61 +41,68 @@ def make_selectbox(self, parent, label, options, storageVar, packAttrs):
self.labelVar = StringVar()
self.labelVar.trace_add("write",change_storage)
self.label = Label(self, text=label)
if packAttrs is not None and "label" in packAttrs:
self.label.pack(packAttrs["label"])
if managerAttrs is not None and "label" in managerAttrs:
self.label.pack(managerAttrs["label"])
else:
self.label.pack()
self.selectbox = OptionMenu(self, self.labelVar, *options.keys())
self.selectbox.config(width=20)
self.labelVar.set(packAttrs["default"] if "default" in packAttrs else list(options.keys())[0])
if packAttrs is not None and "selectbox" in packAttrs:
self.selectbox.pack(packAttrs["selectbox"])
self.labelVar.set(managerAttrs["default"] if "default" in managerAttrs else list(options.keys())[0])
if managerAttrs is not None and "selectbox" in managerAttrs:
self.selectbox.pack(managerAttrs["selectbox"])
else:
self.selectbox.pack()
return self
def make_spinbox(self, parent, label, storageVar, packAttrs):
def make_spinbox(self, parent, label, storageVar, manager, managerAttrs):
self = Frame(parent, name="spinframe-" + label.lower())
self.storageVar = storageVar
self.label = Label(self, text=label)
if packAttrs is not None and "label" in packAttrs:
self.label.pack(packAttrs["label"])
if managerAttrs is not None and "label" in managerAttrs:
self.label.pack(managerAttrs["label"])
else:
self.label.pack()
fromNum = 1
toNum = 100
if "spinbox" in packAttrs:
if "from" in packAttrs:
fromNum = packAttrs["spinbox"]["from"]
if "to" in packAttrs:
toNum = packAttrs["spinbox"]["to"]
if "spinbox" in managerAttrs:
if "from" in managerAttrs:
fromNum = managerAttrs["spinbox"]["from"]
if "to" in managerAttrs:
toNum = managerAttrs["spinbox"]["to"]
self.spinbox = mySpinbox(self, from_=fromNum, to=toNum, width=5, textvariable=self.storageVar, name="spinbox-" + label.lower())
if packAttrs is not None and "spinbox" in packAttrs:
self.spinbox.pack(packAttrs["spinbox"])
if managerAttrs is not None and "spinbox" in managerAttrs:
self.spinbox.pack(managerAttrs["spinbox"])
else:
self.spinbox.pack()
return self
def make_textbox(self, parent, label, storageVar, packAttrs):
self = Frame(parent)
self.storageVar = storageVar
self.label = Label(self, text=label)
if packAttrs is not None and "label" in packAttrs:
self.label.pack(packAttrs["label"])
else:
self.label.pack()
self.textbox = Entry(self, justify=RIGHT, textvariable=self.storageVar, width=3)
if "default" in packAttrs:
self.storageVar.set(packAttrs["default"])
if packAttrs is not None and "textbox" in packAttrs:
self.textbox.pack(packAttrs["textbox"])
else:
self.textbox.pack()
return self
def make_textbox(self, parent, label, storageVar, manager, managerAttrs):
widget = Empty()
widget.storageVar = storageVar
widget.label = Label(parent, text=label)
widget.textbox = Entry(parent, justify=RIGHT, textvariable=widget.storageVar, width=3)
if "default" in managerAttrs:
widget.storageVar.set(managerAttrs["default"])
# grid
if manager == "grid":
widget.label.grid(managerAttrs["label"] if managerAttrs is not None and "label" in managerAttrs else None, row=parent.thisRow, column=parent.thisCol)
parent.thisCol += 1
widget.textbox.grid(managerAttrs["textbox"] if managerAttrs is not None and "textbox" in managerAttrs else None, row=parent.thisRow, column=parent.thisCol)
parent.thisRow += 1
parent.thisCol = 0
# pack
elif manager == "pack":
widget.label.pack(managerAttrs["label"] if managerAttrs is not None and "label" in managerAttrs else None)
widget.textbox.pack(managerAttrs["textbox"] if managerAttrs is not None and "textbox" in managerAttrs else None)
return widget
def make_widget(self, type, parent, label, storageVar=None, packAttrs=dict(), options=None):
def make_widget(self, type, parent, label, storageVar=None, manager=None, managerAttrs=dict(), options=None):
widget = None
if manager is None:
manager = "pack"
thisStorageVar = storageVar
if isinstance(storageVar,str):
if storageVar == "int" or storageVar == "integer":
@@ -103,27 +113,28 @@ def make_widget(self, type, parent, label, storageVar=None, packAttrs=dict(), op
if type == "checkbox":
if thisStorageVar is None:
thisStorageVar = IntVar()
widget = make_checkbox(self, parent, label, thisStorageVar, packAttrs)
widget = make_checkbox(self, parent, label, thisStorageVar, manager, managerAttrs)
elif type == "selectbox":
if thisStorageVar is None:
thisStorageVar = StringVar()
widget = make_selectbox(self, parent, label, options, thisStorageVar, packAttrs)
widget = make_selectbox(self, parent, label, options, thisStorageVar, manager, managerAttrs)
elif type == "spinbox":
if thisStorageVar is None:
thisStorageVar = StringVar()
widget = make_spinbox(self, parent, label, thisStorageVar, packAttrs)
widget = make_spinbox(self, parent, label, thisStorageVar, manager, managerAttrs)
elif type == "textbox":
if thisStorageVar is None:
thisStorageVar = StringVar()
widget = make_textbox(self, parent, label, thisStorageVar, packAttrs)
widget = make_textbox(self, parent, label, thisStorageVar, manager, managerAttrs)
return widget
def make_widget_from_dict(self, defn, parent):
type = defn["type"] if "type" in defn else None
label = defn["label"]["text"] if "label" in defn and "text" in defn["label"] else ""
packAttrs = defn["packAttrs"] if "packAttrs" in defn else None
manager = defn["manager"] if "manager" in defn else None
managerAttrs = defn["managerAttrs"] if "managerAttrs" in defn else None
options = defn["options"] if "options" in defn else None
widget = make_widget(self, type, parent, label, None, packAttrs, options)
widget = make_widget(self, type, parent, label, None, manager, managerAttrs, options)
return widget
def make_widgets_from_dict(self, defns, parent):

View File

@@ -4,7 +4,7 @@
"label": {
"text": "Heart Color"
},
"packAttrs": {
"managerAttrs": {
"label": {
"side": "left"
},
@@ -25,7 +25,7 @@
"label": {
"text": "Heart Beep sound rate"
},
"packAttrs": {
"managerAttrs": {
"label": {
"side": "left"
},

View File

@@ -4,7 +4,7 @@
"label": {
"text": "Menu Speed"
},
"packAttrs": {
"managerAttrs": {
"label": {
"side": "left"
},
@@ -27,7 +27,7 @@
"label": {
"text": "Overworld Palettes"
},
"packAttrs": {
"managerAttrs": {
"label": {
"side": "left"
},
@@ -46,7 +46,7 @@
"label": {
"text": "Underworld Palettes"
},
"packAttrs": {
"managerAttrs": {
"label": {
"side": "left"
},

View File

@@ -4,14 +4,10 @@
"label": {
"text": "Bow"
},
"packAttrs": {
"manager": "grid",
"managerAttrs": {
"label": {
"anchor": "w",
"side": "left",
"padx": [0,53]
},
"textbox": {
"side": "right"
"sticky": "w"
},
"default": 0
}
@@ -19,16 +15,12 @@
"progressivebow": {
"type": "textbox",
"label": {
"text": "Prog.Bow"
"text": "Progressive Bow"
},
"packAttrs": {
"manager": "grid",
"managerAttrs": {
"label": {
"anchor": "w",
"side": "left",
"padx": [0,25]
},
"textbox": {
"side": "right"
"sticky": "w"
},
"default": 2
}
@@ -36,16 +28,12 @@
"boomerang": {
"type": "textbox",
"label": {
"text": "B.Boomerang"
"text": "Blue Boomerang"
},
"packAttrs": {
"manager": "grid",
"managerAttrs": {
"label": {
"anchor": "w",
"side": "left",
"padx": [0,4]
},
"textbox": {
"side": "right"
"sticky": "w"
},
"default": 1
}
@@ -53,15 +41,12 @@
"redmerang": {
"type": "textbox",
"label": {
"text": "M.Boomerang"
"text": "Red Boomerang"
},
"packAttrs": {
"manager": "grid",
"managerAttrs": {
"label": {
"anchor": "w",
"side": "left"
},
"textbox": {
"side": "right"
"sticky": "w"
},
"default": 1
}
@@ -71,14 +56,10 @@
"label": {
"text": "Hookshot"
},
"packAttrs": {
"manager": "grid",
"managerAttrs": {
"label": {
"anchor": "w",
"side": "left",
"padx": [0,24]
},
"textbox": {
"side": "right"
"sticky": "w"
},
"default": 1
}
@@ -88,14 +69,10 @@
"label": {
"text": "Mushroom"
},
"packAttrs": {
"manager": "grid",
"managerAttrs": {
"label": {
"anchor": "w",
"side": "left",
"padx": [0,17]
},
"textbox": {
"side": "right"
"sticky": "w"
},
"default": 1
}
@@ -105,13 +82,10 @@
"label": {
"text": "Magic Powder"
},
"packAttrs": {
"manager": "grid",
"managerAttrs": {
"label": {
"anchor": "w",
"side": "left"
},
"textbox": {
"side": "right"
"sticky": "w"
},
"default": 1
}
@@ -121,14 +95,10 @@
"label": {
"text": "Fire Rod"
},
"packAttrs": {
"manager": "grid",
"managerAttrs": {
"label": {
"anchor": "w",
"side": "left",
"padx": [0,33]
},
"textbox": {
"side": "right"
"sticky": "w"
},
"default": 1
}
@@ -138,14 +108,10 @@
"label": {
"text": "Ice Rod"
},
"packAttrs": {
"manager": "grid",
"managerAttrs": {
"label": {
"anchor": "w",
"side": "left",
"padx": [0,37]
},
"textbox": {
"side": "right"
"sticky": "w"
},
"default": 1
}
@@ -155,14 +121,10 @@
"label": {
"text": "Bombos"
},
"packAttrs": {
"manager": "grid",
"managerAttrs": {
"label": {
"anchor": "w",
"side": "left",
"padx": [0,32]
},
"textbox": {
"side": "right"
"sticky": "w"
},
"default": 1
}
@@ -172,14 +134,10 @@
"label": {
"text": "Ether"
},
"packAttrs": {
"manager": "grid",
"managerAttrs": {
"label": {
"anchor": "w",
"side": "left",
"padx": [0,49]
},
"textbox": {
"side": "right"
"sticky": "w"
},
"default": 1
}
@@ -189,14 +147,10 @@
"label": {
"text": "Quake"
},
"packAttrs": {
"manager": "grid",
"managerAttrs": {
"label": {
"anchor": "w",
"side": "left",
"padx": [0,42]
},
"textbox": {
"side": "right"
"sticky": "w"
},
"default": 1
}
@@ -206,14 +160,10 @@
"label": {
"text": "Lamp"
},
"packAttrs": {
"manager": "grid",
"managerAttrs": {
"label": {
"anchor": "w",
"side": "left",
"padx": [0,46]
},
"textbox": {
"side": "right"
"sticky": "w"
},
"default": 1
}
@@ -223,14 +173,10 @@
"label": {
"text": "Hammer"
},
"packAttrs": {
"manager": "grid",
"managerAttrs": {
"label": {
"anchor": "w",
"side": "left",
"padx": [0,29]
},
"textbox": {
"side": "right"
"sticky": "w"
},
"default": 1
}
@@ -240,14 +186,10 @@
"label": {
"text": "Shovel"
},
"packAttrs": {
"manager": "grid",
"managerAttrs": {
"label": {
"anchor": "w",
"side": "left",
"padx": [0,41]
},
"textbox": {
"side": "right"
"sticky": "w"
},
"default": 1
}

View File

@@ -4,14 +4,10 @@
"label": {
"text": "Flute"
},
"packAttrs": {
"manager": "grid",
"managerAttrs": {
"label": {
"anchor": "w",
"side": "left",
"padx": [0,58]
},
"textbox": {
"side": "right"
"sticky": "w"
},
"default": 1
}
@@ -21,14 +17,10 @@
"label": {
"text": "Bug Net"
},
"packAttrs": {
"manager": "grid",
"managerAttrs": {
"label": {
"anchor": "w",
"side": "left",
"padx": [0,41]
},
"textbox": {
"side": "right"
"sticky": "w"
},
"default": 1
}
@@ -38,14 +30,10 @@
"label": {
"text": "Book"
},
"packAttrs": {
"manager": "grid",
"managerAttrs": {
"label": {
"anchor": "w",
"side": "left",
"padx": [0,57]
},
"textbox": {
"side": "right"
"sticky": "w"
},
"default": 1
}
@@ -55,14 +43,10 @@
"label": {
"text": "Bottle"
},
"packAttrs": {
"manager": "grid",
"managerAttrs": {
"label": {
"anchor": "w",
"side": "left",
"padx": [0,53]
},
"textbox": {
"side": "right"
"sticky": "w"
},
"default": 4
}
@@ -70,16 +54,12 @@
"somaria": {
"type": "textbox",
"label": {
"text": "C.Somaria"
"text": "Cane of Somaria"
},
"packAttrs": {
"manager": "grid",
"managerAttrs": {
"label": {
"anchor": "w",
"side": "left",
"padx": [0,30]
},
"textbox": {
"side": "right"
"sticky": "w"
},
"default": 1
}
@@ -87,16 +67,12 @@
"byrna": {
"type": "textbox",
"label": {
"text": "C.Byrna"
"text": "Cane of Byrna"
},
"packAttrs": {
"manager": "grid",
"managerAttrs": {
"label": {
"anchor": "w",
"side": "left",
"padx": [0,43]
},
"textbox": {
"side": "right"
"sticky": "w"
},
"default": 1
}
@@ -106,14 +82,10 @@
"label": {
"text": "Magic Cape"
},
"packAttrs": {
"manager": "grid",
"managerAttrs": {
"label": {
"anchor": "w",
"side": "left",
"padx": [0,21]
},
"textbox": {
"side": "right"
"sticky": "w"
},
"default": 1
}
@@ -123,14 +95,10 @@
"label": {
"text": "Magic Mirror"
},
"packAttrs": {
"manager": "grid",
"managerAttrs": {
"label": {
"anchor": "w",
"side": "left",
"padx": [0,15]
},
"textbox": {
"side": "right"
"sticky": "w"
},
"default": 1
}
@@ -140,14 +108,10 @@
"label": {
"text": "Pegasus Boots"
},
"packAttrs": {
"manager": "grid",
"managerAttrs": {
"label": {
"anchor": "w",
"side": "left",
"padx": [0,8]
},
"textbox": {
"side": "right"
"sticky": "w"
},
"default": 1
}
@@ -157,14 +121,10 @@
"label": {
"text": "Power Glove"
},
"packAttrs": {
"manager": "grid",
"managerAttrs": {
"label": {
"anchor": "w",
"side": "left",
"padx": [0,18]
},
"textbox": {
"side": "right"
"sticky": "w"
},
"default": 0
}
@@ -174,14 +134,10 @@
"label": {
"text": "Titan's Mitt"
},
"packAttrs": {
"manager": "grid",
"managerAttrs": {
"label": {
"anchor": "w",
"side": "left",
"padx": [0,25]
},
"textbox": {
"side": "right"
"sticky": "w"
},
"default": 0
}
@@ -189,16 +145,12 @@
"progressiveglove": {
"type": "textbox",
"label": {
"text": "Prog.Glove"
"text": "Progressive Glove"
},
"packAttrs": {
"manager": "grid",
"managerAttrs": {
"label": {
"anchor": "w",
"side": "left",
"padx": [0,26]
},
"textbox": {
"side": "right"
"sticky": "w"
},
"default": 2
}
@@ -208,14 +160,10 @@
"label": {
"text": "Flippers"
},
"packAttrs": {
"manager": "grid",
"managerAttrs": {
"label": {
"anchor": "w",
"side": "left",
"padx": [0,43]
},
"textbox": {
"side": "right"
"sticky": "w"
},
"default": 1
}
@@ -225,14 +173,10 @@
"label": {
"text": "Moon Pearl"
},
"packAttrs": {
"manager": "grid",
"managerAttrs": {
"label": {
"anchor": "w",
"side": "left",
"padx": [0,23]
},
"textbox": {
"side": "right"
"sticky": "w"
},
"default": 1
}
@@ -242,14 +186,10 @@
"label": {
"text": "Piece of Heart"
},
"packAttrs": {
"manager": "grid",
"managerAttrs": {
"label": {
"anchor": "w",
"side": "left",
"padx": [0,10]
},
"textbox": {
"side": "right"
"sticky": "w"
},
"default": 24
}

View File

@@ -4,13 +4,10 @@
"label": {
"text": "Heart Container"
},
"packAttrs": {
"manager": "grid",
"managerAttrs": {
"label": {
"anchor": "w",
"side": "left"
},
"textbox": {
"side": "right"
"sticky": "w"
},
"default": 10
}
@@ -20,13 +17,10 @@
"label": {
"text": "Sanctuary Heart"
},
"packAttrs": {
"manager": "grid",
"managerAttrs": {
"label": {
"anchor": "w",
"side": "left"
},
"textbox": {
"side": "right"
"sticky": "w"
},
"default": 1
}
@@ -34,16 +28,12 @@
"sword1": {
"type": "textbox",
"label": {
"text": "Sword 1"
"text": "Fighters' Sword"
},
"packAttrs": {
"manager": "grid",
"managerAttrs": {
"label": {
"anchor": "w",
"side": "left",
"padx": [0,42]
},
"textbox": {
"side": "right"
"sticky": "w"
},
"default": 0
}
@@ -51,16 +41,12 @@
"sword2": {
"type": "textbox",
"label": {
"text": "Sword 2"
"text": "Master Sword"
},
"packAttrs": {
"manager": "grid",
"managerAttrs": {
"label": {
"anchor": "w",
"side": "left",
"padx": [0,42]
},
"textbox": {
"side": "right"
"sticky": "w"
},
"default": 0
}
@@ -68,16 +54,12 @@
"sword3": {
"type": "textbox",
"label": {
"text": "Sword 3"
"text": "Tempered Sword"
},
"packAttrs": {
"manager": "grid",
"managerAttrs": {
"label": {
"anchor": "w",
"side": "left",
"padx": [0,42]
},
"textbox": {
"side": "right"
"sticky": "w"
},
"default": 0
}
@@ -85,16 +67,12 @@
"sword4": {
"type": "textbox",
"label": {
"text": "Sword 4"
"text": "Golden Sword"
},
"packAttrs": {
"manager": "grid",
"managerAttrs": {
"label": {
"anchor": "w",
"side": "left",
"padx": [0,42]
},
"textbox": {
"side": "right"
"sticky": "w"
},
"default": 0
}
@@ -102,16 +80,12 @@
"progressivesword": {
"type": "textbox",
"label": {
"text": "Prog.Sword"
"text": "Progressive Sword"
},
"packAttrs": {
"manager": "grid",
"managerAttrs": {
"label": {
"anchor": "w",
"side": "left",
"padx": [0,23]
},
"textbox": {
"side": "right"
"sticky": "w"
},
"default": 4
}
@@ -119,16 +93,12 @@
"shield1": {
"type": "textbox",
"label": {
"text": "Shield 1"
"text": "Fighters' Shield"
},
"packAttrs": {
"manager": "grid",
"managerAttrs": {
"label": {
"anchor": "w",
"side": "left",
"padx": [0,43]
},
"textbox": {
"side": "right"
"sticky": "w"
},
"default": 0
}
@@ -136,16 +106,12 @@
"shield2": {
"type": "textbox",
"label": {
"text": "Shield 2"
"text": "Fire Shield"
},
"packAttrs": {
"manager": "grid",
"managerAttrs": {
"label": {
"anchor": "w",
"side": "left",
"padx": [0,43]
},
"textbox": {
"side": "right"
"sticky": "w"
},
"default": 0
}
@@ -153,16 +119,12 @@
"shield3": {
"type": "textbox",
"label": {
"text": "Shield 3"
"text": "Mirror Shield"
},
"packAttrs": {
"manager": "grid",
"managerAttrs": {
"label": {
"anchor": "w",
"side": "left",
"padx": [0,43]
},
"textbox": {
"side": "right"
"sticky": "w"
},
"default": 0
}
@@ -170,16 +132,12 @@
"progressiveshield": {
"type": "textbox",
"label": {
"text": "Prog.Shield"
"text": "Progressive Shield"
},
"packAttrs": {
"manager": "grid",
"managerAttrs": {
"label": {
"anchor": "w",
"side": "left",
"padx": [0,24]
},
"textbox": {
"side": "right"
"sticky": "w"
},
"default": 3
}
@@ -189,14 +147,10 @@
"label": {
"text": "Blue Mail"
},
"packAttrs": {
"manager": "grid",
"managerAttrs": {
"label": {
"anchor": "w",
"side": "left",
"padx": [0,35]
},
"textbox": {
"side": "right"
"sticky": "w"
},
"default": 0
}
@@ -206,14 +160,10 @@
"label": {
"text": "Red Mail"
},
"packAttrs": {
"manager": "grid",
"managerAttrs": {
"label": {
"anchor": "w",
"side": "left",
"padx": [0,38]
},
"textbox": {
"side": "right"
"sticky": "w"
},
"default": 0
}
@@ -221,16 +171,12 @@
"progressivemail": {
"type": "textbox",
"label": {
"text": "Prog.Mail"
"text": "Progressive Mail"
},
"packAttrs": {
"manager": "grid",
"managerAttrs": {
"label": {
"anchor": "w",
"side": "left",
"padx": [0,33]
},
"textbox": {
"side": "right"
"sticky": "w"
},
"default": 2
}
@@ -240,14 +186,10 @@
"label": {
"text": "Half Magic"
},
"packAttrs": {
"manager": "grid",
"managerAttrs": {
"label": {
"anchor": "w",
"side": "left",
"padx": [0,26]
},
"textbox": {
"side": "right"
"sticky": "w"
},
"default": 1
}

View File

@@ -4,13 +4,10 @@
"label": {
"text": "Quarter Magic"
},
"packAttrs": {
"manager": "grid",
"managerAttrs": {
"label": {
"anchor": "w",
"side": "left"
},
"textbox": {
"side": "right"
"sticky": "w"
},
"default": 0
}
@@ -18,16 +15,12 @@
"bombsplus5": {
"type": "textbox",
"label": {
"text": "Bomb C.+5"
"text": "Bomb Cap +5"
},
"packAttrs": {
"manager": "grid",
"managerAttrs": {
"label": {
"anchor": "w",
"side": "left",
"padx": [1,15]
},
"textbox": {
"side": "right"
"sticky": "w"
},
"default": 0
}
@@ -35,16 +28,12 @@
"bombsplus10": {
"type": "textbox",
"label": {
"text": "Bomb C.+10"
"text": "Bomb Cap +10"
},
"packAttrs": {
"manager": "grid",
"managerAttrs": {
"label": {
"anchor": "w",
"side": "left",
"padx": [0,10]
},
"textbox": {
"side": "right"
"sticky": "w"
},
"default": 0
}
@@ -52,16 +41,12 @@
"arrowsplus5": {
"type": "textbox",
"label": {
"text": "Arrow C.+5"
"text": "Arrow Cap +5"
},
"packAttrs": {
"manager": "grid",
"managerAttrs": {
"label": {
"anchor": "w",
"side": "left",
"padx": [0,16]
},
"textbox": {
"side": "right"
"sticky": "w"
},
"default": 0
}
@@ -69,16 +54,12 @@
"arrowsplus10": {
"type": "textbox",
"label": {
"text": "Arrow C.+10"
"text": "Arrow Cap +10"
},
"packAttrs": {
"manager": "grid",
"managerAttrs": {
"label": {
"anchor": "w",
"side": "left",
"padx": [0,10]
},
"textbox": {
"side": "right"
"sticky": "w"
},
"default": 0
}
@@ -88,14 +69,10 @@
"label": {
"text": "Arrow (1)"
},
"packAttrs": {
"manager": "grid",
"managerAttrs": {
"label": {
"anchor": "w",
"side": "left",
"padx": [0,27]
},
"textbox": {
"side": "right"
"sticky": "w"
},
"default": 1
}
@@ -105,14 +82,10 @@
"label": {
"text": "Arrow (10)"
},
"packAttrs": {
"manager": "grid",
"managerAttrs": {
"label": {
"anchor": "w",
"side": "left",
"padx": [0,21]
},
"textbox": {
"side": "right"
"sticky": "w"
},
"default": 12
}
@@ -122,14 +95,10 @@
"label": {
"text": "Bomb (1)"
},
"packAttrs": {
"manager": "grid",
"managerAttrs": {
"label": {
"anchor": "w",
"side": "left",
"padx": [0,27]
},
"textbox": {
"side": "right"
"sticky": "w"
},
"default": 0
}
@@ -139,14 +108,10 @@
"label": {
"text": "Bomb (3)"
},
"packAttrs": {
"manager": "grid",
"managerAttrs": {
"label": {
"anchor": "w",
"side": "left",
"padx": [0,27]
},
"textbox": {
"side": "right"
"sticky": "w"
},
"default": 13
}
@@ -156,14 +121,10 @@
"label": {
"text": "Bomb (10)"
},
"packAttrs": {
"manager": "grid",
"managerAttrs": {
"label": {
"anchor": "w",
"side": "left",
"padx": [0,21]
},
"textbox": {
"side": "right"
"sticky": "w"
},
"default": 1
}
@@ -173,14 +134,10 @@
"label": {
"text": "Rupee (1)"
},
"packAttrs": {
"manager": "grid",
"managerAttrs": {
"label": {
"anchor": "w",
"side": "left",
"padx": [0,25]
},
"textbox": {
"side": "right"
"sticky": "w"
},
"default": 2
}
@@ -190,14 +147,10 @@
"label": {
"text": "Rupee (5)"
},
"packAttrs": {
"manager": "grid",
"managerAttrs": {
"label": {
"anchor": "w",
"side": "left",
"padx": [0,25]
},
"textbox": {
"side": "right"
"sticky": "w"
},
"default": 4
}
@@ -207,14 +160,10 @@
"label": {
"text": "Rupee (20)"
},
"packAttrs": {
"manager": "grid",
"managerAttrs": {
"label": {
"anchor": "w",
"side": "left",
"padx": [0,19]
},
"textbox": {
"side": "right"
"sticky": "w"
},
"default": 28
}
@@ -224,14 +173,10 @@
"label": {
"text": "Rupee (50)"
},
"packAttrs": {
"manager": "grid",
"managerAttrs": {
"label": {
"anchor": "w",
"side": "left",
"padx": [0,19]
},
"textbox": {
"side": "right"
"sticky": "w"
},
"default": 7
}
@@ -241,14 +186,10 @@
"label": {
"text": "Rupee (100)"
},
"packAttrs": {
"manager": "grid",
"managerAttrs": {
"label": {
"anchor": "w",
"side": "left",
"padx": [0,13]
},
"textbox": {
"side": "right"
"sticky": "w"
},
"default": 1
}

View File

@@ -4,14 +4,10 @@
"label": {
"text": "Rupee (300)"
},
"packAttrs": {
"manager": "grid",
"managerAttrs": {
"label": {
"anchor": "w",
"side": "left",
"padx": [0,54]
},
"textbox": {
"side": "right"
"sticky": "w"
},
"default": 5
}
@@ -21,14 +17,10 @@
"label": {
"text": "Blue Clock"
},
"packAttrs": {
"manager": "grid",
"managerAttrs": {
"label": {
"anchor": "w",
"side": "left",
"padx": [0,60]
},
"textbox": {
"side": "right"
"sticky": "w"
},
"default": 0
}
@@ -38,14 +30,10 @@
"label": {
"text": "Green Clock"
},
"packAttrs": {
"manager": "grid",
"managerAttrs": {
"label": {
"anchor": "w",
"side": "left",
"padx": [0,52]
},
"textbox": {
"side": "right"
"sticky": "w"
},
"default": 0
}
@@ -55,14 +43,10 @@
"label": {
"text": "Red Clock"
},
"packAttrs": {
"manager": "grid",
"managerAttrs": {
"label": {
"anchor": "w",
"side": "left",
"padx": [0,63]
},
"textbox": {
"side": "right"
"sticky": "w"
},
"default": 0
}
@@ -72,13 +56,10 @@
"label": {
"text": "Silver Arrows Upgrade"
},
"packAttrs": {
"manager": "grid",
"managerAttrs": {
"label": {
"anchor": "w",
"side": "left"
},
"textbox": {
"side": "right"
"sticky": "w"
},
"default": 0
}
@@ -88,14 +69,10 @@
"label": {
"text": "Generic Keys"
},
"packAttrs": {
"manager": "grid",
"managerAttrs": {
"label": {
"anchor": "w",
"side": "left",
"padx": [0,49]
},
"textbox": {
"side": "right"
"sticky": "w"
},
"default": 0
}
@@ -105,14 +82,10 @@
"label": {
"text": "Triforce Pieces"
},
"packAttrs": {
"manager": "grid",
"managerAttrs": {
"label": {
"anchor": "w",
"side": "left",
"padx": [0,40]
},
"textbox": {
"side": "right"
"sticky": "w"
},
"default": 0
}
@@ -122,14 +95,10 @@
"label": {
"text": "Triforce Pieces Goal"
},
"packAttrs": {
"manager": "grid",
"managerAttrs": {
"label": {
"anchor": "w",
"side": "left",
"padx": [0,13]
},
"textbox": {
"side": "right"
"sticky": "w"
},
"default": 0
}
@@ -139,14 +108,10 @@
"label": {
"text": "Triforce (win game)"
},
"packAttrs": {
"manager": "grid",
"managerAttrs": {
"label": {
"anchor": "w",
"side": "left",
"padx": [0,13]
},
"textbox": {
"side": "right"
"sticky": "w"
},
"default": 0
}
@@ -156,14 +121,10 @@
"label": {
"text": "Rupoor"
},
"packAttrs": {
"manager": "grid",
"managerAttrs": {
"label": {
"anchor": "w",
"side": "left",
"padx": [0,77]
},
"textbox": {
"side": "right"
"sticky": "w"
},
"default": 0
}
@@ -173,14 +134,10 @@
"label": {
"text": "Rupoor Cost"
},
"packAttrs": {
"manager": "grid",
"managerAttrs": {
"label": {
"anchor": "w",
"side": "left",
"padx": [0,50]
},
"textbox": {
"side": "right"
"sticky": "w"
},
"default": 10
}

View File

@@ -4,7 +4,7 @@
"label": {
"text": "Dungeon Door Shuffle"
},
"packAttrs": {
"managerAttrs": {
"label": {
"side": "left"
},
@@ -30,7 +30,7 @@
"label": {
"text": "Dungeon Chest Counters"
},
"packAttrs": {
"managerAttrs": {
"label": {
"side": "left"
},

View File

@@ -4,7 +4,7 @@
"label": {
"text": "Enemy Shuffle"
},
"packAttrs": {
"managerAttrs": {
"label": {
"side": "left"
},
@@ -23,7 +23,7 @@
"label": {
"text": "Boss Shuffle"
},
"packAttrs": {
"managerAttrs": {
"label": {
"side": "left"
},

View File

@@ -4,7 +4,7 @@
"label": {
"text": "Enemy Damage"
},
"packAttrs": {
"managerAttrs": {
"label": {
"side": "left"
},
@@ -23,7 +23,7 @@
"label": {
"text": "Enemy Health"
},
"packAttrs": {
"managerAttrs": {
"label": {
"side": "left"
},

View File

@@ -16,7 +16,7 @@
"label": {
"text": "Entrance Shuffle"
},
"packAttrs": {
"managerAttrs": {
"label": { "side": "left" },
"selectbox": { "side": "right" }
},

View File

@@ -3,7 +3,8 @@
"type": "checkbox",
"label": {
"text": "Include Helpful Hints"
}
},
"default": "true"
},
"nobgm": {
"type": "checkbox",

View File

@@ -4,7 +4,7 @@
"label": {
"text": "Heart Color"
},
"packAttrs": {
"managerAttrs": {
"label": {
"side": "left"
},
@@ -25,7 +25,7 @@
"label": {
"text": "Heart Beep sound rate"
},
"packAttrs": {
"managerAttrs": {
"label": {
"side": "left"
},

View File

@@ -4,7 +4,7 @@
"label": {
"text": "Menu Speed"
},
"packAttrs": {
"managerAttrs": {
"label": {
"side": "left"
},
@@ -27,7 +27,7 @@
"label": {
"text": "Overworld Palettes"
},
"packAttrs": {
"managerAttrs": {
"label": {
"side": "left"
},
@@ -46,7 +46,7 @@
"label": {
"text": "Underworld Palettes"
},
"packAttrs": {
"managerAttrs": {
"label": {
"side": "left"
},

View File

@@ -4,7 +4,7 @@
"label": {
"text": "World State"
},
"packAttrs": {
"managerAttrs": {
"label": {
"side": "left"
},
@@ -24,7 +24,7 @@
"label": {
"text": "Logic Level"
},
"packAttrs": {
"managerAttrs": {
"label": {
"side": "left"
},
@@ -43,7 +43,7 @@
"label": {
"text": "Goal"
},
"packAttrs": {
"managerAttrs": {
"label": {
"side": "left"
},
@@ -64,7 +64,7 @@
"label": {
"text": "Crystals to open GT"
},
"packAttrs": {
"managerAttrs": {
"label": {
"side": "left"
},
@@ -89,7 +89,7 @@
"label": {
"text": "Crystals to harm Ganon"
},
"packAttrs": {
"managerAttrs": {
"label": {
"side": "left"
},
@@ -114,7 +114,7 @@
"label": {
"text": "Weapons"
},
"packAttrs": {
"managerAttrs": {
"label": {
"side": "left"
},

View File

@@ -4,7 +4,7 @@
"label": {
"text": "Item Pool"
},
"packAttrs": {
"managerAttrs": {
"label": {
"side": "left"
},
@@ -23,7 +23,7 @@
"label": {
"text": "Item Functionality"
},
"packAttrs": {
"managerAttrs": {
"label": {
"side": "left"
},
@@ -42,7 +42,7 @@
"label": {
"text": "Timer Setting"
},
"packAttrs": {
"managerAttrs": {
"label": {
"side": "left"
},
@@ -64,7 +64,7 @@
"label": {
"text": "Progressive Items"
},
"packAttrs": {
"managerAttrs": {
"label": {
"side": "left"
},
@@ -83,7 +83,7 @@
"label": {
"text": "Accessibility"
},
"packAttrs": {
"managerAttrs": {
"label": {
"side": "left"
},
@@ -102,7 +102,7 @@
"label": {
"text": "Item Sorting"
},
"packAttrs": {
"managerAttrs": {
"label": {
"side": "left"
},

View File

@@ -4,7 +4,7 @@
"label": {
"text": "Worlds"
},
"packAttrs": {
"managerAttrs": {
"label": {
"side": "left"
},