Test Modal usage

This commit is contained in:
Mykola Grymalyuk
2022-05-20 22:12:42 -06:00
parent 8224ddc6fb
commit 4f4c79f7a0
+190 -139
View File
@@ -67,6 +67,11 @@ class wx_python_gui:
self.frame.Bind(wx.EVT_MENU, self.OnCloseFrame, id=wx.ID_EXIT)
self.frame.Bind(wx.EVT_MENU, self.relaunch_as_root, id=wx.ID_REDO)
self.frame.SetMenuBar(self.menubar)
# Modal Frames
self.settings_menu_frame = None
self.create_macos_frame = None
self.grab_installer_data_frame = None
if current_uid == 0:
self.file_menu.Enable(wx.ID_REDO, False)
@@ -315,6 +320,10 @@ class wx_python_gui:
# Reset Data in the event of re-run
self.reset_window()
self.reset_settings_modal_frame()
self.reset_create_macos_modal_frame()
self.reset_create_installer_modal_frame()
# Set header text
self.frame.SetTitle(f"OpenCore Legacy Patcher")
@@ -1212,15 +1221,18 @@ class wx_python_gui:
# - Use existing macOS Installer
# - Return to Main Menu
self.frame.DestroyChildren()
# self.frame.DestroyChildren()
self.reset_create_macos_modal_frame()
self.create_macos_frame.SetSize(self.WINDOW_WIDTH_MAIN - 20 , -1)
# Header
self.header = wx.StaticText(self.frame, label="Create macOS Installer")
self.header = wx.StaticText(self.create_macos_frame, label="Create macOS Installer")
self.header.SetFont(wx.Font(18, wx.FONTFAMILY_DEFAULT, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_BOLD))
self.header.Centre(wx.HORIZONTAL)
# Button: Download macOS Installer
self.download_macos_installer = wx.Button(self.frame, label="Download macOS Installer", size=(200, 30))
self.download_macos_installer = wx.Button(self.create_macos_frame, label="Download macOS Installer", size=(200, 30))
self.download_macos_installer.SetPosition(
wx.Point(
self.header.GetPosition().x,
@@ -1231,7 +1243,7 @@ class wx_python_gui:
self.download_macos_installer.Centre(wx.HORIZONTAL)
# Button: Use existing macOS Installer
self.use_existing_macos_installer = wx.Button(self.frame, label="Use existing macOS Installer", size=(200, 30))
self.use_existing_macos_installer = wx.Button(self.create_macos_frame, label="Use existing macOS Installer", size=(200, 30))
self.use_existing_macos_installer.SetPosition(
wx.Point(
self.download_macos_installer.GetPosition().x,
@@ -1241,7 +1253,7 @@ class wx_python_gui:
self.use_existing_macos_installer.Bind(wx.EVT_BUTTON, self.flash_installer_menu)
self.use_existing_macos_installer.Centre(wx.HORIZONTAL)
self.return_to_main_menu = wx.Button(self.frame, label="Return to Main Menu")
self.return_to_main_menu = wx.Button(self.create_macos_frame, label="Return to Main Menu")
self.return_to_main_menu.SetPosition(
wx.Point(
self.use_existing_macos_installer.GetPosition().x,
@@ -1251,7 +1263,8 @@ class wx_python_gui:
self.return_to_main_menu.Bind(wx.EVT_BUTTON, self.main_menu)
self.return_to_main_menu.Centre(wx.HORIZONTAL)
self.frame.SetSize(self.WINDOW_WIDTH_MAIN, self.return_to_main_menu.GetPosition().y + self.return_to_main_menu.GetSize().height + 40)
self.create_macos_frame.SetSize(-1, self.return_to_main_menu.GetPosition().y + self.return_to_main_menu.GetSize().height + 40)
self.create_macos_frame.ShowWindowModal()
def grab_installer_data(self, event=None, ias=None):
self.frame.DestroyChildren()
@@ -1315,15 +1328,17 @@ class wx_python_gui:
print("- Using existing installer catalog...")
available_installers = ias
self.frame.DestroyChildren()
self.reset_create_macos_modal_frame()
self.reset_create_installer_modal_frame()
self.grab_installer_data_frame.SetSize(self.WINDOW_WIDTH_MAIN - 20, -1)
# Header
self.header = wx.StaticText(self.frame, label="Download macOS Installer")
self.header = wx.StaticText(self.grab_installer_data_frame, label="Download macOS Installer")
self.header.SetFont(wx.Font(18, wx.FONTFAMILY_DEFAULT, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_BOLD))
self.header.Centre(wx.HORIZONTAL)
# Subheader:
self.subheader = wx.StaticText(self.frame, label="Installers currently available from Apple:")
self.subheader = wx.StaticText(self.grab_installer_data_frame, label="Installers currently available from Apple:")
self.subheader.SetFont(wx.Font(12, wx.FONTFAMILY_DEFAULT, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_NORMAL))
self.subheader.SetPosition(
wx.Point(
@@ -1345,7 +1360,7 @@ class wx_python_gui:
extra = " Beta"
else:
extra = ""
self.install_selection = wx.Button(self.frame, label=f"macOS {available_installers[app]['Version']}{extra} ({available_installers[app]['Build']} - {utilities.human_fmt(available_installers[app]['Size'])})", size=(280, 30))
self.install_selection = wx.Button(self.grab_installer_data_frame, label=f"macOS {available_installers[app]['Version']}{extra} ({available_installers[app]['Build']} - {utilities.human_fmt(available_installers[app]['Size'])})", size=(280, 30))
i = i + 25
self.install_selection.SetPosition(
wx.Point(
@@ -1356,7 +1371,7 @@ class wx_python_gui:
self.install_selection.Bind(wx.EVT_BUTTON, lambda event, temp=app: self.download_macos_click(available_installers[temp]))
self.install_selection.Centre(wx.HORIZONTAL)
else:
self.install_selection = wx.StaticText(self.frame, label="No installers available")
self.install_selection = wx.StaticText(self.grab_installer_data_frame, label="No installers available")
i = i + 25
self.install_selection.SetPosition(
wx.Point(
@@ -1367,7 +1382,7 @@ class wx_python_gui:
self.install_selection.SetFont(wx.Font(12, wx.FONTFAMILY_DEFAULT, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_BOLD))
self.install_selection.Centre(wx.HORIZONTAL)
self.load_all_installers = wx.Button(self.frame, label="Reload with all installers")
self.load_all_installers = wx.Button(self.grab_installer_data_frame, label="Reload with all installers")
self.load_all_installers.SetPosition(
wx.Point(
self.install_selection.GetPosition().x,
@@ -1379,7 +1394,7 @@ class wx_python_gui:
if ias or not available_installers:
self.load_all_installers.Disable()
self.return_to_main_menu = wx.Button(self.frame, label="Return to Main Menu")
self.return_to_main_menu = wx.Button(self.grab_installer_data_frame, label="Return to Main Menu")
self.return_to_main_menu.SetPosition(
wx.Point(
self.load_all_installers.GetPosition().x,
@@ -1389,7 +1404,8 @@ class wx_python_gui:
self.return_to_main_menu.Bind(wx.EVT_BUTTON, self.main_menu)
self.return_to_main_menu.Centre(wx.HORIZONTAL)
self.frame.SetSize(self.WINDOW_WIDTH_MAIN, self.return_to_main_menu.GetPosition().y + self.return_to_main_menu.GetSize().height + 40)
self.grab_installer_data_frame.SetSize(-1, self.return_to_main_menu.GetPosition().y + self.return_to_main_menu.GetSize().height + 40)
self.grab_installer_data_frame.ShowWindowModal()
def reload_macos_installer_catalog(self, event=None, ias=None):
self.grab_installer_data(ias=ias)
@@ -1867,6 +1883,27 @@ class wx_python_gui:
else:
print("- Installer unsupported, requires Big Sur or newer")
def reset_settings_modal_frame(self):
if not self.settings_menu_frame:
self.settings_menu_frame = wx.Dialog(self.frame)
else:
self.settings_menu_frame.DestroyChildren()
self.settings_menu_frame.Close()
def reset_create_macos_modal_frame(self):
if not self.create_macos_frame:
self.create_macos_frame = wx.Dialog(self.frame)
else:
self.create_macos_frame.DestroyChildren()
self.create_macos_frame.Close()
def reset_create_installer_modal_frame(self):
if not self.grab_installer_data_frame:
self.grab_installer_data_frame = wx.Dialog(self.frame)
else:
self.grab_installer_data_frame.DestroyChildren()
self.grab_installer_data_frame.Close()
def settings_menu(self, event=None):
# Define Menu
# - Header: Settings
@@ -1882,17 +1919,24 @@ class wx_python_gui:
# - Developer Settings
# - Return to Main Menu
self.frame.DestroyChildren()
self.frame.SetSize(self.WINDOW_SETTINGS_WIDTH, self.WINDOW_SETTINGS_HEIGHT)
self.frame.SetTitle("Settings")
# Create wxDialog and have Settings menu be WindowModal
# Create Menu
self.reset_settings_modal_frame()
# self.frame.DestroyChildren()
self.settings_menu_frame.SetSize(self.WINDOW_SETTINGS_WIDTH, self.WINDOW_SETTINGS_HEIGHT)
self.settings_menu_frame.SetTitle("Settings")
# Header
self.header = wx.StaticText(self.frame, label="Settings")
self.header = wx.StaticText(self.settings_menu_frame, label="Settings")
self.header.SetFont(wx.Font(18, wx.FONTFAMILY_DEFAULT, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_BOLD))
self.header.SetPosition((-1, 5))
self.header.Centre(wx.HORIZONTAL)
# Subheader
self.subheader = wx.StaticText(self.frame, label="Changing settings here require you")
self.subheader = wx.StaticText(self.settings_menu_frame, label="Changing settings here require you")
self.subheader.SetFont(wx.Font(12, wx.DEFAULT, wx.NORMAL, wx.NORMAL))
self.subheader.SetPosition(
wx.Point(
@@ -1901,7 +1945,7 @@ class wx_python_gui:
)
)
self.subheader.Centre(wx.HORIZONTAL)
self.subheader2 = wx.StaticText(self.frame, label="to run 'Build and Install OpenCore'")
self.subheader2 = wx.StaticText(self.settings_menu_frame, label="to run 'Build and Install OpenCore'")
self.subheader2.SetFont(wx.Font(12, wx.DEFAULT, wx.NORMAL, wx.NORMAL))
self.subheader2.SetPosition(
wx.Point(
@@ -1910,7 +1954,7 @@ class wx_python_gui:
)
)
self.subheader2.Centre(wx.HORIZONTAL)
self.subheader3 = wx.StaticText(self.frame, label="then reboot for changes to be applied")
self.subheader3 = wx.StaticText(self.settings_menu_frame, label="then reboot for changes to be applied")
self.subheader3.SetFont(wx.Font(12, wx.DEFAULT, wx.NORMAL, wx.NORMAL))
self.subheader3.SetPosition(
wx.Point(
@@ -1921,7 +1965,7 @@ class wx_python_gui:
self.subheader3.Centre(wx.HORIZONTAL)
# Dropdown
self.dropdown_model = wx.Choice(self.frame)
self.dropdown_model = wx.Choice(self.settings_menu_frame)
for model in model_array.SupportedSMBIOS:
self.dropdown_model.Append(model)
if self.computer.real_model not in self.dropdown_model.GetItems():
@@ -1948,42 +1992,42 @@ class wx_python_gui:
# Checkboxes
# Checkbox: Allow native models
self.checkbox_allow_native_models = wx.CheckBox(self.frame, label="Allow native models")
self.checkbox_allow_native_models = wx.CheckBox(self.settings_menu_frame, label="Allow native models")
self.checkbox_allow_native_models.SetValue(self.constants.allow_oc_everywhere)
self.checkbox_allow_native_models.SetPosition(wx.Point(self.dropdown_model.GetPosition().x, self.dropdown_model.GetPosition().y + self.dropdown_model.GetSize().height + 10))
self.checkbox_allow_native_models.Bind(wx.EVT_CHECKBOX, self.allow_native_models_click)
self.checkbox_allow_native_models.ToolTip = wx.ToolTip("""Select to allow OpenCore to be installed on native models\nGenerally used for enabling OS features Apple locks out of native Macs\nie. AirPlay to Mac, Sidecar.""")
# Checkbox: Verbose
self.verbose_checkbox = wx.CheckBox(self.frame, label="Verbose")
self.verbose_checkbox = wx.CheckBox(self.settings_menu_frame, label="Verbose")
self.verbose_checkbox.SetValue(self.constants.verbose_debug)
self.verbose_checkbox.SetPosition(wx.Point(self.checkbox_allow_native_models.GetPosition().x, self.checkbox_allow_native_models.GetPosition().y + self.checkbox_allow_native_models.GetSize().height))
self.verbose_checkbox.Bind(wx.EVT_CHECKBOX, self.verbose_checkbox_click)
self.verbose_checkbox.ToolTip = wx.ToolTip("""Add -v (verbose) to boot-args during build""")
# Checkbox: Kext Debug
self.kext_checkbox = wx.CheckBox(self.frame, label="Kext Debug")
self.kext_checkbox = wx.CheckBox(self.settings_menu_frame, label="Kext Debug")
self.kext_checkbox.SetValue(self.constants.kext_debug)
self.kext_checkbox.SetPosition(wx.Point(self.verbose_checkbox.GetPosition().x , self.verbose_checkbox.GetPosition().y + self.verbose_checkbox.GetSize().height))
self.kext_checkbox.Bind(wx.EVT_CHECKBOX, self.kext_checkbox_click)
self.kext_checkbox.ToolTip = wx.ToolTip("""Enables additional kext logging, including expanded message buffer""")
# Checkbox: OpenCore Debug
self.opencore_checkbox = wx.CheckBox(self.frame, label="OpenCore Debug")
self.opencore_checkbox = wx.CheckBox(self.settings_menu_frame, label="OpenCore Debug")
self.opencore_checkbox.SetValue(self.constants.opencore_debug)
self.opencore_checkbox.SetPosition(wx.Point(self.kext_checkbox.GetPosition().x , self.kext_checkbox.GetPosition().y + self.kext_checkbox.GetSize().height))
self.opencore_checkbox.Bind(wx.EVT_CHECKBOX, self.oc_checkbox_click)
self.opencore_checkbox.ToolTip = wx.ToolTip("""Enables OpenCore logging, can heavily impact boot times""")
# Checkbox: SecureBootModel
self.secureboot_checkbox = wx.CheckBox(self.frame, label="SecureBootModel")
self.secureboot_checkbox = wx.CheckBox(self.settings_menu_frame, label="SecureBootModel")
self.secureboot_checkbox.SetValue(self.constants.secure_status)
self.secureboot_checkbox.SetPosition(wx.Point(self.opencore_checkbox.GetPosition().x , self.opencore_checkbox.GetPosition().y + self.opencore_checkbox.GetSize().height))
self.secureboot_checkbox.Bind(wx.EVT_CHECKBOX, self.secureboot_checkbox_click)
self.secureboot_checkbox.ToolTip = wx.ToolTip("""Sets SecureBootModel, useful for models spoofing T2 Macs to get OTA updates""")
# Checkbox: Show Boot Picker
self.bootpicker_checkbox = wx.CheckBox(self.frame, label="Show Boot Picker")
self.bootpicker_checkbox = wx.CheckBox(self.settings_menu_frame, label="Show Boot Picker")
self.bootpicker_checkbox.SetValue(self.constants.showpicker)
self.bootpicker_checkbox.SetPosition(wx.Point(self.secureboot_checkbox.GetPosition().x , self.secureboot_checkbox.GetPosition().y + self.secureboot_checkbox.GetSize().height))
self.bootpicker_checkbox.Bind(wx.EVT_CHECKBOX, self.show_picker_checkbox_click)
@@ -1998,36 +2042,36 @@ class wx_python_gui:
sip_string = "Enabled"
else:
sip_string = "Lowered"
self.sip_button = wx.Button(self.frame, label=f"SIP Settings ({sip_string})", size=(155,30))
self.sip_button = wx.Button(self.settings_menu_frame, label=f"SIP Settings ({sip_string})", size=(155,30))
self.sip_button.SetPosition(wx.Point(self.bootpicker_checkbox.GetPosition().x , self.bootpicker_checkbox.GetPosition().y + self.bootpicker_checkbox.GetSize().height + 10))
self.sip_button.Bind(wx.EVT_BUTTON, self.sip_config_menu)
self.sip_button.Center(wx.HORIZONTAL)
# Button: SMBIOS Settings
self.smbios_button = wx.Button(self.frame, label="SMBIOS Settings", size=(155,30))
self.smbios_button = wx.Button(self.settings_menu_frame, label="SMBIOS Settings", size=(155,30))
self.smbios_button.SetPosition(wx.Point(self.sip_button.GetPosition().x , self.sip_button.GetPosition().y + self.sip_button.GetSize().height))
self.smbios_button.Bind(wx.EVT_BUTTON, self.smbios_settings_menu)
self.smbios_button.Center(wx.HORIZONTAL)
# Button: Misc Settings
self.misc_button = wx.Button(self.frame, label="Misc Settings", size=(155,30))
self.misc_button = wx.Button(self.settings_menu_frame, label="Misc Settings", size=(155,30))
self.misc_button.SetPosition(wx.Point(self.smbios_button.GetPosition().x , self.smbios_button.GetPosition().y + self.smbios_button.GetSize().height))
self.misc_button.Bind(wx.EVT_BUTTON, self.misc_settings_menu)
self.misc_button.Center(wx.HORIZONTAL)
# Button: non-Metal Settings
self.nonmetal_button = wx.Button(self.frame, label="Non-Metal Settings", size=(155,30))
self.nonmetal_button = wx.Button(self.settings_menu_frame, label="Non-Metal Settings", size=(155,30))
self.nonmetal_button.SetPosition(wx.Point(self.misc_button.GetPosition().x , self.misc_button.GetPosition().y + self.misc_button.GetSize().height))
self.nonmetal_button.Bind(wx.EVT_BUTTON, self.non_metal_config_menu)
self.nonmetal_button.Center(wx.HORIZONTAL)
# Button: Developer Settings
self.miscellaneous_button = wx.Button(self.frame, label="Developer Settings", size=(155,30))
self.miscellaneous_button = wx.Button(self.settings_menu_frame, label="Developer Settings", size=(155,30))
self.miscellaneous_button.SetPosition(wx.Point(self.nonmetal_button.GetPosition().x , self.nonmetal_button.GetPosition().y + self.nonmetal_button.GetSize().height))
self.miscellaneous_button.Bind(wx.EVT_BUTTON, self.dev_settings_menu)
self.miscellaneous_button.Centre(wx.HORIZONTAL)
self.return_to_main_menu = wx.Button(self.frame, label="Return to Main Menu", size=(155,30))
self.return_to_main_menu = wx.Button(self.settings_menu_frame, label="Return to Main Menu", size=(155,30))
self.return_to_main_menu.SetPosition(
wx.Point(
self.miscellaneous_button.GetPosition().x,
@@ -2038,8 +2082,9 @@ class wx_python_gui:
self.return_to_main_menu.Centre(wx.HORIZONTAL)
# Set frame size to below return_to_main_menu button
self.frame.SetSize(-1, self.return_to_main_menu.GetPosition().y + self.return_to_main_menu.GetSize().height + 40)
self.settings_menu_frame.SetSize(wx.Size(-1, self.return_to_main_menu.GetPosition().y + self.return_to_main_menu.GetSize().height + 40))
self.settings_menu_frame.ShowWindowModal()
def model_choice_click(self, event=None):
user_choice = self.dropdown_model.GetStringSelection()
if user_choice == self.computer.real_model:
@@ -2116,31 +2161,31 @@ class wx_python_gui:
self.constants.showpicker = False
def dev_settings_menu(self, event=None):
self.frame.DestroyChildren()
self.reset_settings_modal_frame()
# Header
self.header = wx.StaticText(self.frame, label="Developer Settings", style=wx.ALIGN_CENTRE)
self.header = wx.StaticText(self.settings_menu_frame, label="Developer Settings", style=wx.ALIGN_CENTRE)
self.header.SetFont(wx.Font(18, wx.FONTFAMILY_DEFAULT, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_BOLD))
self.header.SetPosition(wx.Point(0, 10))
self.header.SetSize(wx.Size(self.frame.GetSize().width, 30))
self.header.SetSize(wx.Size(self.settings_menu_frame.GetSize().width, 30))
self.header.Centre(wx.HORIZONTAL)
# Subheader: If unfamiliar with the following settings, please do not change them.
self.subheader = wx.StaticText(self.frame, label="Do not change if unfamiliar", style=wx.ALIGN_CENTRE)
self.subheader = wx.StaticText(self.settings_menu_frame, label="Do not change if unfamiliar", style=wx.ALIGN_CENTRE)
self.subheader.SetFont(wx.Font(12, wx.FONTFAMILY_DEFAULT, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_NORMAL))
self.subheader.SetPosition(wx.Point(0, self.header.GetPosition().y + self.header.GetSize().height))
self.subheader.SetSize(wx.Size(self.frame.GetSize().width, 30))
self.subheader.SetSize(wx.Size(self.settings_menu_frame.GetSize().width, 30))
self.subheader.Centre(wx.HORIZONTAL)
# Label: Set GPU Model for MXM iMacs
self.label_model = wx.StaticText(self.frame, label="Set GPU Model for MXM iMacs:", style=wx.ALIGN_CENTRE)
self.label_model = wx.StaticText(self.settings_menu_frame, label="Set GPU Model for MXM iMacs:", style=wx.ALIGN_CENTRE)
self.label_model.SetFont(wx.Font(12, wx.FONTFAMILY_DEFAULT, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_NORMAL))
self.label_model.SetPosition(wx.Point(0, self.subheader.GetPosition().y + self.subheader.GetSize().height + 2))
self.label_model.SetSize(wx.Size(self.frame.GetSize().width, 30))
self.label_model.SetSize(wx.Size(self.settings_menu_frame.GetSize().width, 30))
self.label_model.Centre(wx.HORIZONTAL)
# Dropdown: GPU Model
self.gpu_dropdown = wx.Choice(self.frame)
self.gpu_dropdown = wx.Choice(self.settings_menu_frame)
for gpu in ["None", "Nvidia Kepler", "AMD GCN", "AMD Polaris"]:
self.gpu_dropdown.Append(gpu)
self.gpu_dropdown.SetSelection(0)
@@ -2154,7 +2199,7 @@ class wx_python_gui:
self.gpu_dropdown.Disable()
# Disable Thunderbolt
self.disable_thunderbolt_checkbox = wx.CheckBox(self.frame, label="Disable Thunderbolt")
self.disable_thunderbolt_checkbox = wx.CheckBox(self.settings_menu_frame, label="Disable Thunderbolt")
self.disable_thunderbolt_checkbox.SetValue(self.constants.disable_tb)
self.disable_thunderbolt_checkbox.Bind(wx.EVT_CHECKBOX, self.disable_tb_click)
self.disable_thunderbolt_checkbox.SetPosition(wx.Point(
@@ -2164,7 +2209,7 @@ class wx_python_gui:
if not self.constants.custom_model and not self.computer.real_model.startswith("MacBookPro11"):
self.disable_thunderbolt_checkbox.Disable()
# Set TeraScale 2 Accel
self.set_terascale_accel_checkbox = wx.CheckBox(self.frame, label="Set TeraScale 2 Accel")
self.set_terascale_accel_checkbox = wx.CheckBox(self.settings_menu_frame, label="Set TeraScale 2 Accel")
self.set_terascale_accel_checkbox.SetValue(self.constants.allow_ts2_accel)
self.set_terascale_accel_checkbox.Bind(wx.EVT_CHECKBOX, self.ts2_accel_click)
self.set_terascale_accel_checkbox.SetPosition(wx.Point(
@@ -2175,7 +2220,7 @@ class wx_python_gui:
self.set_terascale_accel_checkbox.Disable()
# Windows GMUX
self.windows_gmux_checkbox = wx.CheckBox(self.frame, label="Windows GMUX")
self.windows_gmux_checkbox = wx.CheckBox(self.settings_menu_frame, label="Windows GMUX")
self.windows_gmux_checkbox.SetValue(self.constants.dGPU_switch)
self.windows_gmux_checkbox.Bind(wx.EVT_CHECKBOX, self.windows_gmux_click)
self.windows_gmux_checkbox.SetPosition(wx.Point(
@@ -2184,7 +2229,7 @@ class wx_python_gui:
self.windows_gmux_checkbox.SetToolTip(wx.ToolTip("Enable this option to allow usage of the hardware GMUX to switch between Intel and Nvidia/AMD GPUs in Windows."))
# Hibernation Workaround
self.hibernation_checkbox = wx.CheckBox(self.frame, label="Hibernation Workaround")
self.hibernation_checkbox = wx.CheckBox(self.settings_menu_frame, label="Hibernation Workaround")
self.hibernation_checkbox.SetValue(self.constants.disable_connectdrivers)
self.hibernation_checkbox.Bind(wx.EVT_CHECKBOX, self.hibernation_click)
self.hibernation_checkbox.SetPosition(wx.Point(
@@ -2193,7 +2238,7 @@ class wx_python_gui:
self.hibernation_checkbox.SetToolTip(wx.ToolTip("This will disable the ConnectDrivers in OpenCore\nRecommended to toggle if your machine is having issues with hibernation.\nMainly applicable for MacBookPro9,1 and MacBookPro10,1"))
# Disable Battery Throttling
self.disable_battery_throttling_checkbox = wx.CheckBox(self.frame, label="Disable Firmware Throttling")
self.disable_battery_throttling_checkbox = wx.CheckBox(self.settings_menu_frame, label="Disable Firmware Throttling")
self.disable_battery_throttling_checkbox.SetValue(self.constants.disable_msr_power_ctl)
self.disable_battery_throttling_checkbox.Bind(wx.EVT_CHECKBOX, self.disable_battery_throttling_click)
self.disable_battery_throttling_checkbox.SetPosition(wx.Point(
@@ -2202,7 +2247,7 @@ class wx_python_gui:
self.disable_battery_throttling_checkbox.SetToolTip(wx.ToolTip("This will forcefully disable MSR Power Control on Arrendale and newer Macs\nMainly applicable for systems with severe throttling due to missing battery or display"))
# Disable XCPM
self.disable_xcpm_checkbox = wx.CheckBox(self.frame, label="Disable XCPM")
self.disable_xcpm_checkbox = wx.CheckBox(self.settings_menu_frame, label="Disable XCPM")
self.disable_xcpm_checkbox.SetValue(self.constants.disable_xcpm)
self.disable_xcpm_checkbox.Bind(wx.EVT_CHECKBOX, self.disable_xcpm_click)
self.disable_xcpm_checkbox.SetPosition(wx.Point(
@@ -2211,7 +2256,7 @@ class wx_python_gui:
self.disable_xcpm_checkbox.SetToolTip(wx.ToolTip("This will forcefully disable XCPM on Ivy Bridge EP and newer Macs\nMainly applicable for systems with severe throttling due to missing battery or display"))
# Software Demux
self.software_demux_checkbox = wx.CheckBox(self.frame, label="Software Demux")
self.software_demux_checkbox = wx.CheckBox(self.settings_menu_frame, label="Software Demux")
self.software_demux_checkbox.SetValue(self.constants.software_demux)
self.software_demux_checkbox.Bind(wx.EVT_CHECKBOX, self.software_demux_click)
self.software_demux_checkbox.SetPosition(wx.Point(
@@ -2222,7 +2267,7 @@ class wx_python_gui:
self.software_demux_checkbox.Disable()
# Disable CPUFriend
self.disable_cpu_friend_checkbox = wx.CheckBox(self.frame, label="Disable CPUFriend")
self.disable_cpu_friend_checkbox = wx.CheckBox(self.settings_menu_frame, label="Disable CPUFriend")
self.disable_cpu_friend_checkbox.SetValue(self.constants.disallow_cpufriend)
self.disable_cpu_friend_checkbox.Bind(wx.EVT_CHECKBOX, self.disable_cpu_friend_click)
self.disable_cpu_friend_checkbox.SetPosition(wx.Point(
@@ -2233,7 +2278,7 @@ class wx_python_gui:
self.disable_cpu_friend_checkbox.Disable()
# AppleALC Usage
self.apple_alc_checkbox = wx.CheckBox(self.frame, label="AppleALC Usage")
self.apple_alc_checkbox = wx.CheckBox(self.settings_menu_frame, label="AppleALC Usage")
self.apple_alc_checkbox.SetValue(self.constants.set_alc_usage)
self.apple_alc_checkbox.Bind(wx.EVT_CHECKBOX, self.apple_alc_click)
self.apple_alc_checkbox.SetPosition(wx.Point(
@@ -2242,7 +2287,7 @@ class wx_python_gui:
self.apple_alc_checkbox.SetToolTip(wx.ToolTip("This will set whether AppleALC is allowed to be used during config building.\nMainly applicable for MacPro3,1s that do not have boot screen support, thus preventing AppleALC from working."))
# Set WriteFlash
self.set_writeflash_checkbox = wx.CheckBox(self.frame, label="Set NVRAM WriteFlash")
self.set_writeflash_checkbox = wx.CheckBox(self.settings_menu_frame, label="Set NVRAM WriteFlash")
self.set_writeflash_checkbox.SetValue(self.constants.nvram_write)
self.set_writeflash_checkbox.Bind(wx.EVT_CHECKBOX, self.set_writeflash_click)
self.set_writeflash_checkbox.SetPosition(wx.Point(
@@ -2250,7 +2295,7 @@ class wx_python_gui:
self.apple_alc_checkbox.GetPosition().y + self.apple_alc_checkbox.GetSize().height))
self.set_writeflash_checkbox.SetToolTip(wx.ToolTip("This will set whether OpenCore is allowed to write to hardware NVRAM.\nDisable this option if your system has degraded or fragile NVRAM."))
# Set Enhanced 3rd Party SSD
self.set_enhanced_3rd_party_ssd_checkbox = wx.CheckBox(self.frame, label="Enhanced SSD Support")
self.set_enhanced_3rd_party_ssd_checkbox = wx.CheckBox(self.settings_menu_frame, label="Enhanced SSD Support")
self.set_enhanced_3rd_party_ssd_checkbox.SetValue(self.constants.allow_3rd_party_drives)
self.set_enhanced_3rd_party_ssd_checkbox.Bind(wx.EVT_CHECKBOX, self.set_enhanced_3rd_party_ssd_click)
self.set_enhanced_3rd_party_ssd_checkbox.SetPosition(wx.Point(
@@ -2261,7 +2306,7 @@ class wx_python_gui:
self.set_enhanced_3rd_party_ssd_checkbox.Disable()
# Set Ignore App Updates
self.set_ignore_app_updates_checkbox = wx.CheckBox(self.frame, label="Ignore App Updates")
self.set_ignore_app_updates_checkbox = wx.CheckBox(self.settings_menu_frame, label="Ignore App Updates")
self.set_ignore_app_updates_checkbox.SetValue(self.constants.ignore_updates)
self.set_ignore_app_updates_checkbox.Bind(wx.EVT_CHECKBOX, self.set_ignore_app_updates_click)
self.set_ignore_app_updates_checkbox.SetPosition(wx.Point(
@@ -2271,7 +2316,7 @@ class wx_python_gui:
# Button: Developer Debug Info
self.debug_button = wx.Button(self.frame, label="Developer Debug Info")
self.debug_button = wx.Button(self.settings_menu_frame, label="Developer Debug Info")
self.debug_button.Bind(wx.EVT_BUTTON, self.additional_info_menu)
self.debug_button.SetPosition(wx.Point(
self.set_ignore_app_updates_checkbox.GetPosition().x,
@@ -2279,16 +2324,18 @@ class wx_python_gui:
self.debug_button.Center(wx.HORIZONTAL)
# Button: return to main menu
self.return_to_main_menu_button = wx.Button(self.frame, label="Return to Settings")
self.return_to_main_menu_button = wx.Button(self.settings_menu_frame, label="Return to Settings")
self.return_to_main_menu_button.Bind(wx.EVT_BUTTON, self.settings_menu)
self.return_to_main_menu_button.SetPosition(wx.Point(
self.debug_button.GetPosition().x,
self.debug_button.GetPosition().y + self.debug_button.GetSize().height + 10))
self.return_to_main_menu_button.Center(wx.HORIZONTAL)
# set frame size below return to main menu button
self.frame.SetSize(wx.Size(-1, self.return_to_main_menu_button.GetPosition().y + self.return_to_main_menu_button.GetSize().height + 40))
# set settings_menu_frame size below return to main menu button
self.settings_menu_frame.SetSize(wx.Size(-1, self.return_to_main_menu_button.GetPosition().y + self.return_to_main_menu_button.GetSize().height + 20))
self.settings_menu_frame.ShowWindowModal()
def set_ignore_app_updates_click(self, event):
self.constants.ignore_updates = self.set_ignore_app_updates_checkbox.GetValue()
if self.constants.ignore_updates is True:
@@ -2475,15 +2522,15 @@ class wx_python_gui:
self.constants.nvram_write = False
def smbios_settings_menu(self, event=None):
self.frame.DestroyChildren()
self.reset_settings_modal_frame()
# Header: SMBIOS Settings
self.smbios_settings_header = wx.StaticText(self.frame, label="SMBIOS Settings", pos=wx.Point(10, 10))
self.smbios_settings_header = wx.StaticText(self.settings_menu_frame, label="SMBIOS Settings", pos=wx.Point(10, 10))
self.smbios_settings_header.SetFont(wx.Font(16, wx.FONTFAMILY_DEFAULT, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_BOLD))
self.smbios_settings_header.Center(wx.HORIZONTAL)
# Label: SMBIOS Spoof Level
self.smbios_spoof_level_label = wx.StaticText(self.frame, label="SMBIOS Spoof Level")
self.smbios_spoof_level_label = wx.StaticText(self.settings_menu_frame, label="SMBIOS Spoof Level")
self.smbios_spoof_level_label.SetFont(wx.Font(12, wx.FONTFAMILY_DEFAULT, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_NORMAL))
self.smbios_spoof_level_label.SetPosition(
wx.Point(self.smbios_settings_header.GetPosition().x, self.smbios_settings_header.GetPosition().y + self.smbios_settings_header.GetSize().height + 10)
@@ -2491,7 +2538,7 @@ class wx_python_gui:
self.smbios_spoof_level_label.Center(wx.HORIZONTAL)
# Dropdown: SMBIOS Spoof Level
self.smbios_dropdown = wx.Choice(self.frame)
self.smbios_dropdown = wx.Choice(self.settings_menu_frame)
self.smbios_dropdown.SetPosition(
wx.Point(self.smbios_spoof_level_label.GetPosition().x, self.smbios_spoof_level_label.GetPosition().y + self.smbios_spoof_level_label.GetSize().height + 10)
)
@@ -2501,7 +2548,7 @@ class wx_python_gui:
self.smbios_dropdown.Center(wx.HORIZONTAL)
# Label: SMBIOS Spoof Model
self.smbios_spoof_model_label = wx.StaticText(self.frame, label="SMBIOS Spoof Model")
self.smbios_spoof_model_label = wx.StaticText(self.settings_menu_frame, label="SMBIOS Spoof Model")
self.smbios_spoof_model_label.SetFont(wx.Font(12, wx.FONTFAMILY_DEFAULT, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_NORMAL))
self.smbios_spoof_model_label.SetPosition(
wx.Point(self.smbios_dropdown.GetPosition().x, self.smbios_dropdown.GetPosition().y + self.smbios_dropdown.GetSize().height + 10)
@@ -2509,7 +2556,7 @@ class wx_python_gui:
self.smbios_spoof_model_label.Center(wx.HORIZONTAL)
# Dropdown: SMBIOS Spoof Model
self.smbios_model_dropdown = wx.Choice(self.frame)
self.smbios_model_dropdown = wx.Choice(self.settings_menu_frame)
self.smbios_model_dropdown.SetPosition(
wx.Point(self.smbios_spoof_model_label.GetPosition().x, self.smbios_spoof_model_label.GetPosition().y + self.smbios_spoof_model_label.GetSize().height + 10)
)
@@ -2523,7 +2570,7 @@ class wx_python_gui:
self.smbios_model_dropdown.Center(wx.HORIZONTAL)
# Label: Custom Serial Number
self.smbios_serial_label = wx.StaticText(self.frame, label="Custom Serial Number")
self.smbios_serial_label = wx.StaticText(self.settings_menu_frame, label="Custom Serial Number")
self.smbios_serial_label.SetFont(wx.Font(12, wx.FONTFAMILY_DEFAULT, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_NORMAL))
self.smbios_serial_label.SetPosition(
wx.Point(self.smbios_model_dropdown.GetPosition().x, self.smbios_model_dropdown.GetPosition().y + self.smbios_model_dropdown.GetSize().height + 10)
@@ -2531,7 +2578,7 @@ class wx_python_gui:
self.smbios_serial_label.Center(wx.HORIZONTAL)
# Textbox: Custom Serial Number
self.smbios_serial_textbox = wx.TextCtrl(self.frame, style=wx.TE_CENTRE)
self.smbios_serial_textbox = wx.TextCtrl(self.settings_menu_frame, style=wx.TE_CENTRE)
self.smbios_serial_textbox.SetPosition(
wx.Point(self.smbios_serial_label.GetPosition().x, self.smbios_serial_label.GetPosition().y + self.smbios_serial_label.GetSize().height + 5)
)
@@ -2541,7 +2588,7 @@ class wx_python_gui:
self.smbios_serial_textbox.Center(wx.HORIZONTAL)
# Label: Custom Board Serial Number
self.smbios_board_serial_label = wx.StaticText(self.frame, label="Custom Board Serial Number")
self.smbios_board_serial_label = wx.StaticText(self.settings_menu_frame, label="Custom Board Serial Number")
self.smbios_board_serial_label.SetFont(wx.Font(12, wx.FONTFAMILY_DEFAULT, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_NORMAL))
self.smbios_board_serial_label.SetPosition(
wx.Point(self.smbios_serial_textbox.GetPosition().x, self.smbios_serial_textbox.GetPosition().y + self.smbios_serial_textbox.GetSize().height + 10)
@@ -2549,7 +2596,7 @@ class wx_python_gui:
self.smbios_board_serial_label.Center(wx.HORIZONTAL)
# Textbox: Custom Board Serial Number
self.smbios_board_serial_textbox = wx.TextCtrl(self.frame, style=wx.TE_CENTRE)
self.smbios_board_serial_textbox = wx.TextCtrl(self.settings_menu_frame, style=wx.TE_CENTRE)
self.smbios_board_serial_textbox.SetPosition(
wx.Point(self.smbios_board_serial_label.GetPosition().x, self.smbios_board_serial_label.GetPosition().y + self.smbios_board_serial_label.GetSize().height + 5)
)
@@ -2559,7 +2606,7 @@ class wx_python_gui:
self.smbios_board_serial_textbox.Center(wx.HORIZONTAL)
# Button: Generate new serials
self.smbios_generate_button = wx.Button(self.frame, label=f"Generate S/N: {self.constants.custom_model or self.computer.real_model}")
self.smbios_generate_button = wx.Button(self.settings_menu_frame, label=f"Generate S/N: {self.constants.custom_model or self.computer.real_model}")
self.smbios_generate_button.SetPosition(
wx.Point(self.smbios_board_serial_textbox.GetPosition().x, self.smbios_board_serial_textbox.GetPosition().y + self.smbios_board_serial_textbox.GetSize().height + 10)
)
@@ -2574,7 +2621,7 @@ class wx_python_gui:
self.smbios_generate_button.Disable()
# Checkbox: Allow Native Spoofs
self.native_spoof_checkbox = wx.CheckBox(self.frame, label="Allow Native Spoofs")
self.native_spoof_checkbox = wx.CheckBox(self.settings_menu_frame, label="Allow Native Spoofs")
self.native_spoof_checkbox.SetValue(self.constants.allow_native_spoofs)
self.native_spoof_checkbox.SetPosition(
wx.Point(self.smbios_generate_button.GetPosition().x, self.smbios_generate_button.GetPosition().y + self.smbios_generate_button.GetSize().height + 10)
@@ -2586,14 +2633,15 @@ class wx_python_gui:
self.native_spoof_checkbox.Disable()
# Button: Return to Main Menu
self.return_to_main_menu_button = wx.Button(self.frame, label="Return to Settings")
self.return_to_main_menu_button = wx.Button(self.settings_menu_frame, label="Return to Settings")
self.return_to_main_menu_button.SetPosition(
wx.Point(self.native_spoof_checkbox.GetPosition().x, self.native_spoof_checkbox.GetPosition().y + self.native_spoof_checkbox.GetSize().height + 10)
)
self.return_to_main_menu_button.Bind(wx.EVT_BUTTON, self.settings_menu)
self.return_to_main_menu_button.Center(wx.HORIZONTAL)
self.frame.SetSize(wx.Size(-1, self.return_to_main_menu_button.GetPosition().y + self.return_to_main_menu_button.GetSize().height + 40))
self.settings_menu_frame.SetSize(wx.Size(-1, self.return_to_main_menu_button.GetPosition().y + self.return_to_main_menu_button.GetSize().height + 40))
self.settings_menu_frame.ShowWindowModal()
def smbios_serial_click(self, event):
self.constants.custom_serial_number = self.smbios_serial_textbox.GetValue()
@@ -2630,16 +2678,16 @@ class wx_python_gui:
self.constants.override_smbios = selection
def additional_info_menu(self, event=None):
self.frame.DestroyChildren()
self.frame.SetSize(wx.Size(500, -1))
self.reset_settings_modal_frame()
self.settings_menu_frame.SetSize(wx.Size(500, -1))
# Header: Additional Info
self.additional_info_header = wx.StaticText(self.frame, label="Developer Debug Info", pos=wx.Point(10, 10))
self.additional_info_header = wx.StaticText(self.settings_menu_frame, label="Developer Debug Info", pos=wx.Point(10, 10))
self.additional_info_header.SetFont(wx.Font(16, wx.FONTFAMILY_DEFAULT, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_BOLD))
self.additional_info_header.Center(wx.HORIZONTAL)
# Label: Real User ID
self.real_user_id_label = wx.StaticText(self.frame, label=f"Current UID: {os.getuid()} - ({os.geteuid()})")
self.real_user_id_label = wx.StaticText(self.settings_menu_frame, label=f"Current UID: {os.getuid()} - ({os.geteuid()})")
self.real_user_id_label.SetFont(wx.Font(12, wx.FONTFAMILY_DEFAULT, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_NORMAL))
self.real_user_id_label.SetPosition(
wx.Point(self.additional_info_header.GetPosition().x, self.additional_info_header.GetPosition().y + self.additional_info_header.GetSize().height + 10)
@@ -2647,7 +2695,7 @@ class wx_python_gui:
self.real_user_id_label.Center(wx.HORIZONTAL)
# Label: Model Dump
self.model_dump_label = wx.StaticText(self.frame, label="Model Dump")
self.model_dump_label = wx.StaticText(self.settings_menu_frame, label="Model Dump")
self.model_dump_label.SetFont(wx.Font(12, wx.FONTFAMILY_DEFAULT, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_NORMAL))
self.model_dump_label.SetPosition(
wx.Point(self.real_user_id_label.GetPosition().x, self.real_user_id_label.GetPosition().y + self.real_user_id_label.GetSize().height + 10)
@@ -2655,14 +2703,14 @@ class wx_python_gui:
self.model_dump_label.Center(wx.HORIZONTAL)
# Textbox: Model Dump
self.model_dump_textbox = wx.TextCtrl(self.frame, style=wx.TE_MULTILINE, pos=wx.Point(self.model_dump_label.GetPosition().x, self.model_dump_label.GetPosition().y + self.model_dump_label.GetSize().height + 10))
self.model_dump_textbox = wx.TextCtrl(self.settings_menu_frame, style=wx.TE_MULTILINE, pos=wx.Point(self.model_dump_label.GetPosition().x, self.model_dump_label.GetPosition().y + self.model_dump_label.GetSize().height + 10))
self.model_dump_textbox.SetValue(str(self.constants.computer))
self.model_dump_textbox.SetPosition(
wx.Point(self.model_dump_label.GetPosition().x, self.model_dump_label.GetPosition().y + self.model_dump_label.GetSize().height + 10)
)
self.model_dump_textbox.SetSize(
wx.Size(
self.frame.GetSize().width - 5,
self.settings_menu_frame.GetSize().width - 5,
self.model_dump_textbox.GetSize().height + self.model_dump_textbox.GetSize().height
)
)
@@ -2672,7 +2720,7 @@ class wx_python_gui:
# Label: Launcher Binary
self.launcher_binary_label = wx.StaticText(self.frame, label="Launcher Binary")
self.launcher_binary_label = wx.StaticText(self.settings_menu_frame, label="Launcher Binary")
self.launcher_binary_label.SetFont(wx.Font(12, wx.FONTFAMILY_DEFAULT, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_NORMAL))
self.launcher_binary_label.SetPosition(
wx.Point(self.model_dump_textbox.GetPosition().x, self.model_dump_textbox.GetPosition().y + self.model_dump_textbox.GetSize().height + 10)
@@ -2680,17 +2728,17 @@ class wx_python_gui:
self.launcher_binary_label.Center(wx.HORIZONTAL)
# Textbox: Launcher Binary
self.launcher_binary_textbox = wx.TextCtrl(self.frame, style=wx.TE_MULTILINE, pos=wx.Point(self.launcher_binary_label.GetPosition().x, self.launcher_binary_label.GetPosition().y + self.launcher_binary_label.GetSize().height + 10))
self.launcher_binary_textbox = wx.TextCtrl(self.settings_menu_frame, style=wx.TE_MULTILINE, pos=wx.Point(self.launcher_binary_label.GetPosition().x, self.launcher_binary_label.GetPosition().y + self.launcher_binary_label.GetSize().height + 10))
self.launcher_binary_textbox.SetValue(self.constants.launcher_binary)
self.launcher_binary_textbox.SetPosition(
wx.Point(self.launcher_binary_label.GetPosition().x, self.launcher_binary_label.GetPosition().y + self.launcher_binary_label.GetSize().height + 10)
)
self.launcher_binary_textbox.SetSize(wx.Size(self.frame.GetSize().width - 5, 50))
self.launcher_binary_textbox.SetSize(wx.Size(self.settings_menu_frame.GetSize().width - 5, 50))
self.launcher_binary_textbox.Center(wx.HORIZONTAL)
self.launcher_binary_textbox.SetEditable(False)
# Label: Launcher Script
self.launcher_script_label = wx.StaticText(self.frame, label="Launcher Script")
self.launcher_script_label = wx.StaticText(self.settings_menu_frame, label="Launcher Script")
self.launcher_script_label.SetFont(wx.Font(12, wx.FONTFAMILY_DEFAULT, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_NORMAL))
self.launcher_script_label.SetPosition(
wx.Point(self.launcher_binary_textbox.GetPosition().x, self.launcher_binary_textbox.GetPosition().y + self.launcher_binary_textbox.GetSize().height + 10)
@@ -2698,38 +2746,39 @@ class wx_python_gui:
self.launcher_script_label.Center(wx.HORIZONTAL)
# Textbox: Launcher Script
self.launcher_script_textbox = wx.TextCtrl(self.frame, style=wx.TE_MULTILINE, pos=wx.Point(self.launcher_script_label.GetPosition().x, self.launcher_script_label.GetPosition().y + self.launcher_script_label.GetSize().height + 10))
self.launcher_script_textbox = wx.TextCtrl(self.settings_menu_frame, style=wx.TE_MULTILINE, pos=wx.Point(self.launcher_script_label.GetPosition().x, self.launcher_script_label.GetPosition().y + self.launcher_script_label.GetSize().height + 10))
self.launcher_script_textbox.SetValue(str(self.constants.launcher_script))
self.launcher_script_textbox.SetPosition(
wx.Point(self.launcher_script_label.GetPosition().x, self.launcher_script_label.GetPosition().y + self.launcher_script_label.GetSize().height + 10)
)
self.launcher_script_textbox.SetSize(wx.Size(self.frame.GetSize().width - 5, 60))
self.launcher_script_textbox.SetSize(wx.Size(self.settings_menu_frame.GetSize().width - 5, 60))
self.launcher_script_textbox.Center(wx.HORIZONTAL)
self.launcher_script_textbox.SetEditable(False)
self.return_to_main_menu_button = wx.Button(self.frame, label="Return to Settings")
self.return_to_main_menu_button = wx.Button(self.settings_menu_frame, label="Return to Settings")
self.return_to_main_menu_button.SetPosition(
wx.Point(self.launcher_script_textbox.GetPosition().x, self.launcher_script_textbox.GetPosition().y + self.launcher_script_textbox.GetSize().height + 10)
)
self.return_to_main_menu_button.Bind(wx.EVT_BUTTON, self.settings_menu)
self.return_to_main_menu_button.Center(wx.HORIZONTAL)
# Set frame below return to main menu button
self.frame.SetSize(wx.Size(-1, self.return_to_main_menu_button.GetPosition().y + self.return_to_main_menu_button.GetSize().height + 40))
# Set settings_menu_frame below return to main menu button
self.settings_menu_frame.SetSize(wx.Size(-1, self.return_to_main_menu_button.GetPosition().y + self.return_to_main_menu_button.GetSize().height + 40))
self.settings_menu_frame.ShowWindowModal()
def sip_config_menu(self, event=None):
self.frame.DestroyChildren()
self.frame.SetSize(wx.Size(400, 600))
self.reset_settings_modal_frame()
self.settings_menu_frame.SetSize(wx.Size(400, 600))
# Title: Configure SIP
self.configure_sip_title = wx.StaticText(self.frame, label="Configure SIP")
self.configure_sip_title = wx.StaticText(self.settings_menu_frame, label="Configure SIP")
self.configure_sip_title.SetFont(wx.Font(18, wx.FONTFAMILY_DEFAULT, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_NORMAL))
self.configure_sip_title.Center(wx.HORIZONTAL)
# Label: Flip indivdual bits corresponding to XNU's csr.h
# If you're unfamiliar with how SIP works, do not touch this menu
self.sip_label = wx.StaticText(self.frame, label="Flip indivdual bits corresponding to")
self.sip_label = wx.StaticText(self.settings_menu_frame, label="Flip indivdual bits corresponding to")
self.sip_label.SetFont(wx.Font(12, wx.FONTFAMILY_DEFAULT, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_NORMAL))
self.sip_label.SetPosition(
wx.Point(-1, self.configure_sip_title.GetPosition().y + self.configure_sip_title.GetSize().height + 10)
@@ -2740,7 +2789,7 @@ class wx_python_gui:
)
hyperlink_label = hyperlink.HyperLinkCtrl(
self.frame,
self.settings_menu_frame,
-1,
"XNU's csr.h",
pos=(self.sip_label.GetPosition().x + self.sip_label.GetSize().width, self.sip_label.GetPosition().y),
@@ -2755,35 +2804,35 @@ class wx_python_gui:
else:
self.sip_value = 0x802
self.sip_label_2 = wx.StaticText(self.frame, label=f"Currently configured SIP: {hex(self.sip_value)}")
self.sip_label_2 = wx.StaticText(self.settings_menu_frame, label=f"Currently configured SIP: {hex(self.sip_value)}")
self.sip_label_2.SetFont(wx.Font(12, wx.FONTFAMILY_DEFAULT, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_BOLD))
self.sip_label_2.SetPosition(
wx.Point(self.sip_label.GetPosition().x, self.sip_label.GetPosition().y + self.sip_label.GetSize().height + 10)
)
self.sip_label_2.Center(wx.HORIZONTAL)
self.sip_label_2_2 = wx.StaticText(self.frame, label=f"Currently Booted SIP: {hex(utilities.csr_dump())}")
self.sip_label_2_2 = wx.StaticText(self.settings_menu_frame, label=f"Currently Booted SIP: {hex(utilities.csr_dump())}")
self.sip_label_2_2.SetFont(wx.Font(12, wx.FONTFAMILY_DEFAULT, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_NORMAL))
self.sip_label_2_2.SetPosition(
wx.Point(self.sip_label_2.GetPosition().x, self.sip_label_2.GetPosition().y + self.sip_label_2.GetSize().height + 5)
)
self.sip_label_2_2.Center(wx.HORIZONTAL)
self.sip_label_3 = wx.StaticText(self.frame, label="For older Macs requiring root patching, we set SIP to\n be partially disabled (0x802) to allow root patching.")
self.sip_label_3 = wx.StaticText(self.settings_menu_frame, label="For older Macs requiring root patching, we set SIP to\n be partially disabled (0x802) to allow root patching.")
self.sip_label_3.SetFont(wx.Font(12, wx.FONTFAMILY_DEFAULT, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_NORMAL))
self.sip_label_3.SetPosition(
wx.Point(self.sip_label_2_2.GetPosition().x, self.sip_label_2_2.GetPosition().y + self.sip_label_2_2.GetSize().height + 10)
)
self.sip_label_3.Center(wx.HORIZONTAL)
self.sip_label_4 = wx.StaticText(self.frame, label="This value (0x802) corresponds to the following bits in csr.h:")
self.sip_label_4 = wx.StaticText(self.settings_menu_frame, label="This value (0x802) corresponds to the following bits in csr.h:")
self.sip_label_4.SetFont(wx.Font(12, wx.FONTFAMILY_DEFAULT, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_NORMAL))
self.sip_label_4.SetPosition(
wx.Point(self.sip_label_3.GetPosition().x, self.sip_label_3.GetPosition().y + self.sip_label_3.GetSize().height + 5)
)
self.sip_label_4.Center(wx.HORIZONTAL)
self.sip_label_5 = wx.StaticText(self.frame, label=" 0x2 - CSR_ALLOW_UNRESTRICTED_FS\n 0x800 - CSR_ALLOW_UNAUTHENTICATED_ROOT")
self.sip_label_5 = wx.StaticText(self.settings_menu_frame, label=" 0x2 - CSR_ALLOW_UNRESTRICTED_FS\n 0x800 - CSR_ALLOW_UNAUTHENTICATED_ROOT")
self.sip_label_5.SetFont(wx.Font(12, wx.FONTFAMILY_DEFAULT, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_NORMAL))
self.sip_label_5.SetPosition(
wx.Point(self.sip_label_4.GetPosition().x, self.sip_label_4.GetPosition().y + self.sip_label_4.GetSize().height + 7)
@@ -2796,7 +2845,7 @@ OpenCore Legacy Patcher by default knows the most ideal
understand the consequences. Reckless usage of this
menu can break your installation.
"""
self.sip_label_6 = wx.StaticText(self.frame, label=warning_string)
self.sip_label_6 = wx.StaticText(self.settings_menu_frame, label=warning_string)
self.sip_label_6.SetFont(wx.Font(12, wx.FONTFAMILY_DEFAULT, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_NORMAL))
self.sip_label_6.SetPosition(
wx.Point(self.sip_label_5.GetPosition().x, self.sip_label_5.GetPosition().y + self.sip_label_5.GetSize().height - 10)
@@ -2805,7 +2854,7 @@ OpenCore Legacy Patcher by default knows the most ideal
i = -10
for sip_bit in sip_data.system_integrity_protection.csr_values_extended:
self.sip_checkbox = wx.CheckBox(self.frame, label=sip_data.system_integrity_protection.csr_values_extended[sip_bit]["name"])
self.sip_checkbox = wx.CheckBox(self.settings_menu_frame, label=sip_data.system_integrity_protection.csr_values_extended[sip_bit]["name"])
self.sip_checkbox.SetFont(wx.Font(12, wx.FONTFAMILY_DEFAULT, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_NORMAL))
self.sip_checkbox.SetToolTip(f'Description: {sip_data.system_integrity_protection.csr_values_extended[sip_bit]["description"]}\nValue: {hex(sip_data.system_integrity_protection.csr_values_extended[sip_bit]["value"])}\nIntroduced in: macOS {sip_data.system_integrity_protection.csr_values_extended[sip_bit]["introduced_friendly"]}')
self.sip_checkbox.SetPosition(
@@ -2817,16 +2866,17 @@ OpenCore Legacy Patcher by default knows the most ideal
self.sip_checkbox.SetValue(True)
# Button: returns to the main menu
self.return_to_main_menu_button = wx.Button(self.frame, label="Return to Settings")
self.return_to_main_menu_button = wx.Button(self.settings_menu_frame, label="Return to Settings")
self.return_to_main_menu_button.SetPosition(
wx.Point(self.sip_checkbox.GetPosition().x, self.sip_checkbox.GetPosition().y + self.sip_checkbox.GetSize().height + 15)
)
self.return_to_main_menu_button.Bind(wx.EVT_BUTTON, self.settings_menu)
self.return_to_main_menu_button.Center(wx.HORIZONTAL)
# Set the frame size
self.frame.SetSize(wx.Size(-1, self.return_to_main_menu_button.GetPosition().y + self.return_to_main_menu_button.GetSize().height + 40))
# Set the settings_menu_frame size
self.settings_menu_frame.SetSize(wx.Size(-1, self.return_to_main_menu_button.GetPosition().y + self.return_to_main_menu_button.GetSize().height + 40))
self.settings_menu_frame.ShowWindowModal()
def update_sip_value(self, event):
dict = sip_data.system_integrity_protection.csr_values_extended[event.GetEventObject().GetLabel()]
if event.GetEventObject().GetValue() is True:
@@ -2845,36 +2895,36 @@ OpenCore Legacy Patcher by default knows the most ideal
self.sip_label_2.Center(wx.HORIZONTAL)
def misc_settings_menu(self, event):
self.frame.DestroyChildren()
self.reset_settings_modal_frame()
# Header
self.header = wx.StaticText(self.frame, label="Misc Settings", style=wx.ALIGN_CENTRE)
self.header = wx.StaticText(self.settings_menu_frame, label="Misc Settings", style=wx.ALIGN_CENTRE)
self.header.SetFont(wx.Font(18, wx.FONTFAMILY_DEFAULT, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_BOLD))
self.header.SetPosition(wx.Point(0, 10))
self.header.SetSize(wx.Size(self.frame.GetSize().width, 30))
self.header.SetSize(wx.Size(self.settings_menu_frame.GetSize().width, 30))
self.header.Centre(wx.HORIZONTAL)
# Subheader: If unfamiliar with the following settings, please do not change them.
self.subheader = wx.StaticText(self.frame, label="Configure settings", style=wx.ALIGN_CENTRE)
self.subheader = wx.StaticText(self.settings_menu_frame, label="Configure settings", style=wx.ALIGN_CENTRE)
self.subheader.SetFont(wx.Font(12, wx.FONTFAMILY_DEFAULT, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_NORMAL))
self.subheader.SetPosition(wx.Point(0, self.header.GetPosition().y + self.header.GetSize().height))
self.subheader.SetSize(wx.Size(self.frame.GetSize().width, 30))
self.subheader.SetSize(wx.Size(self.settings_menu_frame.GetSize().width, 30))
self.subheader.Centre(wx.HORIZONTAL)
# Subheader: , hover over options more info
self.subheader_2 = wx.StaticText(self.frame, label="Hover over options for more info", style=wx.ALIGN_CENTRE)
self.subheader_2 = wx.StaticText(self.settings_menu_frame, label="Hover over options for more info", style=wx.ALIGN_CENTRE)
self.subheader_2.SetFont(wx.Font(12, wx.FONTFAMILY_DEFAULT, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_NORMAL))
self.subheader_2.SetPosition(wx.Point(0, self.subheader.GetPosition().y + self.subheader.GetSize().height - 15))
self.subheader_2.SetSize(wx.Size(self.frame.GetSize().width, 30))
self.subheader_2.SetSize(wx.Size(self.settings_menu_frame.GetSize().width, 30))
self.subheader_2.Centre(wx.HORIZONTAL)
# Label: Set FeatreUnlock status
self.feature_unlock_label = wx.StaticText(self.frame, label="Feature Unlock Status:", style=wx.ALIGN_CENTRE)
self.feature_unlock_label = wx.StaticText(self.settings_menu_frame, label="Feature Unlock Status:", style=wx.ALIGN_CENTRE)
self.feature_unlock_label.SetFont(wx.Font(12, wx.FONTFAMILY_DEFAULT, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_NORMAL))
self.feature_unlock_label.SetPosition(wx.Point(0, self.subheader_2.GetPosition().y + self.subheader_2.GetSize().height -5))
self.feature_unlock_label.Centre(wx.HORIZONTAL)
# Dropdown: Set Feature Unlock status
self.feature_unlock_dropdown = wx.Choice(self.frame)
self.feature_unlock_dropdown = wx.Choice(self.settings_menu_frame)
for entry in ["Enabled", "Partially enabled (No AirPlay/SideCar)", "Disabled"]:
self.feature_unlock_dropdown.Append(entry)
self.feature_unlock_dropdown.SetPosition(wx.Point(0, self.feature_unlock_label.GetPosition().y + self.feature_unlock_label.GetSize().height + 5))
@@ -2891,7 +2941,7 @@ OpenCore Legacy Patcher by default knows the most ideal
self.feature_unlock_dropdown.SetToolTip(wx.ToolTip("Set FeatureUnlock support level\nFor systems experiencing memory instability, lowering this option to disable AirPlay/Sidecar patch sets is recommended.\nFully enabling this option will unlock AirPlay to Mac and Sidecar support"))
# FireWire Boot
self.firewire_boot_checkbox = wx.CheckBox(self.frame, label="FireWire Boot")
self.firewire_boot_checkbox = wx.CheckBox(self.settings_menu_frame, label="FireWire Boot")
self.firewire_boot_checkbox.SetValue(self.constants.firewire_boot)
self.firewire_boot_checkbox.Bind(wx.EVT_CHECKBOX, self.firewire_click)
self.firewire_boot_checkbox.SetPosition(wx.Point(50, self.feature_unlock_dropdown.GetPosition().y + self.feature_unlock_dropdown.GetSize().height + 5))
@@ -2900,50 +2950,51 @@ OpenCore Legacy Patcher by default knows the most ideal
self.firewire_boot_checkbox.Disable()
# XHCI Boot
self.xhci_boot_checkbox = wx.CheckBox(self.frame, label="XHCI Boot")
self.xhci_boot_checkbox = wx.CheckBox(self.settings_menu_frame, label="XHCI Boot")
self.xhci_boot_checkbox.SetValue(self.constants.xhci_boot)
self.xhci_boot_checkbox.Bind(wx.EVT_CHECKBOX, self.xhci_click)
self.xhci_boot_checkbox.SetPosition(wx.Point(self.firewire_boot_checkbox.GetPosition().x, self.firewire_boot_checkbox.GetPosition().y + self.firewire_boot_checkbox.GetSize().height))
self.xhci_boot_checkbox.SetToolTip(wx.ToolTip("Enables XHCI/USB3.o support in UEFI for non-native systems (ie. pre-Ivy Bridge)\nRequires OpenCore to be stored on a natively bootable volume however"))
# NVMe Boot
self.nvme_boot_checkbox = wx.CheckBox(self.frame, label="NVMe Boot")
self.nvme_boot_checkbox = wx.CheckBox(self.settings_menu_frame, label="NVMe Boot")
self.nvme_boot_checkbox.SetValue(self.constants.nvme_boot)
self.nvme_boot_checkbox.Bind(wx.EVT_CHECKBOX, self.nvme_click)
self.nvme_boot_checkbox.SetPosition(wx.Point(self.xhci_boot_checkbox.GetPosition().x, self.xhci_boot_checkbox.GetPosition().y + self.xhci_boot_checkbox.GetSize().height))
self.nvme_boot_checkbox.SetToolTip(wx.ToolTip("Enables NVMe support in UEFI for non-native systems (ie. MacPro3,1)\nRequires OpenCore to be stored on a natively bootable volume however"))
# NVMe Power Management
self.nvme_power_management_checkbox = wx.CheckBox(self.frame, label="NVMe Power Management")
self.nvme_power_management_checkbox = wx.CheckBox(self.settings_menu_frame, label="NVMe Power Management")
self.nvme_power_management_checkbox.SetValue(self.constants.allow_nvme_fixing)
self.nvme_power_management_checkbox.Bind(wx.EVT_CHECKBOX, self.nvme_power_management_click)
self.nvme_power_management_checkbox.SetPosition(wx.Point(self.nvme_boot_checkbox.GetPosition().x, self.nvme_boot_checkbox.GetPosition().y + self.nvme_boot_checkbox.GetSize().height))
self.nvme_power_management_checkbox.SetToolTip(wx.ToolTip("For machines with upgraded NVMe drives, this option allows for better power management support within macOS.\nNote that some NVMe drives don't support macOS's power management settings, and can result in boot issues. Disable this option if you experience IONVMeFamily kernel panics. Mainly applicable for Skylake and newer Macs."))
# Wake on WLAN
self.wake_on_wlan_checkbox = wx.CheckBox(self.frame, label="Wake on WLAN")
self.wake_on_wlan_checkbox = wx.CheckBox(self.settings_menu_frame, label="Wake on WLAN")
self.wake_on_wlan_checkbox.SetValue(self.constants.enable_wake_on_wlan)
self.wake_on_wlan_checkbox.Bind(wx.EVT_CHECKBOX, self.wake_on_wlan_click)
self.wake_on_wlan_checkbox.SetPosition(wx.Point(self.nvme_power_management_checkbox.GetPosition().x, self.nvme_power_management_checkbox.GetPosition().y + self.nvme_power_management_checkbox.GetSize().height))
self.wake_on_wlan_checkbox.SetToolTip(wx.ToolTip("Enables Wake on WLAN for Broadcom Wifi.\nBy default, Wake on WLAN is disabled to work around Apple's wake from sleep bug causing heavily degraded networking performance.\nNote: This option is only applicable for BCM943224, BCM94331, BCM94360 and BCM943602 chipsets"))
# Content Caching
self.content_caching_checkbox = wx.CheckBox(self.frame, label="Content Caching")
self.content_caching_checkbox = wx.CheckBox(self.settings_menu_frame, label="Content Caching")
self.content_caching_checkbox.SetValue(self.constants.set_content_caching)
self.content_caching_checkbox.Bind(wx.EVT_CHECKBOX, self.content_caching_click)
self.content_caching_checkbox.SetPosition(wx.Point(self.wake_on_wlan_checkbox.GetPosition().x, self.wake_on_wlan_checkbox.GetPosition().y + self.wake_on_wlan_checkbox.GetSize().height))
self.content_caching_checkbox.SetToolTip(wx.ToolTip("Enables content caching support in macOS"))
# Button: return to main menu
self.return_to_main_menu_button = wx.Button(self.frame, label="Return to Settings")
self.return_to_main_menu_button = wx.Button(self.settings_menu_frame, label="Return to Settings")
self.return_to_main_menu_button.Bind(wx.EVT_BUTTON, self.settings_menu)
self.return_to_main_menu_button.SetPosition(wx.Point(
self.content_caching_checkbox.GetPosition().x,
self.content_caching_checkbox.GetPosition().y + self.content_caching_checkbox.GetSize().height + 10))
self.return_to_main_menu_button.Center(wx.HORIZONTAL)
# set frame size below return to main menu button
self.frame.SetSize(wx.Size(-1, self.return_to_main_menu_button.GetPosition().y + self.return_to_main_menu_button.GetSize().height + 40))
# set settings_menu_frame size below return to main menu button
self.settings_menu_frame.SetSize(wx.Size(-1, self.return_to_main_menu_button.GetPosition().y + self.return_to_main_menu_button.GetSize().height + 40))
self.settings_menu_frame.ShowWindowModal()
def non_metal_config_menu(self, event=None):
# Configures ASB's Blur settings
@@ -2957,38 +3008,38 @@ OpenCore Legacy Patcher by default knows the most ideal
# defaults read ASB_BlurOverride
# defaults write -g ASB_BlurOverride -float 30
self.frame.DestroyChildren()
self.frame.SetSize(wx.Size(400, 300))
self.reset_settings_modal_frame()
self.settings_menu_frame.SetSize(wx.Size(400, 300))
# Header 1: Configure non-Metal Settings
self.header_1 = wx.StaticText(self.frame, label="Configure non-Metal Settings")
self.header_1 = wx.StaticText(self.settings_menu_frame, label="Configure non-Metal Settings")
self.header_1.SetFont(wx.Font(16, wx.FONTFAMILY_DEFAULT, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_BOLD))
self.header_1.Centre(wx.HORIZONTAL)
self.subheader = wx.StaticText(self.frame, label="Below settings apply to systems that have installed")
self.subheader = wx.StaticText(self.settings_menu_frame, label="Below settings apply to systems that have installed")
self.subheader.SetFont(wx.Font(12, wx.FONTFAMILY_DEFAULT, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_NORMAL))
self.subheader.SetPosition(wx.Point(0, self.header_1.GetPosition().y + self.header_1.GetSize().height + 5))
self.subheader.Centre(wx.HORIZONTAL)
self.subheader_2 = wx.StaticText(self.frame, label="non-metal acceleration patches.")
self.subheader_2 = wx.StaticText(self.settings_menu_frame, label="non-metal acceleration patches.")
self.subheader_2.SetFont(wx.Font(12, wx.FONTFAMILY_DEFAULT, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_NORMAL))
self.subheader_2.SetPosition(wx.Point(0, self.subheader.GetPosition().y + self.subheader.GetSize().height))
self.subheader_2.Centre(wx.HORIZONTAL)
# This menu will allow you to enable Beta Blur features resolving some of the UI distortions experienced with non-Metal
self.subheader2_1 = wx.StaticText(self.frame, label="This menu will allow you to enable Beta Blur features resolving")
self.subheader2_1 = wx.StaticText(self.settings_menu_frame, label="This menu will allow you to enable Beta Blur features resolving")
self.subheader2_1.SetFont(wx.Font(12, wx.FONTFAMILY_DEFAULT, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_NORMAL))
self.subheader2_1.SetPosition(wx.Point(0, self.subheader_2.GetPosition().y + self.subheader_2.GetSize().height + 5))
self.subheader2_1.Centre(wx.HORIZONTAL)
self.subheader2_2 = wx.StaticText(self.frame, label="some of the UI distortions experienced with non-metal GPUs.")
self.subheader2_2 = wx.StaticText(self.settings_menu_frame, label="some of the UI distortions experienced with non-metal GPUs.")
self.subheader2_2.SetFont(wx.Font(12, wx.FONTFAMILY_DEFAULT, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_NORMAL))
self.subheader2_2.SetPosition(wx.Point(0, self.subheader2_1.GetPosition().y + self.subheader2_1.GetSize().height))
self.subheader2_2.Centre(wx.HORIZONTAL)
self.subheader_4 = wx.StaticText(self.frame, label="Note: Only logout and login is required to apply these settings")
self.subheader_4 = wx.StaticText(self.settings_menu_frame, label="Note: Only logout and login is required to apply these settings")
self.subheader_4.SetFont(wx.Font(12, wx.FONTFAMILY_DEFAULT, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_NORMAL))
self.subheader_4.SetPosition(wx.Point(0, self.subheader2_2.GetPosition().y + self.subheader2_2.GetSize().height+ 5))
self.subheader_4.Centre(wx.HORIZONTAL)
@@ -3012,32 +3063,32 @@ OpenCore Legacy Patcher by default knows the most ideal
is_rim_enabled = False
# Checkbox: Dark Menu Bar
self.dark_menu_bar_checkbox = wx.CheckBox(self.frame, label="Dark Menu Bar")
self.dark_menu_bar_checkbox = wx.CheckBox(self.settings_menu_frame, label="Dark Menu Bar")
self.dark_menu_bar_checkbox.SetValue(is_dark_menu_bar)
self.dark_menu_bar_checkbox.Bind(wx.EVT_CHECKBOX, self.enable_dark_menubar_click)
self.dark_menu_bar_checkbox.SetPosition(wx.Point(0, self.subheader_4.GetPosition().y + self.subheader_4.GetSize().height + 10))
self.dark_menu_bar_checkbox.Centre(wx.HORIZONTAL)
# Checkbox: Enable Beta Blur
self.enable_beta_blur_checkbox = wx.CheckBox(self.frame, label="Enable Beta Blur")
self.enable_beta_blur_checkbox = wx.CheckBox(self.settings_menu_frame, label="Enable Beta Blur")
self.enable_beta_blur_checkbox.SetValue(is_blur_enabled)
self.enable_beta_blur_checkbox.Bind(wx.EVT_CHECKBOX, self.enable_beta_blur_click)
self.enable_beta_blur_checkbox.SetPosition(wx.Point(self.dark_menu_bar_checkbox.GetPosition().x, self.dark_menu_bar_checkbox.GetPosition().y + self.dark_menu_bar_checkbox.GetSize().height + 7))
# Checkbox: Enable Beta Rim
self.enable_beta_rim_checkbox = wx.CheckBox(self.frame, label="Enable Beta Rim")
self.enable_beta_rim_checkbox = wx.CheckBox(self.settings_menu_frame, label="Enable Beta Rim")
self.enable_beta_rim_checkbox.SetValue(is_rim_enabled)
self.enable_beta_rim_checkbox.Bind(wx.EVT_CHECKBOX, self.enable_beta_rim_click)
self.enable_beta_rim_checkbox.SetPosition(wx.Point(self.enable_beta_blur_checkbox.GetPosition().x, self.enable_beta_blur_checkbox.GetPosition().y + self.enable_beta_blur_checkbox.GetSize().height + 7))
# Button: Return to Settings
self.return_to_settings_button = wx.Button(self.frame, label="Return to Settings")
self.return_to_settings_button = wx.Button(self.settings_menu_frame, label="Return to Settings")
self.return_to_settings_button.Bind(wx.EVT_BUTTON, self.settings_menu)
self.return_to_settings_button.SetPosition(wx.Point(0, self.enable_beta_rim_checkbox.GetPosition().y + self.enable_beta_rim_checkbox.GetSize().height + 10))
self.return_to_settings_button.Center(wx.HORIZONTAL)
self.frame.SetSize(wx.Size(-1, self.return_to_settings_button.GetPosition().y + self.return_to_settings_button.GetSize().height + 40))
self.settings_menu_frame.SetSize(wx.Size(-1, self.return_to_settings_button.GetPosition().y + self.return_to_settings_button.GetSize().height + 40))
self.settings_menu_frame.ShowWindowModal()
def enable_beta_blur_click(self, event=None):
if event.IsChecked():