From b4479e570ad75d1aa2c091962561181206bcaaba Mon Sep 17 00:00:00 2001 From: Sakamoto Shiina <68018796+ShiinaSakamoto@users.noreply.github.com> Date: Thu, 26 Oct 2023 19:26:41 +0900 Subject: [PATCH 1/8] =?UTF-8?q?[Update]=20Config=20Window:=20Mic/Speaker?= =?UTF-8?q?=20Energy=20Threshold=20Check.=20=E3=81=97=E3=81=8D=E3=81=84?= =?UTF-8?q?=E5=80=A4=E3=82=92=E8=B6=85=E3=81=88=E3=82=8B=E3=81=A8=E8=89=B2?= =?UTF-8?q?=E3=81=8C=E5=A4=89=E3=82=8F=E3=82=8B=E3=82=88=E3=81=86=E3=81=AB?= =?UTF-8?q?=E3=80=82=20ProgressBar=20Widget=E3=82=92=E5=A4=89=E5=8C=96?= =?UTF-8?q?=E3=81=95=E3=81=9B=E3=82=8B=E3=81=AE=E3=81=AF=E5=95=8F=E9=A1=8C?= =?UTF-8?q?=E3=81=AA=E3=81=84=E3=81=8C=E3=80=81entry=20widget=E3=81=AA?= =?UTF-8?q?=E3=81=A9=E3=80=81=E4=BB=96=E3=81=AEwidget=E3=81=A0=E3=81=A8?= =?UTF-8?q?=E3=82=B9=E3=82=BF=E3=83=83=E3=82=AF=E3=81=97=E3=81=A6=EF=BC=9F?= =?UTF-8?q?=E9=81=85=E5=BB=B6=E3=81=8C=E7=99=BA=E7=94=9F=E3=81=99=E3=82=8B?= =?UTF-8?q?=E3=81=AE=E3=81=A7=E3=80=81=E3=81=A7=E3=81=8D=E3=82=8B=E3=81=AE?= =?UTF-8?q?=E3=81=AF=E4=BB=8A=E3=81=AE=E3=81=A8=E3=81=93=E3=82=8D=E3=81=93?= =?UTF-8?q?=E3=81=93=E3=81=BE=E3=81=A7=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- view.py | 33 ++++++++++++++++++----- vrct_gui/ui_managers/ColorThemeManager.py | 3 ++- 2 files changed, 29 insertions(+), 7 deletions(-) diff --git a/view.py b/view.py index 2a309a06..1bebcfd4 100644 --- a/view.py +++ b/view.py @@ -743,24 +743,45 @@ class View(): self.view_variable.VAR_MIC_DEVICE.set(default_selected_mic_device_name) - @staticmethod - def updateSetProgressBar_MicEnergy(new_mic_energy): - vrct_gui.config_window.sb__progressbar_x_slider__progressbar_mic_energy_threshold.set(new_mic_energy/config.MAX_MIC_ENERGY_THRESHOLD) + def updateSetProgressBar_MicEnergy(self, new_mic_energy): + self.updateProgressBar( + target_progressbar_widget=vrct_gui.config_window.sb__progressbar_x_slider__progressbar_mic_energy_threshold, + new_energy=new_mic_energy, + max_energy=config.MAX_MIC_ENERGY_THRESHOLD, + energy_threshold=config.INPUT_MIC_ENERGY_THRESHOLD, + ) + @staticmethod def initProgressBar_MicEnergy(): vrct_gui.config_window.sb__progressbar_x_slider__progressbar_mic_energy_threshold.set(0) - @staticmethod - def updateSetProgressBar_SpeakerEnergy(new_speaker_energy): - vrct_gui.config_window.sb__progressbar_x_slider__progressbar_speaker_energy_threshold.set(new_speaker_energy/config.MAX_SPEAKER_ENERGY_THRESHOLD) + def updateSetProgressBar_SpeakerEnergy(self, new_speaker_energy): + self.updateProgressBar( + target_progressbar_widget=vrct_gui.config_window.sb__progressbar_x_slider__progressbar_speaker_energy_threshold, + new_energy=new_speaker_energy, + max_energy=config.MAX_SPEAKER_ENERGY_THRESHOLD, + energy_threshold=config.INPUT_SPEAKER_ENERGY_THRESHOLD, + ) @staticmethod def initProgressBar_SpeakerEnergy(): vrct_gui.config_window.sb__progressbar_x_slider__progressbar_speaker_energy_threshold.set(0) + def updateProgressBar( + self, + target_progressbar_widget, + new_energy, + max_energy, + energy_threshold, + ): + target_progressbar_widget.set(new_energy/max_energy) + if new_energy >= energy_threshold: + target_progressbar_widget.configure(progress_color=self.settings.config_window.ctm.SB__PROGRESSBAR_X_SLIDER__PROGRESSBAR_PROGRESS_EXCEED_THRESHOLD_BG_COLOR) + else: + target_progressbar_widget.configure(progress_color=self.settings.config_window.ctm.SB__PROGRESSBAR_X_SLIDER__PROGRESSBAR_PROGRESS_BG_COLOR) diff --git a/vrct_gui/ui_managers/ColorThemeManager.py b/vrct_gui/ui_managers/ColorThemeManager.py index 19f9f884..30507698 100644 --- a/vrct_gui/ui_managers/ColorThemeManager.py +++ b/vrct_gui/ui_managers/ColorThemeManager.py @@ -301,7 +301,8 @@ class ColorThemeManager(): self.config_window.SB__PROGRESSBAR_X_SLIDER__PROGRESSBAR_BG_COLOR = self.DARK_800_COLOR - self.config_window.SB__PROGRESSBAR_X_SLIDER__PROGRESSBAR_PROGRESS_BG_COLOR = self.PRIMARY_400_COLOR + self.config_window.SB__PROGRESSBAR_X_SLIDER__PROGRESSBAR_PROGRESS_BG_COLOR = self.PRIMARY_750_COLOR + self.config_window.SB__PROGRESSBAR_X_SLIDER__PROGRESSBAR_PROGRESS_EXCEED_THRESHOLD_BG_COLOR = self.PRIMARY_400_COLOR self.config_window.SB__PROGRESSBAR_X_SLIDER__SLIDER_BUTTON_COLOR = self.PRIMARY_600_COLOR self.config_window.SB__PROGRESSBAR_X_SLIDER__SLIDER_BUTTON_HOVERED_COLOR = self.PRIMARY_400_COLOR From 5fd156545fc531a15a4c4871448314f6017751c1 Mon Sep 17 00:00:00 2001 From: Sakamoto Shiina <68018796+ShiinaSakamoto@users.noreply.github.com> Date: Fri, 27 Oct 2023 10:37:22 +0900 Subject: [PATCH 2/8] =?UTF-8?q?[Refactor]=20ColorThemeManager:=20SimpleNam?= =?UTF-8?q?espace=E3=82=92=E4=BD=BF=E3=81=A3=E3=81=9F=E8=A8=98=E8=BF=B0?= =?UTF-8?q?=E3=81=AB=E5=88=87=E3=82=8A=E6=9B=BF=E3=81=88=E3=81=A6=E5=8F=AF?= =?UTF-8?q?=E8=AA=AD=E6=80=A7=E3=81=A8=E5=88=A9=E4=BE=BF=E6=80=A7=E3=82=A2?= =?UTF-8?q?=E3=83=83=E3=83=97=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- view.py | 1 - vrct_gui/ui_managers/ColorThemeManager.py | 557 ++++++++-------------- 2 files changed, 204 insertions(+), 354 deletions(-) diff --git a/view.py b/view.py index 1bebcfd4..5468c7a3 100644 --- a/view.py +++ b/view.py @@ -69,7 +69,6 @@ class View(): ) self.settings.error_message_window = SimpleNamespace( - ctm=all_ctm.error_message_window, uism=all_uism.error_message_window, **common_args ) diff --git a/vrct_gui/ui_managers/ColorThemeManager.py b/vrct_gui/ui_managers/ColorThemeManager.py index 30507698..db6b73c1 100644 --- a/vrct_gui/ui_managers/ColorThemeManager.py +++ b/vrct_gui/ui_managers/ColorThemeManager.py @@ -2,12 +2,12 @@ from types import SimpleNamespace class ColorThemeManager(): def __init__(self, theme): - self.main = SimpleNamespace() - self.config_window = SimpleNamespace() - self.selectable_language_window = SimpleNamespace() - self.main_window_cover = SimpleNamespace() - self.error_message_window = SimpleNamespace() - self.confirmation_modal = SimpleNamespace() + # self.main = SimpleNamespace() + # self.config_window = SimpleNamespace() + # self.selectable_language_window = SimpleNamespace() + # self.main_window_cover = SimpleNamespace() + # self.error_message_window = SimpleNamespace() + # self.confirmation_modal = SimpleNamespace() # old one. But leave it here for now. # self.PRIMARY_100_COLOR = "#c4eac1" @@ -88,401 +88,252 @@ class ColorThemeManager(): if theme == "Dark": self._createDarkModeColor() - elif theme == "Light": - self._createLightModeColor() + # elif theme == "Light": + # self._createLightModeColor() def _createDarkModeColor(self): - # Common - self.main.BASIC_TEXT_COLOR = self.LIGHT_100_COLOR - self.main.LABELS_TEXT_COLOR = self.main.BASIC_TEXT_COLOR + self.main = SimpleNamespace( + # Common + BASIC_TEXT_COLOR = self.LIGHT_100_COLOR, + LABELS_TEXT_COLOR = self.LIGHT_100_COLOR, - # Main - self.main.MAIN_BG_COLOR = self.DARK_888_COLOR + # Main + MAIN_BG_COLOR = self.DARK_888_COLOR, - self.main.TEXTBOX_BG_COLOR = self.DARK_900_COLOR - self.main.TEXTBOX_TEXT_COLOR = self.main.BASIC_TEXT_COLOR - self.main.TEXTBOX_TEXT_SUB_COLOR = self.DARK_450_COLOR - self.main.TEXTBOX_SYSTEM_TAG_TEXT_COLOR = self.PRIMARY_300_COLOR - self.main.TEXTBOX_SENT_TAG_TEXT_COLOR = "#6197b4" - self.main.TEXTBOX_RECEIVED_TAG_TEXT_COLOR = "#a861b4" - self.main.TEXTBOX_ERROR_TAG_TEXT_COLOR = "#c27583" - self.main.TEXTBOX_TIMESTAMP_TEXT_COLOR = self.DARK_600_COLOR - self.main.TEXTBOX_TAB_BG_PASSIVE_COLOR = self.DARK_850_COLOR - self.main.TEXTBOX_TAB_BG_ACTIVE_COLOR = self.main.TEXTBOX_BG_COLOR - self.main.TEXTBOX_TAB_BG_HOVERED_COLOR = self.DARK_800_COLOR - self.main.TEXTBOX_TAB_BG_CLICKED_COLOR = self.DARK_925_COLOR - self.main.TEXTBOX_TAB_TEXT_ACTIVE_COLOR = self.main.BASIC_TEXT_COLOR - self.main.TEXTBOX_TAB_TEXT_PASSIVE_COLOR = self.DARK_500_COLOR + TEXTBOX_BG_COLOR = self.DARK_900_COLOR, + TEXTBOX_TEXT_COLOR = self.LIGHT_100_COLOR, + TEXTBOX_TEXT_SUB_COLOR = self.DARK_450_COLOR, + TEXTBOX_SYSTEM_TAG_TEXT_COLOR = self.PRIMARY_300_COLOR, + TEXTBOX_SENT_TAG_TEXT_COLOR = "#6197b4", + TEXTBOX_RECEIVED_TAG_TEXT_COLOR = "#a861b4", + TEXTBOX_ERROR_TAG_TEXT_COLOR = "#c27583", + TEXTBOX_TIMESTAMP_TEXT_COLOR = self.DARK_600_COLOR, - self.main.TEXTBOX_ENTRY_TEXT_COLOR = self.DARK_300_COLOR - self.main.TEXTBOX_ENTRY_TEXT_DISABLED_COLOR = self.DARK_500_COLOR - self.main.TEXTBOX_ENTRY_BG_COLOR = self.DARK_875_COLOR - self.main.TEXTBOX_ENTRY_BORDER_COLOR = self.DARK_750_COLOR - self.main.TEXTBOX_ENTRY_PLACEHOLDER_COLOR = self.DARK_500_COLOR - self.main.TEXTBOX_ENTRY_PLACEHOLDER_DISABLED_COLOR = self.DARK_700_COLOR + TEXTBOX_TAB_BG_PASSIVE_COLOR = self.DARK_850_COLOR, + TEXTBOX_TAB_BG_ACTIVE_COLOR = self.DARK_900_COLOR, + TEXTBOX_TAB_BG_HOVERED_COLOR = self.DARK_800_COLOR, + TEXTBOX_TAB_BG_CLICKED_COLOR = self.DARK_925_COLOR, + TEXTBOX_TAB_TEXT_ACTIVE_COLOR = self.LIGHT_100_COLOR, + TEXTBOX_TAB_TEXT_PASSIVE_COLOR = self.DARK_500_COLOR, + + TEXTBOX_ENTRY_TEXT_COLOR = self.DARK_300_COLOR, + TEXTBOX_ENTRY_TEXT_DISABLED_COLOR = self.DARK_500_COLOR, + TEXTBOX_ENTRY_BG_COLOR = self.DARK_875_COLOR, + TEXTBOX_ENTRY_BORDER_COLOR = self.DARK_750_COLOR, + TEXTBOX_ENTRY_PLACEHOLDER_COLOR = self.DARK_500_COLOR, + TEXTBOX_ENTRY_PLACEHOLDER_DISABLED_COLOR = self.DARK_700_COLOR, + + + # Sidebar + SIDEBAR_BG_COLOR = self.DARK_850_COLOR, + + # Sidebar Features + SF__BG_COLOR = self.DARK_825_COLOR, + SF__HOVERED_BG_COLOR = self.DARK_800_COLOR, + SF__CLICKED_BG_COLOR = self.DARK_875_COLOR, + SF__TEXT_DISABLED_COLOR = self.DARK_500_COLOR, + + SF__SWITCH_BOX_BG_COLOR = self.DARK_775_COLOR, + SF__SWITCH_BOX_HOVERED_BG_COLOR = self.DARK_725_COLOR, + SF__SWITCH_BOX_CLICKED_BG_COLOR = self.DARK_825_COLOR, + SF__SWITCH_BOX_ACTIVE_BG_COLOR = self.PRIMARY_500_COLOR, + SF__SWITCH_BOX_ACTIVE_HOVERED_BG_COLOR = self.PRIMARY_400_COLOR, + SF__SWITCH_BOX_ACTIVE_CLICKED_BG_COLOR = self.PRIMARY_700_COLOR, + SF__SWITCH_BOX_DISABLE_BG_COLOR = self.PRIMARY_800_COLOR, + + SF__SWITCH_BOX_BUTTON_COLOR = self.DARK_400_COLOR, + # It's not working because It overrode internally. + SF__SWITCH_BOX_BUTTON_HOVERED_COLOR = self.DARK_350_COLOR, + + SF__SELECTED_MARK_ACTIVE_BG_COLOR = self.PRIMARY_500_COLOR, + SF__SELECTED_MARK_ACTIVE_HOVERED_BG_COLOR = self.PRIMARY_400_COLOR, + SF__SELECTED_MARK_ACTIVE_CLICKED_BG_COLOR = self.PRIMARY_700_COLOR, + SF__SELECTED_MARK_DISABLE_BG_COLOR = self.PRIMARY_800_COLOR, + + + # Sidebar Languages Settings + SLS__TITLE_TEXT_COLOR = self.DARK_400_COLOR, + + SLS__BG_COLOR = self.DARK_800_COLOR, + + SLS__PRESETS_TAB_BG_HOVERED_COLOR = self.DARK_825_COLOR, + SLS__PRESETS_TAB_BG_CLICKED_COLOR = self.DARK_875_COLOR, + SLS__PRESETS_TAB_BG_PASSIVE_COLOR = self.DARK_850_COLOR, + SLS__PRESETS_TAB_BG_ACTIVE_COLOR = self.DARK_800_COLOR, + SLS__PRESETS_TAB_ACTIVE_TEXT_COLOR_PASSIVE = self.DARK_600_COLOR, + SLS__PRESETS_TAB_ACTIVE_TEXT_COLOR = self.LIGHT_100_COLOR, + + SLS__BOX_BG_COLOR = self.DARK_825_COLOR, + SLS__BOX_SECTION_TITLE_TEXT_COLOR = self.DARK_400_COLOR, + SLS__BOX_ARROWS_TEXT_COLOR = self.DARK_500_COLOR, + + SLS__OPTIONMENU_BG_COLOR = self.DARK_888_COLOR, + SLS__OPTIONMENU_HOVERED_BG_COLOR = self.DARK_875_COLOR, + SLS__OPTIONMENU_CLICKED_BG_COLOR = self.DARK_900_COLOR, + + + CONFIG_BUTTON_BG_COLOR = self.DARK_850_COLOR, + CONFIG_BUTTON_HOVERED_BG_COLOR = self.DARK_800_COLOR, + CONFIG_BUTTON_CLICKED_BG_COLOR = self.DARK_875_COLOR, + + MINIMIZE_SIDEBAR_BUTTON_BG_COLOR = self.DARK_850_COLOR, + MINIMIZE_SIDEBAR_BUTTON_HOVERED_BG_COLOR = self.DARK_800_COLOR, + MINIMIZE_SIDEBAR_BUTTON_CLICKED_BG_COLOR = self.DARK_900_COLOR, - # Sidebar - self.main.SIDEBAR_BG_COLOR = self.DARK_850_COLOR + TOP_BAR_BUTTON_BG_COLOR = self.DARK_888_COLOR, + TOP_BAR_BUTTON_HOVERED_BG_COLOR = self.DARK_850_COLOR, + TOP_BAR_BUTTON_CLICKED_BG_COLOR = self.DARK_900_COLOR, - # Sidebar Features - self.main.SF__BG_COLOR = self.DARK_825_COLOR - self.main.SF__HOVERED_BG_COLOR = self.DARK_800_COLOR - self.main.SF__CLICKED_BG_COLOR = self.DARK_875_COLOR - self.main.SF__TEXT_DISABLED_COLOR = self.DARK_500_COLOR + UPDATE_AVAILABLE_BUTTON_BG_COLOR = self.DARK_888_COLOR, + UPDATE_AVAILABLE_BUTTON_HOVERED_BG_COLOR = self.DARK_850_COLOR, + UPDATE_AVAILABLE_BUTTON_CLICKED_BG_COLOR = self.DARK_900_COLOR, + UPDATE_AVAILABLE_BUTTON_TEXT_COLOR = self.PRIMARY_300_COLOR, - self.main.SF__SWITCH_BOX_BG_COLOR = self.DARK_775_COLOR - self.main.SF__SWITCH_BOX_HOVERED_BG_COLOR = self.DARK_725_COLOR - self.main.SF__SWITCH_BOX_CLICKED_BG_COLOR = self.DARK_825_COLOR - self.main.SF__SWITCH_BOX_ACTIVE_BG_COLOR = self.PRIMARY_500_COLOR - self.main.SF__SWITCH_BOX_ACTIVE_HOVERED_BG_COLOR = self.PRIMARY_400_COLOR - self.main.SF__SWITCH_BOX_ACTIVE_CLICKED_BG_COLOR = self.PRIMARY_700_COLOR - self.main.SF__SWITCH_BOX_DISABLE_BG_COLOR = self.PRIMARY_800_COLOR - - self.main.SF__SWITCH_BOX_BUTTON_COLOR = self.DARK_400_COLOR - # It's not working because It overrode internally. - self.main.SF__SWITCH_BOX_BUTTON_HOVERED_COLOR = self.DARK_350_COLOR - - self.main.SF__SELECTED_MARK_ACTIVE_BG_COLOR = self.main.SF__SWITCH_BOX_ACTIVE_BG_COLOR - self.main.SF__SELECTED_MARK_ACTIVE_HOVERED_BG_COLOR = self.main.SF__SWITCH_BOX_ACTIVE_HOVERED_BG_COLOR - self.main.SF__SELECTED_MARK_ACTIVE_CLICKED_BG_COLOR = self.main.SF__SWITCH_BOX_ACTIVE_CLICKED_BG_COLOR - self.main.SF__SELECTED_MARK_DISABLE_BG_COLOR = self.main.SF__SWITCH_BOX_DISABLE_BG_COLOR + HELP_AND_INFO_BUTTON_BG_COLOR = self.DARK_888_COLOR, + HELP_AND_INFO_BUTTON_HOVERED_BG_COLOR = self.DARK_850_COLOR, + HELP_AND_INFO_BUTTON_CLICKED_BG_COLOR = self.DARK_900_COLOR, + ) - # Sidebar Languages Settings - self.main.SLS__TITLE_TEXT_COLOR = self.DARK_400_COLOR + self.selectable_language_window = SimpleNamespace( + # Selectable Language Window + BASIC_TEXT_COLOR = self.LIGHT_100_COLOR, - self.main.SLS__BG_COLOR = self.DARK_800_COLOR + MAIN_BG_COLOR = self.DARK_875_COLOR, - self.main.SLS__PRESETS_TAB_BG_HOVERED_COLOR = self.DARK_825_COLOR - self.main.SLS__PRESETS_TAB_BG_CLICKED_COLOR = self.DARK_875_COLOR - self.main.SLS__PRESETS_TAB_BG_PASSIVE_COLOR = self.main.SIDEBAR_BG_COLOR - self.main.SLS__PRESETS_TAB_BG_ACTIVE_COLOR = self.main.SLS__BG_COLOR - self.main.SLS__PRESETS_TAB_ACTIVE_TEXT_COLOR_PASSIVE = self.DARK_600_COLOR - self.main.SLS__PRESETS_TAB_ACTIVE_TEXT_COLOR = self.main.BASIC_TEXT_COLOR + GO_BACK_BUTTON_BG_COLOR = self.DARK_800_COLOR, + GO_BACK_BUTTON_BG_HOVERED_COLOR = self.DARK_750_COLOR, + GO_BACK_BUTTON_BG_CLICKED_COLOR = self.DARK_875_COLOR, - self.main.SLS__BOX_BG_COLOR = self.DARK_825_COLOR - self.main.SLS__BOX_SECTION_TITLE_TEXT_COLOR = self.DARK_400_COLOR - self.main.SLS__BOX_ARROWS_TEXT_COLOR = self.DARK_500_COLOR + TOP_BG_COLOR = self.DARK_850_COLOR, + TITLE_TEXT_COLOR = self.DARK_400_COLOR, + LANGUAGE_BUTTON_BG_COLOR = self.LIGHT_100_COLOR, + LANGUAGE_BUTTON_BG_HOVERED_COLOR = self.DARK_825_COLOR, + LANGUAGE_BUTTON_BG_CLICKED_COLOR = self.DARK_888_COLOR, + ) - self.main.SLS__OPTIONMENU_BG_COLOR = self.DARK_888_COLOR - self.main.SLS__OPTIONMENU_HOVERED_BG_COLOR = self.DARK_875_COLOR - self.main.SLS__OPTIONMENU_CLICKED_BG_COLOR = self.DARK_900_COLOR - - - self.main.CONFIG_BUTTON_BG_COLOR = self.main.SIDEBAR_BG_COLOR - self.main.CONFIG_BUTTON_HOVERED_BG_COLOR = self.DARK_800_COLOR - self.main.CONFIG_BUTTON_CLICKED_BG_COLOR = self.DARK_875_COLOR - # self.main.CONFIG_BUTTON_DISABLE_COLOR = self.DARK_900_COLOR - - self.main.MINIMIZE_SIDEBAR_BUTTON_BG_COLOR = self.main.SIDEBAR_BG_COLOR - self.main.MINIMIZE_SIDEBAR_BUTTON_HOVERED_BG_COLOR = self.DARK_800_COLOR - self.main.MINIMIZE_SIDEBAR_BUTTON_CLICKED_BG_COLOR = self.DARK_900_COLOR - # self.main.MINIMIZE_SIDEBAR_BUTTON_DISABLE_COLOR = self.DARK_900_COLOR - - - - self.main.TOP_BAR_BUTTON_BG_COLOR = self.main.MAIN_BG_COLOR - self.main.TOP_BAR_BUTTON_HOVERED_BG_COLOR = self.DARK_850_COLOR - self.main.TOP_BAR_BUTTON_CLICKED_BG_COLOR = self.DARK_900_COLOR - # self.main.TOP_BAR_BUTTON_DISABLE_COLOR = self.DARK_900_COLOR - - self.main.UPDATE_AVAILABLE_BUTTON_BG_COLOR = self.main.TOP_BAR_BUTTON_BG_COLOR - self.main.UPDATE_AVAILABLE_BUTTON_HOVERED_BG_COLOR = self.main.TOP_BAR_BUTTON_HOVERED_BG_COLOR - self.main.UPDATE_AVAILABLE_BUTTON_CLICKED_BG_COLOR = self.main.TOP_BAR_BUTTON_CLICKED_BG_COLOR - # self.main.UPDATE_AVAILABLE_BUTTON_DISABLE_COLOR = self.main.TOP_BAR_BUTTON_DISABLE_COLOR - self.main.UPDATE_AVAILABLE_BUTTON_TEXT_COLOR = self.PRIMARY_300_COLOR - - self.main.HELP_AND_INFO_BUTTON_BG_COLOR = self.main.TOP_BAR_BUTTON_BG_COLOR - self.main.HELP_AND_INFO_BUTTON_HOVERED_BG_COLOR = self.main.TOP_BAR_BUTTON_HOVERED_BG_COLOR - self.main.HELP_AND_INFO_BUTTON_CLICKED_BG_COLOR = self.main.TOP_BAR_BUTTON_CLICKED_BG_COLOR - # self.main.HELP_AND_INFO_BUTTON_DISABLE_COLOR = self.main.TOP_BAR_BUTTON_DISABLE_COLOR - - - - # Selectable Language Window - self.selectable_language_window.BASIC_TEXT_COLOR = self.main.BASIC_TEXT_COLOR - - self.selectable_language_window.MAIN_BG_COLOR = self.DARK_875_COLOR - - self.selectable_language_window.GO_BACK_BUTTON_BG_COLOR = self.DARK_800_COLOR - self.selectable_language_window.GO_BACK_BUTTON_BG_HOVERED_COLOR = self.DARK_750_COLOR - self.selectable_language_window.GO_BACK_BUTTON_BG_CLICKED_COLOR = self.DARK_875_COLOR - - - self.selectable_language_window.TOP_BG_COLOR = self.main.SIDEBAR_BG_COLOR - self.selectable_language_window.TITLE_TEXT_COLOR = self.DARK_400_COLOR - self.selectable_language_window.LANGUAGE_BUTTON_BG_COLOR = self.selectable_language_window.MAIN_BG_COLOR - self.selectable_language_window.LANGUAGE_BUTTON_BG_HOVERED_COLOR = self.DARK_825_COLOR - self.selectable_language_window.LANGUAGE_BUTTON_BG_CLICKED_COLOR = self.DARK_888_COLOR # Modal Window (Main Window) - self.main_window_cover.TEXT_COLOR = self.LIGHT_100_COLOR + self.main_window_cover = SimpleNamespace( + TEXT_COLOR = self.LIGHT_100_COLOR, + ) - self.confirmation_modal.MESSAGE_TEXT_COLOR = self.LIGHT_100_COLOR - self.confirmation_modal.FAKE_BORDER_COLOR = self.DARK_600_COLOR - self.confirmation_modal.BG_COLOR = self.DARK_800_COLOR - self.confirmation_modal.CONFIRMATION_BUTTONS_TEXT_COLOR = self.LIGHT_100_COLOR + self.confirmation_modal = SimpleNamespace( + MESSAGE_TEXT_COLOR = self.LIGHT_100_COLOR, + FAKE_BORDER_COLOR = self.DARK_600_COLOR, + BG_COLOR = self.DARK_800_COLOR, + CONFIRMATION_BUTTONS_TEXT_COLOR = self.LIGHT_100_COLOR, - self.confirmation_modal.ACCEPT_BUTTON_BG_COLOR = self.PRIMARY_600_COLOR - self.confirmation_modal.ACCEPT_BUTTON_HOVERED_BG_COLOR = self.PRIMARY_450_COLOR - self.confirmation_modal.ACCEPT_BUTTON_CLICKED_BG_COLOR = self.PRIMARY_750_COLOR - self.confirmation_modal.DENY_BUTTON_BG_COLOR = self.DARK_750_COLOR - self.confirmation_modal.DENY_BUTTON_HOVERED_BG_COLOR = self.DARK_700_COLOR - self.confirmation_modal.DENY_BUTTON_CLICKED_BG_COLOR = self.DARK_825_COLOR + ACCEPT_BUTTON_BG_COLOR = self.PRIMARY_600_COLOR, + ACCEPT_BUTTON_HOVERED_BG_COLOR = self.PRIMARY_450_COLOR, + ACCEPT_BUTTON_CLICKED_BG_COLOR = self.PRIMARY_750_COLOR, + DENY_BUTTON_BG_COLOR = self.DARK_750_COLOR, + DENY_BUTTON_HOVERED_BG_COLOR = self.DARK_700_COLOR, + DENY_BUTTON_CLICKED_BG_COLOR = self.DARK_825_COLOR, + ) - # Common - self.config_window.BASIC_TEXT_COLOR = self.main.BASIC_TEXT_COLOR - self.config_window.LABELS_TEXT_COLOR = self.config_window.BASIC_TEXT_COLOR - self.config_window.LABELS_DESC_TEXT_COLOR = self.DARK_500_COLOR + self.config_window = SimpleNamespace( + # Common + BASIC_TEXT_COLOR = self.LIGHT_100_COLOR, + LABELS_TEXT_COLOR = self.LIGHT_100_COLOR, + LABELS_DESC_TEXT_COLOR = self.DARK_500_COLOR, - self.config_window.LABELS_TEXT_DISABLED_COLOR = self.DARK_600_COLOR + LABELS_TEXT_DISABLED_COLOR = self.DARK_600_COLOR, - # Top bar - self.config_window.TOP_BAR_BG_COLOR = self.DARK_850_COLOR + # Top bar + TOP_BAR_BG_COLOR = self.DARK_850_COLOR, - # Restart Button - self.config_window.RESTART_BUTTON_BG_COLOR = self.PRIMARY_600_COLOR - self.config_window.RESTART_BUTTON_HOVERED_BG_COLOR = self.PRIMARY_500_COLOR - self.config_window.RESTART_BUTTON_CLICKED_BG_COLOR = self.PRIMARY_700_COLOR + # Restart Button + RESTART_BUTTON_BG_COLOR = self.PRIMARY_600_COLOR, + RESTART_BUTTON_HOVERED_BG_COLOR = self.PRIMARY_500_COLOR, + RESTART_BUTTON_CLICKED_BG_COLOR = self.PRIMARY_700_COLOR, - # Compact Mode - self.config_window.COMPACT_MODE_SWITCH_BOX_BG_COLOR = self.DARK_775_COLOR - self.config_window.COMPACT_MODE_SWITCH_BOX_ACTIVE_BG_COLOR = self.PRIMARY_500_COLOR - self.config_window.COMPACT_MODE_SWITCH_BOX_BUTTON_COLOR = self.DARK_350_COLOR - self.config_window.COMPACT_MODE_SWITCH_BOX_BUTTON_HOVERED_COLOR = self.DARK_300_COLOR + # Compact Mode + COMPACT_MODE_SWITCH_BOX_BG_COLOR = self.DARK_775_COLOR, + COMPACT_MODE_SWITCH_BOX_ACTIVE_BG_COLOR = self.PRIMARY_500_COLOR, + COMPACT_MODE_SWITCH_BOX_BUTTON_COLOR = self.DARK_350_COLOR, + COMPACT_MODE_SWITCH_BOX_BUTTON_HOVERED_COLOR = self.DARK_300_COLOR, - # Main - self.config_window.MAIN_BG_COLOR = self.DARK_950_COLOR + # Main + MAIN_BG_COLOR = self.DARK_950_COLOR, - # This is for fake border color - self.config_window.SB__WRAPPER_BG_COLOR = self.DARK_750_COLOR + # This is for fake border color + SB__WRAPPER_BG_COLOR = self.DARK_750_COLOR, - self.config_window.SB__BG_COLOR = self.DARK_888_COLOR + SB__BG_COLOR = self.DARK_888_COLOR, - self.config_window.SB__OPTIONMENU_BG_COLOR = self.DARK_925_COLOR - self.config_window.SB__OPTIONMENU_HOVERED_BG_COLOR = self.DARK_850_COLOR - self.config_window.SB__OPTIONMENU_CLICKED_BG_COLOR = self.DARK_950_COLOR - self.config_window.SB__DROPDOWN_MENU_WINDOW_BG_COLOR = self.config_window.MAIN_BG_COLOR - self.config_window.SB__DROPDOWN_MENU_WINDOW_BORDER_COLOR = self.DARK_600_COLOR - # self.config_window.SB__DROPDOWN_MENU_WINDOW_BG_COLOR = self.DARK_700_COLOR - self.config_window.SB__DROPDOWN_MENU_BG_COLOR = self.DARK_875_COLOR - self.config_window.SB__DROPDOWN_MENU_HOVERED_BG_COLOR = self.DARK_800_COLOR - self.config_window.SB__DROPDOWN_MENU_CLICKED_BG_COLOR = self.DARK_900_COLOR + SB__OPTIONMENU_BG_COLOR = self.DARK_925_COLOR, + SB__OPTIONMENU_HOVERED_BG_COLOR = self.DARK_850_COLOR, + SB__OPTIONMENU_CLICKED_BG_COLOR = self.DARK_950_COLOR, + SB__DROPDOWN_MENU_WINDOW_BG_COLOR = self.DARK_950_COLOR, + SB__DROPDOWN_MENU_WINDOW_BORDER_COLOR = self.DARK_600_COLOR, + SB__DROPDOWN_MENU_BG_COLOR = self.DARK_875_COLOR, + SB__DROPDOWN_MENU_HOVERED_BG_COLOR = self.DARK_800_COLOR, + SB__DROPDOWN_MENU_CLICKED_BG_COLOR = self.DARK_900_COLOR, - self.config_window.SB__SLIDER_BG_COLOR = self.DARK_700_COLOR - self.config_window.SB__SLIDER_PROGRESS_BG_COLOR = self.DARK_500_COLOR - self.config_window.SB__SLIDER_BUTTON_COLOR = self.DARK_700_COLOR - self.config_window.SB__SLIDER_BUTTON_HOVERED_COLOR = self.DARK_600_COLOR - self.config_window.SB__SLIDER_TOOLTIP_BG_COLOR = self.DARK_850_COLOR - self.config_window.SB__SLIDER_TOOLTIP_TEXT_COLOR = self.DARK_200_COLOR + SB__SLIDER_BG_COLOR = self.DARK_700_COLOR, + SB__SLIDER_PROGRESS_BG_COLOR = self.DARK_500_COLOR, + SB__SLIDER_BUTTON_COLOR = self.DARK_700_COLOR, + SB__SLIDER_BUTTON_HOVERED_COLOR = self.DARK_600_COLOR, + SB__SLIDER_TOOLTIP_BG_COLOR = self.DARK_850_COLOR, + SB__SLIDER_TOOLTIP_TEXT_COLOR = self.DARK_200_COLOR, - self.config_window.SB__SWITCH_BOX_BG_COLOR = self.DARK_800_COLOR - self.config_window.SB__SWITCH_BOX_ACTIVE_BG_COLOR = self.PRIMARY_500_COLOR - self.config_window.SB__SWITCH_BOX_BUTTON_COLOR = self.DARK_400_COLOR - self.config_window.SB__SWITCH_BOX_BUTTON_HOVERED_COLOR = self.DARK_350_COLOR + SB__SWITCH_BOX_BG_COLOR = self.DARK_800_COLOR, + SB__SWITCH_BOX_ACTIVE_BG_COLOR = self.PRIMARY_500_COLOR, + SB__SWITCH_BOX_BUTTON_COLOR = self.DARK_400_COLOR, + SB__SWITCH_BOX_BUTTON_HOVERED_COLOR = self.DARK_350_COLOR, - self.config_window.SB__CHECKBOX_BORDER_COLOR = self.DARK_600_COLOR - self.config_window.SB__CHECKBOX_HOVER_COLOR = self.DARK_800_COLOR - self.config_window.SB__CHECKBOX_CHECKED_COLOR = self.PRIMARY_700_COLOR - self.config_window.SB__CHECKBOX_CHECKMARK_COLOR = self.config_window.BASIC_TEXT_COLOR + SB__CHECKBOX_BORDER_COLOR = self.DARK_600_COLOR, + SB__CHECKBOX_HOVER_COLOR = self.DARK_800_COLOR, + SB__CHECKBOX_CHECKED_COLOR = self.PRIMARY_700_COLOR, + SB__CHECKBOX_CHECKMARK_COLOR = self.LIGHT_100_COLOR, - self.config_window.SB__ENTRY_TEXT_COLOR = self.DARK_300_COLOR - self.config_window.SB__ENTRY_BG_COLOR = self.DARK_863_COLOR - self.config_window.SB__ENTRY_BORDER_COLOR = self.DARK_775_COLOR + SB__ENTRY_TEXT_COLOR = self.DARK_300_COLOR, + SB__ENTRY_BG_COLOR = self.DARK_863_COLOR, + SB__ENTRY_BORDER_COLOR = self.DARK_775_COLOR, - self.config_window.SB__PROGRESSBAR_X_SLIDER__PROGRESSBAR_BG_COLOR = self.DARK_800_COLOR - self.config_window.SB__PROGRESSBAR_X_SLIDER__PROGRESSBAR_PROGRESS_BG_COLOR = self.PRIMARY_750_COLOR - self.config_window.SB__PROGRESSBAR_X_SLIDER__PROGRESSBAR_PROGRESS_EXCEED_THRESHOLD_BG_COLOR = self.PRIMARY_400_COLOR + SB__PROGRESSBAR_X_SLIDER__PROGRESSBAR_BG_COLOR = self.DARK_800_COLOR, + SB__PROGRESSBAR_X_SLIDER__PROGRESSBAR_PROGRESS_BG_COLOR = self.PRIMARY_750_COLOR, + SB__PROGRESSBAR_X_SLIDER__PROGRESSBAR_PROGRESS_EXCEED_THRESHOLD_BG_COLOR = self.PRIMARY_400_COLOR, - self.config_window.SB__PROGRESSBAR_X_SLIDER__SLIDER_BUTTON_COLOR = self.PRIMARY_600_COLOR - self.config_window.SB__PROGRESSBAR_X_SLIDER__SLIDER_BUTTON_HOVERED_COLOR = self.PRIMARY_400_COLOR - self.config_window.SB__PROGRESSBAR_X_SLIDER__PASSIVE_BUTTON_COLOR = self.DARK_800_COLOR + SB__PROGRESSBAR_X_SLIDER__SLIDER_BUTTON_COLOR = self.PRIMARY_600_COLOR, + SB__PROGRESSBAR_X_SLIDER__SLIDER_BUTTON_HOVERED_COLOR = self.PRIMARY_400_COLOR, - self.config_window.SB__PROGRESSBAR_X_SLIDER__PASSIVE_BUTTON_COLOR = self.DARK_800_COLOR - self.config_window.SB__PROGRESSBAR_X_SLIDER__PASSIVE_BUTTON_HOVERED_COLOR = self.DARK_700_COLOR - self.config_window.SB__PROGRESSBAR_X_SLIDER__PASSIVE_BUTTON_CLICKED_COLOR = self.DARK_900_COLOR - self.config_window.SB__PROGRESSBAR_X_SLIDER__PASSIVE_BUTTON_DISABLED_COLOR = self.DARK_850_COLOR + SB__PROGRESSBAR_X_SLIDER__PASSIVE_BUTTON_COLOR = self.DARK_800_COLOR, + SB__PROGRESSBAR_X_SLIDER__PASSIVE_BUTTON_HOVERED_COLOR = self.DARK_700_COLOR, + SB__PROGRESSBAR_X_SLIDER__PASSIVE_BUTTON_CLICKED_COLOR = self.DARK_900_COLOR, + SB__PROGRESSBAR_X_SLIDER__PASSIVE_BUTTON_DISABLED_COLOR = self.DARK_850_COLOR, - self.config_window.SB__PROGRESSBAR_X_SLIDER__ACTIVE_BUTTON_COLOR = self.PRIMARY_600_COLOR - self.config_window.SB__PROGRESSBAR_X_SLIDER__ACTIVE_BUTTON_HOVERED_COLOR = self.PRIMARY_500_COLOR - self.config_window.SB__PROGRESSBAR_X_SLIDER__ACTIVE_BUTTON_CLICKED_COLOR = self.PRIMARY_800_COLOR - # self.config_window.SB__PROGRESSBAR_X_SLIDER__ACTIVE_BUTTON_DISABLED_COLOR = self.PRIMARY_900_COLOR + SB__PROGRESSBAR_X_SLIDER__ACTIVE_BUTTON_COLOR = self.PRIMARY_600_COLOR, + SB__PROGRESSBAR_X_SLIDER__ACTIVE_BUTTON_HOVERED_COLOR = self.PRIMARY_500_COLOR, + SB__PROGRESSBAR_X_SLIDER__ACTIVE_BUTTON_CLICKED_COLOR = self.PRIMARY_800_COLOR, - # Side menu - self.config_window.SIDE_MENU_BG_COLOR = self.config_window.MAIN_BG_COLOR + # Side menu + SIDE_MENU_BG_COLOR = self.DARK_950_COLOR, - self.config_window.SIDE_MENU_LABELS_BG_COLOR = self.config_window.SIDE_MENU_BG_COLOR - self.config_window.SIDE_MENU_LABELS_BG_FOR_FAKE_BORDER_COLOR = self.config_window.SIDE_MENU_BG_COLOR - self.config_window.SIDE_MENU_LABELS_HOVERED_BG_COLOR = self.DARK_850_COLOR - self.config_window.SIDE_MENU_LABELS_CLICKED_BG_COLOR = self.PRIMARY_750_COLOR - self.config_window.SIDE_MENU_LABELS_SELECTED_TEXT_COLOR = self.PRIMARY_200_COLOR + SIDE_MENU_LABELS_BG_COLOR = self.DARK_950_COLOR, + SIDE_MENU_LABELS_BG_FOR_FAKE_BORDER_COLOR = self.DARK_950_COLOR, + SIDE_MENU_LABELS_HOVERED_BG_COLOR = self.DARK_850_COLOR, + SIDE_MENU_LABELS_CLICKED_BG_COLOR = self.PRIMARY_750_COLOR, + SIDE_MENU_LABELS_SELECTED_TEXT_COLOR = self.PRIMARY_200_COLOR, - self.config_window.SIDE_MENU_SELECTED_MARK_ACTIVE_BG_COLOR = self.main.SF__SWITCH_BOX_ACTIVE_BG_COLOR + SIDE_MENU_SELECTED_MARK_ACTIVE_BG_COLOR = self.PRIMARY_500_COLOR, - self.config_window.NOW_VERSION_TEXT_COLOR = self.DARK_300_COLOR + NOW_VERSION_TEXT_COLOR = self.DARK_300_COLOR, - # Error Message Window for Config Window - # The color code [#bb4448] is a mixture of [#a9555c] and [#cc3333] (for a redder shade). - self.config_window.SB__ERROR_MESSAGE_BG_COLOR = "#bb4448" - self.config_window.SB__ERROR_MESSAGE_TEXT_COLOR = "#fff" - - - - - - - - - - # def _createLightModeColor(self): - # # Common - # self.main.BASIC_TEXT_COLOR = self.DARK_1000_COLOR - # self.main.LABELS_TEXT_COLOR = self.main.BASIC_TEXT_COLOR - - # # Main - # self.main.MAIN_BG_COLOR = self.LIGHT_300_COLOR - - # self.main.TEXTBOX_BG_COLOR = self.LIGHT_200_COLOR - # self.main.TEXTBOX_TEXT_COLOR = self.main.BASIC_TEXT_COLOR - # self.main.TEXTBOX_TAB_BG_PASSIVE_COLOR = self.LIGHT_350_COLOR - # self.main.TEXTBOX_TAB_BG_ACTIVE_COLOR = self.main.TEXTBOX_BG_COLOR - # self.main.TEXTBOX_TAB_BG_HOVERED_COLOR = self.LIGHT_300_COLOR - # self.main.TEXTBOX_TAB_BG_CLICKED_COLOR = self.LIGHT_350_COLOR - # self.main.TEXTBOX_TAB_TEXT_ACTIVE_COLOR = self.main.BASIC_TEXT_COLOR - # self.main.TEXTBOX_TAB_TEXT_PASSIVE_COLOR = self.LIGHT_600_COLOR - - # self.main.TEXTBOX_ENTRY_TEXT_COLOR = self.LIGHT_800_COLOR - # self.main.TEXTBOX_ENTRY_TEXT_DISABLED_COLOR = self.LIGHT_500_COLOR - # self.main.TEXTBOX_ENTRY_BG_COLOR = self.LIGHT_325_COLOR - # self.main.TEXTBOX_ENTRY_BORDER_COLOR = self.LIGHT_400_COLOR - # self.main.TEXTBOX_ENTRY_PLACEHOLDER_COLOR = self.LIGHT_600_COLOR - # self.main.TEXTBOX_ENTRY_PLACEHOLDER_DISABLED_COLOR = self.LIGHT_700_COLOR - - - - # # Sidebar - # self.main.SIDEBAR_BG_COLOR = self.LIGHT_350_COLOR - - # # Sidebar Features - # self.main.SF__BG_COLOR = self.LIGHT_375_COLOR - # self.main.SF__HOVERED_BG_COLOR = self.LIGHT_300_COLOR - # self.main.SF__CLICKED_BG_COLOR = self.LIGHT_200_COLOR - # self.main.SF__TEXT_DISABLED_COLOR = self.LIGHT_500_COLOR - - # self.main.SF__SWITCH_BOX_BG_COLOR = self.LIGHT_300_COLOR - # self.main.SF__SWITCH_BOX_HOVERED_BG_COLOR = self.LIGHT_450_COLOR - # self.main.SF__SWITCH_BOX_CLICKED_BG_COLOR = self.LIGHT_350_COLOR - # self.main.SF__SWITCH_BOX_ACTIVE_BG_COLOR = self.PRIMARY_650_COLOR - # self.main.SF__SWITCH_BOX_ACTIVE_HOVERED_BG_COLOR = self.PRIMARY_500_COLOR - # self.main.SF__SWITCH_BOX_ACTIVE_CLICKED_BG_COLOR = self.PRIMARY_700_COLOR - # self.main.SF__SWITCH_BOX_DISABLE_BG_COLOR = self.PRIMARY_900_COLOR - - # self.main.SF__SELECTED_MARK_ACTIVE_BG_COLOR = self.main.SF__SWITCH_BOX_ACTIVE_BG_COLOR - # self.main.SF__SELECTED_MARK_ACTIVE_HOVERED_BG_COLOR = self.main.SF__SWITCH_BOX_ACTIVE_HOVERED_BG_COLOR - # self.main.SF__SELECTED_MARK_ACTIVE_CLICKED_BG_COLOR = self.main.SF__SWITCH_BOX_ACTIVE_CLICKED_BG_COLOR - # self.main.SF__SELECTED_MARK_DISABLE_BG_COLOR = self.main.SF__SWITCH_BOX_DISABLE_BG_COLOR - - - # # Sidebar quick settings - # self.main.SLS__TITLE_TEXT_COLOR = self.LIGHT_800_COLOR - - # self.main.SLS__BG_COLOR = self.LIGHT_300_COLOR - - # self.main.SLS__PRESETS_TAB_BG_HOVERED_COLOR = self.LIGHT_350_COLOR - # self.main.SLS__PRESETS_TAB_BG_CLICKED_COLOR = self.LIGHT_800_COLOR - # self.main.SLS__PRESETS_TAB_BG_PASSIVE_COLOR = self.main.SIDEBAR_BG_COLOR - # self.main.SLS__PRESETS_TAB_BG_ACTIVE_COLOR = self.main.SLS__BG_COLOR - # self.main.SLS__PRESETS_TAB_ACTIVE_TEXT_COLOR_PASSIVE = self.LIGHT_600_COLOR - # self.main.SLS__PRESETS_TAB_ACTIVE_TEXT_COLOR = self.main.BASIC_TEXT_COLOR - - # self.main.SLS__BOX_BG_COLOR = self.LIGHT_350_COLOR - # self.main.SLS__BOX_SECTION_TITLE_TEXT_COLOR = self.LIGHT_800_COLOR - # self.main.SLS__BOX_ARROWS_TEXT_COLOR = self.LIGHT_700_COLOR - - # self.main.SLS__OPTIONMENU_BG_COLOR = self.LIGHT_500_COLOR - - - # self.main.CONFIG_BUTTON_BG_COLOR = self.main.SIDEBAR_BG_COLOR - # self.main.CONFIG_BUTTON_HOVERED_BG_COLOR = self.LIGHT_800_COLOR - # self.main.CONFIG_BUTTON_CLICKED_BG_COLOR = self.LIGHT_900_COLOR - # # self.main.CONFIG_BUTTON_DISABLE_COLOR = self.LIGHT_900_COLOR - - # self.main.MINIMIZE_SIDEBAR_BUTTON_BG_COLOR = self.main.SIDEBAR_BG_COLOR - # self.main.MINIMIZE_SIDEBAR_BUTTON_HOVERED_BG_COLOR = self.LIGHT_800_COLOR - # self.main.MINIMIZE_SIDEBAR_BUTTON_CLICKED_BG_COLOR = self.LIGHT_900_COLOR - # # self.main.MINIMIZE_SIDEBAR_BUTTON_DISABLE_COLOR = self.LIGHT_900_COLOR - - # self.main.HELP_AND_INFO_BUTTON_BG_COLOR = self.main.MAIN_BG_COLOR - # self.main.HELP_AND_INFO_BUTTON_HOVERED_BG_COLOR = self.LIGHT_350_COLOR - # self.main.HELP_AND_INFO_BUTTON_CLICKED_BG_COLOR = self.LIGHT_450_COLOR - # # self.main.HELP_AND_INFO_BUTTON_DISABLE_COLOR = self.LIGHT_900_COLOR - - - # # Common - # self.config_window.BASIC_TEXT_COLOR = self.main.BASIC_TEXT_COLOR - # self.config_window.LABELS_TEXT_COLOR = self.config_window.BASIC_TEXT_COLOR - # self.config_window.LABELS_DESC_TEXT_COLOR = self.DARK_500_COLOR - - - # # Top bar - # self.config_window.TOP_BAR_BG_COLOR = self.DARK_850_COLOR - - - # # Main - # self.config_window.MAIN_BG_COLOR = self.DARK_950_COLOR - - # # This is for fake border color - # self.config_window.SB__WRAPPER_BG_COLOR = self.DARK_750_COLOR - - # self.config_window.SB__BG_COLOR = self.DARK_888_COLOR - - # self.config_window.SB__OPTIONMENU_BG_COLOR = self.DARK_925_COLOR - # self.config_window.SB__OPTIONMENU_HOVERED_BG_COLOR = self.DARK_875_COLOR - - # self.config_window.SB__SLIDER_BUTTON_COLOR = self.DARK_700_COLOR - # self.config_window.SB__SLIDER_BUTTON_HOVERED_COLOR = self.DARK_600_COLOR - - # self.config_window.SB__SWITCH_BOX_BG_COLOR = self.main.SF__SWITCH_BOX_BG_COLOR - # self.config_window.SB__SWITCH_BOX_ACTIVE_BG_COLOR = self.main.SF__SWITCH_BOX_ACTIVE_BG_COLOR - - # self.config_window.SB__CHECKBOX_BORDER_COLOR = self.DARK_500_COLOR - # self.config_window.SB__CHECKBOX_HOVER_COLOR = self.DARK_800_COLOR - # self.config_window.SB__CHECKBOX_CHECKED_COLOR = self.PRIMARY_700_COLOR - # self.config_window.SB__CHECKBOX_CHECKMARK_COLOR = self.config_window.BASIC_TEXT_COLOR - - # self.config_window.SB__PROGRESSBAR_X_SLIDER__SLIDER_BUTTON_COLOR = self.PRIMARY_700_COLOR - # self.config_window.SB__PROGRESSBAR_X_SLIDER__SLIDER_BUTTON_HOVERED_COLOR = self.PRIMARY_500_COLOR - # self.config_window.SB__PROGRESSBAR_X_SLIDER__PASSIVE_BUTTON_COLOR = self.DARK_800_COLOR - - # self.config_window.SB__PROGRESSBAR_X_SLIDER__PASSIVE_BUTTON_COLOR = self.DARK_800_COLOR - # self.config_window.SB__PROGRESSBAR_X_SLIDER__PASSIVE_BUTTON_HOVERED_COLOR = self.DARK_700_COLOR - # self.config_window.SB__PROGRESSBAR_X_SLIDER__PASSIVE_BUTTON_CLICKED_COLOR = self.DARK_900_COLOR - # self.config_window.SB__PROGRESSBAR_X_SLIDER__PASSIVE_BUTTON_DISABLED_COLOR = self.DARK_850_COLOR - - # self.config_window.SB__PROGRESSBAR_X_SLIDER__ACTIVE_BUTTON_COLOR = self.PRIMARY_700_COLOR - # self.config_window.SB__PROGRESSBAR_X_SLIDER__ACTIVE_BUTTON_HOVERED_COLOR = self.PRIMARY_600_COLOR - # self.config_window.SB__PROGRESSBAR_X_SLIDER__ACTIVE_BUTTON_CLICKED_COLOR = self.PRIMARY_900_COLOR - # # self.config_window.SB__PROGRESSBAR_X_SLIDER__ACTIVE_BUTTON_DISABLED_COLOR = self.PRIMARY_900_COLOR - - - # # Side menu - # self.config_window.SIDE_MENU_BG_COLOR = self.config_window.MAIN_BG_COLOR - - # self.config_window.SIDE_MENU_LABELS_BG_COLOR = self.config_window.SIDE_MENU_BG_COLOR - # self.config_window.SIDE_MENU_LABELS_BG_FOR_FAKE_BORDER_COLOR = self.config_window.SIDE_MENU_BG_COLOR - # self.config_window.SIDE_MENU_LABELS_HOVERED_BG_COLOR = self.DARK_850_COLOR - # self.config_window.SIDE_MENU_LABELS_CLICKED_BG_COLOR = self.PRIMARY_900_COLOR - # self.config_window.SIDE_MENU_LABELS_SELECTED_TEXT_COLOR = self.PRIMARY_300_COLOR - - # self.config_window.SIDE_MENU_SELECTED_MARK_ACTIVE_BG_COLOR = self.main.SF__SWITCH_BOX_ACTIVE_BG_COLOR + # Error Message Window for Config Window + # The color code [#bb4448] is a mixture of [#a9555c] and [#cc3333] (for a redder shade). + SB__ERROR_MESSAGE_BG_COLOR = "#bb4448", + SB__ERROR_MESSAGE_TEXT_COLOR = "#fff", + ) \ No newline at end of file From 2707332ec812f5b9f9a7e7de4e3680d67756d0ce Mon Sep 17 00:00:00 2001 From: Sakamoto Shiina <68018796+ShiinaSakamoto@users.noreply.github.com> Date: Fri, 27 Oct 2023 19:56:22 +0900 Subject: [PATCH 3/8] =?UTF-8?q?[Update]=20ColorThemeManager:=20(WIP)Light?= =?UTF-8?q?=E3=83=86=E3=83=BC=E3=83=9E=E9=81=B8=E6=8A=9E=E6=99=82=E3=80=81?= =?UTF-8?q?=E3=82=AB=E3=83=A9=E3=83=BC=E6=8C=87=E5=AE=9A=E3=81=8C=E3=81=AA?= =?UTF-8?q?=E3=81=84=E6=99=82=E3=81=AB=E3=80=81Dark=E3=83=86=E3=83=BC?= =?UTF-8?q?=E3=83=9E=E3=81=A8=E3=83=9E=E3=83=BC=E3=82=B8=E3=81=97=E3=81=A6?= =?UTF-8?q?=E5=80=A4=E3=82=92=E6=8C=81=E3=81=A3=E3=81=A6=E3=81=8F=E3=82=8B?= =?UTF-8?q?=E3=82=88=E3=81=86=E3=81=AB=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- vrct_gui/ui_managers/ColorThemeManager.py | 53 ++++++++++++++++++----- vrct_gui/ui_managers/ImageFileManager.py | 3 +- 2 files changed, 44 insertions(+), 12 deletions(-) diff --git a/vrct_gui/ui_managers/ColorThemeManager.py b/vrct_gui/ui_managers/ColorThemeManager.py index db6b73c1..3b7e330d 100644 --- a/vrct_gui/ui_managers/ColorThemeManager.py +++ b/vrct_gui/ui_managers/ColorThemeManager.py @@ -1,13 +1,8 @@ +import pprint from types import SimpleNamespace class ColorThemeManager(): def __init__(self, theme): - # self.main = SimpleNamespace() - # self.config_window = SimpleNamespace() - # self.selectable_language_window = SimpleNamespace() - # self.main_window_cover = SimpleNamespace() - # self.error_message_window = SimpleNamespace() - # self.confirmation_modal = SimpleNamespace() # old one. But leave it here for now. # self.PRIMARY_100_COLOR = "#c4eac1" @@ -86,13 +81,22 @@ class ColorThemeManager(): self.LIGHT_1000_COLOR = "#010101" + self._createDarkModeColor__Default() if theme == "Dark": - self._createDarkModeColor() - # elif theme == "Light": - # self._createLightModeColor() + pass + + elif theme == "Light": + color = self._createLightModeColor() + for c in color.__dict__.keys(): + s = getattr(self, c) + s_dict = s.__dict__ + data = getattr(color, c) + data_dict = data.__dict__ + + self.mergeNestedDicts(s_dict, data_dict) - def _createDarkModeColor(self): + def _createDarkModeColor__Default(self): self.main = SimpleNamespace( # Common BASIC_TEXT_COLOR = self.LIGHT_100_COLOR, @@ -336,4 +340,31 @@ class ColorThemeManager(): # The color code [#bb4448] is a mixture of [#a9555c] and [#cc3333] (for a redder shade). SB__ERROR_MESSAGE_BG_COLOR = "#bb4448", SB__ERROR_MESSAGE_TEXT_COLOR = "#fff", - ) \ No newline at end of file + ) + + def _createLightModeColor(self): + color = SimpleNamespace( + main = SimpleNamespace( + # Main + MAIN_BG_COLOR = self.DARK_200_COLOR, + ), + + config_window = SimpleNamespace( + # Common + BASIC_TEXT_COLOR = self.LIGHT_100_COLOR, + ), + ) + + return color + + + + @staticmethod + def mergeNestedDicts(d1, d2): + for key, value in d2.items(): + if key in d1 and isinstance(d1[key], dict) and isinstance(value, dict): + mergeNestedDicts(d1[key], value) + else: + d1[key] = value + + return d1 diff --git a/vrct_gui/ui_managers/ImageFileManager.py b/vrct_gui/ui_managers/ImageFileManager.py index 8bb71b4a..2de42c52 100644 --- a/vrct_gui/ui_managers/ImageFileManager.py +++ b/vrct_gui/ui_managers/ImageFileManager.py @@ -3,8 +3,9 @@ from ..ui_utils import getImageFileFromUiUtils class ImageFileManager(): def __init__(self, theme:str ="Dark"): + self._createDarkModeImages() if theme == "Dark": - self._createDarkModeImages() + pass elif theme == "Light": self._createLightModeImages() From 20f48999d18bc77eba2ced409b3b831033bb76b5 Mon Sep 17 00:00:00 2001 From: Sakamoto Shiina <68018796+ShiinaSakamoto@users.noreply.github.com> Date: Fri, 27 Oct 2023 19:59:58 +0900 Subject: [PATCH 4/8] =?UTF-8?q?[bugfix]=20ColorThemeManager:=20=E6=8C=87?= =?UTF-8?q?=E5=AE=9A=E3=83=9F=E3=82=B9=E4=BF=AE=E6=AD=A3=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- vrct_gui/ui_managers/ColorThemeManager.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/vrct_gui/ui_managers/ColorThemeManager.py b/vrct_gui/ui_managers/ColorThemeManager.py index 3b7e330d..a54f0dee 100644 --- a/vrct_gui/ui_managers/ColorThemeManager.py +++ b/vrct_gui/ui_managers/ColorThemeManager.py @@ -215,7 +215,7 @@ class ColorThemeManager(): TOP_BG_COLOR = self.DARK_850_COLOR, TITLE_TEXT_COLOR = self.DARK_400_COLOR, - LANGUAGE_BUTTON_BG_COLOR = self.LIGHT_100_COLOR, + LANGUAGE_BUTTON_BG_COLOR = self.DARK_875_COLOR, LANGUAGE_BUTTON_BG_HOVERED_COLOR = self.DARK_825_COLOR, LANGUAGE_BUTTON_BG_CLICKED_COLOR = self.DARK_888_COLOR, ) From 1efd7d03306f108f9ecdc3324e80026d72d8f3d1 Mon Sep 17 00:00:00 2001 From: Sakamoto Shiina <68018796+ShiinaSakamoto@users.noreply.github.com> Date: Sat, 28 Oct 2023 16:05:18 +0900 Subject: [PATCH 5/8] =?UTF-8?q?[Refactor]=20ColorThemeManager:=20=E3=82=AB?= =?UTF-8?q?=E3=83=A9=E3=83=BC=E3=83=86=E3=83=BC=E3=83=9E=E3=81=94=E3=81=A8?= =?UTF-8?q?=E3=81=AB=E3=83=95=E3=82=A1=E3=82=A4=E3=83=AB=E5=88=86=E3=81=91?= =?UTF-8?q?=E3=80=82ImageFileManager=E5=BB=83=E6=AD=A2=E3=80=81ColorThemeM?= =?UTF-8?q?anager=E3=81=AB=E7=B5=B1=E5=90=88=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- view.py | 5 +- vrct_gui/ui_managers/ColorThemeManager.py | 414 ++++----------------- vrct_gui/ui_managers/ImageFileManager.py | 59 --- vrct_gui/ui_managers/Themes/__init__.py | 2 + vrct_gui/ui_managers/Themes/_darkTheme.py | 279 ++++++++++++++ vrct_gui/ui_managers/Themes/_lightTheme.py | 43 +++ vrct_gui/ui_managers/__init__.py | 1 - 7 files changed, 402 insertions(+), 401 deletions(-) delete mode 100644 vrct_gui/ui_managers/ImageFileManager.py create mode 100644 vrct_gui/ui_managers/Themes/__init__.py create mode 100644 vrct_gui/ui_managers/Themes/_darkTheme.py create mode 100644 vrct_gui/ui_managers/Themes/_lightTheme.py diff --git a/view.py b/view.py index 5468c7a3..1565aefa 100644 --- a/view.py +++ b/view.py @@ -8,7 +8,7 @@ import i18n from languages import selectable_languages from customtkinter import StringVar, IntVar, BooleanVar, END as CTK_END, get_appearance_mode -from vrct_gui.ui_managers import ColorThemeManager, ImageFileManager, UiScalingManager +from vrct_gui.ui_managers import ColorThemeManager, UiScalingManager from vrct_gui import vrct_gui from utils import callFunctionIfCallable, generatePercentageStringsList, intToPercentageStringsFormatter @@ -37,10 +37,9 @@ class View(): theme = "Dark" all_ctm = ColorThemeManager(theme) all_uism = UiScalingManager(config.UI_SCALING) - image_file = ImageFileManager(theme) common_args = { - "image_file": image_file, + "image_file": all_ctm.image_file, "FONT_FAMILY": config.FONT_FAMILY, } diff --git a/vrct_gui/ui_managers/ColorThemeManager.py b/vrct_gui/ui_managers/ColorThemeManager.py index a54f0dee..36c3862a 100644 --- a/vrct_gui/ui_managers/ColorThemeManager.py +++ b/vrct_gui/ui_managers/ColorThemeManager.py @@ -1,369 +1,107 @@ -import pprint from types import SimpleNamespace +from .Themes import _darkTheme, _lightTheme + class ColorThemeManager(): def __init__(self, theme): + self.base_color = SimpleNamespace( - # old one. But leave it here for now. - # self.PRIMARY_100_COLOR = "#c4eac1" - # self.PRIMARY_200_COLOR = "#9cdd98" - # self.PRIMARY_300_COLOR = "#70d16c" - # self.PRIMARY_400_COLOR = "#49c649" - # self.PRIMARY_500_COLOR = "#0abb1d" - # self.PRIMARY_600_COLOR = "#00ac11" - # self.PRIMARY_650_COLOR = "#00A309" - # self.PRIMARY_700_COLOR = "#009900" - # self.PRIMARY_800_COLOR = "#008800" - # self.PRIMARY_900_COLOR = "#006900" + PRIMARY_100_COLOR = "#b7ded8", + PRIMARY_200_COLOR = "#8acac0", + PRIMARY_300_COLOR = "#61b4a7", + PRIMARY_400_COLOR = "#48a495", + PRIMARY_450_COLOR = "#429c8c", + PRIMARY_500_COLOR = "#3b9483", + PRIMARY_600_COLOR = "#368777", + PRIMARY_650_COLOR = "#347f6f", + PRIMARY_700_COLOR = "#317767", + PRIMARY_750_COLOR = "#2F6F60", + PRIMARY_800_COLOR = "#2c6759", + PRIMARY_900_COLOR = "#214b3f", - # new one. - self.PRIMARY_100_COLOR = "#b7ded8" - self.PRIMARY_200_COLOR = "#8acac0" - self.PRIMARY_300_COLOR = "#61b4a7" - self.PRIMARY_400_COLOR = "#48a495" - self.PRIMARY_450_COLOR = "#429c8c" - self.PRIMARY_500_COLOR = "#3b9483" - self.PRIMARY_600_COLOR = "#368777" - self.PRIMARY_650_COLOR = "#347f6f" - self.PRIMARY_700_COLOR = "#317767" - self.PRIMARY_750_COLOR = "#2F6F60" - self.PRIMARY_800_COLOR = "#2c6759" - self.PRIMARY_900_COLOR = "#214b3f" + DARK_100_COLOR = "#f5f7fb", + DARK_200_COLOR = "#f1f2f6", + DARK_300_COLOR = "#e9eaee", + DARK_350_COLOR = "#d8d9dd", + DARK_400_COLOR = "#c7c8cc", + DARK_450_COLOR = "#b8b9bd", + DARK_500_COLOR = "#a9aaae", + DARK_600_COLOR = "#7f8084", + DARK_650_COLOR = "#75767a", + DARK_700_COLOR = "#6a6c6f", + DARK_725_COLOR = "#636467", + DARK_750_COLOR = "#5b5c5f", + DARK_775_COLOR = "#535457", + DARK_800_COLOR = "#4b4c4f", + DARK_825_COLOR = "#434447", + DARK_850_COLOR = "#3a3b3e", + DARK_863_COLOR = "#36373a", + DARK_875_COLOR = "#323336", + DARK_888_COLOR = "#2e2f32", + DARK_900_COLOR = "#292a2d", + DARK_925_COLOR = "#242528", + DARK_950_COLOR = "#1f2022", + DARK_975_COLOR = "#1a1b1d", + DARK_1000_COLOR = "#151517", # THE DARKEST COLOR - self.DARK_100_COLOR = "#f5f7fb" - self.DARK_200_COLOR = "#f1f2f6" - self.DARK_300_COLOR = "#e9eaee" - self.DARK_350_COLOR = "#d8d9dd" - self.DARK_400_COLOR = "#c7c8cc" - self.DARK_450_COLOR = "#b8b9bd" - self.DARK_500_COLOR = "#a9aaae" - self.DARK_600_COLOR = "#7f8084" - self.DARK_650_COLOR = "#75767a" - self.DARK_700_COLOR = "#6a6c6f" - self.DARK_725_COLOR = "#636467" - self.DARK_750_COLOR = "#5b5c5f" - self.DARK_775_COLOR = "#535457" - self.DARK_800_COLOR = "#4b4c4f" - self.DARK_825_COLOR = "#434447" - self.DARK_850_COLOR = "#3a3b3e" - self.DARK_863_COLOR = "#36373a" - self.DARK_875_COLOR = "#323336" - self.DARK_888_COLOR = "#2e2f32" - self.DARK_900_COLOR = "#292a2d" - self.DARK_925_COLOR = "#242528" - self.DARK_950_COLOR = "#1f2022" - self.DARK_975_COLOR = "#1a1b1d" - self.DARK_1000_COLOR = "#151517" # THE DARKEST COLOR + LIGHT_100_COLOR = "#f2f2f2", # THE LIGHTEST COLOR, + LIGHT_200_COLOR = "#e9e9e9", + LIGHT_250_COLOR = "#e1e1e1", + LIGHT_300_COLOR = "#d9d9d9", + LIGHT_325_COLOR = "#d0d0d0", + LIGHT_350_COLOR = "#c7c7c7", + LIGHT_375_COLOR = "#bebebe", + LIGHT_400_COLOR = "#b5b5b5", + LIGHT_450_COLOR = "#a5a5a5", + LIGHT_500_COLOR = "#959595", + LIGHT_600_COLOR = "#6d6d6d", + LIGHT_700_COLOR = "#5a5a5a", + LIGHT_750_COLOR = "#515151", + LIGHT_800_COLOR = "#3b3b3b", + LIGHT_850_COLOR = "#323232", + LIGHT_875_COLOR = "#2b2b2b", + LIGHT_900_COLOR = "#1b1b1b", + # LIGHT_925_COLOR = "#121212", + # LIGHT_950_COLOR = "#0c0c0c", + # LIGHT_975_COLOR = "#070707", + LIGHT_1000_COLOR = "#010101", + ) - self.LIGHT_100_COLOR = "#f2f2f2" # THE LIGHTEST COLOR - self.LIGHT_200_COLOR = "#e9e9e9" - self.LIGHT_250_COLOR = "#e1e1e1" - self.LIGHT_300_COLOR = "#d9d9d9" - self.LIGHT_325_COLOR = "#d0d0d0" - self.LIGHT_350_COLOR = "#c7c7c7" - self.LIGHT_375_COLOR = "#bebebe" - self.LIGHT_400_COLOR = "#b5b5b5" - self.LIGHT_450_COLOR = "#a5a5a5" - self.LIGHT_500_COLOR = "#959595" - self.LIGHT_600_COLOR = "#6d6d6d" - self.LIGHT_700_COLOR = "#5a5a5a" - self.LIGHT_750_COLOR = "#515151" - self.LIGHT_800_COLOR = "#3b3b3b" - self.LIGHT_850_COLOR = "#323232" - self.LIGHT_875_COLOR = "#2b2b2b" - self.LIGHT_900_COLOR = "#1b1b1b" - # self.LIGHT_925_COLOR = "#121212" - # self.LIGHT_950_COLOR = "#0c0c0c" - # self.LIGHT_975_COLOR = "#070707" - self.LIGHT_1000_COLOR = "#010101" + # It's actually meaningless to separate it from __init__. but it's just set to use the dark theme by default, so I did it just in case to change the default theme. + selected_color_theme = _darkTheme(self.base_color) + for each_key in selected_color_theme.__dict__.keys(): + setattr(self, each_key, getattr(selected_color_theme, each_key)) - self._createDarkModeColor__Default() if theme == "Dark": pass elif theme == "Light": - color = self._createLightModeColor() - for c in color.__dict__.keys(): - s = getattr(self, c) - s_dict = s.__dict__ - data = getattr(color, c) - data_dict = data.__dict__ + selected_color_theme = _lightTheme(self.base_color) + self._colorThemeDictsMerger(selected_color_theme) - self.mergeNestedDicts(s_dict, data_dict) - def _createDarkModeColor__Default(self): - self.main = SimpleNamespace( - # Common - BASIC_TEXT_COLOR = self.LIGHT_100_COLOR, - LABELS_TEXT_COLOR = self.LIGHT_100_COLOR, - # Main - MAIN_BG_COLOR = self.DARK_888_COLOR, + def _colorThemeDictsMerger(self, selected_color_theme): + # Each section(main, selectable_language_window, config_window...) marge to default theme. + for selected_theme_section_key in selected_color_theme.__dict__.keys(): + # Get same section data by section key from default theme. + default_theme_target_section_data = getattr(self, selected_theme_section_key) - TEXTBOX_BG_COLOR = self.DARK_900_COLOR, - TEXTBOX_TEXT_COLOR = self.LIGHT_100_COLOR, - TEXTBOX_TEXT_SUB_COLOR = self.DARK_450_COLOR, - TEXTBOX_SYSTEM_TAG_TEXT_COLOR = self.PRIMARY_300_COLOR, - TEXTBOX_SENT_TAG_TEXT_COLOR = "#6197b4", - TEXTBOX_RECEIVED_TAG_TEXT_COLOR = "#a861b4", - TEXTBOX_ERROR_TAG_TEXT_COLOR = "#c27583", - TEXTBOX_TIMESTAMP_TEXT_COLOR = self.DARK_600_COLOR, + selected_theme_section_data = getattr(selected_color_theme, selected_theme_section_key) + self._mergeNestedDicts(default_theme_target_section_data.__dict__, selected_theme_section_data.__dict__) - TEXTBOX_TAB_BG_PASSIVE_COLOR = self.DARK_850_COLOR, - TEXTBOX_TAB_BG_ACTIVE_COLOR = self.DARK_900_COLOR, - TEXTBOX_TAB_BG_HOVERED_COLOR = self.DARK_800_COLOR, - TEXTBOX_TAB_BG_CLICKED_COLOR = self.DARK_925_COLOR, - TEXTBOX_TAB_TEXT_ACTIVE_COLOR = self.LIGHT_100_COLOR, - TEXTBOX_TAB_TEXT_PASSIVE_COLOR = self.DARK_500_COLOR, - TEXTBOX_ENTRY_TEXT_COLOR = self.DARK_300_COLOR, - TEXTBOX_ENTRY_TEXT_DISABLED_COLOR = self.DARK_500_COLOR, - TEXTBOX_ENTRY_BG_COLOR = self.DARK_875_COLOR, - TEXTBOX_ENTRY_BORDER_COLOR = self.DARK_750_COLOR, - TEXTBOX_ENTRY_PLACEHOLDER_COLOR = self.DARK_500_COLOR, - TEXTBOX_ENTRY_PLACEHOLDER_DISABLED_COLOR = self.DARK_700_COLOR, - - # Sidebar - SIDEBAR_BG_COLOR = self.DARK_850_COLOR, - - # Sidebar Features - SF__BG_COLOR = self.DARK_825_COLOR, - SF__HOVERED_BG_COLOR = self.DARK_800_COLOR, - SF__CLICKED_BG_COLOR = self.DARK_875_COLOR, - SF__TEXT_DISABLED_COLOR = self.DARK_500_COLOR, - - SF__SWITCH_BOX_BG_COLOR = self.DARK_775_COLOR, - SF__SWITCH_BOX_HOVERED_BG_COLOR = self.DARK_725_COLOR, - SF__SWITCH_BOX_CLICKED_BG_COLOR = self.DARK_825_COLOR, - SF__SWITCH_BOX_ACTIVE_BG_COLOR = self.PRIMARY_500_COLOR, - SF__SWITCH_BOX_ACTIVE_HOVERED_BG_COLOR = self.PRIMARY_400_COLOR, - SF__SWITCH_BOX_ACTIVE_CLICKED_BG_COLOR = self.PRIMARY_700_COLOR, - SF__SWITCH_BOX_DISABLE_BG_COLOR = self.PRIMARY_800_COLOR, - - SF__SWITCH_BOX_BUTTON_COLOR = self.DARK_400_COLOR, - # It's not working because It overrode internally. - SF__SWITCH_BOX_BUTTON_HOVERED_COLOR = self.DARK_350_COLOR, - - SF__SELECTED_MARK_ACTIVE_BG_COLOR = self.PRIMARY_500_COLOR, - SF__SELECTED_MARK_ACTIVE_HOVERED_BG_COLOR = self.PRIMARY_400_COLOR, - SF__SELECTED_MARK_ACTIVE_CLICKED_BG_COLOR = self.PRIMARY_700_COLOR, - SF__SELECTED_MARK_DISABLE_BG_COLOR = self.PRIMARY_800_COLOR, - - - # Sidebar Languages Settings - SLS__TITLE_TEXT_COLOR = self.DARK_400_COLOR, - - SLS__BG_COLOR = self.DARK_800_COLOR, - - SLS__PRESETS_TAB_BG_HOVERED_COLOR = self.DARK_825_COLOR, - SLS__PRESETS_TAB_BG_CLICKED_COLOR = self.DARK_875_COLOR, - SLS__PRESETS_TAB_BG_PASSIVE_COLOR = self.DARK_850_COLOR, - SLS__PRESETS_TAB_BG_ACTIVE_COLOR = self.DARK_800_COLOR, - SLS__PRESETS_TAB_ACTIVE_TEXT_COLOR_PASSIVE = self.DARK_600_COLOR, - SLS__PRESETS_TAB_ACTIVE_TEXT_COLOR = self.LIGHT_100_COLOR, - - SLS__BOX_BG_COLOR = self.DARK_825_COLOR, - SLS__BOX_SECTION_TITLE_TEXT_COLOR = self.DARK_400_COLOR, - SLS__BOX_ARROWS_TEXT_COLOR = self.DARK_500_COLOR, - - SLS__OPTIONMENU_BG_COLOR = self.DARK_888_COLOR, - SLS__OPTIONMENU_HOVERED_BG_COLOR = self.DARK_875_COLOR, - SLS__OPTIONMENU_CLICKED_BG_COLOR = self.DARK_900_COLOR, - - - CONFIG_BUTTON_BG_COLOR = self.DARK_850_COLOR, - CONFIG_BUTTON_HOVERED_BG_COLOR = self.DARK_800_COLOR, - CONFIG_BUTTON_CLICKED_BG_COLOR = self.DARK_875_COLOR, - - MINIMIZE_SIDEBAR_BUTTON_BG_COLOR = self.DARK_850_COLOR, - MINIMIZE_SIDEBAR_BUTTON_HOVERED_BG_COLOR = self.DARK_800_COLOR, - MINIMIZE_SIDEBAR_BUTTON_CLICKED_BG_COLOR = self.DARK_900_COLOR, - - - - TOP_BAR_BUTTON_BG_COLOR = self.DARK_888_COLOR, - TOP_BAR_BUTTON_HOVERED_BG_COLOR = self.DARK_850_COLOR, - TOP_BAR_BUTTON_CLICKED_BG_COLOR = self.DARK_900_COLOR, - - UPDATE_AVAILABLE_BUTTON_BG_COLOR = self.DARK_888_COLOR, - UPDATE_AVAILABLE_BUTTON_HOVERED_BG_COLOR = self.DARK_850_COLOR, - UPDATE_AVAILABLE_BUTTON_CLICKED_BG_COLOR = self.DARK_900_COLOR, - UPDATE_AVAILABLE_BUTTON_TEXT_COLOR = self.PRIMARY_300_COLOR, - - HELP_AND_INFO_BUTTON_BG_COLOR = self.DARK_888_COLOR, - HELP_AND_INFO_BUTTON_HOVERED_BG_COLOR = self.DARK_850_COLOR, - HELP_AND_INFO_BUTTON_CLICKED_BG_COLOR = self.DARK_900_COLOR, - ) - - - self.selectable_language_window = SimpleNamespace( - # Selectable Language Window - BASIC_TEXT_COLOR = self.LIGHT_100_COLOR, - - MAIN_BG_COLOR = self.DARK_875_COLOR, - - GO_BACK_BUTTON_BG_COLOR = self.DARK_800_COLOR, - GO_BACK_BUTTON_BG_HOVERED_COLOR = self.DARK_750_COLOR, - GO_BACK_BUTTON_BG_CLICKED_COLOR = self.DARK_875_COLOR, - - TOP_BG_COLOR = self.DARK_850_COLOR, - TITLE_TEXT_COLOR = self.DARK_400_COLOR, - LANGUAGE_BUTTON_BG_COLOR = self.DARK_875_COLOR, - LANGUAGE_BUTTON_BG_HOVERED_COLOR = self.DARK_825_COLOR, - LANGUAGE_BUTTON_BG_CLICKED_COLOR = self.DARK_888_COLOR, - ) - - - - # Modal Window (Main Window) - self.main_window_cover = SimpleNamespace( - TEXT_COLOR = self.LIGHT_100_COLOR, - ) - - - self.confirmation_modal = SimpleNamespace( - MESSAGE_TEXT_COLOR = self.LIGHT_100_COLOR, - FAKE_BORDER_COLOR = self.DARK_600_COLOR, - BG_COLOR = self.DARK_800_COLOR, - CONFIRMATION_BUTTONS_TEXT_COLOR = self.LIGHT_100_COLOR, - - ACCEPT_BUTTON_BG_COLOR = self.PRIMARY_600_COLOR, - ACCEPT_BUTTON_HOVERED_BG_COLOR = self.PRIMARY_450_COLOR, - ACCEPT_BUTTON_CLICKED_BG_COLOR = self.PRIMARY_750_COLOR, - DENY_BUTTON_BG_COLOR = self.DARK_750_COLOR, - DENY_BUTTON_HOVERED_BG_COLOR = self.DARK_700_COLOR, - DENY_BUTTON_CLICKED_BG_COLOR = self.DARK_825_COLOR, - ) - - - self.config_window = SimpleNamespace( - # Common - BASIC_TEXT_COLOR = self.LIGHT_100_COLOR, - LABELS_TEXT_COLOR = self.LIGHT_100_COLOR, - LABELS_DESC_TEXT_COLOR = self.DARK_500_COLOR, - - LABELS_TEXT_DISABLED_COLOR = self.DARK_600_COLOR, - - - # Top bar - TOP_BAR_BG_COLOR = self.DARK_850_COLOR, - - # Restart Button - RESTART_BUTTON_BG_COLOR = self.PRIMARY_600_COLOR, - RESTART_BUTTON_HOVERED_BG_COLOR = self.PRIMARY_500_COLOR, - RESTART_BUTTON_CLICKED_BG_COLOR = self.PRIMARY_700_COLOR, - - - # Compact Mode - COMPACT_MODE_SWITCH_BOX_BG_COLOR = self.DARK_775_COLOR, - COMPACT_MODE_SWITCH_BOX_ACTIVE_BG_COLOR = self.PRIMARY_500_COLOR, - COMPACT_MODE_SWITCH_BOX_BUTTON_COLOR = self.DARK_350_COLOR, - COMPACT_MODE_SWITCH_BOX_BUTTON_HOVERED_COLOR = self.DARK_300_COLOR, - - # Main - MAIN_BG_COLOR = self.DARK_950_COLOR, - - # This is for fake border color - SB__WRAPPER_BG_COLOR = self.DARK_750_COLOR, - - SB__BG_COLOR = self.DARK_888_COLOR, - - SB__OPTIONMENU_BG_COLOR = self.DARK_925_COLOR, - SB__OPTIONMENU_HOVERED_BG_COLOR = self.DARK_850_COLOR, - SB__OPTIONMENU_CLICKED_BG_COLOR = self.DARK_950_COLOR, - SB__DROPDOWN_MENU_WINDOW_BG_COLOR = self.DARK_950_COLOR, - SB__DROPDOWN_MENU_WINDOW_BORDER_COLOR = self.DARK_600_COLOR, - SB__DROPDOWN_MENU_BG_COLOR = self.DARK_875_COLOR, - SB__DROPDOWN_MENU_HOVERED_BG_COLOR = self.DARK_800_COLOR, - SB__DROPDOWN_MENU_CLICKED_BG_COLOR = self.DARK_900_COLOR, - - SB__SLIDER_BG_COLOR = self.DARK_700_COLOR, - SB__SLIDER_PROGRESS_BG_COLOR = self.DARK_500_COLOR, - SB__SLIDER_BUTTON_COLOR = self.DARK_700_COLOR, - SB__SLIDER_BUTTON_HOVERED_COLOR = self.DARK_600_COLOR, - SB__SLIDER_TOOLTIP_BG_COLOR = self.DARK_850_COLOR, - SB__SLIDER_TOOLTIP_TEXT_COLOR = self.DARK_200_COLOR, - - SB__SWITCH_BOX_BG_COLOR = self.DARK_800_COLOR, - SB__SWITCH_BOX_ACTIVE_BG_COLOR = self.PRIMARY_500_COLOR, - SB__SWITCH_BOX_BUTTON_COLOR = self.DARK_400_COLOR, - SB__SWITCH_BOX_BUTTON_HOVERED_COLOR = self.DARK_350_COLOR, - - SB__CHECKBOX_BORDER_COLOR = self.DARK_600_COLOR, - SB__CHECKBOX_HOVER_COLOR = self.DARK_800_COLOR, - SB__CHECKBOX_CHECKED_COLOR = self.PRIMARY_700_COLOR, - SB__CHECKBOX_CHECKMARK_COLOR = self.LIGHT_100_COLOR, - - SB__ENTRY_TEXT_COLOR = self.DARK_300_COLOR, - SB__ENTRY_BG_COLOR = self.DARK_863_COLOR, - SB__ENTRY_BORDER_COLOR = self.DARK_775_COLOR, - - - SB__PROGRESSBAR_X_SLIDER__PROGRESSBAR_BG_COLOR = self.DARK_800_COLOR, - SB__PROGRESSBAR_X_SLIDER__PROGRESSBAR_PROGRESS_BG_COLOR = self.PRIMARY_750_COLOR, - SB__PROGRESSBAR_X_SLIDER__PROGRESSBAR_PROGRESS_EXCEED_THRESHOLD_BG_COLOR = self.PRIMARY_400_COLOR, - - SB__PROGRESSBAR_X_SLIDER__SLIDER_BUTTON_COLOR = self.PRIMARY_600_COLOR, - SB__PROGRESSBAR_X_SLIDER__SLIDER_BUTTON_HOVERED_COLOR = self.PRIMARY_400_COLOR, - - SB__PROGRESSBAR_X_SLIDER__PASSIVE_BUTTON_COLOR = self.DARK_800_COLOR, - SB__PROGRESSBAR_X_SLIDER__PASSIVE_BUTTON_HOVERED_COLOR = self.DARK_700_COLOR, - SB__PROGRESSBAR_X_SLIDER__PASSIVE_BUTTON_CLICKED_COLOR = self.DARK_900_COLOR, - SB__PROGRESSBAR_X_SLIDER__PASSIVE_BUTTON_DISABLED_COLOR = self.DARK_850_COLOR, - - SB__PROGRESSBAR_X_SLIDER__ACTIVE_BUTTON_COLOR = self.PRIMARY_600_COLOR, - SB__PROGRESSBAR_X_SLIDER__ACTIVE_BUTTON_HOVERED_COLOR = self.PRIMARY_500_COLOR, - SB__PROGRESSBAR_X_SLIDER__ACTIVE_BUTTON_CLICKED_COLOR = self.PRIMARY_800_COLOR, - - - # Side menu - SIDE_MENU_BG_COLOR = self.DARK_950_COLOR, - - SIDE_MENU_LABELS_BG_COLOR = self.DARK_950_COLOR, - SIDE_MENU_LABELS_BG_FOR_FAKE_BORDER_COLOR = self.DARK_950_COLOR, - SIDE_MENU_LABELS_HOVERED_BG_COLOR = self.DARK_850_COLOR, - SIDE_MENU_LABELS_CLICKED_BG_COLOR = self.PRIMARY_750_COLOR, - SIDE_MENU_LABELS_SELECTED_TEXT_COLOR = self.PRIMARY_200_COLOR, - - SIDE_MENU_SELECTED_MARK_ACTIVE_BG_COLOR = self.PRIMARY_500_COLOR, - - NOW_VERSION_TEXT_COLOR = self.DARK_300_COLOR, - - # Error Message Window for Config Window - # The color code [#bb4448] is a mixture of [#a9555c] and [#cc3333] (for a redder shade). - SB__ERROR_MESSAGE_BG_COLOR = "#bb4448", - SB__ERROR_MESSAGE_TEXT_COLOR = "#fff", - ) - - def _createLightModeColor(self): - color = SimpleNamespace( - main = SimpleNamespace( - # Main - MAIN_BG_COLOR = self.DARK_200_COLOR, - ), - - config_window = SimpleNamespace( - # Common - BASIC_TEXT_COLOR = self.LIGHT_100_COLOR, - ), - ) - - return color - - - - @staticmethod - def mergeNestedDicts(d1, d2): + def _mergeNestedDicts(self, d1, d2): for key, value in d2.items(): if key in d1 and isinstance(d1[key], dict) and isinstance(value, dict): - mergeNestedDicts(d1[key], value) + self._mergeNestedDicts(d1[key], value) else: d1[key] = value diff --git a/vrct_gui/ui_managers/ImageFileManager.py b/vrct_gui/ui_managers/ImageFileManager.py deleted file mode 100644 index 2de42c52..00000000 --- a/vrct_gui/ui_managers/ImageFileManager.py +++ /dev/null @@ -1,59 +0,0 @@ -from ..ui_utils import getImageFileFromUiUtils - - -class ImageFileManager(): - def __init__(self, theme:str ="Dark"): - self._createDarkModeImages() - if theme == "Dark": - pass - elif theme == "Light": - self._createLightModeImages() - - - def _createDarkModeImages(self): - self.VRCT_LOGO = getImageFileFromUiUtils("vrct_logo_for_dark_mode.png") - self.VRCT_LOGO_MARK = getImageFileFromUiUtils("vrct_logo_mark_white.png") - - self.TRANSLATION_ICON = getImageFileFromUiUtils("translation_icon_white.png") - self.TRANSLATION_ICON_DISABLED = getImageFileFromUiUtils("translation_icon_disabled.png") - self.MIC_ICON = getImageFileFromUiUtils("mic_icon_white.png") - self.MIC_ICON_DISABLED = getImageFileFromUiUtils("mic_icon_disabled.png") - self.HEADPHONES_ICON = getImageFileFromUiUtils("headphones_icon_white.png") - self.HEADPHONES_ICON_DISABLED = getImageFileFromUiUtils("headphones_icon_disabled.png") - self.FOREGROUND_ICON = getImageFileFromUiUtils("foreground_icon_white.png") - self.FOREGROUND_ICON_DISABLED = getImageFileFromUiUtils("foreground_icon_disabled.png") - - self.NARROW_ARROW_DOWN = getImageFileFromUiUtils("narrow_arrow_down.png") - - self.CONFIGURATION_ICON = getImageFileFromUiUtils("configuration_icon_white.png") - self.CONFIGURATION_ICON_DISABLED = getImageFileFromUiUtils("configuration_icon_disabled.png") - - self.ARROW_LEFT = getImageFileFromUiUtils("arrow_left_white.png") - self.ARROW_LEFT_DISABLED = getImageFileFromUiUtils("arrow_left_disabled.png") - - self.REFRESH_ICON = getImageFileFromUiUtils("refresh_icon.png") - self.HELP_ICON = getImageFileFromUiUtils("help_icon_white.png") - - def _createLightModeImages(self): - self.VRCT_LOGO = getImageFileFromUiUtils("vrct_logo_for_light_mode.png") - self.VRCT_LOGO_MARK = getImageFileFromUiUtils("vrct_logo_mark_black.png") - - - self.TRANSLATION_ICON = getImageFileFromUiUtils("translation_icon_white.png") - self.TRANSLATION_ICON_DISABLED = getImageFileFromUiUtils("translation_icon_disabled.png") - self.MIC_ICON = getImageFileFromUiUtils("mic_icon_white.png") - self.MIC_ICON_DISABLED = getImageFileFromUiUtils("mic_icon_disabled.png") - self.HEADPHONES_ICON = getImageFileFromUiUtils("headphones_icon_white.png") - self.HEADPHONES_ICON_DISABLED = getImageFileFromUiUtils("headphones_icon_disabled.png") - self.FOREGROUND_ICON = getImageFileFromUiUtils("foreground_icon_white.png") - self.FOREGROUND_ICON_DISABLED = getImageFileFromUiUtils("foreground_icon_disabled.png") - - self.NARROW_ARROW_DOWN = getImageFileFromUiUtils("narrow_arrow_down.png") - - self.CONFIGURATION_ICON = getImageFileFromUiUtils("configuration_icon_white.png") - self.CONFIGURATION_ICON_DISABLED = getImageFileFromUiUtils("configuration_icon_disabled.png") - - self.ARROW_LEFT = getImageFileFromUiUtils("arrow_left_white.png") - self.ARROW_LEFT_DISABLED = getImageFileFromUiUtils("arrow_left_disabled.png") - - self.HELP_ICON = getImageFileFromUiUtils("help_icon_white.png") \ No newline at end of file diff --git a/vrct_gui/ui_managers/Themes/__init__.py b/vrct_gui/ui_managers/Themes/__init__.py new file mode 100644 index 00000000..fb61579d --- /dev/null +++ b/vrct_gui/ui_managers/Themes/__init__.py @@ -0,0 +1,2 @@ +from ._darkTheme import _darkTheme +from ._lightTheme import _lightTheme \ No newline at end of file diff --git a/vrct_gui/ui_managers/Themes/_darkTheme.py b/vrct_gui/ui_managers/Themes/_darkTheme.py new file mode 100644 index 00000000..cd8ec6a7 --- /dev/null +++ b/vrct_gui/ui_managers/Themes/_darkTheme.py @@ -0,0 +1,279 @@ +from types import SimpleNamespace +from ...ui_utils import getImageFileFromUiUtils + +def _darkTheme(base_color): + theme_settings = SimpleNamespace( + main = SimpleNamespace( + # Common + BASIC_TEXT_COLOR = base_color.LIGHT_100_COLOR, + LABELS_TEXT_COLOR = base_color.LIGHT_100_COLOR, + + # Main + MAIN_BG_COLOR = base_color.DARK_888_COLOR, + + + TEXTBOX_BG_COLOR = base_color.DARK_900_COLOR, + TEXTBOX_TEXT_COLOR = base_color.LIGHT_100_COLOR, + TEXTBOX_TEXT_SUB_COLOR = base_color.DARK_450_COLOR, + TEXTBOX_SYSTEM_TAG_TEXT_COLOR = base_color.PRIMARY_300_COLOR, + TEXTBOX_SENT_TAG_TEXT_COLOR = "#6197b4", + TEXTBOX_RECEIVED_TAG_TEXT_COLOR = "#a861b4", + TEXTBOX_ERROR_TAG_TEXT_COLOR = "#c27583", + TEXTBOX_TIMESTAMP_TEXT_COLOR = base_color.DARK_600_COLOR, + + TEXTBOX_TAB_BG_PASSIVE_COLOR = base_color.DARK_850_COLOR, + TEXTBOX_TAB_BG_ACTIVE_COLOR = base_color.DARK_900_COLOR, + TEXTBOX_TAB_BG_HOVERED_COLOR = base_color.DARK_800_COLOR, + TEXTBOX_TAB_BG_CLICKED_COLOR = base_color.DARK_925_COLOR, + TEXTBOX_TAB_TEXT_ACTIVE_COLOR = base_color.LIGHT_100_COLOR, + TEXTBOX_TAB_TEXT_PASSIVE_COLOR = base_color.DARK_500_COLOR, + + TEXTBOX_ENTRY_TEXT_COLOR = base_color.DARK_300_COLOR, + TEXTBOX_ENTRY_TEXT_DISABLED_COLOR = base_color.DARK_500_COLOR, + TEXTBOX_ENTRY_BG_COLOR = base_color.DARK_875_COLOR, + TEXTBOX_ENTRY_BORDER_COLOR = base_color.DARK_750_COLOR, + TEXTBOX_ENTRY_PLACEHOLDER_COLOR = base_color.DARK_500_COLOR, + TEXTBOX_ENTRY_PLACEHOLDER_DISABLED_COLOR = base_color.DARK_700_COLOR, + + + # Sidebar + SIDEBAR_BG_COLOR = base_color.DARK_850_COLOR, + + # Sidebar Features + SF__BG_COLOR = base_color.DARK_825_COLOR, + SF__HOVERED_BG_COLOR = base_color.DARK_800_COLOR, + SF__CLICKED_BG_COLOR = base_color.DARK_875_COLOR, + SF__TEXT_DISABLED_COLOR = base_color.DARK_500_COLOR, + + SF__SWITCH_BOX_BG_COLOR = base_color.DARK_775_COLOR, + SF__SWITCH_BOX_HOVERED_BG_COLOR = base_color.DARK_725_COLOR, + SF__SWITCH_BOX_CLICKED_BG_COLOR = base_color.DARK_825_COLOR, + SF__SWITCH_BOX_ACTIVE_BG_COLOR = base_color.PRIMARY_500_COLOR, + SF__SWITCH_BOX_ACTIVE_HOVERED_BG_COLOR = base_color.PRIMARY_400_COLOR, + SF__SWITCH_BOX_ACTIVE_CLICKED_BG_COLOR = base_color.PRIMARY_700_COLOR, + SF__SWITCH_BOX_DISABLE_BG_COLOR = base_color.PRIMARY_800_COLOR, + + SF__SWITCH_BOX_BUTTON_COLOR = base_color.DARK_400_COLOR, + # It's not working because It overrode internally. + SF__SWITCH_BOX_BUTTON_HOVERED_COLOR = base_color.DARK_350_COLOR, + + SF__SELECTED_MARK_ACTIVE_BG_COLOR = base_color.PRIMARY_500_COLOR, + SF__SELECTED_MARK_ACTIVE_HOVERED_BG_COLOR = base_color.PRIMARY_400_COLOR, + SF__SELECTED_MARK_ACTIVE_CLICKED_BG_COLOR = base_color.PRIMARY_700_COLOR, + SF__SELECTED_MARK_DISABLE_BG_COLOR = base_color.PRIMARY_800_COLOR, + + + # Sidebar Languages Settings + SLS__TITLE_TEXT_COLOR = base_color.DARK_400_COLOR, + + SLS__BG_COLOR = base_color.DARK_800_COLOR, + + SLS__PRESETS_TAB_BG_HOVERED_COLOR = base_color.DARK_825_COLOR, + SLS__PRESETS_TAB_BG_CLICKED_COLOR = base_color.DARK_875_COLOR, + SLS__PRESETS_TAB_BG_PASSIVE_COLOR = base_color.DARK_850_COLOR, + SLS__PRESETS_TAB_BG_ACTIVE_COLOR = base_color.DARK_800_COLOR, + SLS__PRESETS_TAB_ACTIVE_TEXT_COLOR_PASSIVE = base_color.DARK_600_COLOR, + SLS__PRESETS_TAB_ACTIVE_TEXT_COLOR = base_color.LIGHT_100_COLOR, + + SLS__BOX_BG_COLOR = base_color.DARK_825_COLOR, + SLS__BOX_SECTION_TITLE_TEXT_COLOR = base_color.DARK_400_COLOR, + SLS__BOX_ARROWS_TEXT_COLOR = base_color.DARK_500_COLOR, + + SLS__OPTIONMENU_BG_COLOR = base_color.DARK_888_COLOR, + SLS__OPTIONMENU_HOVERED_BG_COLOR = base_color.DARK_875_COLOR, + SLS__OPTIONMENU_CLICKED_BG_COLOR = base_color.DARK_900_COLOR, + + + CONFIG_BUTTON_BG_COLOR = base_color.DARK_850_COLOR, + CONFIG_BUTTON_HOVERED_BG_COLOR = base_color.DARK_800_COLOR, + CONFIG_BUTTON_CLICKED_BG_COLOR = base_color.DARK_875_COLOR, + + MINIMIZE_SIDEBAR_BUTTON_BG_COLOR = base_color.DARK_850_COLOR, + MINIMIZE_SIDEBAR_BUTTON_HOVERED_BG_COLOR = base_color.DARK_800_COLOR, + MINIMIZE_SIDEBAR_BUTTON_CLICKED_BG_COLOR = base_color.DARK_900_COLOR, + + + + TOP_BAR_BUTTON_BG_COLOR = base_color.DARK_888_COLOR, + TOP_BAR_BUTTON_HOVERED_BG_COLOR = base_color.DARK_850_COLOR, + TOP_BAR_BUTTON_CLICKED_BG_COLOR = base_color.DARK_900_COLOR, + + UPDATE_AVAILABLE_BUTTON_BG_COLOR = base_color.DARK_888_COLOR, + UPDATE_AVAILABLE_BUTTON_HOVERED_BG_COLOR = base_color.DARK_850_COLOR, + UPDATE_AVAILABLE_BUTTON_CLICKED_BG_COLOR = base_color.DARK_900_COLOR, + UPDATE_AVAILABLE_BUTTON_TEXT_COLOR = base_color.PRIMARY_300_COLOR, + + HELP_AND_INFO_BUTTON_BG_COLOR = base_color.DARK_888_COLOR, + HELP_AND_INFO_BUTTON_HOVERED_BG_COLOR = base_color.DARK_850_COLOR, + HELP_AND_INFO_BUTTON_CLICKED_BG_COLOR = base_color.DARK_900_COLOR, + ), + + + selectable_language_window = SimpleNamespace( + # Selectable Language Window + BASIC_TEXT_COLOR = base_color.LIGHT_100_COLOR, + + MAIN_BG_COLOR = base_color.DARK_875_COLOR, + + GO_BACK_BUTTON_BG_COLOR = base_color.DARK_800_COLOR, + GO_BACK_BUTTON_BG_HOVERED_COLOR = base_color.DARK_750_COLOR, + GO_BACK_BUTTON_BG_CLICKED_COLOR = base_color.DARK_875_COLOR, + + TOP_BG_COLOR = base_color.DARK_850_COLOR, + TITLE_TEXT_COLOR = base_color.DARK_400_COLOR, + LANGUAGE_BUTTON_BG_COLOR = base_color.DARK_875_COLOR, + LANGUAGE_BUTTON_BG_HOVERED_COLOR = base_color.DARK_825_COLOR, + LANGUAGE_BUTTON_BG_CLICKED_COLOR = base_color.DARK_888_COLOR, + ), + + + + # Modal Window (Main Window) + main_window_cover = SimpleNamespace( + TEXT_COLOR = base_color.LIGHT_100_COLOR, + ), + + + confirmation_modal = SimpleNamespace( + MESSAGE_TEXT_COLOR = base_color.LIGHT_100_COLOR, + FAKE_BORDER_COLOR = base_color.DARK_600_COLOR, + BG_COLOR = base_color.DARK_800_COLOR, + CONFIRMATION_BUTTONS_TEXT_COLOR = base_color.LIGHT_100_COLOR, + + ACCEPT_BUTTON_BG_COLOR = base_color.PRIMARY_600_COLOR, + ACCEPT_BUTTON_HOVERED_BG_COLOR = base_color.PRIMARY_450_COLOR, + ACCEPT_BUTTON_CLICKED_BG_COLOR = base_color.PRIMARY_750_COLOR, + DENY_BUTTON_BG_COLOR = base_color.DARK_750_COLOR, + DENY_BUTTON_HOVERED_BG_COLOR = base_color.DARK_700_COLOR, + DENY_BUTTON_CLICKED_BG_COLOR = base_color.DARK_825_COLOR, + ), + + + config_window = SimpleNamespace( + # Common + BASIC_TEXT_COLOR = base_color.LIGHT_100_COLOR, + LABELS_TEXT_COLOR = base_color.LIGHT_100_COLOR, + LABELS_DESC_TEXT_COLOR = base_color.DARK_500_COLOR, + + LABELS_TEXT_DISABLED_COLOR = base_color.DARK_600_COLOR, + + + # Top bar + TOP_BAR_BG_COLOR = base_color.DARK_850_COLOR, + + # Restart Button + RESTART_BUTTON_BG_COLOR = base_color.PRIMARY_600_COLOR, + RESTART_BUTTON_HOVERED_BG_COLOR = base_color.PRIMARY_500_COLOR, + RESTART_BUTTON_CLICKED_BG_COLOR = base_color.PRIMARY_700_COLOR, + + + # Compact Mode + COMPACT_MODE_SWITCH_BOX_BG_COLOR = base_color.DARK_775_COLOR, + COMPACT_MODE_SWITCH_BOX_ACTIVE_BG_COLOR = base_color.PRIMARY_500_COLOR, + COMPACT_MODE_SWITCH_BOX_BUTTON_COLOR = base_color.DARK_350_COLOR, + COMPACT_MODE_SWITCH_BOX_BUTTON_HOVERED_COLOR = base_color.DARK_300_COLOR, + + # Main + MAIN_BG_COLOR = base_color.DARK_950_COLOR, + + # This is for fake border color + SB__WRAPPER_BG_COLOR = base_color.DARK_750_COLOR, + + SB__BG_COLOR = base_color.DARK_888_COLOR, + + SB__OPTIONMENU_BG_COLOR = base_color.DARK_925_COLOR, + SB__OPTIONMENU_HOVERED_BG_COLOR = base_color.DARK_850_COLOR, + SB__OPTIONMENU_CLICKED_BG_COLOR = base_color.DARK_950_COLOR, + SB__DROPDOWN_MENU_WINDOW_BG_COLOR = base_color.DARK_950_COLOR, + SB__DROPDOWN_MENU_WINDOW_BORDER_COLOR = base_color.DARK_600_COLOR, + SB__DROPDOWN_MENU_BG_COLOR = base_color.DARK_875_COLOR, + SB__DROPDOWN_MENU_HOVERED_BG_COLOR = base_color.DARK_800_COLOR, + SB__DROPDOWN_MENU_CLICKED_BG_COLOR = base_color.DARK_900_COLOR, + + SB__SLIDER_BG_COLOR = base_color.DARK_700_COLOR, + SB__SLIDER_PROGRESS_BG_COLOR = base_color.DARK_500_COLOR, + SB__SLIDER_BUTTON_COLOR = base_color.DARK_700_COLOR, + SB__SLIDER_BUTTON_HOVERED_COLOR = base_color.DARK_600_COLOR, + SB__SLIDER_TOOLTIP_BG_COLOR = base_color.DARK_850_COLOR, + SB__SLIDER_TOOLTIP_TEXT_COLOR = base_color.DARK_200_COLOR, + + SB__SWITCH_BOX_BG_COLOR = base_color.DARK_800_COLOR, + SB__SWITCH_BOX_ACTIVE_BG_COLOR = base_color.PRIMARY_500_COLOR, + SB__SWITCH_BOX_BUTTON_COLOR = base_color.DARK_400_COLOR, + SB__SWITCH_BOX_BUTTON_HOVERED_COLOR = base_color.DARK_350_COLOR, + + SB__CHECKBOX_BORDER_COLOR = base_color.DARK_600_COLOR, + SB__CHECKBOX_HOVER_COLOR = base_color.DARK_800_COLOR, + SB__CHECKBOX_CHECKED_COLOR = base_color.PRIMARY_700_COLOR, + SB__CHECKBOX_CHECKMARK_COLOR = base_color.LIGHT_100_COLOR, + + SB__ENTRY_TEXT_COLOR = base_color.DARK_300_COLOR, + SB__ENTRY_BG_COLOR = base_color.DARK_863_COLOR, + SB__ENTRY_BORDER_COLOR = base_color.DARK_775_COLOR, + + + SB__PROGRESSBAR_X_SLIDER__PROGRESSBAR_BG_COLOR = base_color.DARK_800_COLOR, + SB__PROGRESSBAR_X_SLIDER__PROGRESSBAR_PROGRESS_BG_COLOR = base_color.PRIMARY_750_COLOR, + SB__PROGRESSBAR_X_SLIDER__PROGRESSBAR_PROGRESS_EXCEED_THRESHOLD_BG_COLOR = base_color.PRIMARY_400_COLOR, + + SB__PROGRESSBAR_X_SLIDER__SLIDER_BUTTON_COLOR = base_color.PRIMARY_600_COLOR, + SB__PROGRESSBAR_X_SLIDER__SLIDER_BUTTON_HOVERED_COLOR = base_color.PRIMARY_400_COLOR, + + SB__PROGRESSBAR_X_SLIDER__PASSIVE_BUTTON_COLOR = base_color.DARK_800_COLOR, + SB__PROGRESSBAR_X_SLIDER__PASSIVE_BUTTON_HOVERED_COLOR = base_color.DARK_700_COLOR, + SB__PROGRESSBAR_X_SLIDER__PASSIVE_BUTTON_CLICKED_COLOR = base_color.DARK_900_COLOR, + SB__PROGRESSBAR_X_SLIDER__PASSIVE_BUTTON_DISABLED_COLOR = base_color.DARK_850_COLOR, + + SB__PROGRESSBAR_X_SLIDER__ACTIVE_BUTTON_COLOR = base_color.PRIMARY_600_COLOR, + SB__PROGRESSBAR_X_SLIDER__ACTIVE_BUTTON_HOVERED_COLOR = base_color.PRIMARY_500_COLOR, + SB__PROGRESSBAR_X_SLIDER__ACTIVE_BUTTON_CLICKED_COLOR = base_color.PRIMARY_800_COLOR, + + + # Side menu + SIDE_MENU_BG_COLOR = base_color.DARK_950_COLOR, + + SIDE_MENU_LABELS_BG_COLOR = base_color.DARK_950_COLOR, + SIDE_MENU_LABELS_BG_FOR_FAKE_BORDER_COLOR = base_color.DARK_950_COLOR, + SIDE_MENU_LABELS_HOVERED_BG_COLOR = base_color.DARK_850_COLOR, + SIDE_MENU_LABELS_CLICKED_BG_COLOR = base_color.PRIMARY_750_COLOR, + SIDE_MENU_LABELS_SELECTED_TEXT_COLOR = base_color.PRIMARY_200_COLOR, + + SIDE_MENU_SELECTED_MARK_ACTIVE_BG_COLOR = base_color.PRIMARY_500_COLOR, + + NOW_VERSION_TEXT_COLOR = base_color.DARK_300_COLOR, + + # Error Message Window for Config Window + # The color code [#bb4448] is a mixture of [#a9555c] and [#cc3333] (for a redder shade). + SB__ERROR_MESSAGE_BG_COLOR = "#bb4448", + SB__ERROR_MESSAGE_TEXT_COLOR = "#fff", + ), + + + + image_file = SimpleNamespace( + VRCT_LOGO = getImageFileFromUiUtils("vrct_logo_for_dark_mode.png"), + VRCT_LOGO_MARK = getImageFileFromUiUtils("vrct_logo_mark_white.png"), + + TRANSLATION_ICON = getImageFileFromUiUtils("translation_icon_white.png"), + TRANSLATION_ICON_DISABLED = getImageFileFromUiUtils("translation_icon_disabled.png"), + MIC_ICON = getImageFileFromUiUtils("mic_icon_white.png"), + MIC_ICON_DISABLED = getImageFileFromUiUtils("mic_icon_disabled.png"), + HEADPHONES_ICON = getImageFileFromUiUtils("headphones_icon_white.png"), + HEADPHONES_ICON_DISABLED = getImageFileFromUiUtils("headphones_icon_disabled.png"), + FOREGROUND_ICON = getImageFileFromUiUtils("foreground_icon_white.png"), + FOREGROUND_ICON_DISABLED = getImageFileFromUiUtils("foreground_icon_disabled.png"), + + NARROW_ARROW_DOWN = getImageFileFromUiUtils("narrow_arrow_down.png"), + + CONFIGURATION_ICON = getImageFileFromUiUtils("configuration_icon_white.png"), + CONFIGURATION_ICON_DISABLED = getImageFileFromUiUtils("configuration_icon_disabled.png"), + + ARROW_LEFT = getImageFileFromUiUtils("arrow_left_white.png"), + ARROW_LEFT_DISABLED = getImageFileFromUiUtils("arrow_left_disabled.png"), + + REFRESH_ICON = getImageFileFromUiUtils("refresh_icon.png"), + HELP_ICON = getImageFileFromUiUtils("help_icon_white.png"), + ), + ) + + return theme_settings \ No newline at end of file diff --git a/vrct_gui/ui_managers/Themes/_lightTheme.py b/vrct_gui/ui_managers/Themes/_lightTheme.py new file mode 100644 index 00000000..835a3210 --- /dev/null +++ b/vrct_gui/ui_managers/Themes/_lightTheme.py @@ -0,0 +1,43 @@ +from types import SimpleNamespace +from ...ui_utils import getImageFileFromUiUtils + +def _lightTheme(base_color): + theme_settings = SimpleNamespace( + main = SimpleNamespace( + # Main + MAIN_BG_COLOR = base_color.DARK_200_COLOR, + ), + + config_window = SimpleNamespace( + # Common + BASIC_TEXT_COLOR = base_color.LIGHT_100_COLOR, + ), + + + image_file = SimpleNamespace( + VRCT_LOGO = getImageFileFromUiUtils("vrct_logo_for_light_mode.png"), + VRCT_LOGO_MARK = getImageFileFromUiUtils("vrct_logo_mark_black.png"), + + + TRANSLATION_ICON = getImageFileFromUiUtils("translation_icon_white.png"), + TRANSLATION_ICON_DISABLED = getImageFileFromUiUtils("translation_icon_disabled.png"), + MIC_ICON = getImageFileFromUiUtils("mic_icon_white.png"), + MIC_ICON_DISABLED = getImageFileFromUiUtils("mic_icon_disabled.png"), + HEADPHONES_ICON = getImageFileFromUiUtils("headphones_icon_white.png"), + HEADPHONES_ICON_DISABLED = getImageFileFromUiUtils("headphones_icon_disabled.png"), + FOREGROUND_ICON = getImageFileFromUiUtils("foreground_icon_white.png"), + FOREGROUND_ICON_DISABLED = getImageFileFromUiUtils("foreground_icon_disabled.png"), + + NARROW_ARROW_DOWN = getImageFileFromUiUtils("narrow_arrow_down.png"), + + CONFIGURATION_ICON = getImageFileFromUiUtils("configuration_icon_white.png"), + CONFIGURATION_ICON_DISABLED = getImageFileFromUiUtils("configuration_icon_disabled.png"), + + ARROW_LEFT = getImageFileFromUiUtils("arrow_left_white.png"), + ARROW_LEFT_DISABLED = getImageFileFromUiUtils("arrow_left_disabled.png"), + + HELP_ICON = getImageFileFromUiUtils("help_icon_white.png"), + ), + ) + + return theme_settings \ No newline at end of file diff --git a/vrct_gui/ui_managers/__init__.py b/vrct_gui/ui_managers/__init__.py index f0dd1edb..6304cb9e 100644 --- a/vrct_gui/ui_managers/__init__.py +++ b/vrct_gui/ui_managers/__init__.py @@ -1,3 +1,2 @@ from .ColorThemeManager import ColorThemeManager -from .ImageFileManager import ImageFileManager from .UiScalingManager import UiScalingManager \ No newline at end of file From 6e54b541ddf0e1953c079aaddfd1c6a7a5a3fa24 Mon Sep 17 00:00:00 2001 From: Sakamoto Shiina <68018796+ShiinaSakamoto@users.noreply.github.com> Date: Sun, 29 Oct 2023 00:10:04 +0900 Subject: [PATCH 6/8] =?UTF-8?q?[Chore]=20ColorThemeManager:=20=E5=A4=89?= =?UTF-8?q?=E6=95=B0=E5=90=8D=E5=A4=89=E6=9B=B4=E3=82=84=E3=82=B3=E3=83=A1?= =?UTF-8?q?=E3=83=B3=E3=83=88=E8=BF=BD=E5=8A=A0=E3=81=AA=E3=81=A9=E3=80=82?= =?UTF-8?q?=E3=83=80=E3=83=BC=E3=82=AF=E3=83=86=E3=83=BC=E3=83=9E=E3=81=AE?= =?UTF-8?q?=E5=9F=BA=E6=9C=AC=E3=83=86=E3=82=AD=E3=82=B9=E3=83=88=E3=82=AB?= =?UTF-8?q?=E3=83=A9=E3=83=BC=E3=82=92=E3=80=81=E5=85=83=E3=80=85Light?= =?UTF-8?q?=E3=83=86=E3=83=BC=E3=83=9E=E3=81=8B=E3=82=89=E6=8C=81=E3=81=A3?= =?UTF-8?q?=E3=81=A6=E3=81=8D=E3=81=A6=E3=81=84=E3=81=9F=E3=81=AE=E3=82=92?= =?UTF-8?q?Dark=E3=83=86=E3=83=BC=E3=83=9E=E5=9B=BA=E6=9C=89=E3=81=AE?= =?UTF-8?q?=E3=82=82=E3=81=AE=E3=81=AB(=E4=B8=AD=E8=BA=AB=E3=81=AF?= =?UTF-8?q?=E4=BB=8A=E3=81=AE=E3=81=A8=E3=81=93=E3=82=8D=E5=90=8C=E3=81=98?= =?UTF-8?q?=E3=81=A7f2f2f2=E3=81=A0=E3=81=91=E3=81=A9)=E3=80=82=20SENT?= =?UTF-8?q?=E3=82=84RECEIVED=E3=82=82=E5=A4=89=E6=95=B0=E5=8C=96=E3=80=82?= =?UTF-8?q?=E5=8F=82=E8=80=83=E3=81=AB=E3=81=97=E3=81=9F=E3=82=B5=E3=82=A4?= =?UTF-8?q?=E3=83=88=E3=81=AE=E3=82=B3=E3=83=A1=E3=83=B3=E3=83=88=E8=A8=98?= =?UTF-8?q?=E8=BF=B0=E3=81=AA=E3=81=A9=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- vrct_gui/ui_managers/ColorThemeManager.py | 18 ++++++++----- vrct_gui/ui_managers/Themes/_darkTheme.py | 30 +++++++++++----------- vrct_gui/ui_managers/Themes/_lightTheme.py | 6 ++++- 3 files changed, 32 insertions(+), 22 deletions(-) diff --git a/vrct_gui/ui_managers/ColorThemeManager.py b/vrct_gui/ui_managers/ColorThemeManager.py index 36c3862a..707bc9a8 100644 --- a/vrct_gui/ui_managers/ColorThemeManager.py +++ b/vrct_gui/ui_managers/ColorThemeManager.py @@ -4,12 +4,15 @@ from .Themes import _darkTheme, _lightTheme class ColorThemeManager(): def __init__(self, theme): + # base_color 100, 200, 300...900 is generated by https://m2.material.io/design/color/the-color-system.html#tools-for-picking-colors . I put the comment "Source". I used it as a source color and generated. + # and like 750, 888... is made by https://meyerweb.com/eric/tools/color-blend/#:::hex + self.base_color = SimpleNamespace( PRIMARY_100_COLOR = "#b7ded8", PRIMARY_200_COLOR = "#8acac0", PRIMARY_300_COLOR = "#61b4a7", - PRIMARY_400_COLOR = "#48a495", + PRIMARY_400_COLOR = "#48a495", # Source PRIMARY_450_COLOR = "#429c8c", PRIMARY_500_COLOR = "#3b9483", PRIMARY_600_COLOR = "#368777", @@ -19,8 +22,11 @@ class ColorThemeManager(): PRIMARY_800_COLOR = "#2c6759", PRIMARY_900_COLOR = "#214b3f", + SENT_400_COLOR = "#6197b4", # Source PRIMARY_300_COLOR #61b4a7. ANALOGOUS' Second one. + RECEIVED_300_COLOR = "#a861b4", # Source PRIMARY_300_COLOR #61b4a7. TRIADIC' Second one. - DARK_100_COLOR = "#f5f7fb", + DARK_BASIC_TEXT_COLOR = "#f2f2f2", + DARK_100_COLOR = "#f5f7fb", # THE LIGHTEST BG COLOR DARK_200_COLOR = "#f1f2f6", DARK_300_COLOR = "#e9eaee", DARK_350_COLOR = "#d8d9dd", @@ -39,14 +45,14 @@ class ColorThemeManager(): DARK_863_COLOR = "#36373a", DARK_875_COLOR = "#323336", DARK_888_COLOR = "#2e2f32", - DARK_900_COLOR = "#292a2d", + DARK_900_COLOR = "#292a2d", # Source DARK_925_COLOR = "#242528", DARK_950_COLOR = "#1f2022", DARK_975_COLOR = "#1a1b1d", - DARK_1000_COLOR = "#151517", # THE DARKEST COLOR + DARK_1000_COLOR = "#151517", # THE DARKEST BG COLOR - LIGHT_100_COLOR = "#f2f2f2", # THE LIGHTEST COLOR, + LIGHT_100_COLOR = "#f2f2f2", # THE LIGHTEST BG COLOR LIGHT_200_COLOR = "#e9e9e9", LIGHT_250_COLOR = "#e1e1e1", LIGHT_300_COLOR = "#d9d9d9", @@ -66,7 +72,7 @@ class ColorThemeManager(): # LIGHT_925_COLOR = "#121212", # LIGHT_950_COLOR = "#0c0c0c", # LIGHT_975_COLOR = "#070707", - LIGHT_1000_COLOR = "#010101", + LIGHT_1000_COLOR = "#010101", # THE DARKEST BG COLOR ) diff --git a/vrct_gui/ui_managers/Themes/_darkTheme.py b/vrct_gui/ui_managers/Themes/_darkTheme.py index cd8ec6a7..8cadde2c 100644 --- a/vrct_gui/ui_managers/Themes/_darkTheme.py +++ b/vrct_gui/ui_managers/Themes/_darkTheme.py @@ -5,27 +5,27 @@ def _darkTheme(base_color): theme_settings = SimpleNamespace( main = SimpleNamespace( # Common - BASIC_TEXT_COLOR = base_color.LIGHT_100_COLOR, - LABELS_TEXT_COLOR = base_color.LIGHT_100_COLOR, + BASIC_TEXT_COLOR = base_color.DARK_BASIC_TEXT_COLOR, + LABELS_TEXT_COLOR = base_color.DARK_BASIC_TEXT_COLOR, # Main MAIN_BG_COLOR = base_color.DARK_888_COLOR, TEXTBOX_BG_COLOR = base_color.DARK_900_COLOR, - TEXTBOX_TEXT_COLOR = base_color.LIGHT_100_COLOR, + TEXTBOX_TEXT_COLOR = base_color.DARK_BASIC_TEXT_COLOR, TEXTBOX_TEXT_SUB_COLOR = base_color.DARK_450_COLOR, TEXTBOX_SYSTEM_TAG_TEXT_COLOR = base_color.PRIMARY_300_COLOR, - TEXTBOX_SENT_TAG_TEXT_COLOR = "#6197b4", - TEXTBOX_RECEIVED_TAG_TEXT_COLOR = "#a861b4", - TEXTBOX_ERROR_TAG_TEXT_COLOR = "#c27583", + TEXTBOX_SENT_TAG_TEXT_COLOR = base_color.SENT_400_COLOR, + TEXTBOX_RECEIVED_TAG_TEXT_COLOR = base_color.RECEIVED_300_COLOR, + # TEXTBOX_ERROR_TAG_TEXT_COLOR = "#c27583", TEXTBOX_TIMESTAMP_TEXT_COLOR = base_color.DARK_600_COLOR, TEXTBOX_TAB_BG_PASSIVE_COLOR = base_color.DARK_850_COLOR, TEXTBOX_TAB_BG_ACTIVE_COLOR = base_color.DARK_900_COLOR, TEXTBOX_TAB_BG_HOVERED_COLOR = base_color.DARK_800_COLOR, TEXTBOX_TAB_BG_CLICKED_COLOR = base_color.DARK_925_COLOR, - TEXTBOX_TAB_TEXT_ACTIVE_COLOR = base_color.LIGHT_100_COLOR, + TEXTBOX_TAB_TEXT_ACTIVE_COLOR = base_color.DARK_BASIC_TEXT_COLOR, TEXTBOX_TAB_TEXT_PASSIVE_COLOR = base_color.DARK_500_COLOR, TEXTBOX_ENTRY_TEXT_COLOR = base_color.DARK_300_COLOR, @@ -73,7 +73,7 @@ def _darkTheme(base_color): SLS__PRESETS_TAB_BG_PASSIVE_COLOR = base_color.DARK_850_COLOR, SLS__PRESETS_TAB_BG_ACTIVE_COLOR = base_color.DARK_800_COLOR, SLS__PRESETS_TAB_ACTIVE_TEXT_COLOR_PASSIVE = base_color.DARK_600_COLOR, - SLS__PRESETS_TAB_ACTIVE_TEXT_COLOR = base_color.LIGHT_100_COLOR, + SLS__PRESETS_TAB_ACTIVE_TEXT_COLOR = base_color.DARK_BASIC_TEXT_COLOR, SLS__BOX_BG_COLOR = base_color.DARK_825_COLOR, SLS__BOX_SECTION_TITLE_TEXT_COLOR = base_color.DARK_400_COLOR, @@ -111,7 +111,7 @@ def _darkTheme(base_color): selectable_language_window = SimpleNamespace( # Selectable Language Window - BASIC_TEXT_COLOR = base_color.LIGHT_100_COLOR, + BASIC_TEXT_COLOR = base_color.DARK_BASIC_TEXT_COLOR, MAIN_BG_COLOR = base_color.DARK_875_COLOR, @@ -130,15 +130,15 @@ def _darkTheme(base_color): # Modal Window (Main Window) main_window_cover = SimpleNamespace( - TEXT_COLOR = base_color.LIGHT_100_COLOR, + TEXT_COLOR = base_color.DARK_BASIC_TEXT_COLOR, ), confirmation_modal = SimpleNamespace( - MESSAGE_TEXT_COLOR = base_color.LIGHT_100_COLOR, + MESSAGE_TEXT_COLOR = base_color.DARK_BASIC_TEXT_COLOR, FAKE_BORDER_COLOR = base_color.DARK_600_COLOR, BG_COLOR = base_color.DARK_800_COLOR, - CONFIRMATION_BUTTONS_TEXT_COLOR = base_color.LIGHT_100_COLOR, + CONFIRMATION_BUTTONS_TEXT_COLOR = base_color.DARK_BASIC_TEXT_COLOR, ACCEPT_BUTTON_BG_COLOR = base_color.PRIMARY_600_COLOR, ACCEPT_BUTTON_HOVERED_BG_COLOR = base_color.PRIMARY_450_COLOR, @@ -151,8 +151,8 @@ def _darkTheme(base_color): config_window = SimpleNamespace( # Common - BASIC_TEXT_COLOR = base_color.LIGHT_100_COLOR, - LABELS_TEXT_COLOR = base_color.LIGHT_100_COLOR, + BASIC_TEXT_COLOR = base_color.DARK_BASIC_TEXT_COLOR, + LABELS_TEXT_COLOR = base_color.DARK_BASIC_TEXT_COLOR, LABELS_DESC_TEXT_COLOR = base_color.DARK_500_COLOR, LABELS_TEXT_DISABLED_COLOR = base_color.DARK_600_COLOR, @@ -205,7 +205,7 @@ def _darkTheme(base_color): SB__CHECKBOX_BORDER_COLOR = base_color.DARK_600_COLOR, SB__CHECKBOX_HOVER_COLOR = base_color.DARK_800_COLOR, SB__CHECKBOX_CHECKED_COLOR = base_color.PRIMARY_700_COLOR, - SB__CHECKBOX_CHECKMARK_COLOR = base_color.LIGHT_100_COLOR, + SB__CHECKBOX_CHECKMARK_COLOR = base_color.DARK_BASIC_TEXT_COLOR, SB__ENTRY_TEXT_COLOR = base_color.DARK_300_COLOR, SB__ENTRY_BG_COLOR = base_color.DARK_863_COLOR, diff --git a/vrct_gui/ui_managers/Themes/_lightTheme.py b/vrct_gui/ui_managers/Themes/_lightTheme.py index 835a3210..d861711a 100644 --- a/vrct_gui/ui_managers/Themes/_lightTheme.py +++ b/vrct_gui/ui_managers/Themes/_lightTheme.py @@ -4,8 +4,12 @@ from ...ui_utils import getImageFileFromUiUtils def _lightTheme(base_color): theme_settings = SimpleNamespace( main = SimpleNamespace( + # Common + BASIC_TEXT_COLOR = base_color.LIGHT_100_COLOR, + LABELS_TEXT_COLOR = base_color.LIGHT_100_COLOR, + # Main - MAIN_BG_COLOR = base_color.DARK_200_COLOR, + MAIN_BG_COLOR = base_color.DARK_888_COLOR, ), config_window = SimpleNamespace( From c85b312504a4b988863719e18a782b940f2f6ffb Mon Sep 17 00:00:00 2001 From: Sakamoto Shiina <68018796+ShiinaSakamoto@users.noreply.github.com> Date: Sun, 29 Oct 2023 19:02:04 +0900 Subject: [PATCH 7/8] =?UTF-8?q?[bugfix/Update]=20Config=20Window:=20ToolTi?= =?UTF-8?q?p.=20=E8=A7=92=E4=B8=B8=E3=82=92=E7=84=A1=E3=81=8F=E3=81=97?= =?UTF-8?q?=E3=81=BE=E3=81=97=E3=81=9F=E3=80=82=20=E7=90=86=E7=94=B1,=20OS?= =?UTF-8?q?=E5=81=B4=E3=81=A7=E3=83=A9=E3=82=A4=E3=83=88=E3=83=86=E3=83=BC?= =?UTF-8?q?=E3=83=9E=E3=81=AA=E3=81=A9=E9=81=B8=E6=8A=9E=E3=81=95=E3=82=8C?= =?UTF-8?q?=E3=81=9F=E6=99=82=E3=81=AB=E5=BD=B1=E9=9F=BF=E3=81=95=E3=82=8C?= =?UTF-8?q?=E3=81=A6=E5=91=A8=E3=82=8A=E3=81=8C=E7=99=BD=E3=81=8F=E3=81=AA?= =?UTF-8?q?=E3=81=A3=E3=81=A6=E3=81=97=E3=81=BE=E3=81=84=E3=80=81=E6=B6=88?= =?UTF-8?q?=E3=81=9D=E3=81=86=E3=81=AB=E3=82=82Tkinter=E3=81=AE=E9=80=8F?= =?UTF-8?q?=E9=81=8E=E3=81=8C=E4=B8=8D=E5=AE=8C=E5=85=A8=E3=81=99=E3=81=8E?= =?UTF-8?q?=E3=81=A6=E8=A6=8B=E3=81=88=E3=81=A1=E3=82=83=E3=81=86=E3=81=AE?= =?UTF-8?q?=E3=81=A7=E3=82=82=E3=81=86=E8=A7=92=E4=B8=B8=E3=82=92=E3=81=AA?= =?UTF-8?q?=E3=81=8F=E3=81=99=E3=81=93=E3=81=A8=E3=81=AB=E3=81=97=E3=81=BE?= =?UTF-8?q?=E3=81=97=E3=81=9F=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../setting_box_containers/_SettingBoxGenerator.py | 1 + 1 file changed, 1 insertion(+) diff --git a/vrct_gui/config_window/widgets/createSideMenuAndSettingsBoxContainers/setting_box_containers/_SettingBoxGenerator.py b/vrct_gui/config_window/widgets/createSideMenuAndSettingsBoxContainers/setting_box_containers/_SettingBoxGenerator.py index 3c152958..d996fb2e 100644 --- a/vrct_gui/config_window/widgets/createSideMenuAndSettingsBoxContainers/setting_box_containers/_SettingBoxGenerator.py +++ b/vrct_gui/config_window/widgets/createSideMenuAndSettingsBoxContainers/setting_box_containers/_SettingBoxGenerator.py @@ -274,6 +274,7 @@ class _SettingBoxGenerator(): message=getSliderValueWAfterFormatting(), delay=0, bg_color=self.settings.ctm.SB__SLIDER_TOOLTIP_BG_COLOR, + corner_radius=0, text_color=self.settings.ctm.SB__SLIDER_TOOLTIP_TEXT_COLOR, font=CTkFont(family=self.settings.FONT_FAMILY, size=self.settings.uism.SB__SLIDER_TOOLTIP_FONT_SIZE, weight="normal"), ) From c98912f31b27e88b7cfe0ec3362a42ac0da92a86 Mon Sep 17 00:00:00 2001 From: Sakamoto Shiina <68018796+ShiinaSakamoto@users.noreply.github.com> Date: Wed, 1 Nov 2023 02:49:10 +0900 Subject: [PATCH 8/8] =?UTF-8?q?[Update]=20Mic=20Word=20Filter:=20UI?= =?UTF-8?q?=E6=94=B9=E5=96=84=E3=80=81=E3=83=AA=E3=82=B9=E3=83=88=E8=A1=A8?= =?UTF-8?q?=E8=A8=98=E3=81=AB=E3=81=97=E3=80=81=E8=BF=BD=E5=8A=A0=E3=82=84?= =?UTF-8?q?=E5=89=8A=E9=99=A4=E3=82=82=E7=9B=B4=E6=84=9F=E7=9A=84=E3=81=AB?= =?UTF-8?q?=E8=A1=8C=E3=81=88=E3=82=8B=E3=82=88=E3=81=86=E3=81=AB=E3=80=82?= =?UTF-8?q?=E2=80=BB=5FSettingBoxGenerator.py=E5=86=85=E3=81=AB=E8=BF=BD?= =?UTF-8?q?=E5=8A=A0=E3=81=95=E3=82=8C=E3=81=9F=E9=96=A2=E6=95=B0=E3=81=8C?= =?UTF-8?q?=E3=80=81=E6=B1=8E=E7=94=A8=E7=9A=84=E3=81=A7=E3=81=AF=E3=81=AA?= =?UTF-8?q?=E3=81=8F=E3=80=81=E3=83=AF=E3=83=BC=E3=83=89=E3=83=95=E3=82=A3?= =?UTF-8?q?=E3=83=AB=E3=82=BF=E3=83=BC=E5=B0=82=E7=94=A8=E7=8A=B6=E6=85=8B?= =?UTF-8?q?=E3=81=A7=E3=81=99=E3=80=82=20config.py:=20=E7=99=BB=E9=8C=B2?= =?UTF-8?q?=E3=81=95=E3=82=8C=E3=81=9F=E5=8D=98=E8=AA=9E=E3=81=AF=E4=B8=80?= =?UTF-8?q?=E6=84=8F=E3=81=AB=E3=81=AA=E3=82=8B=E3=82=88=E3=81=86=E3=81=AB?= =?UTF-8?q?=E3=80=81=E9=A0=86=E5=BA=8F=E3=82=92=E4=BF=9D=E6=8C=81=E3=81=97?= =?UTF-8?q?=E3=81=A4=E3=81=A4=E9=87=8D=E8=A4=87=E5=89=8A=E9=99=A4=E5=87=A6?= =?UTF-8?q?=E7=90=86=E3=80=82=20=E3=81=9D=E3=81=AE=E4=BB=96=E3=83=AF?= =?UTF-8?q?=E3=83=BC=E3=83=89=E3=83=95=E3=82=A3=E3=83=AB=E3=82=BF=E3=83=BC?= =?UTF-8?q?=E3=81=AE=E8=AA=AC=E6=98=8E=E6=96=87=E8=A8=80=E8=AA=BF=E6=95=B4?= =?UTF-8?q?=E3=81=AA=E3=81=A9=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- config.py | 2 +- controller.py | 42 ++- img/cancel_icon.png | Bin 0 -> 2064 bytes img/redo_white.png | Bin 0 -> 1351 bytes locales/en.yml | 4 +- locales/ja.yml | 4 +- view.py | 54 ++- .../_SettingBoxGenerator.py | 314 +++++++++++++++++- .../createSettingBox_Mic.py | 28 +- vrct_gui/ui_managers/Themes/_darkTheme.py | 21 ++ vrct_gui/ui_managers/UiScalingManager.py | 26 ++ 11 files changed, 474 insertions(+), 21 deletions(-) create mode 100644 img/cancel_icon.png create mode 100644 img/redo_white.png diff --git a/config.py b/config.py index afd25f43..90896694 100644 --- a/config.py +++ b/config.py @@ -346,7 +346,7 @@ class Config: @INPUT_MIC_WORD_FILTER.setter def INPUT_MIC_WORD_FILTER(self, value): if type(value) is list: - self._INPUT_MIC_WORD_FILTER = value + self._INPUT_MIC_WORD_FILTER = sorted(set(value), key=value.index) saveJson(self.PATH_CONFIG, inspect.currentframe().f_code.co_name, value) @property diff --git a/controller.py b/controller.py index f3ee030d..f3f2d7c1 100644 --- a/controller.py +++ b/controller.py @@ -487,19 +487,40 @@ def callbackSetMicMaxPhrases(value): except: view.showErrorMessage_MicMaxPhrases() -def callbackSetMicWordFilter(value): - print("callbackSetMicWordFilter", value) - word_filter = str(value) - word_filter = [w.strip() for w in word_filter.split(",") if len(w.strip()) > 0] - word_filter = ",".join(word_filter) - print("callbackSetMicWordFilter_afterSplitting", word_filter) - if len(word_filter) > 0: - config.INPUT_MIC_WORD_FILTER = word_filter.split(",") - else: - config.INPUT_MIC_WORD_FILTER = [] +def callbackSetMicWordFilter(values): + print("callbackSetMicWordFilter", values) + values = str(values) + values = [w.strip() for w in values.split(",") if len(w.strip()) > 0] + # Copy the list + new_input_mic_word_filter_list = config.INPUT_MIC_WORD_FILTER + new_added_value = [] + for value in values: + if value in new_input_mic_word_filter_list: + # If the value is already in the list, do nothing. + pass + else: + new_input_mic_word_filter_list.append(value) + new_added_value.append(value) + config.INPUT_MIC_WORD_FILTER = new_input_mic_word_filter_list + + view.addValueToList_WordFilter(new_added_value) + view.clearEntryBox_WordFilter() + view.setLatestConfigVariable("MicMicWordFilter") + model.resetKeywordProcessor() model.addKeywords() +def callbackDeleteMicWordFilter(value): + print("callbackDeleteMicWordFilter", value) + try: + new_input_mic_word_filter_list = config.INPUT_MIC_WORD_FILTER + new_input_mic_word_filter_list.remove(str(value)) + config.INPUT_MIC_WORD_FILTER = new_input_mic_word_filter_list + view.setLatestConfigVariable("MicMicWordFilter") + except: + print("There was no the target word in config.INPUT_MIC_WORD_FILTER") + + def callbackSetSpeakerEnergyThreshold(value): print("callbackSetSpeakerEnergyThreshold", value) if value == "": return @@ -718,6 +739,7 @@ def createMainWindow(): "callback_set_mic_phrase_timeout": callbackSetMicPhraseTimeout, "callback_set_mic_max_phrases": callbackSetMicMaxPhrases, "callback_set_mic_word_filter": callbackSetMicWordFilter, + "callback_delete_mic_word_filter": callbackDeleteMicWordFilter, # Transcription Tab (Speaker) "callback_set_speaker_energy_threshold": callbackSetSpeakerEnergyThreshold, diff --git a/img/cancel_icon.png b/img/cancel_icon.png new file mode 100644 index 0000000000000000000000000000000000000000..aa6c386e7b0dbca0361d5250ac115f4e2809b023 GIT binary patch literal 2064 zcmV+r2=DiaP)pF8+1ijbW?9;ba!ELWdK8EY;$>YAX9X8WNB|8RBvx=!KdMT000M@ zNkl0TC4@q*X#MIWLe1PT(YBrhpvHin(Blc;!!mq56OTd+zk zA5(eMvP!uuAWOm}m1rU+nqKH#!_KNNQ6mJw1j<-t`JfV#jfjW=rqAa?pJq-Ev&+sf zfbqP}cK7$|ne+et=l`v!DsSZ_KEP0SPk?FwSTQCk#?k)-U8PhOwKf0@B1zXkf0BK6 z0pM3(_;PUm)T#NX&H?@^#_TV~(M#8;=G>~3%G1@_JAe-(a-d_%ls&gU^+W;=V5qw% z06wcpvKF`wI1BvJgyGg=96f&xYo}5w-)gJXmB8)5MBq;n1RH>7x(52IDZt!$9l*nC z?ft-q00m9}`%M^b1YRh{k-f@=8(@x2k_S<}19(3mz;Q8VC-6|$;NEi?KnN^TYrg?} z)cv6XBZ$Oe%tjG8QjDWFuTt?7RrN--b}g!R0aLx2{w&6P7wGF6+?##_l~P%NkJ)PV zo4{Sb2fYiLog^Hh~*3MMbMW`-w&(CUj4cHfi;l@H79n7wg z`aUpRD$h!iWVNGzySo8^MdVR2rcXp(EXL9KHW%NasGh&*Y6U{f)UUT8DGCv5uS?gb`LdvS?~{6LJ^CL%`) zbz*W6fP?5%Yp1K~0##i@`Zlt!@+2br9K^5NRQ#>3_<6v)yk}Vv=@pS(V$4g0I67N@ zZ9@PDG09qc1FH9{>QbPS{O@tU3B!$-3sEVRZ?WmV`xNKZqI2eBIX4DfF9 zePX+VI8J)YA$;hgy51sxDI1Rpk4`zYzJE34-2Y9R0?> zu2L%B;-vB(;2q?3ezWWHM+!|g$ff}tL?*EdRCP7^KJhy6oC(8CnH6`IcnxqT@Luvd zzZsETV@YM(0Wt`+cA8C1*S+MGQ(6cI^5@TOis3;925&smu-^ zexEo244E+8P~YrYS(gP+DU~~&t6b;ayx*io5E%e)cG>^zbwmavmC+-kd8aE1;JL~b z?yQj6gG?$1f-vj_a0alOyu_YHWRE*8ww!jf1W;#*>s{puQa^toJ@Bk}iTqD2bFn+d zW5wG7P)WP*EVXutE8cgNrx4lWTxG6Fd1=Szfhpu&>?2~#BQEV|sw=kwFvq#duTndV zK&tb7#+WU|f&PY;xYFG-L#{i{*aVTsT~N@_inj&8v&3cc=FNJR_z$Cbo8eM< zg0tca8@SkiBGT_9cHBY1xB)y%T%R6PMP%!EEwN|C7pm$5)DA^0r5%?9sFcbbz$}*@ z+*w!rNko2ZQY9I;B_1x7Cps&>!tDwFc={S5&$+bY(4`W*9;Apcasp0g+T<=`$Jn})oNkk$srq}g}QD4lc0G?DXL3IJOxUZ%3U<{B-L$o8@NL_>f|`W0s>@pAGy{|4}^)A`Hx^B%++;2!b^A4O!F*C#FtxGn;yq~Y#O znx=7!$m{%BL>_Y~aZ~BRI3Q-aKCysWj0tI<*eS+r6_Eq=lcGidSxP*g+He8V^k9n^ z^QcRS$4tyx00`ZFYm|2U85$Q!_w@FjtD>7;tE|n)*Yp0`n zUxQS91Q;}7n6u*kh-sRwR=?$n_x;Lg5qV6~cHeS(&;-OJwRW1SE>YF{s0~>%pEYR0 z@Y}$#VjNk2$hShR{W|aw@|ql(bjWwCQ9gf#AUaj`dTZ?(C*OYW`HLI!ZR;A`d)^vW|4n{U$IRgyH6P zr3bApFHkO!4!U2Fv`atRHPD}2*u>9&WucrI87ZTB6Yw`N<`=~{`s1}Ly|yZ)@^xzM uCrSU+;Naw`Q={7+-=*;X^v@n|)%9OdqWaxB#s)J00000|TSm?nALG>ubPYe%_0 z`NBscIBc56gSqU$jb#b&{GeZJ`4&KbgDx6?Px3r~agvu!!?@nnWljUY>})6Kq6S3u-8-=TWt%OqcO9qa4WB;H`*J^^6fp=)WUn;odxM4lh?M?N2K zn<4q!-6jtJu48>pau+HG!&2Ca1WAk+Cc2{2Cca_IBzL)v^~>ERzX*8(jZdg~bo=8I zy;YsUP#;0!sEpjEW#p5m%~H@>Z(Y~}o?qOkwf+mS)hBVzb+UtNk$i<8UtahJMD$Tq zyUrA;hSw_j2-_7<3CyC{Ca&(-Y9E!2$p>$W;H|XdL}aT809s@pssppDreTb>f;<4Y zj&-Uyaq;xrTzRvIYzEK=V2gD!hGCz`f}kw`9-{9TH-%dN6YHy$QV*w%ZQ2D@xk**Q?-cR?pa5~=hA1TN7^vtD z8^?INNu?5i$}V33$;-`6)jk0m;s(<&I>!I!1ytR%)~&l|y4|GG3g~DkRFX~$xP5!B zyWOPH3b+wBl*6#M-K5eAxDq!+sgI6 zA1K?-Tm?{y+eBnfyNNAZ0059Y8#ju`p+ZpVYB#xM3sB@3fSH(mQ@I@OZ#TJlKSgi;JBKBO*8$YnxI^ZEw}RxDhi}&Gv5&6|0pSZt9fMaK_k^G=~FkZ}i!NKJ{YV}dclj8ZfjpRu? zH*m8?000<&QocUdmY+?+s09sb)zD4q+VW#B*dio+~yKMPm$;Cl&f72{{!JlXqI8Zgt!0z002ov JPDHLkV1kn~dAk4r literal 0 HcmV?d00001 diff --git a/locales/en.yml b/locales/en.yml index 3af662cf..7eee5744 100644 --- a/locales/en.yml +++ b/locales/en.yml @@ -138,7 +138,9 @@ config_window: mic_word_filter: label: Mic Word Filter - desc: "It will not send the sentence if the word(s) included in the set list of words.\nHow to set: e.g. AAA,BBB,CCC" + desc: "If a registered word is detected, the text will not be sent. To add multiple words at once, separate them with a \",\" (comma). \n*Duplicate words will not be registered." + add_button_label: Add + count_desc: "Current registered word count: %{count}" speaker_dynamic_energy_threshold: diff --git a/locales/ja.yml b/locales/ja.yml index e608c2b2..b662a3eb 100644 --- a/locales/ja.yml +++ b/locales/ja.yml @@ -138,7 +138,9 @@ config_window: mic_word_filter: label: ワードフィルター - desc: "設定された単語を検出すると、その文章は送信されません。\n設定の例: AAA,BBB,CCC" + desc: "登録された単語を検出すると、その文章は送信されません。\n「,」カンマで区切ると、まとめて複数の単語を追加できます。\n※重複した単語は登録されません。" + add_button_label: 追加 + count_desc: "現在登録されている単語数: %{count}" speaker_dynamic_energy_threshold: diff --git a/view.py b/view.py index 1565aefa..ac1d0739 100644 --- a/view.py +++ b/view.py @@ -284,10 +284,15 @@ class View(): VAR_MIC_MAX_PHRASES=StringVar(value=config.INPUT_MIC_MAX_PHRASES), CALLBACK_FOCUS_OUT_MIC_MAX_PHRASES=self.callbackBindFocusOut_MicMaxPhrases, + CALLBACK_ARROW_SWITCH_MIC_WORD_FILTER_LIST_OPEN=self._openMicWordFilterList, + CALLBACK_ARROW_SWITCH_MIC_WORD_FILTER_LIST_CLOSE=self._closeMicWordFilterList, + VAR_LABEL_MIC_WORD_FILTER=StringVar(value=i18n.t("config_window.mic_word_filter.label")), VAR_DESC_MIC_WORD_FILTER=StringVar(value=i18n.t("config_window.mic_word_filter.desc")), + VAR_SWITCH_DESC_MIC_WORD_FILTER=StringVar(value=i18n.t("config_window.mic_word_filter.count_desc", count=len(config.INPUT_MIC_WORD_FILTER))), + VAR_LABEL_MIC_WORD_FILTER_ADD_BUTTON=StringVar(value=i18n.t("config_window.mic_word_filter.add_button_label")), CALLBACK_SET_MIC_WORD_FILTER=None, - VAR_MIC_WORD_FILTER=StringVar(value=",".join(config.INPUT_MIC_WORD_FILTER) if len(config.INPUT_MIC_WORD_FILTER) > 0 else ""), + MIC_WORD_FILTER_LIST=config.INPUT_MIC_WORD_FILTER, # Transcription Tab (Speaker) @@ -462,6 +467,7 @@ class View(): self.view_variable.CALLBACK_SET_MIC_PHRASE_TIMEOUT = config_window_registers.get("callback_set_mic_phrase_timeout", None) self.view_variable.CALLBACK_SET_MIC_MAX_PHRASES = config_window_registers.get("callback_set_mic_max_phrases", None) self.view_variable.CALLBACK_SET_MIC_WORD_FILTER = config_window_registers.get("callback_set_mic_word_filter", None) + self.view_variable.CALLBACK_DELETE_MIC_WORD_FILTER = config_window_registers.get("callback_delete_mic_word_filter", None) # Transcription Tab (Speaker) self.view_variable.CALLBACK_SET_SPEAKER_ENERGY_THRESHOLD = config_window_registers.get("callback_set_speaker_energy_threshold", None) @@ -603,10 +609,12 @@ class View(): def enableConfigWindowCompactMode(self): for additional_widget in vrct_gui.config_window.additional_widgets: additional_widget.grid_remove() + self._closeMicWordFilterList() def disableConfigWindowCompactMode(self): for additional_widget in vrct_gui.config_window.additional_widgets: additional_widget.grid() + self._closeMicWordFilterList() def showRestartButtonIfRequired(self, locale:Union[None,str]=None): @@ -783,6 +791,43 @@ class View(): + def _openMicWordFilterList(self): + target_widget = vrct_gui.config_window.sb__widgets["sb__arrow_switch_mic_word_filter"] + target_widget.arrow_switch_open.grid_remove() + target_widget.arrow_switch_close.grid() + + vrct_gui.config_window.sb__mic_word_filter_list.grid() + + def _closeMicWordFilterList(self): + target_widget = vrct_gui.config_window.sb__widgets["sb__arrow_switch_mic_word_filter"] + target_widget.arrow_switch_close.grid_remove() + target_widget.arrow_switch_open.grid() + + vrct_gui.config_window.sb__mic_word_filter_list.grid_remove() + + + def addValueToList_WordFilter(self, values:list): + target_widget = vrct_gui.config_window.sb__widgets["sb__add_and_delete_able_list_mic_word_filter_list"] + for t_item in target_widget.items: + if t_item.label in values: + values.remove(t_item.label) + t_item.redoFunction() + mic_word_filter_item_row_wrapper, accumulated_labels_width, last_row, last_column = target_widget.addValues( + values, + target_widget.mic_word_filter_item_row_wrapper, + target_widget.accumulated_labels_width, + target_widget.last_row, + target_widget.last_column + ) + target_widget.mic_word_filter_item_row_wrapper = mic_word_filter_item_row_wrapper + target_widget.accumulated_labels_width = accumulated_labels_width + target_widget.last_row = last_row + target_widget.last_column = last_column + + def clearEntryBox_WordFilter(self): + self._clearEntryBox(vrct_gui.config_window.sb__entry_mic_word_filter_list) + + # Widget Control (Whole) def foregroundOnIfForegroundEnabled(self): if config.ENABLE_FOREGROUND: @@ -924,6 +969,7 @@ class View(): def _closeConfigWindow(self): callFunctionIfCallable(self.view_variable.CALLBACK_CLOSE_CONFIG_WINDOW) + self._closeMicWordFilterList() vrct_gui._closeConfigWindow() # Window Control (Main Window Cover) @@ -981,7 +1027,8 @@ class View(): def setGuiVariable_MicMaxPhrases(self, value): self.view_variable.VAR_MIC_MAX_PHRASES.set(str(value)) - + def setGuiVariable_MicWordFilter_Length(self, value): + self.view_variable.VAR_SWITCH_DESC_MIC_WORD_FILTER.set(i18n.t("config_window.mic_word_filter.count_desc", count=value)) def setGuiVariable_SpeakerRecordTimeout(self, value): self.view_variable.VAR_SPEAKER_RECORD_TIMEOUT.set(str(value)) @@ -1011,6 +1058,9 @@ class View(): self.setGuiVariable_MicPhraseTimeout(config.INPUT_MIC_PHRASE_TIMEOUT) case "MicMaxPhrases": self.setGuiVariable_MicMaxPhrases(config.INPUT_MIC_MAX_PHRASES) + case "MicMicWordFilter": + self.setGuiVariable_MicWordFilter_Length(len(config.INPUT_MIC_WORD_FILTER)) + case "SpeakerRecordTimeout": self.setGuiVariable_SpeakerRecordTimeout(config.INPUT_SPEAKER_RECORD_TIMEOUT) case "SpeakerPhraseTimeout": diff --git a/vrct_gui/config_window/widgets/createSideMenuAndSettingsBoxContainers/setting_box_containers/_SettingBoxGenerator.py b/vrct_gui/config_window/widgets/createSideMenuAndSettingsBoxContainers/setting_box_containers/_SettingBoxGenerator.py index d996fb2e..8a7f3622 100644 --- a/vrct_gui/config_window/widgets/createSideMenuAndSettingsBoxContainers/setting_box_containers/_SettingBoxGenerator.py +++ b/vrct_gui/config_window/widgets/createSideMenuAndSettingsBoxContainers/setting_box_containers/_SettingBoxGenerator.py @@ -5,8 +5,9 @@ from typing import Union from customtkinter import CTkOptionMenu, CTkFont, CTkFrame, CTkLabel, CTkRadioButton, CTkEntry, CTkSlider, CTkSwitch, CTkCheckBox, CTkProgressBar from CTkToolTip import * -from vrct_gui.ui_utils import createButtonWithImage, getLatestWidth, createOptionMenuBox +from vrct_gui.ui_utils import createButtonWithImage, getLatestWidth, createOptionMenuBox, getLatestHeight, bindButtonFunctionAndColor from vrct_gui import vrct_gui +from utils import isEven, callFunctionIfCallable SETTING_BOX_COLUMN = 1 @@ -17,6 +18,8 @@ class _SettingBoxGenerator(): self.parent_widget = parent_widget self.settings = settings + self.MAIN_INNER_AREA_MIN_WIDTH = int(self.settings.uism.MAIN_AREA_MIN_WIDTH - self.settings.uism.SB__IPADX) + self.dropdown_menu_window = vrct_gui.vrct_gui.dropdown_menu_window def _createSettingBoxFrame(self, sb__attr_name, for_var_label_text=None, for_var_desc_text=None): @@ -449,6 +452,315 @@ class _SettingBoxGenerator(): return setting_box_frame + def createSettingBoxArrowSwitch( + self, + for_var_label_text, for_var_desc_text, + arrow_switch_attr_name, + open_command, + close_command, + var_switch_desc=None, + ): + + (setting_box_frame, setting_box_item_frame) = self._createSettingBoxFrame(arrow_switch_attr_name, for_var_label_text, for_var_desc_text) + + ARROW_BUTTON_COLUMN = SETTING_BOX_COLUMN + + if var_switch_desc is not None: + label_widget = CTkLabel( + setting_box_item_frame, + textvariable=var_switch_desc, + height=0, + corner_radius=0, + font=CTkFont(family=self.settings.FONT_FAMILY, size=self.settings.uism.SB__ARROW_SWITCH_DESC_FONT_SIZE, weight="normal"), + anchor="w", + text_color=self.settings.ctm.LABELS_DESC_TEXT_COLOR, + ) + + label_widget.grid(row=1, column=SETTING_BOX_COLUMN) + ARROW_BUTTON_COLUMN = SETTING_BOX_COLUMN + 1 + + + for_opening_button_wrapper = createButtonWithImage( + parent_widget=setting_box_item_frame, + button_fg_color=self.settings.ctm.SB__ARROW_SWITCH_BUTTON_COLOR, + button_enter_color=self.settings.ctm.SB__ARROW_SWITCH_BUTTON_HOVERED_COLOR, + button_clicked_color=self.settings.ctm.SB__ARROW_SWITCH_BUTTON_CLICKED_COLOR, + button_image_file=self.settings.image_file.ARROW_LEFT.rotate(270), + button_image_size=self.settings.uism.SB__ARROW_SWITCH_BUTTON_ICON_SIZE, + button_ipadxy=self.settings.uism.SB__ARROW_SWITCH_BUTTON_IPADXY, + button_command=open_command, + ) + for_opening_button_wrapper.grid(row=1, column=ARROW_BUTTON_COLUMN, padx=self.settings.uism.SB__ARROW_SWITCH_LEFT_PADX, sticky="e") + + self.config_window.sb__widgets[arrow_switch_attr_name].arrow_switch_open = for_opening_button_wrapper + + for_closing_button_wrapper = createButtonWithImage( + parent_widget=setting_box_item_frame, + button_fg_color=self.settings.ctm.SB__ARROW_SWITCH_BUTTON_COLOR, + button_enter_color=self.settings.ctm.SB__ARROW_SWITCH_BUTTON_HOVERED_COLOR, + button_clicked_color=self.settings.ctm.SB__ARROW_SWITCH_BUTTON_CLICKED_COLOR, + button_image_file=self.settings.image_file.ARROW_LEFT.rotate(90), + button_image_size=self.settings.uism.SB__ARROW_SWITCH_BUTTON_ICON_SIZE, + button_ipadxy=self.settings.uism.SB__ARROW_SWITCH_BUTTON_IPADXY, + button_command=close_command, + ) + for_closing_button_wrapper.grid(row=1, column=ARROW_BUTTON_COLUMN, padx=self.settings.uism.SB__ARROW_SWITCH_LEFT_PADX, sticky="e") + for_closing_button_wrapper.grid_remove() + + self.config_window.sb__widgets[arrow_switch_attr_name].arrow_switch_close = for_closing_button_wrapper + + + return setting_box_frame + + + + # I've added it for the word filter, but it's not currently generalized. If you want to use it in the same way elsewhere, it will require refactoring. + def createSettingBoxAddAndDeleteAbleList( + self, + add_and_delete_able_list_attr_name, + entry_attr_name, + entry_width, + mic_word_filter_list, + ): + + (setting_box_frame, setting_box_item_frame) = self._createSettingBoxFrame(add_and_delete_able_list_attr_name) + + self.config_window.sb__widgets[add_and_delete_able_list_attr_name].items = [] + + + list_container = CTkFrame(setting_box_item_frame, corner_radius=0, fg_color=self.settings.ctm.SB__BG_COLOR, width=0, height=0) + list_container.grid(row=1, column=0, sticky="nsew") + + + max_width = int(self.MAIN_INNER_AREA_MIN_WIDTH - (self.settings.uism.SB__IPADX*2)) + + def addValues(mic_word_filter_list, mic_word_filter_item_row_wrapper, accumulated_labels_width, row, column): + for mic_word_filter_item in mic_word_filter_list: + mic_word_filter_item_wrapper = self._createValue(add_and_delete_able_list_attr_name, mic_word_filter_item_row_wrapper, row, column, mic_word_filter_item) + + if int(accumulated_labels_width + getLatestWidth(mic_word_filter_item_wrapper) + self.settings.uism.ADD_AND_DELETE_ABLE_LIST__VALUES_LEFT_PADX[1]) >= max_width: + accumulated_labels_width = 0 + column = 0 + row += 1 + mic_word_filter_item_wrapper.destroy() + mic_word_filter_item_row_wrapper = self._createRowFrame(list_container, row) + mic_word_filter_item_wrapper = self._createValue(add_and_delete_able_list_attr_name, mic_word_filter_item_row_wrapper, row, column, mic_word_filter_item) + column += 1 + else: + column += 1 + + accumulated_labels_width += int(getLatestWidth(mic_word_filter_item_wrapper) + self.settings.uism.ADD_AND_DELETE_ABLE_LIST__VALUES_LEFT_PADX[1]) + + + + return mic_word_filter_item_row_wrapper, accumulated_labels_width, row, column + + accumulated_labels_width = 0 + row=0 + column=0 + mic_word_filter_item_row_wrapper = self._createRowFrame(list_container, row) + + + mic_word_filter_list = self.view_variable.MIC_WORD_FILTER_LIST + + mic_word_filter_item_row_wrapper, accumulated_labels_width, row, column = addValues(mic_word_filter_list, mic_word_filter_item_row_wrapper, accumulated_labels_width, row, column) + + + self.config_window.sb__widgets[add_and_delete_able_list_attr_name].mic_word_filter_item_row_wrapper = mic_word_filter_item_row_wrapper + self.config_window.sb__widgets[add_and_delete_able_list_attr_name].accumulated_labels_width = accumulated_labels_width + self.config_window.sb__widgets[add_and_delete_able_list_attr_name].last_row = row + self.config_window.sb__widgets[add_and_delete_able_list_attr_name].last_column = column + self.config_window.sb__widgets[add_and_delete_able_list_attr_name].addValues = lambda values, mic_word_filter_item_row_wrapper, accumulated_labels_width, last_row, last_column: addValues(values, mic_word_filter_item_row_wrapper, accumulated_labels_width, last_row, last_column) + + + entry_and_add_button_wrapper = CTkFrame(setting_box_item_frame, corner_radius=0, fg_color=self.settings.ctm.SB__BG_COLOR) + entry_and_add_button_wrapper.grid(row=2, column=0, pady=(self.settings.uism.SB__IPADY, 0), sticky="ew") + + entry_and_add_button_wrapper.grid_columnconfigure((0,3), weight=1) + + + + entry_widget = CTkEntry( + entry_and_add_button_wrapper, + text_color=self.settings.ctm.SB__ENTRY_TEXT_COLOR, + fg_color=self.settings.ctm.SB__ENTRY_BG_COLOR, + border_color=self.settings.ctm.SB__ENTRY_BORDER_COLOR, + width=entry_width, + placeholder_text="AAA or AAA,BBB,CCC", + height=self.settings.uism.SB__PROGRESSBAR_X_SLIDER__ENTRY_HEIGHT, + font=CTkFont(family=self.settings.FONT_FAMILY, size=self.settings.uism.SB__ENTRY_FONT_SIZE, weight="normal"), + ) + setattr(self.config_window, entry_attr_name, entry_widget) + + entry_widget.grid(row=0, column=1, sticky="ew") + + + + add_button = CTkFrame(entry_and_add_button_wrapper, corner_radius=self.settings.uism.BUTTONS_CORNER_RADIUS, fg_color=self.settings.ctm.SB__ADD_AND_DELETE_ABLE_LIST__ADD_BUTTON_COLOR, cursor="hand2") + add_button.grid(row=0, column=2, padx=self.settings.uism.ADD_AND_DELETE_ABLE_LIST__ADD_BUTTON_LEFT_PADX, sticky="ew") + + + add_button.grid_columnconfigure(0, weight=1) + add_button_label_wrapper = CTkFrame(add_button, corner_radius=0, fg_color=self.settings.ctm.SB__ADD_AND_DELETE_ABLE_LIST__ADD_BUTTON_COLOR) + add_button_label_wrapper.grid(row=0, column=0, padx=self.settings.uism.ADD_AND_DELETE_ABLE_LIST__ADD_BUTTON_IPADX, pady=self.settings.uism.ADD_AND_DELETE_ABLE_LIST__ADD_BUTTON_IPADY, sticky="ew") + + add_button_label_wrapper.grid_columnconfigure((0,2), weight=1) + add_button_label = CTkLabel( + add_button_label_wrapper, + textvariable=self.view_variable.VAR_LABEL_MIC_WORD_FILTER_ADD_BUTTON, + height=0, + corner_radius=0, + font=CTkFont(family=self.settings.FONT_FAMILY, size=self.settings.uism.ADD_AND_DELETE_ABLE_LIST__ADD_BUTTON_FONT_SIZE, weight="normal"), + anchor="w", + text_color=self.settings.ctm.LABELS_TEXT_COLOR, + ) + add_button_label.grid(row=0, column=1) + + + def adjustedCommand(): + callFunctionIfCallable(self.view_variable.CALLBACK_SET_MIC_WORD_FILTER, entry_widget.get()) + entry_widget.focus_set() + + bindButtonFunctionAndColor( + target_widgets=[ + add_button, + add_button_label_wrapper, + add_button_label, + ], + enter_color=self.settings.ctm.SB__ADD_AND_DELETE_ABLE_LIST__ADD_BUTTON_HOVERED_COLOR, + leave_color=self.settings.ctm.SB__ADD_AND_DELETE_ABLE_LIST__ADD_BUTTON_COLOR, + clicked_color=self.settings.ctm.SB__ADD_AND_DELETE_ABLE_LIST__ADD_BUTTON_CLICKED_COLOR, + buttonReleasedFunction=lambda _e: adjustedCommand(), + ) + + + return setting_box_frame + + + def _createRowFrame(self, parent_widget, row): + mic_word_filter_item_row_wrapper = CTkFrame(parent_widget, corner_radius=0, fg_color=self.settings.ctm.SB__BG_COLOR, width=0, height=0) + mic_word_filter_item_row_wrapper.grid(row=row, column=0, pady=self.settings.uism.ADD_AND_DELETE_ABLE_LIST__VALUES_BOTTOM_PADY, sticky="nsew") + + return mic_word_filter_item_row_wrapper + + + + def _createValue(self, add_and_delete_able_list_attr_name, parent_row_frame, row, column, mic_word_filter_item): + mic_word_filter_item_wrapper = CTkFrame(parent_row_frame, corner_radius=self.settings.uism.ADD_AND_DELETE_ABLE_LIST__VALUES_CORNER_RADIUS, fg_color=self.settings.ctm.SB__ADD_AND_DELETE_ABLE_LIST_BG_COLOR, width=0, height=0) + mic_word_filter_item_wrapper.grid(row=0, column=column, padx=self.settings.uism.ADD_AND_DELETE_ABLE_LIST__VALUES_LEFT_PADX, sticky="nsew") + setattr(self, f"{row}_{column}", mic_word_filter_item_wrapper) + + + + mic_word_filter_item_wrapper.grid_rowconfigure((0,2), weight=1) + label_widget = CTkLabel( + mic_word_filter_item_wrapper, + text=mic_word_filter_item, + height=0, + corner_radius=0, + font=CTkFont(family=self.settings.FONT_FAMILY, size=self.settings.uism.ADD_AND_DELETE_ABLE_LIST__VALUES_TEXT_FONT_SIZE, weight="normal"), + anchor="w", + text_color=self.settings.ctm.BASIC_TEXT_COLOR, + ) + + label_widget.grid(row=1, column=0, padx=self.settings.uism.ADD_AND_DELETE_ABLE_LIST__VALUES_TEXT_IPADX, pady=self.settings.uism.ADD_AND_DELETE_ABLE_LIST__VALUES_TEXT_IPADY) + + + if isEven(getLatestHeight(label_widget)) is False: + label_widget.grid( + pady=( + self.settings.uism.ADD_AND_DELETE_ABLE_LIST__VALUES_TEXT_IPADY, + self.settings.uism.ADD_AND_DELETE_ABLE_LIST__VALUES_TEXT_IPADY + 1 + ) + ) + + + if isEven(getLatestWidth(label_widget)) is False: + label_widget.grid( + padx=( + self.settings.uism.ADD_AND_DELETE_ABLE_LIST__VALUES_TEXT_IPADX[0], + self.settings.uism.ADD_AND_DELETE_ABLE_LIST__VALUES_TEXT_IPADX[1] + 1 + ) + ) + + + + def pressedDeleteButtonCommand(_e, delete_button, redo_button): + # overstrike true + label_widget.configure(font=CTkFont(family=self.settings.FONT_FAMILY, size=self.settings.uism.ADD_AND_DELETE_ABLE_LIST__VALUES_TEXT_FONT_SIZE, weight="normal", overstrike=True)) + # change fg_color + mic_word_filter_item_wrapper.configure(fg_color=self.settings.ctm.SB__ADD_AND_DELETE_ABLE_LIST_DELETED_BG_COLOR) + # change button img to redo button + delete_button.grid_remove() + redo_button.grid() + # callback delete function + callFunctionIfCallable(self.view_variable.CALLBACK_DELETE_MIC_WORD_FILTER, mic_word_filter_item) + + def pressedRedoButtonCommand(_e, delete_button, redo_button): + # overstrike false + label_widget.configure(font=CTkFont(family=self.settings.FONT_FAMILY, size=self.settings.uism.ADD_AND_DELETE_ABLE_LIST__VALUES_TEXT_FONT_SIZE, weight="normal", overstrike=False)) + # change fg_color + mic_word_filter_item_wrapper.configure(fg_color=self.settings.ctm.SB__ADD_AND_DELETE_ABLE_LIST_BG_COLOR) + # change button img to delete button + redo_button.grid_remove() + delete_button.grid() + # callback add function + callFunctionIfCallable(self.view_variable.CALLBACK_SET_MIC_WORD_FILTER, mic_word_filter_item) + + + + delete_button = createButtonWithImage( + parent_widget=mic_word_filter_item_wrapper, + button_fg_color=self.settings.ctm.SB__ADD_AND_DELETE_ABLE_LIST_BG_COLOR, + button_enter_color=self.settings.ctm.SB__ADD_AND_DELETE_ABLE_LIST__VALUES_ACTION_BUTTON_HOVERED_BG_COLOR, + button_clicked_color=self.settings.ctm.SB__ADD_AND_DELETE_ABLE_LIST__VALUES_ACTION_BUTTON_CLICKED_BG_COLOR, + button_image_file=self.settings.image_file.CANCEL_ICON, + button_image_size=self.settings.uism.ADD_AND_DELETE_ABLE_LIST__VALUES_ACTION_BUTTON_IMG_SIZE, + button_ipadxy=self.settings.uism.ADD_AND_DELETE_ABLE_LIST__VALUES_ACTION_BUTTON_IPADXY, + button_command=lambda _e: pressedDeleteButtonCommand(_e, delete_button, redo_button), + ) + delete_button.grid(row=1, column=1, padx=self.settings.uism.ADD_AND_DELETE_ABLE_LIST__VALUES_ACTION_BUTTON_PADX, sticky="e") + + redo_button = createButtonWithImage( + parent_widget=mic_word_filter_item_wrapper, + button_fg_color=self.settings.ctm.SB__ADD_AND_DELETE_ABLE_LIST_DELETED_BG_COLOR, + button_enter_color=self.settings.ctm.SB__ADD_AND_DELETE_ABLE_LIST__VALUES_DELETED_BUTTON_HOVERED_BG_COLOR, + button_clicked_color=self.settings.ctm.SB__ADD_AND_DELETE_ABLE_LIST__VALUES_DELETED_BUTTON_CLICKED_BG_COLOR, + button_image_file=self.settings.image_file.REDO_ICON, + button_image_size=self.settings.uism.ADD_AND_DELETE_ABLE_LIST__VALUES_ACTION_BUTTON_IMG_SIZE, + button_ipadxy=self.settings.uism.ADD_AND_DELETE_ABLE_LIST__VALUES_ACTION_BUTTON_IPADXY, + button_command=lambda _e: pressedRedoButtonCommand(_e, delete_button, redo_button), + ) + redo_button.grid(row=1, column=1, padx=self.settings.uism.ADD_AND_DELETE_ABLE_LIST__VALUES_ACTION_BUTTON_PADX, sticky="e") + redo_button.grid_remove() + + + partial_pressedRedoButtonCommand = partial(pressedRedoButtonCommand, _e=None, delete_button=delete_button, redo_button=redo_button) + item_data = SimpleNamespace( + label = mic_word_filter_item, + redoFunction = lambda: partial_pressedRedoButtonCommand(), + ) + + + items = self.config_window.sb__widgets[add_and_delete_able_list_attr_name].items + if len(items) == 0: + items.append(item_data) + else: + is_replaced = False + for i, item in enumerate(items): + if item.label == mic_word_filter_item: + items[i] = item_data + is_replaced = True + break + if is_replaced is False: items.append(item_data) + + + return mic_word_filter_item_wrapper + + + + + # if setting_box_type == "dropdown_menu_x_dropdown_menu": # self.setting_box_dropdown_menu_x_dropdown_menu = CTkFrame(self.setting_box, corner_radius=0, fg_color=self.settings.ctm.SB__BG_COLOR, width=0, height=0) diff --git a/vrct_gui/config_window/widgets/createSideMenuAndSettingsBoxContainers/setting_box_containers/setting_box_transcription/createSettingBox_Mic.py b/vrct_gui/config_window/widgets/createSideMenuAndSettingsBoxContainers/setting_box_containers/setting_box_transcription/createSettingBox_Mic.py index 472e5baa..d5ece1b6 100644 --- a/vrct_gui/config_window/widgets/createSideMenuAndSettingsBoxContainers/setting_box_containers/setting_box_transcription/createSettingBox_Mic.py +++ b/vrct_gui/config_window/widgets/createSideMenuAndSettingsBoxContainers/setting_box_containers/setting_box_transcription/createSettingBox_Mic.py @@ -8,6 +8,8 @@ def createSettingBox_Mic(setting_box_wrapper, config_window, settings, view_vari createSettingBoxSwitch = sbg.createSettingBoxSwitch createSettingBoxProgressbarXSlider = sbg.createSettingBoxProgressbarXSlider createSettingBoxEntry = sbg.createSettingBoxEntry + createSettingBoxArrowSwitch = sbg.createSettingBoxArrowSwitch + createSettingBoxAddAndDeleteAbleList = sbg.createSettingBoxAddAndDeleteAbleList def checkbox_input_mic_threshold_check_callback(is_turned_on): @@ -36,6 +38,11 @@ def createSettingBox_Mic(setting_box_wrapper, config_window, settings, view_vari def entry_input_mic_max_phrases_callback(value): callFunctionIfCallable(view_variable.CALLBACK_SET_MIC_MAX_PHRASES, value) + def arrow_switch_mic_word_filter_list_open_callback(value): + callFunctionIfCallable(view_variable.CALLBACK_ARROW_SWITCH_MIC_WORD_FILTER_LIST_OPEN) + def arrow_switch_mic_word_filter_list_close_callback(value): + callFunctionIfCallable(view_variable.CALLBACK_ARROW_SWITCH_MIC_WORD_FILTER_LIST_CLOSE) + def entry_input_mic_word_filters_callback(value): callFunctionIfCallable(view_variable.CALLBACK_SET_MIC_WORD_FILTER, value) @@ -140,13 +147,24 @@ def createSettingBox_Mic(setting_box_wrapper, config_window, settings, view_vari # # __________ - config_window.sb__mic_word_filter = createSettingBoxEntry( + config_window.sb__mic_word_filter = createSettingBoxArrowSwitch( for_var_label_text=view_variable.VAR_LABEL_MIC_WORD_FILTER, for_var_desc_text=view_variable.VAR_DESC_MIC_WORD_FILTER, - entry_attr_name="sb__entry_mic_word_filter", - entry_width=settings.uism.RESPONSIVE_UI_SIZE_INT_300, - entry_bind__Any_KeyRelease=lambda value: entry_input_mic_word_filters_callback(value), - entry_textvariable=view_variable.VAR_MIC_WORD_FILTER, + arrow_switch_attr_name="sb__arrow_switch_mic_word_filter", + open_command=lambda value: arrow_switch_mic_word_filter_list_open_callback(value), + close_command=lambda value: arrow_switch_mic_word_filter_list_close_callback(value), + var_switch_desc=view_variable.VAR_SWITCH_DESC_MIC_WORD_FILTER, ) config_window.sb__mic_word_filter.grid(row=row, pady=0) + row+=1 + + config_window.sb__mic_word_filter_list = createSettingBoxAddAndDeleteAbleList( + add_and_delete_able_list_attr_name="sb__add_and_delete_able_list_mic_word_filter_list", + entry_attr_name="sb__entry_mic_word_filter_list", + entry_width=settings.uism.RESPONSIVE_UI_SIZE_INT_300, + mic_word_filter_list=view_variable.MIC_WORD_FILTER_LIST, + ) + config_window.sb__mic_word_filter_list.grid(row=row, pady=0) + # Default, close the list. + config_window.sb__mic_word_filter_list.grid_remove() row+=1 \ 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 8cadde2c..2522608a 100644 --- a/vrct_gui/ui_managers/Themes/_darkTheme.py +++ b/vrct_gui/ui_managers/Themes/_darkTheme.py @@ -229,6 +229,24 @@ def _darkTheme(base_color): SB__PROGRESSBAR_X_SLIDER__ACTIVE_BUTTON_CLICKED_COLOR = base_color.PRIMARY_800_COLOR, + SB__ARROW_SWITCH_BUTTON_COLOR = base_color.DARK_888_COLOR, + SB__ARROW_SWITCH_BUTTON_HOVERED_COLOR = base_color.DARK_800_COLOR, + SB__ARROW_SWITCH_BUTTON_CLICKED_COLOR = base_color.DARK_900_COLOR, + + SB__ADD_AND_DELETE_ABLE_LIST__ADD_BUTTON_COLOR = base_color.PRIMARY_600_COLOR, + SB__ADD_AND_DELETE_ABLE_LIST__ADD_BUTTON_HOVERED_COLOR = base_color.PRIMARY_500_COLOR, + SB__ADD_AND_DELETE_ABLE_LIST__ADD_BUTTON_CLICKED_COLOR = base_color.PRIMARY_700_COLOR, + SB__ADD_AND_DELETE_ABLE_LIST_BG_COLOR = base_color.DARK_800_COLOR, + + SB__ADD_AND_DELETE_ABLE_LIST__VALUES_ACTION_BUTTON_HOVERED_BG_COLOR = base_color.DARK_750_COLOR, + SB__ADD_AND_DELETE_ABLE_LIST__VALUES_ACTION_BUTTON_CLICKED_BG_COLOR = base_color.DARK_850_COLOR, + + SB__ADD_AND_DELETE_ABLE_LIST_DELETED_BG_COLOR = base_color.DARK_850_COLOR, + SB__ADD_AND_DELETE_ABLE_LIST__VALUES_DELETED_BUTTON_HOVERED_BG_COLOR = base_color.DARK_800_COLOR, + SB__ADD_AND_DELETE_ABLE_LIST__VALUES_DELETED_BUTTON_CLICKED_BG_COLOR = base_color.DARK_900_COLOR, + + + # Side menu SIDE_MENU_BG_COLOR = base_color.DARK_950_COLOR, @@ -273,6 +291,9 @@ def _darkTheme(base_color): REFRESH_ICON = getImageFileFromUiUtils("refresh_icon.png"), HELP_ICON = getImageFileFromUiUtils("help_icon_white.png"), + + CANCEL_ICON = getImageFileFromUiUtils("cancel_icon.png"), + REDO_ICON = getImageFileFromUiUtils("redo_white.png"), ), ) diff --git a/vrct_gui/ui_managers/UiScalingManager.py b/vrct_gui/ui_managers/UiScalingManager.py index fae26c79..9a1ad1c2 100644 --- a/vrct_gui/ui_managers/UiScalingManager.py +++ b/vrct_gui/ui_managers/UiScalingManager.py @@ -217,6 +217,10 @@ class UiScalingManager(): self.config_window.SB__DESC_TOP_PADY = self._calculateUiSize(2) + self.config_window.BUTTONS_CORNER_RADIUS = self._calculateUiSize(6) + # self.config_window.BUTTONS_IPADX = self._calculateUiSize(10) + # self.config_window.BUTTONS_IPADY = self._calculateUiSize(6) + self.config_window.SB__ERROR_MESSAGE_IPADX = (self._calculateUiSize(10), self._calculateUiSize(10)) self.config_window.SB__ERROR_MESSAGE_IPADY = (self._calculateUiSize(6), self._calculateUiSize(6)) self.config_window.SB__ERROR_MESSAGE_FONT_SIZE = self._calculateUiSize(14) @@ -276,6 +280,28 @@ class UiScalingManager(): + self.config_window.SB__ARROW_SWITCH_BUTTON_IPADXY = self._calculateUiSize(16) + self.config_window.SB__ARROW_SWITCH_BUTTON_ICON_SIZE = self._calculateUiSize(24) + self.config_window.SB__ARROW_SWITCH_DESC_FONT_SIZE = self._calculateUiSize(16) + self.config_window.SB__ARROW_SWITCH_LEFT_PADX = (self._calculateUiSize(20), 0) + + self.config_window.ADD_AND_DELETE_ABLE_LIST__ADD_BUTTON_IPADX = self._calculateUiSize(16) + self.config_window.ADD_AND_DELETE_ABLE_LIST__ADD_BUTTON_IPADY = self._calculateUiSize(6) + + self.config_window.ADD_AND_DELETE_ABLE_LIST__VALUES_CORNER_RADIUS = self._calculateUiSize(2) + self.config_window.ADD_AND_DELETE_ABLE_LIST__VALUES_LEFT_PADX = (0, self._calculateUiSize(4)) + self.config_window.ADD_AND_DELETE_ABLE_LIST__VALUES_BOTTOM_PADY = (0, self._calculateUiSize(4)) + + self.config_window.ADD_AND_DELETE_ABLE_LIST__VALUES_TEXT_FONT_SIZE = self._calculateUiSize(14) + self.config_window.ADD_AND_DELETE_ABLE_LIST__VALUES_TEXT_IPADX = (self._calculateUiSize(8), 0) + self.config_window.ADD_AND_DELETE_ABLE_LIST__VALUES_TEXT_IPADY = self._calculateUiSize(6) + self.config_window.ADD_AND_DELETE_ABLE_LIST__VALUES_ACTION_BUTTON_IMG_SIZE = self._calculateUiSize(14) + self.config_window.ADD_AND_DELETE_ABLE_LIST__VALUES_ACTION_BUTTON_IPADXY = self._calculateUiSize(6) + self.config_window.ADD_AND_DELETE_ABLE_LIST__VALUES_ACTION_BUTTON_PADX = (self._calculateUiSize(6), self._calculateUiSize(8)) + + self.config_window.ADD_AND_DELETE_ABLE_LIST__ADD_BUTTON_LEFT_PADX = (self._calculateUiSize(20), 0) + self.config_window.ADD_AND_DELETE_ABLE_LIST__ADD_BUTTON_FONT_SIZE = self._calculateUiSize(14) + def _calculateUiSize(self, default_size, is_allowed_odd:bool=False, is_zero_allowed:bool=False): size = calculateUiSize(default_size, self.SCALING_FLOAT, is_allowed_odd, is_zero_allowed) return size