From 8f2934e5101953492e195b9127be3fd7420a5b98 Mon Sep 17 00:00:00 2001 From: Sakamoto Shiina <68018796+ShiinaSakamoto@users.noreply.github.com> Date: Tue, 24 Oct 2023 18:12:39 +0900 Subject: [PATCH] =?UTF-8?q?[Update]=20=E3=83=86=E3=82=AD=E3=82=B9=E3=83=88?= =?UTF-8?q?=E3=83=9C=E3=83=83=E3=82=AF=E3=82=B9=E3=81=AE=E3=83=95=E3=82=A9?= =?UTF-8?q?=E3=83=B3=E3=83=88=E3=82=B5=E3=82=A4=E3=82=BA=E3=82=92=E3=80=81?= =?UTF-8?q?UI=E5=85=A8=E4=BD=93=E3=81=AE=E3=82=B5=E3=82=A4=E3=82=BA?= =?UTF-8?q?=E3=81=A8=E3=81=AF=E5=88=A5=E3=81=A7=E3=83=A6=E3=83=BC=E3=82=B6?= =?UTF-8?q?=E3=83=BC=E3=81=8C=E5=A4=89=E3=81=88=E3=82=89=E3=82=8C=E3=82=8B?= =?UTF-8?q?=E3=82=88=E3=81=86=E3=81=AB=E3=80=82=20(UI=20size,=20scaling?= =?UTF-8?q?=E3=82=92=E5=9F=BA=E6=BA=96=E3=81=A8=E3=81=97=E3=81=9F=E5=80=8D?= =?UTF-8?q?=E7=8E=87)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- config.py | 12 ++++++++++++ controller.py | 6 ++++++ locales/en.yml | 4 ++++ locales/ja.yml | 4 ++++ view.py | 14 +++++++++++++- vrct_gui/_printToTextbox.py | 6 +++++- .../createSettingBox_Appearance.py | 16 ++++++++++++++++ vrct_gui/vrct_gui.py | 1 + 8 files changed, 61 insertions(+), 2 deletions(-) diff --git a/config.py b/config.py index 65f8fa15..afd25f43 100644 --- a/config.py +++ b/config.py @@ -225,6 +225,17 @@ class Config: self._UI_SCALING = value saveJson(self.PATH_CONFIG, inspect.currentframe().f_code.co_name, value) + @property + @json_serializable('TEXTBOX_UI_SCALING') + def TEXTBOX_UI_SCALING(self): + return self._TEXTBOX_UI_SCALING + + @TEXTBOX_UI_SCALING.setter + def TEXTBOX_UI_SCALING(self, value): + if type(value) is int and 50 <= value <= 200: + self._TEXTBOX_UI_SCALING = value + saveJson(self.PATH_CONFIG, inspect.currentframe().f_code.co_name, value) + @property @json_serializable('FONT_FAMILY') def FONT_FAMILY(self): @@ -546,6 +557,7 @@ class Config: self._TRANSPARENCY = 100 self._APPEARANCE_THEME = "System" self._UI_SCALING = "100%" + self._TEXTBOX_UI_SCALING = 100 self._FONT_FAMILY = "Yu Gothic UI" self._UI_LANGUAGE = "en" self._CHOICE_MIC_HOST = getDefaultInputDevice()["host"]["name"] diff --git a/controller.py b/controller.py index d8dfc1fb..f3ee030d 100644 --- a/controller.py +++ b/controller.py @@ -352,6 +352,11 @@ def callbackSetUiScaling(value): print("callbackSetUiScaling_new_scaling_float", new_scaling_float) view.showRestartButtonIfRequired() +def callbackSetTextboxUiScaling(value): + print("callbackSetTextboxUiScaling", int(value)) + config.TEXTBOX_UI_SCALING = int(value) + view.setMainWindowTextboxUiSize(config.TEXTBOX_UI_SCALING/100) + def callbackSetFontFamily(value): print("callbackSetFontFamily", value) config.FONT_FAMILY = value @@ -694,6 +699,7 @@ def createMainWindow(): "callback_set_transparency": callbackSetTransparency, "callback_set_appearance": callbackSetAppearance, "callback_set_ui_scaling": callbackSetUiScaling, + "callback_set_textbox_ui_scaling": callbackSetTextboxUiScaling, "callback_set_font_family": callbackSetFontFamily, "callback_set_ui_language": callbackSetUiLanguage, diff --git a/locales/en.yml b/locales/en.yml index 3e5c4aff..3af662cf 100644 --- a/locales/en.yml +++ b/locales/en.yml @@ -95,6 +95,10 @@ config_window: ui_size: label: UI Size + textbox_ui_size: + label: Text Box Font Size + desc: You can adjust the font size used in the logs relative to the UI size. + font_family: label: Font Family diff --git a/locales/ja.yml b/locales/ja.yml index 952dbfc3..e608c2b2 100644 --- a/locales/ja.yml +++ b/locales/ja.yml @@ -95,6 +95,10 @@ config_window: ui_size: label: UIサイズ + textbox_ui_size: + label: テキストボックス フォントサイズ + desc: ログに表示されるフォントのサイズを、UIサイズを基準にして倍率を変えられます。 + font_family: label: 使用フォント diff --git a/view.py b/view.py index 51215f7a..6f70b83c 100644 --- a/view.py +++ b/view.py @@ -211,6 +211,14 @@ class View(): CALLBACK_SET_UI_SCALING=None, VAR_UI_SCALING=StringVar(value=config.UI_SCALING), + VAR_LABEL_TEXTBOX_UI_SCALING=StringVar(value=i18n.t("config_window.textbox_ui_size.label")), + VAR_DESC_TEXTBOX_UI_SCALING=StringVar(value=i18n.t("config_window.textbox_ui_size.desc")), + SLIDER_RANGE_TEXTBOX_UI_SCALING=(50, 200), + CALLBACK_SET_TEXTBOX_UI_SCALING=None, + VAR_TEXTBOX_UI_SCALING=IntVar(value=config.TEXTBOX_UI_SCALING), + CALLBACK_BUTTON_PRESS_TEXTBOX_UI_SCALING=self._closeTheCoverOfMainWindow, + CALLBACK_BUTTON_RELEASE_TEXTBOX_UI_SCALING=self._openTheCoverOfMainWindow, + VAR_LABEL_FONT_FAMILY=StringVar(value=i18n.t("config_window.font_family.label")), VAR_DESC_FONT_FAMILY=None, LIST_FONT_FAMILY=self.getAvailableFonts(), @@ -432,6 +440,7 @@ class View(): self.view_variable.CALLBACK_SET_APPEARANCE = config_window_registers.get("callback_set_appearance", None) self.view_variable.CALLBACK_SET_UI_SCALING = config_window_registers.get("callback_set_ui_scaling", None) + self.view_variable.CALLBACK_SET_TEXTBOX_UI_SCALING = config_window_registers.get("callback_set_textbox_ui_scaling", None) self.view_variable.CALLBACK_SET_FONT_FAMILY = config_window_registers.get("callback_set_font_family", None) self.view_variable.CALLBACK_SET_UI_LANGUAGE = config_window_registers.get("callback_set_ui_language", None) @@ -517,7 +526,7 @@ class View(): # Insert sample conversation for testing. - self._insertSampleConversationToTextbox() + # self._insertSampleConversationToTextbox() @@ -776,6 +785,9 @@ class View(): def setMainWindowTransparency(transparency:float): vrct_gui.wm_attributes("-alpha", transparency) + @staticmethod + def setMainWindowTextboxUiSize(custom_font_size_scale:float): + vrct_gui.print_to_textbox.setTagsSettings(custom_font_size_scale=custom_font_size_scale) # Function def _adjustUiSizeAndRestart(self): diff --git a/vrct_gui/_printToTextbox.py b/vrct_gui/_printToTextbox.py index ddc4b411..6d68cfdc 100644 --- a/vrct_gui/_printToTextbox.py +++ b/vrct_gui/_printToTextbox.py @@ -7,10 +7,12 @@ class _PrintToTextbox(): self, vrct_gui, settings, + init_scaling:float, ): self.vrct_gui = vrct_gui self.settings = settings + self.init_scaling = init_scaling self._DEFAULT_TEXTBOX_FIRST_INSERT_SPACING = self.settings.uism.TEXTBOX_FIRST_INSERT_SPACING self._DEFAULT_TEXTBOX_FONT_SIZE__LABEL = self.settings.uism.TEXTBOX_FONT_SIZE__LABEL @@ -32,7 +34,7 @@ class _PrintToTextbox(): self.all_textbox_widgets = [self.vrct_gui.textbox_all, self.vrct_gui.textbox_system, self.vrct_gui.textbox_sent, self.vrct_gui.textbox_received] - self.setTagsSettings() + self.setTagsSettings(self.init_scaling) def printToTextbox(self, target_type, original_message=None, translated_message=None, to_print_to_textbox_all:bool=True): @@ -63,6 +65,8 @@ class _PrintToTextbox(): for each_textbox_widget in self.all_textbox_widgets: self._setTagsSettings(target_textbox=each_textbox_widget) + each_textbox_widget.see("end") + def _setTagsSettings(self, target_textbox): diff --git a/vrct_gui/config_window/widgets/createSideMenuAndSettingsBoxContainers/setting_box_containers/setting_box_appearance/createSettingBox_Appearance.py b/vrct_gui/config_window/widgets/createSideMenuAndSettingsBoxContainers/setting_box_containers/setting_box_appearance/createSettingBox_Appearance.py index cc33684c..d0a30746 100644 --- a/vrct_gui/config_window/widgets/createSideMenuAndSettingsBoxContainers/setting_box_containers/setting_box_appearance/createSettingBox_Appearance.py +++ b/vrct_gui/config_window/widgets/createSideMenuAndSettingsBoxContainers/setting_box_containers/setting_box_appearance/createSettingBox_Appearance.py @@ -18,6 +18,9 @@ def createSettingBox_Appearance(setting_box_wrapper, config_window, settings, vi def optionmenu_ui_scaling_callback(value): callFunctionIfCallable(view_variable.CALLBACK_SET_UI_SCALING, value) + def slider_text_box_ui_scaling_callback(value): + callFunctionIfCallable(view_variable.CALLBACK_SET_TEXTBOX_UI_SCALING, value) + def optionmenu_font_family_callback(value): callFunctionIfCallable(view_variable.CALLBACK_SET_FONT_FAMILY, value) @@ -64,6 +67,19 @@ def createSettingBox_Appearance(setting_box_wrapper, config_window, settings, vi config_window.sb__ui_scaling.grid(row=row) row+=1 + config_window.sb__textbox_uis_scaling = createSettingBoxSlider( + for_var_label_text=view_variable.VAR_LABEL_TEXTBOX_UI_SCALING, + for_var_desc_text=view_variable.VAR_DESC_TEXTBOX_UI_SCALING, + slider_attr_name="sb__slider_transparency", + slider_range=view_variable.SLIDER_RANGE_TEXTBOX_UI_SCALING, + command=lambda value: slider_text_box_ui_scaling_callback(value), + variable=view_variable.VAR_TEXTBOX_UI_SCALING, + slider_bind__ButtonPress=view_variable.CALLBACK_BUTTON_PRESS_TEXTBOX_UI_SCALING, + slider_bind__ButtonRelease=view_variable.CALLBACK_BUTTON_RELEASE_TEXTBOX_UI_SCALING, + ) + config_window.sb__textbox_uis_scaling.grid(row=row) + row+=1 + config_window.sb__font_family = createSettingBoxDropdownMenu( for_var_label_text=view_variable.VAR_LABEL_FONT_FAMILY, diff --git a/vrct_gui/vrct_gui.py b/vrct_gui/vrct_gui.py index b423cb1d..da9939dd 100644 --- a/vrct_gui/vrct_gui.py +++ b/vrct_gui/vrct_gui.py @@ -136,6 +136,7 @@ class VRCT_GUI(CTk): self.print_to_textbox = _PrintToTextbox( vrct_gui=self, settings=self.settings.main, + init_scaling=(self._view_variable.VAR_TEXTBOX_UI_SCALING.get()/100) )