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