From b7af5699961407d756b90a9fdfb524f53627c189 Mon Sep 17 00:00:00 2001 From: Sakamoto Shiina <68018796+ShiinaSakamoto@users.noreply.github.com> Date: Tue, 24 Oct 2023 20:29:22 +0900 Subject: [PATCH] =?UTF-8?q?[Update]=20Config=20Window:=20slider=20tooltips?= =?UTF-8?q?.=20=E3=82=B9=E3=83=86=E3=83=83=E3=83=97=E3=82=921=E3=81=9A?= =?UTF-8?q?=E3=81=A4=E3=81=AB=E3=81=97=E3=81=A6=E3=80=81=E3=81=95=E3=82=89?= =?UTF-8?q?=E3=81=AB=E3=83=91=E3=83=BC=E3=82=BB=E3=83=B3=E3=83=86=E3=83=BC?= =?UTF-8?q?=E3=82=B8=E8=A1=A8=E8=A8=98=E3=81=99=E3=82=8B=E3=82=88=E3=81=86?= =?UTF-8?q?=E3=81=AB=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- utils.py | 5 ++++- view.py | 4 +++- .../setting_box_containers/_SettingBoxGenerator.py | 14 +++++++++++--- .../createSettingBox_Appearance.py | 2 ++ 4 files changed, 20 insertions(+), 5 deletions(-) diff --git a/utils.py b/utils.py index 6efe6d0a..242faf15 100644 --- a/utils.py +++ b/utils.py @@ -26,4 +26,7 @@ def generatePercentageStringsList(start=40, end=200, step=10): strings = [] for percent in range(start, end + 1, step): strings.append(f"{percent}%") - return strings \ No newline at end of file + return strings + +def intToPercentageStringsFormatter(value:int): + return f"{value}%" \ No newline at end of file diff --git a/view.py b/view.py index 6f70b83c..2a309a06 100644 --- a/view.py +++ b/view.py @@ -10,7 +10,7 @@ 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 import vrct_gui -from utils import callFunctionIfCallable, generatePercentageStringsList +from utils import callFunctionIfCallable, generatePercentageStringsList, intToPercentageStringsFormatter from config import config @@ -176,6 +176,8 @@ class View(): VAR_CONFIG_WINDOW_COMPACT_MODE_LABEL=StringVar(value=i18n.t("config_window.compact_mode")), VAR_CONFIG_WINDOW_RESTART_BUTTON_LABEL=StringVar(value=i18n.t("config_window.restart_message")), + CALLBACK_SLIDER_TOOLTIP_PERCENTAGE_FORMATTER=intToPercentageStringsFormatter, + # Side Menu Labels VAR_SIDE_MENU_LABEL_APPEARANCE=StringVar(value=i18n.t("config_window.side_menu_labels.appearance")), 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 100b761a..3c152958 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 @@ -239,11 +239,14 @@ class _SettingBoxGenerator(): slider_number_of_steps: Union[int, None] = None, slider_bind__ButtonPress=None, - slider_bind__ButtonRelease=None + slider_bind__ButtonRelease=None, + sliderTooltipFormatter=None, ): (setting_box_frame, setting_box_item_frame) = self._createSettingBoxFrame(slider_attr_name, for_var_label_text, for_var_desc_text) + if slider_number_of_steps is None: + slider_number_of_steps = int(slider_range[1] - slider_range[0]) slider_widget = CTkSlider( setting_box_item_frame, @@ -261,9 +264,14 @@ class _SettingBoxGenerator(): ) setattr(self.config_window, slider_attr_name, slider_widget) + def getSliderValueWAfterFormatting(): + return sliderTooltipFormatter(variable.get()) if sliderTooltipFormatter else variable.get() + + + slider_tooltip = CTkToolTip( slider_widget, - message=variable.get(), + message=getSliderValueWAfterFormatting(), delay=0, bg_color=self.settings.ctm.SB__SLIDER_TOOLTIP_BG_COLOR, text_color=self.settings.ctm.SB__SLIDER_TOOLTIP_TEXT_COLOR, @@ -275,7 +283,7 @@ class _SettingBoxGenerator(): if slider_bind__ButtonPress is not None: def adjusted_slider_bind__ButtonPress(_e): command(_e) - slider_tooltip.configure(message=slider_widget.get()) + slider_tooltip.configure(message=getSliderValueWAfterFormatting()) slider_bind__ButtonPress() slider_widget.configure(command=adjusted_slider_bind__ButtonPress) 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 d0a30746..dd5f68ab 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 @@ -38,6 +38,7 @@ def createSettingBox_Appearance(setting_box_wrapper, config_window, settings, vi variable=view_variable.VAR_TRANSPARENCY, slider_bind__ButtonPress=view_variable.CALLBACK_BUTTON_PRESS_TRANSPARENCY, slider_bind__ButtonRelease=view_variable.CALLBACK_BUTTON_RELEASE_TRANSPARENCY, + sliderTooltipFormatter=view_variable.CALLBACK_SLIDER_TOOLTIP_PERCENTAGE_FORMATTER, ) config_window.sb__transparency.grid(row=row) row+=1 @@ -76,6 +77,7 @@ def createSettingBox_Appearance(setting_box_wrapper, config_window, settings, vi 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, + sliderTooltipFormatter=view_variable.CALLBACK_SLIDER_TOOLTIP_PERCENTAGE_FORMATTER, ) config_window.sb__textbox_uis_scaling.grid(row=row) row+=1