Pretty Multiworld options
This commit is contained in:
@@ -31,7 +31,7 @@ def bottom_frame(self,parent,args=None):
|
|||||||
|
|
||||||
def generateRom():
|
def generateRom():
|
||||||
guiargs = Namespace()
|
guiargs = Namespace()
|
||||||
guiargs.multi = int(parent.multiworldWindow.worldVar.get())
|
guiargs.multi = int(parent.multiworldWindow.multiworldWidgets["worlds"].storageVar.get())
|
||||||
guiargs.names = parent.multiworldWindow.namesVar.get()
|
guiargs.names = parent.multiworldWindow.namesVar.get()
|
||||||
guiargs.seed = int(parent.farBottomFrame.seedVar.get()) if parent.farBottomFrame.seedVar.get() else None
|
guiargs.seed = int(parent.farBottomFrame.seedVar.get()) if parent.farBottomFrame.seedVar.get() else None
|
||||||
guiargs.count = int(parent.farBottomFrame.countVar.get()) if parent.farBottomFrame.countVar.get() != '1' else None
|
guiargs.count = int(parent.farBottomFrame.countVar.get()) if parent.farBottomFrame.countVar.get() != '1' else None
|
||||||
|
|||||||
@@ -15,7 +15,7 @@ def loadcliargs(gui,args):
|
|||||||
gui.gameOptionsWindow.quickSwapVar.set(int(args.quickswap))
|
gui.gameOptionsWindow.quickSwapVar.set(int(args.quickswap))
|
||||||
gui.gameOptionsWindow.disableMusicVar.set(int(args.disablemusic))
|
gui.gameOptionsWindow.disableMusicVar.set(int(args.disablemusic))
|
||||||
if args.multi:
|
if args.multi:
|
||||||
gui.multiworldWindow.worldVar.set(str(args.multi))
|
gui.multiworldWindow.multiworldWidgets["worlds"].storageVar.set(str(args.multi))
|
||||||
if args.count:
|
if args.count:
|
||||||
gui.farBottomFrame.countVar.set(str(args.count))
|
gui.farBottomFrame.countVar.set(str(args.count))
|
||||||
if args.seed:
|
if args.seed:
|
||||||
|
|||||||
@@ -1,25 +1,35 @@
|
|||||||
from tkinter import ttk, StringVar, Entry, Frame, Label, Spinbox, E, W, LEFT, RIGHT
|
from tkinter import ttk, StringVar, Entry, Frame, Label, Spinbox, N, E, W, X, LEFT, RIGHT
|
||||||
|
import gui.widgets as widgets
|
||||||
|
|
||||||
def multiworld_page(parent,working_dirs):
|
def multiworld_page(parent,working_dirs):
|
||||||
|
# Multiworld
|
||||||
self = ttk.Frame(parent)
|
self = ttk.Frame(parent)
|
||||||
|
|
||||||
# Multiworld
|
# Multiworld options
|
||||||
multiFrame = Frame(self)
|
self.multiworldWidgets = {}
|
||||||
|
|
||||||
## Number of Worlds
|
## Number of Worlds
|
||||||
worldLabel = Label(multiFrame, text='Worlds')
|
key = "worlds"
|
||||||
self.worldVar = StringVar(value=working_dirs["multi.worlds"])
|
self.multiworldWidgets[key] = widgets.make_widget(
|
||||||
worldSpinbox = Spinbox(multiFrame, from_=1, to=100, width=5, textvariable=self.worldVar)
|
self,
|
||||||
worldLabel.pack(side=LEFT)
|
"spinbox",
|
||||||
worldSpinbox.pack(side=LEFT)
|
self,
|
||||||
|
"Worlds",
|
||||||
|
None,
|
||||||
|
{"label": {"side": LEFT}, "spinbox": {"side": RIGHT}}
|
||||||
|
)
|
||||||
|
self.multiworldWidgets[key].pack(side=LEFT, anchor=N)
|
||||||
|
|
||||||
## List of Player Names
|
## List of Player Names
|
||||||
namesLabel = Label(multiFrame, text='Player names')
|
namesFrame = Frame(self)
|
||||||
|
namesLabel = Label(namesFrame, text='Player names')
|
||||||
self.namesVar = StringVar(value=working_dirs["multi.names"])
|
self.namesVar = StringVar(value=working_dirs["multi.names"])
|
||||||
def saveMultiNames(caller,_,mode):
|
def saveMultiNames(caller,_,mode):
|
||||||
working_dirs["multi.names"] = self.namesVar.get()
|
working_dirs["multi.names"] = self.namesVar.get()
|
||||||
self.namesVar.trace_add("write",saveMultiNames)
|
self.namesVar.trace_add("write",saveMultiNames)
|
||||||
namesEntry = Entry(multiFrame, textvariable=self.namesVar)
|
namesEntry = Entry(namesFrame, textvariable=self.namesVar)
|
||||||
namesLabel.pack(side=LEFT)
|
namesLabel.pack(side=LEFT)
|
||||||
namesEntry.pack(side=LEFT)
|
namesEntry.pack(side=LEFT, fill=X, expand=True)
|
||||||
multiFrame.pack(anchor=W)
|
namesFrame.pack(anchor=N, fill=X, expand=True)
|
||||||
|
|
||||||
return self,working_dirs
|
return self,working_dirs
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
from tkinter import Checkbutton, Entry, Frame, IntVar, Label, OptionMenu, StringVar
|
from tkinter import Checkbutton, Entry, Frame, IntVar, Label, OptionMenu, Spinbox, StringVar
|
||||||
|
|
||||||
def make_checkbox(self, parent, label, storageVar, packAttrs):
|
def make_checkbox(self, parent, label, storageVar, packAttrs):
|
||||||
self = Frame(parent)
|
self = Frame(parent)
|
||||||
@@ -28,6 +28,22 @@ def make_selectbox(self, parent, label, options, storageVar, packAttrs):
|
|||||||
self.selectbox.pack(packAttrs["selectbox"])
|
self.selectbox.pack(packAttrs["selectbox"])
|
||||||
return self
|
return self
|
||||||
|
|
||||||
|
def make_spinbox(self, parent, label, storageVar, packAttrs):
|
||||||
|
self = Frame(parent)
|
||||||
|
self.storageVar = storageVar
|
||||||
|
self.label = Label(self, text=label)
|
||||||
|
self.label.pack(packAttrs["label"])
|
||||||
|
fromNum = 1
|
||||||
|
toNum = 100
|
||||||
|
if "spinbox" in packAttrs:
|
||||||
|
if "from" in packAttrs:
|
||||||
|
fromNum = packAttrs["spinbox"]["from"]
|
||||||
|
if "to" in packAttrs:
|
||||||
|
toNum = packAttrs["spinbox"]["to"]
|
||||||
|
self.spinbox = Spinbox(self, from_=fromNum, to=toNum, width=5, textvariable=self.storageVar)
|
||||||
|
self.spinbox.pack(packAttrs["spinbox"])
|
||||||
|
return self
|
||||||
|
|
||||||
def make_textbox(self, parent, label, storageVar, packAttrs):
|
def make_textbox(self, parent, label, storageVar, packAttrs):
|
||||||
self = Frame(parent)
|
self = Frame(parent)
|
||||||
self.storageVar = storageVar
|
self.storageVar = storageVar
|
||||||
@@ -54,6 +70,10 @@ def make_widget(self, type, parent, label, storageVar=None, packAttrs=dict(), op
|
|||||||
if thisStorageVar is None:
|
if thisStorageVar is None:
|
||||||
thisStorageVar = StringVar()
|
thisStorageVar = StringVar()
|
||||||
widget = make_selectbox(self, parent, label, options, thisStorageVar, packAttrs)
|
widget = make_selectbox(self, parent, label, options, thisStorageVar, packAttrs)
|
||||||
|
elif type == "spinbox":
|
||||||
|
if thisStorageVar is None:
|
||||||
|
thisStorageVar = StringVar()
|
||||||
|
widget = make_spinbox(self, parent, label, thisStorageVar, packAttrs)
|
||||||
elif type == "textbox":
|
elif type == "textbox":
|
||||||
if thisStorageVar is None:
|
if thisStorageVar is None:
|
||||||
thisStorageVar = StringVar()
|
thisStorageVar = StringVar()
|
||||||
|
|||||||
Reference in New Issue
Block a user