Fix Selectors
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
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
|
||||
@@ -44,49 +45,101 @@ def adjust_page(top, parent, settings):
|
||||
|
||||
# Sprite Selection
|
||||
# This one's more-complicated, build it and stuff it
|
||||
self.spriteNameVar2 = StringVar()
|
||||
spriteDialogFrame2 = Frame(self.frames["leftAdjustFrame"])
|
||||
baseSpriteLabel2 = Label(spriteDialogFrame2, text='Sprite:')
|
||||
spriteEntry2 = Label(spriteDialogFrame2, textvariable=self.spriteNameVar2)
|
||||
# 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.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
|
||||
self.spriteNameVar2.set(self.sprite.name)
|
||||
top.randomSprite.set(random_sprite)
|
||||
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"])
|
||||
|
||||
def SpriteSelectAdjuster():
|
||||
SpriteSelector(parent, set_sprite, adjuster=True)
|
||||
|
||||
spriteSelectButton2 = Button(spriteDialogFrame2, text='...', command=SpriteSelectAdjuster)
|
||||
# dialog button
|
||||
self.widgets[widget].pieces["button"] = Button(self.widgets[widget].pieces["frame"], text='...', command=SpriteSelectAdjuster)
|
||||
|
||||
baseSpriteLabel2.pack(side=LEFT)
|
||||
spriteEntry2.pack(side=LEFT)
|
||||
spriteSelectButton2.pack(side=LEFT)
|
||||
spriteDialogFrame2.pack(anchor=E)
|
||||
# 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)
|
||||
|
||||
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
|
||||
adjustRomFrame = Frame(self.frames["bottomAdjustFrame"])
|
||||
adjustRomLabel = Label(adjustRomFrame, text='Rom to adjust: ')
|
||||
self.romVar2 = StringVar(value=settings["rom"])
|
||||
romEntry2 = Entry(adjustRomFrame, textvariable=self.romVar2)
|
||||
# widget ID
|
||||
widget = "adjustrom"
|
||||
|
||||
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)
|
||||
# Empty object
|
||||
self.widgets[widget] = Empty()
|
||||
# pieces
|
||||
self.widgets[widget].pieces = {}
|
||||
|
||||
adjustRomLabel.pack(side=LEFT)
|
||||
romEntry2.pack(side=LEFT, fill=X, expand=True)
|
||||
romSelectButton2.pack(side=LEFT)
|
||||
adjustRomFrame.pack(fill=X)
|
||||
# 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)
|
||||
|
||||
# These are the options to Adjust
|
||||
def adjustRom():
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
from tkinter import ttk, StringVar, Button, Entry, Frame, Label, E, W, LEFT, RIGHT
|
||||
from functools import partial
|
||||
import source.classes.SpriteSelector as spriteSelector
|
||||
from source.classes.Empty import Empty
|
||||
from source.classes.SpriteSelector import SpriteSelector
|
||||
import source.gui.widgets as widgets
|
||||
import json
|
||||
import os
|
||||
@@ -39,46 +40,79 @@ 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
|
||||
spriteDialogFrame = Frame(self.frames["leftRomOptionsFrame"])
|
||||
baseSpriteLabel = Label(spriteDialogFrame, text='Sprite:')
|
||||
# widget ID
|
||||
widget = "sprite"
|
||||
|
||||
self.widgets["sprite"] = {}
|
||||
self.widgets["sprite"]["spriteObject"] = None
|
||||
self.widgets["sprite"]["spriteNameVar"] = StringVar()
|
||||
# Empty object
|
||||
self.widgets[widget] = Empty()
|
||||
# pieces
|
||||
self.widgets[widget].pieces = {}
|
||||
|
||||
self.widgets["sprite"]["spriteNameVar"].set('(unchanged)')
|
||||
spriteEntry = Label(spriteDialogFrame, textvariable=self.widgets["sprite"]["spriteNameVar"])
|
||||
# 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()
|
||||
|
||||
def sprite_setter(spriteObject):
|
||||
self.widgets["sprite"]["spriteObject"] = spriteObject
|
||||
# store sprite
|
||||
self.sprite = None
|
||||
|
||||
def sprite_select():
|
||||
spriteSelector.SpriteSelector(parent, partial(set_sprite, spriteSetter=sprite_setter,
|
||||
spriteNameVar=self.widgets["sprite"]["spriteNameVar"],
|
||||
randomSpriteVar=top.randomSprite))
|
||||
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)"
|
||||
|
||||
spriteSelectButton = Button(spriteDialogFrame, text='...', command=sprite_select)
|
||||
print(top.randomSprite.get(),sprite["label"])
|
||||
|
||||
baseSpriteLabel.pack(side=LEFT)
|
||||
spriteEntry.pack(side=LEFT)
|
||||
spriteSelectButton.pack(side=LEFT)
|
||||
spriteDialogFrame.pack(anchor=E)
|
||||
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)
|
||||
|
||||
return self
|
||||
|
||||
|
||||
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 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:
|
||||
if spriteSetter:
|
||||
spriteSetter(None)
|
||||
if spriteNameVar is not None:
|
||||
spriteNameVar.set('(unchanged)')
|
||||
spriteNameVar.set(sprite["store"])
|
||||
else:
|
||||
if spriteSetter:
|
||||
spriteSetter(sprite_param)
|
||||
spriteSetter(sprite["object"])
|
||||
if spriteNameVar is not None:
|
||||
spriteNameVar.set(sprite_param.name)
|
||||
if randomSpriteVar:
|
||||
randomSpriteVar.set(random_sprite)
|
||||
spriteNameVar.set(sprite["label"]["store"])
|
||||
sprite["label"]["store"] = sprite["object"].name
|
||||
sprite["label"]["show"] = sprite["object"].name if not random_sprite else "(random)"
|
||||
|
||||
@@ -65,6 +65,7 @@ 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
|
||||
@@ -94,7 +95,6 @@ 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"]))
|
||||
|
||||
Reference in New Issue
Block a user