From c232f5e5cdffbdfd909163d9c26b422456e52cf1 Mon Sep 17 00:00:00 2001 From: Sakamoto Shiina <68018796+ShiinaSakamoto@users.noreply.github.com> Date: Mon, 4 Sep 2023 00:06:43 +0900 Subject: [PATCH] =?UTF-8?q?view.py=E3=81=B8=E3=82=B5=E3=82=A4=E3=83=89?= =?UTF-8?q?=E3=83=90=E3=83=BC=E9=96=8B=E9=96=89=E5=9B=9E=E3=82=8A=E3=81=AE?= =?UTF-8?q?=E5=A4=89=E6=95=B0=E3=82=92=E7=A7=BB=E5=8B=95=E3=80=82=E9=96=A2?= =?UTF-8?q?=E6=95=B0=E3=81=AF(view.py=E3=81=8Cwrapper=E3=81=97=E3=81=A6?= =?UTF-8?q?=E3=81=84=E3=82=8B=E3=81=91=E3=81=A9)vrct=5Fgui.py=E3=81=B8?= =?UTF-8?q?=E7=A7=BB=E5=8B=95=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- view.py | 12 +++++++++++- vrct_gui/_changeMainWindowWidgetsStatus.py | 8 ++++---- .../widgets/create_minimize_sidebar_button.py | 18 +++++------------- vrct_gui/main_window/widgets/create_sidebar.py | 8 ++++---- vrct_gui/vrct_gui.py | 7 +++++++ 5 files changed, 31 insertions(+), 22 deletions(-) diff --git a/view.py b/view.py index 9baa605f..778f159a 100644 --- a/view.py +++ b/view.py @@ -24,7 +24,6 @@ class View(): self.settings.main = SimpleNamespace( ctm=all_ctm.main, uism=all_uism.main, - IS_SIDEBAR_COMPACT_MODE=False, COMPACT_MODE_ICON_SIZE=0, **common_args ) @@ -38,6 +37,10 @@ class View(): self.view_variable = SimpleNamespace( # Main Window + # Sidebar Compact Mode + IS_MAIN_WINDOW_SIDEBAR_COMPACT_MODE=False, + CALLBACK_TOGGLE_MAIN_WINDOW_SIDEBAR_COMPACT_MODE=None, + # Sidebar Features VAR_LABEL_TRANSLATION=StringVar(value="Translation"), CALLBACK_TOGGLE_TRANSLATION=None, @@ -211,6 +214,8 @@ class View(): def register(self, sidebar_features, language_presets, entry_message_box_commands, config_window): + self.view_variable.CALLBACK_TOGGLE_MAIN_WINDOW_SIDEBAR_COMPACT_MODE = self._toggleMainWindowSidebarCompactMode + vrct_gui.CALLBACK_TOGGLE_TRANSLATION = sidebar_features["callback_toggle_translation"] vrct_gui.CALLBACK_TOGGLE_TRANSCRIPTION_SEND = sidebar_features["callback_toggle_transcription_send"] vrct_gui.CALLBACK_TOGGLE_TRANSCRIPTION_RECEIVE = sidebar_features["callback_toggle_transcription_receive"] @@ -325,6 +330,11 @@ class View(): vrct_gui.attributes("-topmost", False) + def _toggleMainWindowSidebarCompactMode(self, is_turned_on): + self.view_variable.IS_MAIN_WINDOW_SIDEBAR_COMPACT_MODE = is_turned_on + vrct_gui.recreateMainWindowSidebar() + + def updateGuiVariableByPresetTabNo(self, tab_no:str): self.view_variable.VAR_YOUR_LANGUAGE.set(config.SELECTED_TAB_YOUR_LANGUAGES[tab_no]) self.view_variable.VAR_TARGET_LANGUAGE.set(config.SELECTED_TAB_TARGET_LANGUAGES[tab_no]) diff --git a/vrct_gui/_changeMainWindowWidgetsStatus.py b/vrct_gui/_changeMainWindowWidgetsStatus.py index af616f92..af8b51d8 100644 --- a/vrct_gui/_changeMainWindowWidgetsStatus.py +++ b/vrct_gui/_changeMainWindowWidgetsStatus.py @@ -85,7 +85,7 @@ def _changeMainWindowWidgetsStatus(vrct_gui, settings, status, target_names): vrct_gui.sls__container_title.configure(text_color=settings.ctm.SF__TEXT_DISABLED_COLOR) vrct_gui.sls__title_text_your_language.configure(text_color=settings.ctm.SF__TEXT_DISABLED_COLOR) vrct_gui.sls__title_text_target_language.configure(text_color=settings.ctm.SF__TEXT_DISABLED_COLOR) - if settings.IS_SIDEBAR_COMPACT_MODE is False: + if vrct_gui.view_variable.IS_MAIN_WINDOW_SIDEBAR_COMPACT_MODE is False: vrct_gui.current_active_preset_tab.children["!ctklabel"].configure(text_color=settings.ctm.SLS__PRESETS_TAB_ACTIVE_TEXT_COLOR_PASSIVE) vrct_gui.sls__optionmenu_your_language.configure(state="disabled") vrct_gui.sls__optionmenu_target_language.configure(state="disabled") @@ -94,7 +94,7 @@ def _changeMainWindowWidgetsStatus(vrct_gui, settings, status, target_names): vrct_gui.sls__container_title.configure(text_color=settings.ctm.LABELS_TEXT_COLOR) vrct_gui.sls__title_text_your_language.configure(text_color=settings.ctm.LABELS_TEXT_COLOR) vrct_gui.sls__title_text_target_language.configure(text_color=settings.ctm.LABELS_TEXT_COLOR) - if settings.IS_SIDEBAR_COMPACT_MODE is False: + if vrct_gui.view_variable.IS_MAIN_WINDOW_SIDEBAR_COMPACT_MODE is False: vrct_gui.current_active_preset_tab.children["!ctklabel"].configure(text_color=settings.ctm.SLS__PRESETS_TAB_ACTIVE_TEXT_COLOR) vrct_gui.current_active_preset_tab.children["!ctklabel"].configure(text_color=settings.ctm.SLS__PRESETS_TAB_ACTIVE_TEXT_COLOR) vrct_gui.sls__optionmenu_your_language.configure(state="normal") @@ -120,7 +120,7 @@ def _changeMainWindowWidgetsStatus(vrct_gui, settings, status, target_names): vrct_gui.minimize_sidebar_button_container.configure(cursor="") - if settings.IS_SIDEBAR_COMPACT_MODE is True: + if vrct_gui.view_variable.IS_MAIN_WINDOW_SIDEBAR_COMPACT_MODE is True: image_file = CTkImage(getImageFileFromUiUtils(settings.image_filename.ARROW_LEFT_DISABLED).rotate(180), size=LOGO_SIZE) else: image_file = CTkImage(getImageFileFromUiUtils(settings.image_filename.ARROW_LEFT_DISABLED), size=LOGO_SIZE) @@ -128,7 +128,7 @@ def _changeMainWindowWidgetsStatus(vrct_gui, settings, status, target_names): elif status == "normal": vrct_gui.minimize_sidebar_button_container.configure(cursor="hand2") - if settings.IS_SIDEBAR_COMPACT_MODE is True: + if vrct_gui.view_variable.IS_MAIN_WINDOW_SIDEBAR_COMPACT_MODE is True: image_file = CTkImage(getImageFileFromUiUtils(settings.image_filename.ARROW_LEFT).rotate(180), size=LOGO_SIZE) else: image_file = CTkImage(getImageFileFromUiUtils(settings.image_filename.ARROW_LEFT), size=LOGO_SIZE) diff --git a/vrct_gui/main_window/widgets/create_minimize_sidebar_button.py b/vrct_gui/main_window/widgets/create_minimize_sidebar_button.py index 97414c70..6cfd0ce0 100644 --- a/vrct_gui/main_window/widgets/create_minimize_sidebar_button.py +++ b/vrct_gui/main_window/widgets/create_minimize_sidebar_button.py @@ -3,24 +3,16 @@ from customtkinter import CTkFrame, CTkLabel, CTkImage from ...ui_utils import getImageFileFromUiUtils, bindEnterAndLeaveColor, bindButtonPressColor, bindButtonReleaseFunction -from .create_sidebar import createSidebar - +from utils import callFunctionIfCallable def createMinimizeSidebarButton(settings, main_window): def enableCompactMode(e): - settings.IS_SIDEBAR_COMPACT_MODE = True - main_window.minimize_sidebar_button_container.destroy() - createMinimizeSidebarButton(settings, main_window) - main_window.sidebar_bg_container.destroy() - createSidebar(settings, main_window) + callFunctionIfCallable(main_window.view_variable.CALLBACK_TOGGLE_MAIN_WINDOW_SIDEBAR_COMPACT_MODE, True) def disableCompactMode(e): - settings.IS_SIDEBAR_COMPACT_MODE = False - main_window.minimize_sidebar_button_container.destroy() - createMinimizeSidebarButton(settings, main_window) - main_window.sidebar_bg_container.destroy() - createSidebar(settings, main_window) + callFunctionIfCallable(main_window.view_variable.CALLBACK_TOGGLE_MAIN_WINDOW_SIDEBAR_COMPACT_MODE, False) + main_window.minimize_sidebar_button_container = CTkFrame(main_window.main_topbar_container, corner_radius=0, fg_color=settings.ctm.MINIMIZE_SIDEBAR_BUTTON_BG_COLOR, cursor="hand2", width=0, height=0) @@ -36,7 +28,7 @@ def createMinimizeSidebarButton(settings, main_window): ) - if settings.IS_SIDEBAR_COMPACT_MODE is True: + if main_window.view_variable.IS_MAIN_WINDOW_SIDEBAR_COMPACT_MODE is True: image_file = CTkImage(getImageFileFromUiUtils(settings.image_filename.ARROW_LEFT).rotate(180),size=(settings.uism.MINIMIZE_SIDEBAR_BUTTON_ICON_SIZE_X,settings.uism.MINIMIZE_SIDEBAR_BUTTON_ICON_SIZE_Y)) bindButtonReleaseFunction([main_window.minimize_sidebar_button_container, main_window.minimize_sidebar_button], disableCompactMode) diff --git a/vrct_gui/main_window/widgets/create_sidebar.py b/vrct_gui/main_window/widgets/create_sidebar.py index 32d0c0c7..e0c9f1ae 100644 --- a/vrct_gui/main_window/widgets/create_sidebar.py +++ b/vrct_gui/main_window/widgets/create_sidebar.py @@ -175,7 +175,7 @@ def createSidebar(settings, main_window): main_window.sidebar_bg_container.grid(row=0, column=0, sticky="nsew") - MIN_SIDEBAR_WIDTH = settings.uism.COMPACT_MODE_SIDEBAR_WIDTH if settings.IS_SIDEBAR_COMPACT_MODE is True else settings.uism.SIDEBAR_WIDTH + MIN_SIDEBAR_WIDTH = settings.uism.COMPACT_MODE_SIDEBAR_WIDTH if main_window.view_variable.IS_MAIN_WINDOW_SIDEBAR_COMPACT_MODE is True else settings.uism.SIDEBAR_WIDTH main_window.sidebar_bg_container.grid_columnconfigure(0, weight=0, minsize=MIN_SIDEBAR_WIDTH) main_window.grid_rowconfigure(0, weight=1) @@ -200,7 +200,7 @@ def createSidebar(settings, main_window): image=CTkImage(img, size=(width,height)) ) - if settings.IS_SIDEBAR_COMPACT_MODE is True: + if main_window.view_variable.IS_MAIN_WINDOW_SIDEBAR_COMPACT_MODE is True: main_window.sidebar_compact_mode_logo.grid(row=0, column=0, pady=( int(settings.uism.SF__LOGO_PADY[0]+a_s/2), int(settings.uism.SF__LOGO_PADY[1]+a_s/2) @@ -338,7 +338,7 @@ def createSidebar(settings, main_window): # Arrange - if settings.IS_SIDEBAR_COMPACT_MODE is True: + if main_window.view_variable.IS_MAIN_WINDOW_SIDEBAR_COMPACT_MODE is True: compact_mode_icon_widget.grid(row=row, column=0, pady=settings.uism.SF__COMPACT_MODE_ICON_PADY) selected_mark_widget.place(relx=-1, rely=0.5, relheight=0.75, anchor="center") else: @@ -386,7 +386,7 @@ def createSidebar(settings, main_window): # Sidebar Quick Language Settings, SQLS main_window.sls__container = CTkFrame(main_window.sidebar_bg_container, corner_radius=0, fg_color=settings.ctm.SIDEBAR_BG_COLOR, width=0, height=0) - if settings.IS_SIDEBAR_COMPACT_MODE is False: + if main_window.view_variable.IS_MAIN_WINDOW_SIDEBAR_COMPACT_MODE is False: main_window.sls__container.grid(row=2, column=0, sticky="new") main_window.sls__container.grid_columnconfigure(0, weight=1) diff --git a/vrct_gui/vrct_gui.py b/vrct_gui/vrct_gui.py index 94de0c32..de958f3d 100644 --- a/vrct_gui/vrct_gui.py +++ b/vrct_gui/vrct_gui.py @@ -12,6 +12,8 @@ from .main_window import createMainWindowWidgets from .config_window import ConfigWindow from .ui_utils import _setDefaultActiveTab +from .main_window.widgets import createSidebar, createMinimizeSidebarButton + class VRCT_GUI(CTk): def __init__(self): @@ -76,6 +78,11 @@ class VRCT_GUI(CTk): active_text_color=self.settings.main.ctm.SLS__PRESETS_TAB_ACTIVE_TEXT_COLOR ) + def recreateMainWindowSidebar(self): + self.minimize_sidebar_button_container.destroy() + createMinimizeSidebarButton(self.settings.main, self) + self.sidebar_bg_container.destroy() + createSidebar(self.settings.main, self) vrct_gui = VRCT_GUI() \ No newline at end of file