mirror of
https://github.com/Faraphel/Atlas-Install.git
synced 2025-07-03 19:28:25 +02:00
clicking on any mod settings widget will automatically enable the settings, instead of needing to enable it manually.
This commit is contained in:
parent
e46acba9a6
commit
453b631325
2 changed files with 15 additions and 4 deletions
|
@ -54,13 +54,24 @@ class FrameSettings(ttk.Frame):
|
||||||
|
|
||||||
self.columnconfigure(1, weight=1)
|
self.columnconfigure(1, weight=1)
|
||||||
|
|
||||||
|
def get_event_checkbox(enabled_variable: tkinter.BooleanVar):
|
||||||
|
"""
|
||||||
|
Return the event for any child of a frmae when clicked
|
||||||
|
"""
|
||||||
|
return lambda event: enabled_variable.set(True)
|
||||||
|
|
||||||
for index, (settings_name, settings_data) in enumerate(settings.items()):
|
for index, (settings_name, settings_data) in enumerate(settings.items()):
|
||||||
text = settings_data.text.get(self.root.options["language"])
|
text = settings_data.text.get(self.root.options["language"])
|
||||||
if text is None: text = settings_data.text.get("*")
|
if text is None: text = settings_data.text.get("*")
|
||||||
if text is None: text = settings_name
|
if text is None: text = settings_name
|
||||||
|
|
||||||
checkbox = ttk.Checkbutton(self, text=text)
|
enabled_variable = tkinter.BooleanVar(value=False)
|
||||||
|
checkbox = ttk.Checkbutton(self, text=text, variable=enabled_variable)
|
||||||
frame = ttk.LabelFrame(self, labelwidget=checkbox)
|
frame = ttk.LabelFrame(self, labelwidget=checkbox)
|
||||||
frame.grid(row=index, column=1, sticky="NEWS")
|
frame.grid(row=index, column=1, sticky="NEWS")
|
||||||
|
|
||||||
settings_data.tkinter_show(frame, checkbox)
|
settings_data.tkinter_show(frame, enabled_variable)
|
||||||
|
|
||||||
|
# if any of the label child are clicked, automatically enable the option
|
||||||
|
for child in frame.winfo_children():
|
||||||
|
child.bind("<Button-1>", get_event_checkbox(enabled_variable))
|
||||||
|
|
|
@ -28,7 +28,7 @@ class AbstractModSettings(ABC):
|
||||||
return self._value if self.enabled else self.default
|
return self._value if self.enabled else self.default
|
||||||
|
|
||||||
@abstractmethod
|
@abstractmethod
|
||||||
def tkinter_show(self, master: ttk.LabelFrame, checkbox) -> None:
|
def tkinter_show(self, master: ttk.LabelFrame, enabled_variable: tkinter.BooleanVar) -> None:
|
||||||
"""
|
"""
|
||||||
Show the option inside a tkinter widget
|
Show the option inside a tkinter widget
|
||||||
:master: master widget
|
:master: master widget
|
||||||
|
@ -37,7 +37,7 @@ class AbstractModSettings(ABC):
|
||||||
master.grid_rowconfigure(1, weight=1)
|
master.grid_rowconfigure(1, weight=1)
|
||||||
master.grid_columnconfigure(1, weight=1)
|
master.grid_columnconfigure(1, weight=1)
|
||||||
|
|
||||||
enabled_variable = tkinter.BooleanVar(master, value=self.enabled)
|
enabled_variable.set(self.enabled)
|
||||||
enabled_variable.trace_add("write", lambda *_: setattr(self, "enabled", enabled_variable.get()))
|
enabled_variable.trace_add("write", lambda *_: setattr(self, "enabled", enabled_variable.get()))
|
||||||
...
|
...
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue