diff --git a/controller.py b/controller.py index 47f15f66..d634edc2 100644 --- a/controller.py +++ b/controller.py @@ -885,6 +885,11 @@ def callbackSetEnableOverlaySmallLog(value): model.clearOverlayImage() model.shutdownOverlay() + if config.ENABLE_OVERLAY_SMALL_LOG is True: + view.setStateOverlaySmallLog("enabled") + elif config.ENABLE_OVERLAY_SMALL_LOG is False: + view.setStateOverlaySmallLog("disabled") + def callbackSetOverlaySmallLogSettings(value, set_type:str): print("callbackSetOverlaySmallLogSettings", value, set_type) pre_settings = config.OVERLAY_SMALL_LOG_SETTINGS @@ -934,8 +939,10 @@ def callbackSetEnableVrcMicMuteSync(value): config.ENABLE_VRC_MIC_MUTE_SYNC = value if config.ENABLE_VRC_MIC_MUTE_SYNC is True: model.startCheckMuteSelfStatus() + view.setStateVrcMicMuteSync("enabled") else: model.stopCheckMuteSelfStatus() + view.setStateVrcMicMuteSync("disabled") def callbackSetEnableSendMessageToVrc(value): diff --git a/view.py b/view.py index b1b8b730..3195dd57 100644 --- a/view.py +++ b/view.py @@ -140,10 +140,16 @@ class View(): # Overlay Settings - VAR_OVERLAY_SETTINGS=StringVar(value="Overlay Settings"), + VAR_OVERLAY_SETTINGS=StringVar(value="Overlay (VR)"), CALLBACK_SET_OPEN_OVERLAY_SETTINGS_WINDOW=self._openVrSettingsWindow, VAR_TO_DEFAULT_OVERLAY_SETTINGS=StringVar(value=i18n.t("overlay_settings.restore_default_settings")), CALLBACK_SET_TO_DEFAULT_OVERLAY_SETTINGS=self._toDefaultOverlaySettings, + VAR_OVERLAY_SMALL_LOG_STATE=StringVar(value=""), + + + CALLBACK_SET_OPEN_VRC_MIC_MUTE_SYNC_SETTINGS_WINDOW=self._openVrcMicMuteSyncSettingsWindow, + VAR_VRC_MIC_MUTE_SYNC_SETTINGS=StringVar(value="VRC Mic Mute Sync"), + VAR_VRC_MIC_MUTE_SYNC_STATE=StringVar(value=""), VAR_LABEL_OVERLAY_OPACITY=StringVar(value=i18n.t("overlay_settings.opacity")), @@ -808,6 +814,18 @@ class View(): self.view_variable.VAR_LABEL_BOTH_DIRECTION_SWAP_BUTTON.set(i18n.t("main_window.swap_button_label")) self.useTranslationFeatureProcess("Disable") + + if config.ENABLE_VRC_MIC_MUTE_SYNC is True: + self.setStateVrcMicMuteSync("enabled") + elif config.ENABLE_VRC_MIC_MUTE_SYNC is False: + self.setStateVrcMicMuteSync("disabled") + + if config.ENABLE_OVERLAY_SMALL_LOG is True: + self.setStateOverlaySmallLog("enabled") + elif config.ENABLE_OVERLAY_SMALL_LOG is False: + self.setStateOverlaySmallLog("disabled") + + if config.CHOICE_MIC_HOST == "NoHost": self.view_variable.VAR_MIC_HOST.set("No Mic Host Detected") @@ -1281,6 +1299,22 @@ class View(): dropdown_menu_values=translation_dict, ) + def setStateVrcMicMuteSync(self, state:str): + if state == "enabled": + self.view_variable.VAR_VRC_MIC_MUTE_SYNC_STATE.set("Enabled") + vrct_gui.vrc_mic_mute_sync_settings_state_label.configure(text_color=self.settings.main.ctm.TOP_BAR_BUTTON_STATE_TEXT_ENABLED_COLOR) + elif state == "disabled": + self.view_variable.VAR_VRC_MIC_MUTE_SYNC_STATE.set("Disabled") + vrct_gui.vrc_mic_mute_sync_settings_state_label.configure(text_color=self.settings.main.ctm.TOP_BAR_BUTTON_STATE_TEXT_DISABLED_COLOR) + + def setStateOverlaySmallLog(self, state:str): + if state == "enabled": + self.view_variable.VAR_OVERLAY_SMALL_LOG_STATE.set("Enabled") + vrct_gui.overlay_settings_state_label.configure(text_color=self.settings.main.ctm.TOP_BAR_BUTTON_STATE_TEXT_ENABLED_COLOR) + elif state == "disabled": + self.view_variable.VAR_OVERLAY_SMALL_LOG_STATE.set("Disabled") + vrct_gui.overlay_settings_state_label.configure(text_color=self.settings.main.ctm.TOP_BAR_BUTTON_STATE_TEXT_DISABLED_COLOR) + # Config Window def enableConfigWindowCompactMode(self): @@ -1741,7 +1775,10 @@ class View(): vrct_gui._closeConfigWindow() def _openVrSettingsWindow(self): - vrct_gui.quick_settings_window.show() + vrct_gui.quick_settings_window.show(target="overlay") + + def _openVrcMicMuteSyncSettingsWindow(self): + vrct_gui.quick_settings_window.show(target="vrc_mic_mute_sync") # Window Control (Main Window Cover) def _openTheCoverOfMainWindow(self): diff --git a/vrct_gui/main_window/createMainWindowWidgets.py b/vrct_gui/main_window/createMainWindowWidgets.py index 447dfb1d..3fb7d105 100644 --- a/vrct_gui/main_window/createMainWindowWidgets.py +++ b/vrct_gui/main_window/createMainWindowWidgets.py @@ -48,6 +48,61 @@ def createMainWindowWidgets(vrct_gui, settings, view_variable): # start from 3 main_topbar_column=3 + # VRChat Mic Mute Sync Settings Button + vrct_gui.vrc_mic_mute_sync_settings_container = CTkFrame( + vrct_gui.main_topbar_container, + corner_radius=settings.uism.UPDATE_AVAILABLE_BUTTON_CORNER_RADIUS, + fg_color=settings.ctm.MAIN_BG_COLOR, + cursor="hand2", + ) + vrct_gui.vrc_mic_mute_sync_settings_container.grid(row=0, column=main_topbar_column, padx=settings.uism.UPDATE_AVAILABLE_BUTTON_PADX, pady=settings.uism.TOP_BAR_BUTTON_PADY, sticky="nsw") + vrct_gui.vrc_mic_mute_sync_settings_container.grid_rowconfigure((0,3), weight=1) + + vrct_gui.vrc_mic_mute_sync_settings_label = CTkLabel( + vrct_gui.vrc_mic_mute_sync_settings_container, + textvariable=view_variable.VAR_VRC_MIC_MUTE_SYNC_SETTINGS, + height=0, + corner_radius=0, + font=CTkFont(family=settings.FONT_FAMILY, size=settings.uism.QUICK_SETTINGS_BUTTON_FONT_SIZE, weight="normal"), + anchor="e", + text_color=settings.ctm.TOP_BAR_BUTTON_TEXT_COLOR, + # text_color=settings.ctm.UPDATE_AVAILABLE_BUTTON_TEXT_COLOR, + ) + # This "right padx +1" is for fixing a bug that sticks out from the frame. I don't know why that happens... + vrct_gui.vrc_mic_mute_sync_settings_label.grid(row=1, column=1, padx=(0,settings.uism.UPDATE_AVAILABLE_BUTTON_IPADX+1), pady=0) + + + vrct_gui.vrc_mic_mute_sync_settings_state_label = CTkLabel( + vrct_gui.vrc_mic_mute_sync_settings_container, + textvariable=view_variable.VAR_VRC_MIC_MUTE_SYNC_STATE, + height=0, + corner_radius=0, + font=CTkFont(family=settings.FONT_FAMILY, size=settings.uism.QUICK_SETTINGS_BUTTON_STATE_FONT_SIZE, weight="normal"), + anchor="e", + text_color=settings.ctm.TOP_BAR_BUTTON_TEXT_COLOR, + # text_color=settings.ctm.UPDATE_AVAILABLE_BUTTON_TEXT_COLOR, + ) + # This "right padx +1" is for fixing a bug that sticks out from the frame. I don't know why that happens... + vrct_gui.vrc_mic_mute_sync_settings_state_label.grid(row=2, column=1, padx=(0,settings.uism.UPDATE_AVAILABLE_BUTTON_IPADX+1), pady=0) + + + bindButtonFunctionAndColor( + target_widgets=[ + vrct_gui.vrc_mic_mute_sync_settings_container, + vrct_gui.vrc_mic_mute_sync_settings_label, + vrct_gui.vrc_mic_mute_sync_settings_state_label, + ], + enter_color=settings.ctm.TOP_BAR_BUTTON_HOVERED_BG_COLOR, + leave_color=settings.ctm.TOP_BAR_BUTTON_BG_COLOR, + clicked_color=settings.ctm.TOP_BAR_BUTTON_CLICKED_BG_COLOR, + buttonReleasedFunction=lambda e: callFunctionIfCallable(view_variable.CALLBACK_SET_OPEN_VRC_MIC_MUTE_SYNC_SETTINGS_WINDOW), + ) + + + + + + main_topbar_column+=1 # Overlay Settings Button vrct_gui.overlay_settings_container = CTkFrame( vrct_gui.main_topbar_container, @@ -56,27 +111,14 @@ def createMainWindowWidgets(vrct_gui, settings, view_variable): cursor="hand2", ) vrct_gui.overlay_settings_container.grid(row=0, column=main_topbar_column, padx=settings.uism.UPDATE_AVAILABLE_BUTTON_PADX, pady=settings.uism.TOP_BAR_BUTTON_PADY, sticky="nsw") - # vrct_gui.overlay_settings_container.grid_remove() - - - vrct_gui.overlay_settings_container.grid_rowconfigure((0,2), weight=1) - - vrct_gui.overlay_settings_icon = CTkLabel( - vrct_gui.overlay_settings_container, - text=None, - corner_radius=0, - height=0, - image=CTkImage(settings.image_file.CONFIGURATION_ICON_DISABLED, size=settings.uism.UPDATE_AVAILABLE_BUTTON_SIZE) - ) - vrct_gui.overlay_settings_icon.grid(row=1, column=0, padx=(settings.uism.UPDATE_AVAILABLE_BUTTON_IPADX, settings.uism.UPDATE_AVAILABLE_PADX_BETWEEN_LABEL_AND_ICON), pady=0) - + vrct_gui.overlay_settings_container.grid_rowconfigure((0,3), weight=1) vrct_gui.overlay_settings_label = CTkLabel( vrct_gui.overlay_settings_container, textvariable=view_variable.VAR_OVERLAY_SETTINGS, height=0, corner_radius=0, - font=CTkFont(family=settings.FONT_FAMILY, size=settings.uism.UPDATE_AVAILABLE_BUTTON_FONT_SIZE, weight="normal"), + font=CTkFont(family=settings.FONT_FAMILY, size=settings.uism.QUICK_SETTINGS_BUTTON_FONT_SIZE, weight="normal"), anchor="e", text_color=settings.ctm.TOP_BAR_BUTTON_TEXT_COLOR, # text_color=settings.ctm.UPDATE_AVAILABLE_BUTTON_TEXT_COLOR, @@ -85,11 +127,24 @@ def createMainWindowWidgets(vrct_gui, settings, view_variable): vrct_gui.overlay_settings_label.grid(row=1, column=1, padx=(0,settings.uism.UPDATE_AVAILABLE_BUTTON_IPADX+1), pady=0) + vrct_gui.overlay_settings_state_label = CTkLabel( + vrct_gui.overlay_settings_container, + textvariable=view_variable.VAR_OVERLAY_SMALL_LOG_STATE, + height=0, + corner_radius=0, + font=CTkFont(family=settings.FONT_FAMILY, size=settings.uism.QUICK_SETTINGS_BUTTON_STATE_FONT_SIZE, weight="normal"), + anchor="e", + text_color=settings.ctm.TOP_BAR_BUTTON_TEXT_COLOR, + ) + # This "right padx +1" is for fixing a bug that sticks out from the frame. I don't know why that happens... + vrct_gui.overlay_settings_state_label.grid(row=2, column=1, padx=(0,settings.uism.UPDATE_AVAILABLE_BUTTON_IPADX+1), pady=0) + + bindButtonFunctionAndColor( target_widgets=[ vrct_gui.overlay_settings_container, vrct_gui.overlay_settings_label, - vrct_gui.overlay_settings_icon, + vrct_gui.overlay_settings_state_label, ], enter_color=settings.ctm.TOP_BAR_BUTTON_HOVERED_BG_COLOR, leave_color=settings.ctm.TOP_BAR_BUTTON_BG_COLOR, diff --git a/vrct_gui/quick_settings_window/QuickSettingsWindow.py b/vrct_gui/quick_settings_window/QuickSettingsWindow.py index 0d294b8e..4c2bb266 100644 --- a/vrct_gui/quick_settings_window/QuickSettingsWindow.py +++ b/vrct_gui/quick_settings_window/QuickSettingsWindow.py @@ -20,18 +20,21 @@ class QuickSettingsWindow(CTkToplevel): BG_HEX_COLOR = "#292a2d" - self.grid_columnconfigure(0, weight=1, minsize=400) - self.grid_rowconfigure(0, weight=1) self.qsw_background = CTkFrame(self, corner_radius=0, fg_color=self.settings.ctm.SB__BG_COLOR) - self.qsw_background.grid(row=0, column=0, pady=(0,18), sticky="nsew") - self.qsw_background.grid_columnconfigure(0, weight=1) - - self.qsw_setting_box = CTkFrame(self.qsw_background, corner_radius=0, fg_color=BG_HEX_COLOR) - self.qsw_setting_box.grid(row=0, column=0, sticky="nsew") - self.qsw_setting_box.grid_columnconfigure(0, weight=1) + self.qsw_background.grid(row=0, column=0, pady=0, sticky="ew") + self.qsw_background.grid_columnconfigure(0, weight=1, minsize=400) - cqsb = _CreateQuickSettingBox(self.qsw_setting_box, vrct_gui, settings, view_variable) + self.qsw_background__overlay = CTkFrame(self.qsw_background, corner_radius=0, fg_color=self.settings.ctm.SB__BG_COLOR) + self.qsw_background__overlay.grid(row=0, column=0, pady=(0,18), sticky="ew") + self.qsw_background__overlay.grid_columnconfigure(0, weight=1) + + + self.qsw_setting_box__overlay = CTkFrame(self.qsw_background__overlay, corner_radius=0, fg_color=BG_HEX_COLOR) + self.qsw_setting_box__overlay.grid(row=0, column=0, sticky="ew") + self.qsw_setting_box__overlay.grid_columnconfigure(0, weight=1) + + cqsb = _CreateQuickSettingBox(self.qsw_setting_box__overlay, vrct_gui, settings, view_variable) createSettingBoxSlider = cqsb.createSettingBoxSlider createSettingBoxSwitch = cqsb.createSettingBoxSwitch @@ -41,20 +44,20 @@ class QuickSettingsWindow(CTkToplevel): # Overlay General Settings row=0 - def switchCallback(switch_widget): + def overlaySmallLogSwitchCallback(switch_widget): callFunctionIfCallable(view_variable.CALLBACK_SET_ENABLE_OVERLAY_SMALL_LOG, switch_widget.get()) self.qsb__enable_overlay_small_log = createSettingBoxSwitch( for_var_label_text=view_variable.VAR_LABEL_ENABLE_OVERLAY_SMALL_LOG, switch_attr_name="qsb__enable_overlay_small_log_switch", - command=lambda: switchCallback(vrct_gui.qsb__enable_overlay_small_log_switch), + command=lambda: overlaySmallLogSwitchCallback(vrct_gui.qsb__enable_overlay_small_log_switch), variable=view_variable.VAR_ENABLE_OVERLAY_SMALL_LOG, ) self.qsb__enable_overlay_small_log.grid(row=row) row+=1 - def sliderCallback(e): + def overlayOpacitySliderCallback(e): value = round(e,2) callFunctionIfCallable(view_variable.CALLBACK_SET_OVERLAY_SETTINGS, value, "opacity") view_variable.VAR_CURRENT_VALUE_OVERLAY_OPACITY.set(floatToPctStr(value)) @@ -65,14 +68,14 @@ class QuickSettingsWindow(CTkToplevel): slider_attr_name="qsb__overlay_opacity_slider", slider_range=view_variable.SLIDER_RANGE_OVERLAY_OPACITY, slider_number_of_steps=view_variable.NUMBER_OF_STEPS_OVERLAY_OPACITY, - command=sliderCallback, + command=overlayOpacitySliderCallback, variable=view_variable.VAR_OVERLAY_OPACITY, ) self.qsb__overlay_opacity.grid(row=row) row+=1 - def sliderCallback(e): + def overlayUiScalingSliderCallback(e): value = round(e,2) callFunctionIfCallable(view_variable.CALLBACK_SET_OVERLAY_SETTINGS, value, "ui_scaling") view_variable.VAR_CURRENT_VALUE_OVERLAY_UI_SCALING.set(floatToPctStr(value)) @@ -83,7 +86,7 @@ class QuickSettingsWindow(CTkToplevel): slider_attr_name="qsb__overlay_ui_scaling_slider", slider_range=view_variable.SLIDER_RANGE_OVERLAY_UI_SCALING, slider_number_of_steps=view_variable.NUMBER_OF_STEPS_OVERLAY_UI_SCALING, - command=sliderCallback, + command=overlayUiScalingSliderCallback, variable=view_variable.VAR_OVERLAY_UI_SCALING, ) self.qsb__overlay_ui_scaling.grid(row=row) @@ -107,7 +110,7 @@ class QuickSettingsWindow(CTkToplevel): row+=1 - def sliderCallback(e): + def overlaySmallLogSettingsXPosSliderCallback(e): value = round(e,2) callFunctionIfCallable(view_variable.CALLBACK_SET_OVERLAY_SMALL_LOG_SETTINGS, value, "x_pos") view_variable.VAR_CURRENT_VALUE_OVERLAY_SMALL_LOG_X_POS.set(str(value)) @@ -118,14 +121,14 @@ class QuickSettingsWindow(CTkToplevel): slider_attr_name="qsb__overlay_small_log_settings_x_pos_slider", slider_range=view_variable.SLIDER_RANGE_OVERLAY_SMALL_LOG_X_POS, slider_number_of_steps=view_variable.NUMBER_OF_STEPS_OVERLAY_SMALL_LOG_X_POS, - command=sliderCallback, + command=overlaySmallLogSettingsXPosSliderCallback, variable=view_variable.VAR_OVERLAY_SMALL_LOG_X_POS, ) self.qsb__overlay_small_log_settings_x_pos.grid(row=row) row+=1 - def sliderCallback(e): + def overlaySmallLogSettingsYPosSliderCallback(e): value = round(e,2) callFunctionIfCallable(view_variable.CALLBACK_SET_OVERLAY_SMALL_LOG_SETTINGS, value, "y_pos") view_variable.VAR_CURRENT_VALUE_OVERLAY_SMALL_LOG_Y_POS.set(str(value)) @@ -136,14 +139,14 @@ class QuickSettingsWindow(CTkToplevel): slider_attr_name="qsb__overlay_small_log_settings_y_pos_slider", slider_range=view_variable.SLIDER_RANGE_OVERLAY_SMALL_LOG_Y_POS, slider_number_of_steps=view_variable.NUMBER_OF_STEPS_OVERLAY_SMALL_LOG_Y_POS, - command=sliderCallback, + command=overlaySmallLogSettingsYPosSliderCallback, variable=view_variable.VAR_OVERLAY_SMALL_LOG_Y_POS, ) self.qsb__overlay_small_log_settings_y_pos.grid(row=row) row+=1 - def sliderCallback(e): + def overlaySmallLogSettingsDepthSliderCallback(e): value = round(e,2) callFunctionIfCallable(view_variable.CALLBACK_SET_OVERLAY_SMALL_LOG_SETTINGS, value, "depth") view_variable.VAR_CURRENT_VALUE_OVERLAY_SMALL_LOG_DEPTH.set(str(value)) @@ -154,14 +157,14 @@ class QuickSettingsWindow(CTkToplevel): slider_attr_name="qsb__overlay_small_log_settings_depth_slider", slider_range=view_variable.SLIDER_RANGE_OVERLAY_SMALL_LOG_DEPTH, slider_number_of_steps=view_variable.NUMBER_OF_STEPS_OVERLAY_SMALL_LOG_DEPTH, - command=sliderCallback, + command=overlaySmallLogSettingsDepthSliderCallback, variable=view_variable.VAR_OVERLAY_SMALL_LOG_DEPTH, ) self.qsb__overlay_small_log_settings_depth.grid(row=row) row+=1 - def sliderCallback(e): + def overlaySmallLogSettingsDisplayDurationSliderCallback(e): value = int(e) callFunctionIfCallable(view_variable.CALLBACK_SET_OVERLAY_SMALL_LOG_SETTINGS, value, "display_duration") view_variable.VAR_CURRENT_VALUE_OVERLAY_SMALL_LOG_DISPLAY_DURATION.set(f"{value} second(s)") @@ -172,7 +175,7 @@ class QuickSettingsWindow(CTkToplevel): slider_attr_name="qsb__overlay_small_log_settings_display_duration_slider", slider_range=view_variable.SLIDER_RANGE_OVERLAY_SMALL_LOG_DISPLAY_DURATION, slider_number_of_steps=view_variable.NUMBER_OF_STEPS_OVERLAY_SMALL_LOG_DISPLAY_DURATION, - command=sliderCallback, + command=overlaySmallLogSettingsDisplayDurationSliderCallback, variable=view_variable.VAR_OVERLAY_SMALL_LOG_DISPLAY_DURATION, ) self.qsb__overlay_small_log_settings_display_duration.grid(row=row) @@ -180,7 +183,7 @@ class QuickSettingsWindow(CTkToplevel): row+=1 - def sliderCallback(e): + def overlaySmallLogSettingsFadeoutDurationSliderCallback(e): value = int(e) callFunctionIfCallable(view_variable.CALLBACK_SET_OVERLAY_SMALL_LOG_SETTINGS, value, "fadeout_duration") view_variable.VAR_CURRENT_VALUE_OVERLAY_SMALL_LOG_FADEOUT_DURATION.set(f"{value} second(s)") @@ -191,7 +194,7 @@ class QuickSettingsWindow(CTkToplevel): slider_attr_name="qsb__overlay_small_log_settings_fadeout_duration_slider", slider_range=view_variable.SLIDER_RANGE_OVERLAY_SMALL_LOG_FADEOUT_DURATION, slider_number_of_steps=view_variable.NUMBER_OF_STEPS_OVERLAY_SMALL_LOG_FADEOUT_DURATION, - command=sliderCallback, + command=overlaySmallLogSettingsFadeoutDurationSliderCallback, variable=view_variable.VAR_OVERLAY_SMALL_LOG_FADEOUT_DURATION, ) self.qsb__overlay_small_log_settings_fadeout_duration.grid(row=row) @@ -204,7 +207,7 @@ class QuickSettingsWindow(CTkToplevel): - self.qsw_setting_box_bottom = CTkFrame(self.qsw_background, corner_radius=0, fg_color=self.settings.ctm.SB__BG_COLOR) + self.qsw_setting_box_bottom = CTkFrame(self.qsw_background__overlay, corner_radius=0, fg_color=self.settings.ctm.SB__BG_COLOR) self.qsw_setting_box_bottom.grid(row=1, column=0, sticky="nsew") self.qsw_setting_box_bottom.grid_columnconfigure((0,2), weight=1) @@ -236,9 +239,80 @@ class QuickSettingsWindow(CTkToplevel): ) restore_default_settings_button.grid(row=0, column=0, pady=self.settings.uism.QSB__RESTORE_DEFAULT_SETTINGS_BUTTON_PADY) + self.qsw_background__overlay.grid_remove() + + + + + + + + + + + + + + + # VRChat mic mute sync + self.qsw_background__vrc_mic_mute_sync = CTkFrame(self.qsw_background, corner_radius=0, fg_color=self.settings.ctm.SB__BG_COLOR) + self.qsw_background__vrc_mic_mute_sync.grid(row=0, column=0, pady=(0,18), sticky="ew") + self.qsw_background__vrc_mic_mute_sync.grid_columnconfigure(0, weight=1) + + + self.qsw_setting_box__vrc_mic_mute_sync = CTkFrame(self.qsw_background__vrc_mic_mute_sync, corner_radius=0, fg_color=BG_HEX_COLOR) + self.qsw_setting_box__vrc_mic_mute_sync.grid(row=0, column=0, sticky="ew") + self.qsw_setting_box__vrc_mic_mute_sync.grid_columnconfigure(0, weight=1) + + + + + + + + + + cqsb = _CreateQuickSettingBox(self.qsw_setting_box__vrc_mic_mute_sync, vrct_gui, settings, view_variable) + createSettingBoxSlider = cqsb.createSettingBoxSlider + createSettingBoxSwitch = cqsb.createSettingBoxSwitch + + + row=0 + def enableVrcMicMuteSyncSwitchCallback(switch_widget): + callFunctionIfCallable(view_variable.CALLBACK_SET_ENABLE_VRC_MIC_MUTE_SYNC, switch_widget.get()) + + self.qsb__enable_vrc_mic_mute_sync = createSettingBoxSwitch( + for_var_label_text=view_variable.VAR_LABEL_ENABLE_VRC_MIC_MUTE_SYNC, + switch_attr_name="qsb__enable_vrc_mic_mute_sync_switch", + command=lambda: enableVrcMicMuteSyncSwitchCallback(vrct_gui.qsb__enable_vrc_mic_mute_sync_switch), + variable=view_variable.VAR_ENABLE_VRC_MIC_MUTE_SYNC, + ) + self.qsb__enable_vrc_mic_mute_sync.grid(row=row) + + + self.qsw_background__vrc_mic_mute_sync.grid_remove() + + + + + + + + def show(self, target:str): + if target == "overlay": + self.qsw_background__vrc_mic_mute_sync.grid_remove() + self.qsw_background__overlay.grid() + elif target == "vrc_mic_mute_sync": + self.qsw_background__overlay.grid_remove() + self.qsw_background__vrc_mic_mute_sync.grid() - def show(self): self.attributes("-alpha", 0) self.deiconify() + + self.qsw_background.update() + self.geometry("{}x{}".format(self.qsw_background.winfo_width(), self.qsw_background.winfo_height())) + + + setGeometryToCenterOfScreen(root_widget=self) fadeInAnimation(self, steps=5, interval=0.02) \ No newline at end of file diff --git a/vrct_gui/ui_managers/Themes/_darkTheme.py b/vrct_gui/ui_managers/Themes/_darkTheme.py index c90a8e5f..ed46a557 100644 --- a/vrct_gui/ui_managers/Themes/_darkTheme.py +++ b/vrct_gui/ui_managers/Themes/_darkTheme.py @@ -111,6 +111,8 @@ def _darkTheme(base_color): TOP_BAR_BUTTON_HOVERED_BG_COLOR = base_color.DARK_850_COLOR, TOP_BAR_BUTTON_CLICKED_BG_COLOR = base_color.DARK_900_COLOR, TOP_BAR_BUTTON_TEXT_COLOR = base_color.DARK_BASIC_TEXT_COLOR, + TOP_BAR_BUTTON_STATE_TEXT_ENABLED_COLOR = base_color.PRIMARY_300_COLOR, + TOP_BAR_BUTTON_STATE_TEXT_DISABLED_COLOR = base_color.DARK_600_COLOR, UPDATE_AVAILABLE_BUTTON_BG_COLOR = base_color.DARK_888_COLOR, UPDATE_AVAILABLE_BUTTON_HOVERED_BG_COLOR = base_color.DARK_850_COLOR, diff --git a/vrct_gui/ui_managers/UiScalingManager.py b/vrct_gui/ui_managers/UiScalingManager.py index b7e5f5e3..2c081c2c 100644 --- a/vrct_gui/ui_managers/UiScalingManager.py +++ b/vrct_gui/ui_managers/UiScalingManager.py @@ -123,6 +123,13 @@ class UiScalingManager(): self.main.TOP_BAR_BUTTON_PADY = (self._calculateUiSize(6),0) + + + + self.main.QUICK_SETTINGS_BUTTON_FONT_SIZE = self._calculateUiSize(12) + self.main.QUICK_SETTINGS_BUTTON_STATE_FONT_SIZE = self._calculateUiSize(10) + + self.main.UPDATE_AVAILABLE_BUTTON_CORNER_RADIUS = self._calculateUiSize(6) self.main.UPDATE_AVAILABLE_BUTTON_SIZE = (self._calculateUiSize(18), self._calculateUiSize(18)) self.main.UPDATE_AVAILABLE_BUTTON_FONT_SIZE = self._calculateUiSize(12)