From 8dd1ddd6acd64b89581fa7249f5668eee635e0b6 Mon Sep 17 00:00:00 2001 From: Sakamoto Shiina <68018796+ShiinaSakamoto@users.noreply.github.com> Date: Fri, 6 Oct 2023 16:30:56 +0900 Subject: [PATCH] =?UTF-8?q?[Update(tmp)]=20=E2=80=BBDropdown=20Menu?= =?UTF-8?q?=E9=96=8B=E3=81=8D=E3=81=BE=E3=81=9B=E3=82=93=E3=80=82=20Config?= =?UTF-8?q?=20Window:=20Option=20Menu=E7=B3=BBwidget=E3=82=92=E5=85=A8?= =?UTF-8?q?=E3=81=A6frame=E3=82=92=E4=BD=BF=E3=81=A3=E3=81=9F=E8=87=AA?= =?UTF-8?q?=E4=BD=9Cwidget=E3=81=AB=E3=81=99=E3=82=8A=E6=9B=BF=E3=81=88?= =?UTF-8?q?=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- view.py | 6 ++-- .../_SettingBoxGenerator.py | 35 ++++++++++++------- vrct_gui/ui_managers/ColorThemeManager.py | 1 + vrct_gui/ui_managers/UiScalingManager.py | 6 ++-- vrct_gui/ui_utils/ui_utils.py | 16 +++++---- 5 files changed, 40 insertions(+), 24 deletions(-) diff --git a/view.py b/view.py index dd32167b..d19acb2b 100644 --- a/view.py +++ b/view.py @@ -692,14 +692,14 @@ class View(): def updateList_MicHost(self, new_mic_host_list:list): self.view_variable.LIST_MIC_HOST = new_mic_host_list - vrct_gui.config_window.sb__optionmenu_mic_host.configure(values=new_mic_host_list) + # vrct_gui.config_window.sb__optionmenu_mic_host.configure(values=new_mic_host_list) def updateSelected_MicHost(self, selected_mic_host_name:str): self.view_variable.VAR_MIC_HOST.set(selected_mic_host_name) def updateList_MicDevice(self, new_mic_device_list): self.view_variable.LIST_MIC_DEVICE = new_mic_device_list - vrct_gui.config_window.sb__optionmenu_mic_device.configure(values=new_mic_device_list) + # vrct_gui.config_window.sb__optionmenu_mic_device.configure(values=new_mic_device_list) def updateSelected_MicDevice(self, default_selected_mic_device_name:str): self.view_variable.VAR_MIC_DEVICE.set(default_selected_mic_device_name) @@ -716,7 +716,7 @@ class View(): def updateList_SpeakerDevice(self, new_speaker_device_list): self.view_variable.LIST_SPEAKER_DEVICE = new_speaker_device_list - vrct_gui.config_window.sb__optionmenu_speaker_device.configure(values=new_speaker_device_list) + # vrct_gui.config_window.sb__optionmenu_speaker_device.configure(values=new_speaker_device_list) @staticmethod def updateSetProgressBar_SpeakerEnergy(new_speaker_energy): 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 051e09eb..fc53e23f 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 @@ -3,7 +3,7 @@ from typing import Union from customtkinter import CTkOptionMenu, CTkFont, CTkFrame, CTkLabel, CTkRadioButton, CTkEntry, CTkSlider, CTkSwitch, CTkCheckBox, CTkProgressBar -from vrct_gui.ui_utils import createButtonWithImage, getLatestWidth +from vrct_gui.ui_utils import createButtonWithImage, getLatestWidth, createOptionMenuBox SETTING_BOX_COLUMN = 1 @@ -76,19 +76,30 @@ class _SettingBoxGenerator(): def createSettingBoxDropdownMenu(self, for_var_label_text, for_var_desc_text, optionmenu_attr_name, command, variable=None, dropdown_menu_values=None): (setting_box_frame, setting_box_item_frame) = self._createSettingBoxFrame(for_var_label_text, for_var_desc_text) - option_menu_widget = CTkOptionMenu( - setting_box_item_frame, - height=self.settings.uism.SB__OPTIONMENU_HEIGHT, - width=self.settings.uism.SB__OPTIONMENU_WIDTH, - values=dropdown_menu_values, - button_color=self.settings.ctm.SB__OPTIONMENU_BG_COLOR, - button_hover_color=self.settings.ctm.SB__OPTIONMENU_HOVERED_BG_COLOR, - fg_color=self.settings.ctm.SB__OPTIONMENU_BG_COLOR, - font=CTkFont(family=self.settings.FONT_FAMILY, size=self.settings.uism.SB__OPTION_MENU_FONT_SIZE, weight="normal"), + option_menu_widget = createOptionMenuBox( + parent_widget=setting_box_item_frame, + optionmenu_bg_color=self.settings.ctm.SB__OPTIONMENU_BG_COLOR, + optionmenu_hovered_bg_color=self.settings.ctm.SB__OPTIONMENU_HOVERED_BG_COLOR, + optionmenu_clicked_bg_color=self.settings.ctm.SB__OPTIONMENU_CLICKED_BG_COLOR, + optionmenu_ipadx=(8,8), + optionmenu_ipady=2, + optionmenu_ipady_between_img=8, + optionmenu_min_height=self.settings.uism.SB__OPTIONMENU_MIN_HEIGHT, + optionmenu_min_width=self.settings.uism.SB__OPTIONMENU_MIN_WIDTH, variable=variable, - command=command, - anchor="w", + font_family=self.settings.FONT_FAMILY, + font_size=self.settings.uism.SB__OPTION_MENU_FONT_SIZE, + text_color=self.settings.ctm.LABELS_TEXT_COLOR, + image_file=self.settings.image_file.ARROW_LEFT.rotate(90), + image_size=(14,14), + command=lambda _e: print(_e), + # command=open_selectable_language_window_command, + + # optionmenu_position="center", + # setattr_widget=main_window, + # image_widget_attr_name=arrow_img_attr_name, ) + option_menu_widget.grid(row=1, column=SETTING_BOX_COLUMN, sticky="e") setattr(self.config_window, optionmenu_attr_name, option_menu_widget) diff --git a/vrct_gui/ui_managers/ColorThemeManager.py b/vrct_gui/ui_managers/ColorThemeManager.py index a94f5f8f..124b2a01 100644 --- a/vrct_gui/ui_managers/ColorThemeManager.py +++ b/vrct_gui/ui_managers/ColorThemeManager.py @@ -232,6 +232,7 @@ class ColorThemeManager(): self.config_window.SB__OPTIONMENU_BG_COLOR = self.DARK_925_COLOR self.config_window.SB__OPTIONMENU_HOVERED_BG_COLOR = self.DARK_850_COLOR + self.config_window.SB__OPTIONMENU_CLICKED_BG_COLOR = self.DARK_950_COLOR self.config_window.SB__SLIDER_BUTTON_COLOR = self.DARK_700_COLOR self.config_window.SB__SLIDER_BUTTON_HOVERED_COLOR = self.DARK_600_COLOR diff --git a/vrct_gui/ui_managers/UiScalingManager.py b/vrct_gui/ui_managers/UiScalingManager.py index 902951b5..bf16839f 100644 --- a/vrct_gui/ui_managers/UiScalingManager.py +++ b/vrct_gui/ui_managers/UiScalingManager.py @@ -146,9 +146,9 @@ class UiScalingManager(): self.config_window.SB__OPTION_MENU_FONT_SIZE = self.config_window.SB__SELECTOR_FONT_SIZE - self.config_window.SB__OPTIONMENU_HEIGHT = self._calculateUiSize(30) - self.config_window.SB__OPTIONMENU_WIDTH = self._calculateUiSize(200) - self.config_window.SB__DROPDOWN_MENU_WIDTH = self.config_window.SB__OPTIONMENU_WIDTH + self.config_window.SB__OPTIONMENU_MIN_HEIGHT = self._calculateUiSize(30) + self.config_window.SB__OPTIONMENU_MIN_WIDTH = self._calculateUiSize(200) + self.config_window.SB__DROPDOWN_MENU_WIDTH = self.config_window.SB__OPTIONMENU_MIN_WIDTH self.config_window.SB__DROPDOWN_MENU_MAX_BUTTON_HEIGHT = int(self.config_window.SB__OPTION_MENU_FONT_SIZE + self._calculateUiSize(6)) self.config_window.SB__DROPDOWN_MENU_FRAME_CORNER_RADIUS = self._calculateUiSize(10) self.config_window.SB__DROPDOWN_MENU_FRAME_MAX_HEIGHT = self._calculateUiSize(200) diff --git a/vrct_gui/ui_utils/ui_utils.py b/vrct_gui/ui_utils/ui_utils.py index a68d1743..254c6c41 100644 --- a/vrct_gui/ui_utils/ui_utils.py +++ b/vrct_gui/ui_utils/ui_utils.py @@ -142,14 +142,18 @@ def createButtonWithImage(parent_widget, button_fg_color, button_enter_color, bu return button_wrapper -def createOptionMenuBox(parent_widget, optionmenu_bg_color, optionmenu_hovered_bg_color, optionmenu_clicked_bg_color, optionmenu_ipadx, optionmenu_ipady, variable, font_family, font_size, text_color, image_file, image_size, command, optionmenu_position=None, setattr_widget=None, image_widget_attr_name=None): +def createOptionMenuBox(parent_widget, optionmenu_bg_color, optionmenu_hovered_bg_color, optionmenu_clicked_bg_color, optionmenu_ipadx, optionmenu_ipady, variable, font_family, font_size, text_color, image_file, image_size, command, optionmenu_position=None, optionmenu_ipady_between_img=0, optionmenu_min_height=None, optionmenu_min_width=None, setattr_widget=None, image_widget_attr_name=None): - option_menu_box = CTkFrame(parent_widget, corner_radius=4, fg_color=optionmenu_bg_color, cursor="hand2") + option_menu_box = CTkFrame(parent_widget, corner_radius=6, fg_color=optionmenu_bg_color, cursor="hand2") + + option_menu_box.grid_rowconfigure(0, weight=1) + if optionmenu_min_height is not None: option_menu_box.grid_rowconfigure(0, minsize=optionmenu_min_height) option_menu_box.grid_columnconfigure(0, weight=1) - option_menu_box.grid_rowconfigure(0, weight=1) + if optionmenu_min_width is not None: option_menu_box.grid_columnconfigure(0, minsize=optionmenu_min_width) + optionmenu_label_wrapper = CTkFrame(option_menu_box, corner_radius=0, fg_color=optionmenu_bg_color) - optionmenu_label_wrapper.grid(row=0, column=0, sticky="ew") + optionmenu_label_wrapper.grid(row=0, column=0, padx=(optionmenu_ipadx[0],0), pady=optionmenu_ipady, sticky="ew") LABEL_COLUMN=0 if optionmenu_position == "center": @@ -163,7 +167,7 @@ def createOptionMenuBox(parent_widget, optionmenu_bg_color, optionmenu_hovered_b font=CTkFont(family=font_family, size=font_size, weight="normal"), text_color=text_color ) - optionmenu_label_widget.grid(row=0, column=LABEL_COLUMN, padx=optionmenu_ipadx, pady=optionmenu_ipady) + optionmenu_label_widget.grid(row=0, column=LABEL_COLUMN, padx=(0, optionmenu_ipady_between_img)) optionmenu_img_widget = CTkLabel( @@ -177,7 +181,7 @@ def createOptionMenuBox(parent_widget, optionmenu_bg_color, optionmenu_hovered_b if image_widget_attr_name is not None: setattr(setattr_widget, image_widget_attr_name, optionmenu_img_widget) - optionmenu_img_widget.grid(row=0, column=1, padx=0, pady=0) + optionmenu_img_widget.grid(row=0, column=1, padx=(0, optionmenu_ipadx[1]), pady=optionmenu_ipady) bindEnterAndLeaveColor([optionmenu_label_wrapper, option_menu_box, optionmenu_label_widget, optionmenu_img_widget], optionmenu_hovered_bg_color, optionmenu_bg_color)