Pretty Multiworld options
This commit is contained in:
@@ -31,7 +31,7 @@ def bottom_frame(self,parent,args=None):
|
||||
|
||||
def generateRom():
|
||||
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.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
|
||||
|
||||
@@ -15,7 +15,7 @@ def loadcliargs(gui,args):
|
||||
gui.gameOptionsWindow.quickSwapVar.set(int(args.quickswap))
|
||||
gui.gameOptionsWindow.disableMusicVar.set(int(args.disablemusic))
|
||||
if args.multi:
|
||||
gui.multiworldWindow.worldVar.set(str(args.multi))
|
||||
gui.multiworldWindow.multiworldWidgets["worlds"].storageVar.set(str(args.multi))
|
||||
if args.count:
|
||||
gui.farBottomFrame.countVar.set(str(args.count))
|
||||
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):
|
||||
# Multiworld
|
||||
self = ttk.Frame(parent)
|
||||
|
||||
# Multiworld
|
||||
multiFrame = Frame(self)
|
||||
# Multiworld options
|
||||
self.multiworldWidgets = {}
|
||||
|
||||
## Number of Worlds
|
||||
worldLabel = Label(multiFrame, text='Worlds')
|
||||
self.worldVar = StringVar(value=working_dirs["multi.worlds"])
|
||||
worldSpinbox = Spinbox(multiFrame, from_=1, to=100, width=5, textvariable=self.worldVar)
|
||||
worldLabel.pack(side=LEFT)
|
||||
worldSpinbox.pack(side=LEFT)
|
||||
key = "worlds"
|
||||
self.multiworldWidgets[key] = widgets.make_widget(
|
||||
self,
|
||||
"spinbox",
|
||||
self,
|
||||
"Worlds",
|
||||
None,
|
||||
{"label": {"side": LEFT}, "spinbox": {"side": RIGHT}}
|
||||
)
|
||||
self.multiworldWidgets[key].pack(side=LEFT, anchor=N)
|
||||
|
||||
## 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"])
|
||||
def saveMultiNames(caller,_,mode):
|
||||
working_dirs["multi.names"] = self.namesVar.get()
|
||||
self.namesVar.trace_add("write",saveMultiNames)
|
||||
namesEntry = Entry(multiFrame, textvariable=self.namesVar)
|
||||
namesEntry = Entry(namesFrame, textvariable=self.namesVar)
|
||||
namesLabel.pack(side=LEFT)
|
||||
namesEntry.pack(side=LEFT)
|
||||
multiFrame.pack(anchor=W)
|
||||
namesEntry.pack(side=LEFT, fill=X, expand=True)
|
||||
namesFrame.pack(anchor=N, fill=X, expand=True)
|
||||
|
||||
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):
|
||||
self = Frame(parent)
|
||||
@@ -28,6 +28,22 @@ def make_selectbox(self, parent, label, options, storageVar, packAttrs):
|
||||
self.selectbox.pack(packAttrs["selectbox"])
|
||||
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):
|
||||
self = Frame(parent)
|
||||
self.storageVar = storageVar
|
||||
@@ -54,6 +70,10 @@ def make_widget(self, type, parent, label, storageVar=None, packAttrs=dict(), op
|
||||
if thisStorageVar is None:
|
||||
thisStorageVar = StringVar()
|
||||
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":
|
||||
if thisStorageVar is None:
|
||||
thisStorageVar = StringVar()
|
||||
|
||||
Reference in New Issue
Block a user