From dccbfb7e5da04b4621647a3299f3053f0e581818 Mon Sep 17 00:00:00 2001 From: Sakamoto Shiina <68018796+ShiinaSakamoto@users.noreply.github.com> Date: Wed, 20 Dec 2023 16:20:56 +0900 Subject: [PATCH] =?UTF-8?q?[Update]=20Config=20Window:=20=E3=82=B9?= =?UTF-8?q?=E3=82=AF=E3=83=AD=E3=83=BC=E3=83=AB(y=E8=BB=B8)=E9=80=9F?= =?UTF-8?q?=E5=BA=A6=E3=82=92=E4=B8=8A=E3=81=92=E3=81=BE=E3=81=97=E3=81=9F?= =?UTF-8?q?=E3=80=82CustomizedCTkScrollableFrame=E3=81=A8=E3=81=97?= =?UTF-8?q?=E3=81=A6=E3=83=A9=E3=82=A4=E3=83=96=E3=83=A9=E3=83=AA=E3=82=92?= =?UTF-8?q?=E3=82=AA=E3=83=BC=E3=83=90=E3=83=BC=E3=83=A9=E3=82=A4=E3=83=89?= =?UTF-8?q?=E3=81=97=E3=81=A6=E3=81=84=E3=81=BE=E3=81=99=E3=80=82=20?= =?UTF-8?q?=E9=81=A9=E7=94=A8=E3=81=97=E3=81=9F=E3=81=8B=E3=81=A3=E3=81=9F?= =?UTF-8?q?=E3=83=95=E3=82=A1=E3=82=A4=E3=83=AB=E3=81=AE=E5=85=88=E9=A0=AD?= =?UTF-8?q?=E3=81=AB=E3=81=9F=E3=81=A0=E6=9B=B8=E3=81=84=E3=81=A6=E3=81=84?= =?UTF-8?q?=E3=82=8B=E3=81=A0=E3=81=91=E3=81=AE=E7=8A=B6=E6=85=8B=E3=81=A7?= =?UTF-8?q?=E3=81=99=E3=80=82=E3=81=84=E3=81=9A=E3=82=8C=E5=88=87=E3=82=8A?= =?UTF-8?q?=E5=87=BA=E3=81=97=E3=81=9F=E3=81=BB=E3=81=86=E3=81=8C=E8=89=AF?= =?UTF-8?q?=E3=81=84=E3=81=8B=E3=82=82=E3=81=97=E3=82=8C=E3=81=BE=E3=81=9B?= =?UTF-8?q?=E3=82=93=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../createSideMenuAndSettingsBoxContainers.py | 83 ++++++++++++++++++- 1 file changed, 81 insertions(+), 2 deletions(-) diff --git a/vrct_gui/config_window/widgets/createSideMenuAndSettingsBoxContainers/createSideMenuAndSettingsBoxContainers.py b/vrct_gui/config_window/widgets/createSideMenuAndSettingsBoxContainers/createSideMenuAndSettingsBoxContainers.py index 232d98ca..f0a547de 100644 --- a/vrct_gui/config_window/widgets/createSideMenuAndSettingsBoxContainers/createSideMenuAndSettingsBoxContainers.py +++ b/vrct_gui/config_window/widgets/createSideMenuAndSettingsBoxContainers/createSideMenuAndSettingsBoxContainers.py @@ -1,4 +1,83 @@ -from customtkinter import CTkFrame, CTkScrollableFrame +# Override customtkinter's CTkScrollableFrame for scrolling speed up +from customtkinter import CTkFrame, CTkScrollableFrame, CTkFont +from typing import Union, Tuple, Optional +import sys +try: + from typing import Literal +except ImportError: + from typing_extensions import Literal + +class CustomizedCTkScrollableFrame(CTkScrollableFrame): + def __init__( + self, + master: any, + width: int = 200, + height: int = 200, + corner_radius: Optional[Union[int, str]] = None, + border_width: Optional[Union[int, str]] = None, + + bg_color: Union[str, Tuple[str, str]] = "transparent", + fg_color: Optional[Union[str, Tuple[str, str]]] = None, + border_color: Optional[Union[str, Tuple[str, str]]] = None, + scrollbar_fg_color: Optional[Union[str, Tuple[str, str]]] = None, + scrollbar_button_color: Optional[Union[str, Tuple[str, str]]] = None, + scrollbar_button_hover_color: Optional[Union[str, Tuple[str, str]]] = None, + label_fg_color: Optional[Union[str, Tuple[str, str]]] = None, + label_text_color: Optional[Union[str, Tuple[str, str]]] = None, + + label_text: str = "", + label_font: Optional[Union[tuple, CTkFont]] = None, + label_anchor: str = "center", + orientation: Literal["vertical", "horizontal"] = "vertical" + ): + + super().__init__( + master, + width, + height, + corner_radius, + border_width, + + bg_color, + fg_color, + border_color, + scrollbar_fg_color, + scrollbar_button_color, + scrollbar_button_hover_color, + label_fg_color, + label_text_color, + + label_text, + label_font, + label_anchor, + orientation, + ) + + def _mouse_wheel_all(self, event): + if self.check_if_master_is_canvas(event.widget): + if sys.platform.startswith("win"): + if self._shift_pressed: + if self._parent_canvas.xview() != (0.0, 1.0): + self._parent_canvas.xview("scroll", -int(event.delta / 6), "units") + else: + if self._parent_canvas.yview() != (0.0, 1.0): + self._parent_canvas.yview("scroll", -int(event.delta / 2), "units") + elif sys.platform == "darwin": + if self._shift_pressed: + if self._parent_canvas.xview() != (0.0, 1.0): + self._parent_canvas.xview("scroll", -event.delta, "units") + else: + if self._parent_canvas.yview() != (0.0, 1.0): + self._parent_canvas.yview("scroll", -event.delta, "units") + else: + if self._shift_pressed: + if self._parent_canvas.xview() != (0.0, 1.0): + self._parent_canvas.xview("scroll", -event.delta, "units") + else: + if self._parent_canvas.yview() != (0.0, 1.0): + self._parent_canvas.yview("scroll", -event.delta, "units") +# Override customtkinter's CTkScrollableFrame for scrolling speed up__ + from ....ui_utils import setDefaultActiveTab, applyUiScalingAndFixTheBugScrollBar @@ -38,7 +117,7 @@ def createSideMenuAndSettingsBoxContainers(config_window, settings, view_variabl # Setting box container config_window.main_bg_container.grid_rowconfigure(1, weight=1) - config_window.main_setting_box_scrollable_container = CTkScrollableFrame(config_window.main_bg_container, corner_radius=0, fg_color=settings.ctm.MAIN_BG_COLOR) + config_window.main_setting_box_scrollable_container = CustomizedCTkScrollableFrame(config_window.main_bg_container, corner_radius=0, fg_color=settings.ctm.MAIN_BG_COLOR) config_window.main_setting_box_scrollable_container.grid(row=1, column=0, sticky="nsew") applyUiScalingAndFixTheBugScrollBar(