diff --git a/source/gui/adjust/overview.py b/source/gui/adjust/overview.py index e857696d..4f7fe543 100644 --- a/source/gui/adjust/overview.py +++ b/source/gui/adjust/overview.py @@ -1,7 +1,6 @@ from tkinter import ttk, filedialog, messagebox, StringVar, Button, Entry, Frame, Label, E, W, LEFT, RIGHT, X, BOTTOM from AdjusterMain import adjust from argparse import Namespace -from source.classes.Empty import Empty from source.classes.SpriteSelector import SpriteSelector import source.gui.widgets as widgets import json @@ -45,101 +44,49 @@ def adjust_page(top, parent, settings): # Sprite Selection # This one's more-complicated, build it and stuff it - # widget ID - widget = "sprite" - - # Empty object - self.widgets[widget] = Empty() - # pieces - self.widgets[widget].pieces = {} - - # frame - self.widgets[widget].pieces["frame"] = Frame(self.frames["leftAdjustFrame"]) - # frame: label - self.widgets[widget].pieces["frame"].label = Label(self.widgets[widget].pieces["frame"], text='Sprite: ') - # spritename: label - self.widgets[widget].pieces["frame"].spritename = Label(self.widgets[widget].pieces["frame"], text='(unchanged)') - # storage var - self.widgets[widget].storageVar = StringVar() - self.widgets[widget].storageVar.set(settings["sprite"]) - - # store sprite + self.spriteNameVar2 = StringVar() + spriteDialogFrame2 = Frame(self.frames["leftAdjustFrame"]) + baseSpriteLabel2 = Label(spriteDialogFrame2, text='Sprite:') + spriteEntry2 = Label(spriteDialogFrame2, textvariable=self.spriteNameVar2) self.sprite = None def set_sprite(sprite_param, random_sprite=False): - top.randomSprite.set(random_sprite) - - widget = "sprite" - sprite = {} - sprite["object"] = sprite_param - sprite["label"] = { - "show": "(unchanged)", - "store": "(unchanged)" - } if sprite_param is None or not sprite_param.valid: self.sprite = None + self.spriteNameVar2.set('(unchanged)') else: self.sprite = sprite_param - sprite["label"]["store"] = sprite_param.name - sprite["label"]["show"] = sprite_param.name if not random_sprite else "(random)" - self.widgets[widget].storageVar.set(sprite["label"]["store"]) - self.widgets[widget].pieces["frame"].spritename.config(text=sprite["label"]["show"]) - - print(top.randomSprite.get(),sprite["label"]) + self.spriteNameVar2.set(self.sprite.name) + top.randomSprite.set(random_sprite) def SpriteSelectAdjuster(): SpriteSelector(parent, set_sprite, adjuster=True) - # dialog button - self.widgets[widget].pieces["button"] = Button(self.widgets[widget].pieces["frame"], text='...', command=SpriteSelectAdjuster) + spriteSelectButton2 = Button(spriteDialogFrame2, text='...', command=SpriteSelectAdjuster) - # frame label: pack - self.widgets[widget].pieces["frame"].label.pack(side=LEFT) - # spritename: pack - self.widgets[widget].pieces["frame"].spritename.pack(side=LEFT) - # button: pack - self.widgets[widget].pieces["button"].pack(side=LEFT) - # frame: pack - self.widgets[widget].pieces["frame"].pack(anchor=E) + baseSpriteLabel2.pack(side=LEFT) + spriteEntry2.pack(side=LEFT) + spriteSelectButton2.pack(side=LEFT) + spriteDialogFrame2.pack(anchor=E) - self.frames["adjustrom"] = Frame(self.frames["bottomAdjustFrame"]) - self.frames["adjustrom"].pack(anchor=W, fill=X) # Path to game file to Adjust # This one's more-complicated, build it and stuff it - # widget ID - widget = "adjustrom" + adjustRomFrame = Frame(self.frames["bottomAdjustFrame"]) + adjustRomLabel = Label(adjustRomFrame, text='Rom to adjust: ') + self.romVar2 = StringVar(value=settings["rom"]) + romEntry2 = Entry(adjustRomFrame, textvariable=self.romVar2) - # Empty object - self.widgets[widget] = Empty() - # pieces - self.widgets[widget].pieces = {} + def RomSelect2(): + rom = filedialog.askopenfilename(filetypes=[("Rom Files", (".sfc", ".smc")), ("All Files", "*")]) + if rom: + settings["rom"] = rom + self.romVar2.set(rom) + romSelectButton2 = Button(adjustRomFrame, text='Select Rom', command=RomSelect2) - # frame - self.widgets[widget].pieces["frame"] = Frame(self.frames["adjustrom"]) - # frame: label - self.widgets[widget].pieces["frame"].label = Label(self.widgets[widget].pieces["frame"], text='Rom to Adjust: ') - # storage var - self.widgets[widget].storageVar = StringVar() - # textbox - self.widgets[widget].pieces["textbox"] = Entry(self.widgets[widget].pieces["frame"], textvariable=self.widgets[widget].storageVar) - self.widgets[widget].storageVar.set(settings["rom"]) - - # FIXME: Translate these - def RomSelect(): - widget = "adjustrom" - rom = filedialog.askopenfilename(filetypes=[("Rom Files", (".sfc", ".smc")), ("All Files", "*")], initialdir=os.path.join(".")) - self.widgets[widget].storageVar.set(rom) - # dialog button - self.widgets[widget].pieces["button"] = Button(self.widgets[widget].pieces["frame"], text='Select Rom', command=RomSelect) - - # frame label: pack - self.widgets[widget].pieces["frame"].label.pack(side=LEFT) - # textbox: pack - self.widgets[widget].pieces["textbox"].pack(side=LEFT, fill=X, expand=True) - # button: pack - self.widgets[widget].pieces["button"].pack(side=LEFT) - # frame: pack - self.widgets[widget].pieces["frame"].pack(fill=X) + adjustRomLabel.pack(side=LEFT) + romEntry2.pack(side=LEFT, fill=X, expand=True) + romSelectButton2.pack(side=LEFT) + adjustRomFrame.pack(fill=X) # These are the options to Adjust def adjustRom(): diff --git a/source/gui/randomize/gameoptions.py b/source/gui/randomize/gameoptions.py index cf4330d1..46fda67a 100644 --- a/source/gui/randomize/gameoptions.py +++ b/source/gui/randomize/gameoptions.py @@ -1,7 +1,6 @@ from tkinter import ttk, StringVar, Button, Entry, Frame, Label, E, W, LEFT, RIGHT from functools import partial -from source.classes.Empty import Empty -from source.classes.SpriteSelector import SpriteSelector +import source.classes.SpriteSelector as spriteSelector import source.gui.widgets as widgets import json import os @@ -40,79 +39,46 @@ def gameoptions_page(top, parent): packAttrs["anchor"] = W self.widgets[key].pack(packAttrs) - # Sprite Selection + ## Sprite selection # This one's more-complicated, build it and stuff it - # widget ID - widget = "sprite" + spriteDialogFrame = Frame(self.frames["leftRomOptionsFrame"]) + baseSpriteLabel = Label(spriteDialogFrame, text='Sprite:') - # Empty object - self.widgets[widget] = Empty() - # pieces - self.widgets[widget].pieces = {} + self.widgets["sprite"] = {} + self.widgets["sprite"]["spriteObject"] = None + self.widgets["sprite"]["spriteNameVar"] = StringVar() - # frame - self.widgets[widget].pieces["frame"] = Frame(self.frames["leftRomOptionsFrame"]) - # frame: label - self.widgets[widget].pieces["frame"].label = Label(self.widgets[widget].pieces["frame"], text='Sprite: ') - # spritename: label - self.widgets[widget].pieces["frame"].spritename = Label(self.widgets[widget].pieces["frame"], text='(unchanged)') - # storage var - self.widgets[widget].storageVar = StringVar() + self.widgets["sprite"]["spriteNameVar"].set('(unchanged)') + spriteEntry = Label(spriteDialogFrame, textvariable=self.widgets["sprite"]["spriteNameVar"]) - # store sprite - self.sprite = None + def sprite_setter(spriteObject): + self.widgets["sprite"]["spriteObject"] = spriteObject - def SpriteSetter(spriteObject): - sprite = {} - sprite["object"] = spriteObject - sprite["label"] = { - "show": "(unchanged)", - "store": "(unchanged)" - } - sprite["label"]["store"] = sprite["object"].name - sprite["label"]["show"] = sprite["object"].name if not top.randomSprite.get() else "(random)" + def sprite_select(): + spriteSelector.SpriteSelector(parent, partial(set_sprite, spriteSetter=sprite_setter, + spriteNameVar=self.widgets["sprite"]["spriteNameVar"], + randomSpriteVar=top.randomSprite)) - print(top.randomSprite.get(),sprite["label"]) + spriteSelectButton = Button(spriteDialogFrame, text='...', command=sprite_select) - self.sprite = sprite["object"] - self.widgets[widget].pieces["frame"].spritename.config(text=sprite["label"]["show"]) - def SpriteSelect(): - SpriteSelector(parent, partial(set_sprite, spriteSetter=SpriteSetter,spriteNameVar=self.widgets[widget].storageVar,randomSpriteVar=top.randomSprite)) - - # dialog button - self.widgets[widget].pieces["button"] = Button(self.widgets[widget].pieces["frame"], text='...', command=SpriteSelect) - - # frame label: pack - self.widgets[widget].pieces["frame"].label.pack(side=LEFT) - # spritename: pack - self.widgets[widget].pieces["frame"].spritename.pack(side=LEFT) - # button: pack - self.widgets[widget].pieces["button"].pack(side=LEFT) - # frame: pack - self.widgets[widget].pieces["frame"].pack(anchor=E) + baseSpriteLabel.pack(side=LEFT) + spriteEntry.pack(side=LEFT) + spriteSelectButton.pack(side=LEFT) + spriteDialogFrame.pack(anchor=E) return self -def set_sprite(sprite_param, random_sprite=False, spriteSetter=None, spriteNameVar=None, randomSpriteVar=None): - if randomSpriteVar: - randomSpriteVar.set(random_sprite) - widget = "sprite" - sprite = {} - sprite["object"] = sprite_param - sprite["label"] = { - "show": "(unchanged)", - "store": "(unchanged)" - } - if sprite["object"] is None or not sprite["object"].valid: +def set_sprite(sprite_param, random_sprite=False, spriteSetter=None, spriteNameVar=None, randomSpriteVar=None): + if sprite_param is None or not sprite_param.valid: if spriteSetter: spriteSetter(None) if spriteNameVar is not None: - spriteNameVar.set(sprite["store"]) + spriteNameVar.set('(unchanged)') else: if spriteSetter: - spriteSetter(sprite["object"]) + spriteSetter(sprite_param) if spriteNameVar is not None: - spriteNameVar.set(sprite["label"]["store"]) - sprite["label"]["store"] = sprite["object"].name - sprite["label"]["show"] = sprite["object"].name if not random_sprite else "(random)" + spriteNameVar.set(sprite_param.name) + if randomSpriteVar: + randomSpriteVar.set(random_sprite) diff --git a/source/gui/randomize/generation.py b/source/gui/randomize/generation.py index 37fed386..4bcb868c 100644 --- a/source/gui/randomize/generation.py +++ b/source/gui/randomize/generation.py @@ -65,7 +65,6 @@ def generation_page(parent,settings): # FIXME: Translate these def RomSelect(): - widget = "rom" rom = filedialog.askopenfilename(filetypes=[("Rom Files", (".sfc", ".smc")), ("All Files", "*")], initialdir=os.path.join(".")) self.widgets[widget].storageVar.set(rom) # dialog button @@ -95,6 +94,7 @@ def generation_page(parent,settings): self.frames["diags"].pack() self.widgets[widget].pieces["frame"] = Frame(self.frames["diags"]) + def diags(): # Debugging purposes dims = { @@ -106,7 +106,7 @@ def generation_page(parent,settings): "width": 120, "height": 50 } - } + } diag = Tk() diag.title("Door Shuffle " + __version__) diag.geometry(str(dims["window"]["width"]) + 'x' + str(dims["window"]["height"]))