Improved Retro button in GUI
This commit is contained in:
@@ -294,7 +294,7 @@
|
|||||||
"randomizer.item.worldstate.open": "Open",
|
"randomizer.item.worldstate.open": "Open",
|
||||||
"randomizer.item.worldstate.inverted": "Inverted",
|
"randomizer.item.worldstate.inverted": "Inverted",
|
||||||
"randomizer.item.worldstate.retro": "Retro",
|
"randomizer.item.worldstate.retro": "Retro",
|
||||||
"randomizer.item.retro": "Enable Retro",
|
"randomizer.item.retro": "Retro",
|
||||||
|
|
||||||
"randomizer.item.logiclevel": "Logic Level",
|
"randomizer.item.logiclevel": "Logic Level",
|
||||||
"randomizer.item.logiclevel.noglitches": "No Glitches",
|
"randomizer.item.logiclevel.noglitches": "No Glitches",
|
||||||
|
|||||||
@@ -6,7 +6,7 @@
|
|||||||
"collection_rate": {"type": "checkbox"},
|
"collection_rate": {"type": "checkbox"},
|
||||||
"race": { "type": "checkbox" }
|
"race": { "type": "checkbox" }
|
||||||
},
|
},
|
||||||
"leftItemFrame": {
|
"worldstateFrame": {
|
||||||
"worldstate": {
|
"worldstate": {
|
||||||
"type": "selectbox",
|
"type": "selectbox",
|
||||||
"default": "open",
|
"default": "open",
|
||||||
@@ -14,8 +14,13 @@
|
|||||||
"standard",
|
"standard",
|
||||||
"open",
|
"open",
|
||||||
"inverted"
|
"inverted"
|
||||||
]
|
],
|
||||||
|
"config": {
|
||||||
|
"width": 13
|
||||||
|
}
|
||||||
|
}
|
||||||
},
|
},
|
||||||
|
"leftItemFrame": {
|
||||||
"logiclevel": {
|
"logiclevel": {
|
||||||
"type": "selectbox",
|
"type": "selectbox",
|
||||||
"options": [
|
"options": [
|
||||||
@@ -64,12 +69,6 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"rightItemFrame": {
|
"rightItemFrame": {
|
||||||
"retro": {
|
|
||||||
"type": "button",
|
|
||||||
"config": {
|
|
||||||
"command": "retro"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"sortingalgo": {
|
"sortingalgo": {
|
||||||
"type": "selectbox",
|
"type": "selectbox",
|
||||||
"default": "balanced",
|
"default": "balanced",
|
||||||
|
|||||||
@@ -272,7 +272,7 @@ def create_guiargs(parent):
|
|||||||
arg = options[mainpage][subpage][widget] if subpage != "" else options[mainpage][widget]
|
arg = options[mainpage][subpage][widget] if subpage != "" else options[mainpage][widget]
|
||||||
page = parent.pages[mainpage].pages[subpage] if subpage != "" else parent.pages[mainpage]
|
page = parent.pages[mainpage].pages[subpage] if subpage != "" else parent.pages[mainpage]
|
||||||
pagewidgets = page.content.customWidgets if mainpage == "custom" else page.content.startingWidgets if mainpage == "startinventory" else page.widgets
|
pagewidgets = page.content.customWidgets if mainpage == "custom" else page.content.startingWidgets if mainpage == "startinventory" else page.widgets
|
||||||
if hasattr(pagewidgets[widget], 'storageVar'):
|
if widget in pagewidgets and hasattr(pagewidgets[widget], 'storageVar'):
|
||||||
setattr(guiargs, arg, pagewidgets[widget].storageVar.get())
|
setattr(guiargs, arg, pagewidgets[widget].storageVar.get())
|
||||||
|
|
||||||
# Get Multiworld Worlds count
|
# Get Multiworld Worlds count
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
from tkinter import ttk, font, Frame, E, W, NW, TOP, LEFT, RIGHT, Y, Label
|
from tkinter import messagebox, ttk, font, Button, Frame, E, W, TOP, LEFT, RIGHT, X, Y, Label
|
||||||
import source.gui.widgets as widgets
|
import source.gui.widgets as widgets
|
||||||
|
from source.classes.Empty import Empty
|
||||||
import json
|
import json
|
||||||
import os
|
import os
|
||||||
|
|
||||||
@@ -28,6 +29,16 @@ def item_page(parent):
|
|||||||
|
|
||||||
self.frames["leftItemFrame"] = Frame(self.frames["mainFrame"])
|
self.frames["leftItemFrame"] = Frame(self.frames["mainFrame"])
|
||||||
self.frames["leftItemFrame"].pack(side=LEFT)
|
self.frames["leftItemFrame"].pack(side=LEFT)
|
||||||
|
self.frames["worldstateFrame"] = Frame(self.frames["leftItemFrame"])
|
||||||
|
self.frames["worldstateFrame"].pack(side=TOP, fill=X)
|
||||||
|
|
||||||
|
## Retro Button
|
||||||
|
widget = Empty()
|
||||||
|
widget.pieces = {}
|
||||||
|
widget.type = "button"
|
||||||
|
widget.pieces["button"] = Button(self.frames["worldstateFrame"], text="Retro", command=lambda: retro(widget))
|
||||||
|
widget.pieces["button"].pack(side=RIGHT, padx=(1, 2))
|
||||||
|
|
||||||
self.frames["rightItemFrame"] = Frame(self.frames["mainFrame"])
|
self.frames["rightItemFrame"] = Frame(self.frames["mainFrame"])
|
||||||
self.frames["rightItemFrame"].pack(side=RIGHT)
|
self.frames["rightItemFrame"].pack(side=RIGHT)
|
||||||
|
|
||||||
@@ -65,8 +76,6 @@ def item_page(parent):
|
|||||||
for key in dictWidgets:
|
for key in dictWidgets:
|
||||||
self.widgets[key] = dictWidgets[key]
|
self.widgets[key] = dictWidgets[key]
|
||||||
packAttrs = {"anchor":E}
|
packAttrs = {"anchor":E}
|
||||||
if key == "retro":
|
|
||||||
packAttrs["side"] = RIGHT
|
|
||||||
if self.widgets[key].type == "checkbox" or framename.startswith("leftPoolFrame"):
|
if self.widgets[key].type == "checkbox" or framename.startswith("leftPoolFrame"):
|
||||||
packAttrs["anchor"] = W
|
packAttrs["anchor"] = W
|
||||||
if framename == "checkboxes":
|
if framename == "checkboxes":
|
||||||
@@ -75,7 +84,32 @@ def item_page(parent):
|
|||||||
elif framename == "leftPoolHeader":
|
elif framename == "leftPoolHeader":
|
||||||
packAttrs["side"] = LEFT
|
packAttrs["side"] = LEFT
|
||||||
packAttrs["padx"] = (0, 20)
|
packAttrs["padx"] = (0, 20)
|
||||||
|
elif framename == "rightItemFrame" and self.widgets[key].type == "checkbox":
|
||||||
|
packAttrs["side"] = LEFT
|
||||||
|
packAttrs["padx"] = (118, 0)
|
||||||
packAttrs = widgets.add_padding_from_config(packAttrs, theseWidgets[key])
|
packAttrs = widgets.add_padding_from_config(packAttrs, theseWidgets[key])
|
||||||
self.widgets[key].pack(packAttrs)
|
self.widgets[key].pack(packAttrs)
|
||||||
|
|
||||||
return self
|
return self
|
||||||
|
|
||||||
|
def retro(baseWidget):
|
||||||
|
widget = baseWidget.pieces['button']
|
||||||
|
root = widget.winfo_toplevel()
|
||||||
|
text_output = ""
|
||||||
|
temp_widget = root.pages["randomizer"].pages["dungeon"].widgets["smallkeyshuffle"]
|
||||||
|
text_output += f'\n {temp_widget.label.cget("text")}'
|
||||||
|
temp_widget.storageVar.set('universal')
|
||||||
|
|
||||||
|
temp_widget = root.pages["randomizer"].pages["item"].widgets["bow_mode"]
|
||||||
|
text_output += f'\n {temp_widget.label.cget("text")}'
|
||||||
|
if temp_widget.storageVar.get() == 'progressive':
|
||||||
|
temp_widget.storageVar.set('retro')
|
||||||
|
elif temp_widget.storageVar.get() == 'silvers':
|
||||||
|
temp_widget.storageVar.set('retro_silvers')
|
||||||
|
|
||||||
|
temp_widget = root.pages["randomizer"].pages["item"].widgets["take_any"]
|
||||||
|
text_output += f'\n {temp_widget.label.cget("text")}'
|
||||||
|
if temp_widget.storageVar.get() == 'none':
|
||||||
|
temp_widget.storageVar.set('random')
|
||||||
|
|
||||||
|
messagebox.showinfo('', f'The following settings were changed:{text_output}')
|
||||||
|
|||||||
Reference in New Issue
Block a user