diff --git a/vrct_gui/_CreateSelectableLanguagesWindow.py b/vrct_gui/_CreateSelectableLanguagesWindow.py index 8c666a20..dd6c6327 100644 --- a/vrct_gui/_CreateSelectableLanguagesWindow.py +++ b/vrct_gui/_CreateSelectableLanguagesWindow.py @@ -1,9 +1,9 @@ from functools import partial -from .ui_utils import bindButtonReleaseFunction, bindEnterAndLeaveColor, bindButtonPressColor, applyUiScalingAndFixTheBugScrollBar +from .ui_utils import bindButtonReleaseFunction, bindEnterAndLeaveColor, bindButtonPressColor, applyUiScalingAndFixTheBugScrollBar, CustomizedCTkScrollableFrame from utils import callFunctionIfCallable, makeEven -from customtkinter import CTkToplevel, CTkFrame, CTkLabel, CTkFont, CTkScrollableFrame +from customtkinter import CTkToplevel, CTkFrame, CTkLabel, CTkFont class _CreateSelectableLanguagesWindow(CTkToplevel): def __init__(self, vrct_gui, settings, view_variable): @@ -116,7 +116,7 @@ class _CreateSelectableLanguagesWindow(CTkToplevel): - self.scroll_frame_container = CTkScrollableFrame(self, corner_radius=0, fg_color=self.settings.ctm.MAIN_BG_COLOR, width=self.width_new, height=self.height_new) + self.scroll_frame_container = CustomizedCTkScrollableFrame(self, corner_radius=0, fg_color=self.settings.ctm.MAIN_BG_COLOR, width=self.width_new, height=self.height_new) self.scroll_frame_container.grid(row=1, column=0, sticky="nsew") applyUiScalingAndFixTheBugScrollBar( diff --git a/vrct_gui/config_window/widgets/createSideMenuAndSettingsBoxContainers/createSideMenuAndSettingsBoxContainers.py b/vrct_gui/config_window/widgets/createSideMenuAndSettingsBoxContainers/createSideMenuAndSettingsBoxContainers.py index f0a547de..30af50de 100644 --- a/vrct_gui/config_window/widgets/createSideMenuAndSettingsBoxContainers/createSideMenuAndSettingsBoxContainers.py +++ b/vrct_gui/config_window/widgets/createSideMenuAndSettingsBoxContainers/createSideMenuAndSettingsBoxContainers.py @@ -1,85 +1,6 @@ -# 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 +from customtkinter import CTkFrame -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 +from ....ui_utils import setDefaultActiveTab, applyUiScalingAndFixTheBugScrollBar, CustomizedCTkScrollableFrame from ._addConfigSideMenuItem import _addConfigSideMenuItem from ._createSettingBoxContainer import _createSettingBoxContainer diff --git a/vrct_gui/ui_utils/CustomizedCTkScrollableFrame.py b/vrct_gui/ui_utils/CustomizedCTkScrollableFrame.py new file mode 100644 index 00000000..16b5460f --- /dev/null +++ b/vrct_gui/ui_utils/CustomizedCTkScrollableFrame.py @@ -0,0 +1,79 @@ +# Override customtkinter's CTkScrollableFrame for scrolling speed up +from customtkinter import 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") \ No newline at end of file diff --git a/vrct_gui/ui_utils/__init__.py b/vrct_gui/ui_utils/__init__.py index bc2a1337..49ee911d 100644 --- a/vrct_gui/ui_utils/__init__.py +++ b/vrct_gui/ui_utils/__init__.py @@ -1 +1,2 @@ -from .ui_utils import * \ No newline at end of file +from .ui_utils import * +from .CustomizedCTkScrollableFrame import CustomizedCTkScrollableFrame \ No newline at end of file