From 6e4dd14c3e102a8150f3146a24a5e001ad8ccb2f Mon Sep 17 00:00:00 2001 From: Sakamoto Shiina <68018796+ShiinaSakamoto@users.noreply.github.com> Date: Mon, 28 Aug 2023 12:08:47 +0900 Subject: [PATCH 1/3] setting box: add Appearance tab(change the name general to appearance). add item Transparency. --- .../createSideMenuAndSettingsBoxContainers.py | 16 +- .../SettingBoxGenerator.py | 3 +- .../setting_box_containers/__init__.py | 2 +- .../setting_box_appearance/__init__.py | 1 + .../__tmp.py} | 2 +- .../createSettingBox_Appearance.py | 187 ++++++++++++++++++ .../setting_box_general/__init__.py | 1 - 7 files changed, 199 insertions(+), 13 deletions(-) create mode 100644 vrct_gui/config_window/widgets/createSideMenuAndSettingsBoxContainers/setting_box_containers/setting_box_appearance/__init__.py rename vrct_gui/config_window/widgets/createSideMenuAndSettingsBoxContainers/setting_box_containers/{setting_box_general/createSettingBox_General.py => setting_box_appearance/__tmp.py} (99%) create mode 100644 vrct_gui/config_window/widgets/createSideMenuAndSettingsBoxContainers/setting_box_containers/setting_box_appearance/createSettingBox_Appearance.py delete mode 100644 vrct_gui/config_window/widgets/createSideMenuAndSettingsBoxContainers/setting_box_containers/setting_box_general/__init__.py diff --git a/vrct_gui/config_window/widgets/createSideMenuAndSettingsBoxContainers/createSideMenuAndSettingsBoxContainers.py b/vrct_gui/config_window/widgets/createSideMenuAndSettingsBoxContainers/createSideMenuAndSettingsBoxContainers.py index 161d5e96..3a28865b 100644 --- a/vrct_gui/config_window/widgets/createSideMenuAndSettingsBoxContainers/createSideMenuAndSettingsBoxContainers.py +++ b/vrct_gui/config_window/widgets/createSideMenuAndSettingsBoxContainers/createSideMenuAndSettingsBoxContainers.py @@ -6,7 +6,7 @@ from .addConfigSideMenuItem import addConfigSideMenuItem from .createSettingBoxContainer import createSettingBoxContainer -from .setting_box_containers import createSettingBox_General +from .setting_box_containers import createSettingBox_Appearance def createSideMenuAndSettingsBoxContainers(config_window, settings): @@ -45,16 +45,14 @@ def createSideMenuAndSettingsBoxContainers(config_window, settings): side_menu_and_setting_box_containers_settings = [ { - "side_menu_tab_attr_name": "side_menu_tab_general", - "label_attr_name": "label_general", - "selected_mark_attr_name": "translation_selected_mark", - "text": "General", + "side_menu_tab_attr_name": "side_menu_tab_appearance", + "label_attr_name": "label_appearance", + "selected_mark_attr_name": "selected_mark_appearance", + "text": "Appearance", "setting_box_container_settings": { - "setting_box_container_attr_name": "setting_box_container_general", + "setting_box_container_attr_name": "setting_box_container_appearance", "setting_boxes": [ - { "section_title": None, "setting_box": createSettingBox_General }, - # { "section_title": "General Section Title", "setting_box": createSettingBox_General }, - # { "section_title": None, "setting_box": createSettingBox_General }, + { "section_title": None, "setting_box": createSettingBox_Appearance }, ] }, "activate_by_default": True, 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 5e0a530d..c304fbc0 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,6 +3,7 @@ from ctk_scrollable_dropdown import CTkScrollableDropdown from vrct_gui.ui_utils import createButtonWithImage +from typing import Union class SettingBoxGenerator(): @@ -154,7 +155,7 @@ class SettingBoxGenerator(): - def createSettingBoxSlider(self, parent_widget, label_text, desc_text, slider_attr_name, slider_range, slider_number_of_steps, command, variable): + def createSettingBoxSlider(self, parent_widget, label_text, desc_text, slider_attr_name, slider_range, command, variable, slider_number_of_steps: Union[int, None] = None): (setting_box_frame, setting_box_frame_wrapper) = self._createSettingBoxFrame(parent_widget, label_text, desc_text) setting_box_slider_frame = CTkFrame(setting_box_frame_wrapper, corner_radius=0, width=0, height=0, fg_color=self.ctm.SB__BG_COLOR) diff --git a/vrct_gui/config_window/widgets/createSideMenuAndSettingsBoxContainers/setting_box_containers/__init__.py b/vrct_gui/config_window/widgets/createSideMenuAndSettingsBoxContainers/setting_box_containers/__init__.py index f992f8c0..d0733fd4 100644 --- a/vrct_gui/config_window/widgets/createSideMenuAndSettingsBoxContainers/setting_box_containers/__init__.py +++ b/vrct_gui/config_window/widgets/createSideMenuAndSettingsBoxContainers/setting_box_containers/__init__.py @@ -1 +1 @@ -from .setting_box_general import createSettingBox_General \ No newline at end of file +from .setting_box_appearance import createSettingBox_Appearance \ No newline at end of file diff --git a/vrct_gui/config_window/widgets/createSideMenuAndSettingsBoxContainers/setting_box_containers/setting_box_appearance/__init__.py b/vrct_gui/config_window/widgets/createSideMenuAndSettingsBoxContainers/setting_box_containers/setting_box_appearance/__init__.py new file mode 100644 index 00000000..7dd435d8 --- /dev/null +++ b/vrct_gui/config_window/widgets/createSideMenuAndSettingsBoxContainers/setting_box_containers/setting_box_appearance/__init__.py @@ -0,0 +1 @@ +from .createSettingBox_Appearance import createSettingBox_Appearance \ No newline at end of file diff --git a/vrct_gui/config_window/widgets/createSideMenuAndSettingsBoxContainers/setting_box_containers/setting_box_general/createSettingBox_General.py b/vrct_gui/config_window/widgets/createSideMenuAndSettingsBoxContainers/setting_box_containers/setting_box_appearance/__tmp.py similarity index 99% rename from vrct_gui/config_window/widgets/createSideMenuAndSettingsBoxContainers/setting_box_containers/setting_box_general/createSettingBox_General.py rename to vrct_gui/config_window/widgets/createSideMenuAndSettingsBoxContainers/setting_box_containers/setting_box_appearance/__tmp.py index 70fd7bd3..51b4c0e6 100644 --- a/vrct_gui/config_window/widgets/createSideMenuAndSettingsBoxContainers/setting_box_containers/setting_box_general/createSettingBox_General.py +++ b/vrct_gui/config_window/widgets/createSideMenuAndSettingsBoxContainers/setting_box_containers/setting_box_appearance/__tmp.py @@ -7,7 +7,7 @@ from ..SettingBoxGenerator import SettingBoxGenerator from config import config -def createSettingBox_General(setting_box_wrapper, config_window, settings): +def __tmp(setting_box_wrapper, config_window, settings): sbg = SettingBoxGenerator(config_window, settings) 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 new file mode 100644 index 00000000..75fdab29 --- /dev/null +++ b/vrct_gui/config_window/widgets/createSideMenuAndSettingsBoxContainers/setting_box_containers/setting_box_appearance/createSettingBox_Appearance.py @@ -0,0 +1,187 @@ +from time import sleep + +from customtkinter import StringVar, IntVar + + +from ..SettingBoxGenerator import SettingBoxGenerator + +from config import config + +def createSettingBox_Appearance(setting_box_wrapper, config_window, settings): + + + sbg = SettingBoxGenerator(config_window, settings) + + createSettingBoxDropdownMenu = sbg.createSettingBoxDropdownMenu + createSettingBoxSwitch = sbg.createSettingBoxSwitch + createSettingBoxCheckbox = sbg.createSettingBoxCheckbox + createSettingBoxSlider = sbg.createSettingBoxSlider + createSettingBoxProgressbarXSlider = sbg.createSettingBoxProgressbarXSlider + createSettingBoxEntry = sbg.createSettingBoxEntry + + + + # 関数名は変えるかもしれない。 + def slider_transparency_callback(value, slider_widget): + # self.parent.wm_attributes("-alpha", int(value/100)) + config.TRANSPARENCY = int(value) + + + + row=0 + config_window.sb__transparency = createSettingBoxSlider( + parent_widget=setting_box_wrapper, + label_text="Transparency", + desc_text="It'll change window's transparency. (50% ~ 100%)", + slider_attr_name="sb__transparency_slider", + slider_range=(50, 100), + command=lambda value: slider_transparency_callback(value, config_window.sb__transparency_slider), + variable=IntVar(value=config.TRANSPARENCY), + ) + config_window.sb__transparency.grid(row=row) + row+=1 + + + + # config_window.sb__dropdown_menu_1 = createSettingBoxDropdownMenu( + # parent_widget=setting_box_wrapper, + # label_text="Option Menu", + # desc_text="Select your preferences from the options menu.\nYou can choose your preferred language.", + # optionmenu_attr_name="optionmenu_attr_name_1", + # dropdown_menu_attr_name="dropdown_menu_attr_name_1", + # dropdown_menu_values=["tt", "Japanese", "English"], + # command=lambda value: dropdownMenuFun(value, config_window.optionmenu_attr_name_1, config_window.dropdown_menu_attr_name_1), + # variable=StringVar(value=config.INPUT_SOURCE_LANG) + # ) + # config_window.sb__dropdown_menu_1.grid(row=row) + # row+=1 + + + # config_window.sb__dropdown_menu_2 = createSettingBoxDropdownMenu( + # parent_widget=setting_box_wrapper, + # label_text="Option Menu", + # desc_text="Select your preferences from the options menu.\nYou can choose your preferred language.", + # optionmenu_attr_name="optionmenu_attr_name_2", + # dropdown_menu_attr_name="dropdown_menu_attr_name_1", + # dropdown_menu_values=["tt", "Japanese", "English"], + # command=lambda value: dropdownMenuFun(value, config_window.optionmenu_attr_name_2, config_window.dropdown_menu_attr_name_1), + # variable=StringVar(value=config.INPUT_SOURCE_LANG) + # ) + # config_window.sb__dropdown_menu_2.grid(row=row) + # row+=1 + + # config_window.sb__switch_1 = createSettingBoxSwitch( + # parent_widget=setting_box_wrapper, + # label_text="Switch", + # desc_text="Turning this switch on will bring happiness.\nAs for turning it off... I leave that to your imagination", + # switch_attr_name="switch_attr_name_1", + # command=lambda: switchFun(config_window.switch_attr_name_1), + # is_checked=True, + # ) + # config_window.sb__switch_1.grid(row=row) + # row+=1 + + # config_window.sb__checkbox_1 = createSettingBoxCheckbox( + # parent_widget=setting_box_wrapper, + # label_text="Checkbox", + # desc_text="Checkbox ticked, a checkmark.", + # checkbox_attr_name="checkbox_attr_name_1", + # command=lambda: checkboxFun(config_window.checkbox_attr_name_1), + # is_checked=False, + # ) + # config_window.sb__checkbox_1.grid(row=row) + # row+=1 + + # config_window.sb__slider_1 = createSettingBoxSlider( + # parent_widget=setting_box_wrapper, + # label_text="Slider", + # desc_text="Adjust using the slider; the balance is up to you.", + # slider_attr_name="slider_attr_name_1", + # slider_range=(0, config_window.MAX_SPEAKER_ENERGY_THRESHOLD), + # slider_number_of_steps=config_window.MAX_SPEAKER_ENERGY_THRESHOLD, + # command=lambda value: sliderFun(value, config_window.slider_attr_name_1), + # variable=IntVar(value=config_window.INPUT_SPEAKER_ENERGY_THRESHOLD), + # ) + # config_window.sb__slider_1.grid(row=row) + # row+=1 + + + # config_window.sb__progressbar_x_slider_1 = createSettingBoxProgressbarXSlider( + # parent_widget=setting_box_wrapper, + # label_text="Progressbar and Slider for check the threshold", + # desc_text="just the slider to modify the threshold for activating voice input.\nPress the microphone button to start input, and you can adjust it while monitoring the actual volume.", + # command=set_input_threshold, # ? + # variable=IntVar(value=config.INPUT_MIC_ENERGY_THRESHOLD), + # entry_attr_name="progressbar_x_slider__entry_attr_name_1", + + + # slider_attr_name="progressbar_x_slider__slider_attr_name_1", + # slider_range=(0, config_window.MAX_SPEAKER_ENERGY_THRESHOLD), + # slider_number_of_steps=config_window.MAX_SPEAKER_ENERGY_THRESHOLD, + + # progressbar_attr_name="progressbar_x_slider__progressbar_attr_name_1", + + # passive_button_attr_name="progressbar_x_slider__passive_button_attr_name_1", + # passive_button_command=lambda e: checkbox_input_speaker_threshold_check_callback( + # e, + # config_window.progressbar_x_slider__passive_button_attr_name_1, + # config_window.progressbar_x_slider__active_button_attr_name_1, + # is_turned_on=True, + # ), + # active_button_attr_name="progressbar_x_slider__active_button_attr_name_1", + # active_button_command=lambda e: checkbox_input_speaker_threshold_check_callback( + # e, + # config_window.progressbar_x_slider__passive_button_attr_name_1, + # config_window.progressbar_x_slider__active_button_attr_name_1, + # is_turned_on=False, + # ), + # button_image_filename="mic_icon_white.png" + # ) + # config_window.sb__progressbar_x_slider_1.grid(row=row) + # row+=1 + + # config_window.sb__progressbar_x_slider_2 = createSettingBoxProgressbarXSlider( + # parent_widget=setting_box_wrapper, + # label_text="Progressbar and Slider for check the threshold2", + # desc_text="just the slider to modify the threshold for activating voice input.\nPress the microphone button to start input, and you can adjust it while monitoring the actual volume.", + # command=set_input_threshold, # ? + # variable=IntVar(value=config.INPUT_SPEAKER_ENERGY_THRESHOLD), + + # entry_attr_name="progressbar_x_slider__entry_attr_name_2", + + + # slider_attr_name="progressbar_x_slider__slider_attr_name_2", + # slider_range=(0, config_window.MAX_SPEAKER_ENERGY_THRESHOLD), + # slider_number_of_steps=config_window.MAX_SPEAKER_ENERGY_THRESHOLD, + # progressbar_attr_name="progressbar_x_slider__progressbar_attr_name_2", + + # passive_button_attr_name="progressbar_x_slider__passive_button_attr_name_2", + # passive_button_command=lambda e: checkbox_input_speaker_threshold_check_callback( + # e, + # config_window.progressbar_x_slider__passive_button_attr_name_2, + # config_window.progressbar_x_slider__active_button_attr_name_2, + # is_turned_on=True, + # ), + # active_button_attr_name="progressbar_x_slider__active_button_attr_name_2", + # active_button_command=lambda e: checkbox_input_speaker_threshold_check_callback( + # e, + # config_window.progressbar_x_slider__passive_button_attr_name_2, + # config_window.progressbar_x_slider__active_button_attr_name_2, + # is_turned_on=False, + # ), + # button_image_filename="headphones_icon_white.png" + # ) + # config_window.sb__progressbar_x_slider_2.grid(row=row) + # row+=1 + + # config_window.sb__entry_1 = createSettingBoxEntry( + # parent_widget=setting_box_wrapper, + # label_text="Entry", + # desc_text="Please input a numerical value.", + # entry_attr_name="entry_attr_name_1", + # entry_width=settings.uism.SB__ENTRY_WIDTH_100, + # entry_bind__Any_KeyRelease=lambda value: entryFun(value, config_window.entry_attr_name_1), + # entry_textvariable=IntVar(value=config_window.INPUT_MIC_PHRASE_TIMEOUT), + # ) + # config_window.sb__entry_1.grid(row=row, pady=0) + # row+=1 \ No newline at end of file diff --git a/vrct_gui/config_window/widgets/createSideMenuAndSettingsBoxContainers/setting_box_containers/setting_box_general/__init__.py b/vrct_gui/config_window/widgets/createSideMenuAndSettingsBoxContainers/setting_box_containers/setting_box_general/__init__.py deleted file mode 100644 index c0c243b9..00000000 --- a/vrct_gui/config_window/widgets/createSideMenuAndSettingsBoxContainers/setting_box_containers/setting_box_general/__init__.py +++ /dev/null @@ -1 +0,0 @@ -from .createSettingBox_General import createSettingBox_General \ No newline at end of file From 9ec37061e59c0dc450e9b15cfc11284ba73202a0 Mon Sep 17 00:00:00 2001 From: Sakamoto Shiina <68018796+ShiinaSakamoto@users.noreply.github.com> Date: Mon, 28 Aug 2023 13:42:55 +0900 Subject: [PATCH 2/3] Setting box: add item appearance theme. and fixed a bit --- .../createSettingBox_Appearance.py | 36 +++++++++++-------- 1 file changed, 21 insertions(+), 15 deletions(-) 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 75fdab29..33d144ec 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 @@ -22,20 +22,26 @@ def createSettingBox_Appearance(setting_box_wrapper, config_window, settings): # 関数名は変えるかもしれない。 - def slider_transparency_callback(value, slider_widget): + # テーマ変更、フォント変更時、 Widget再生成か再起動かは検討中 + + + def slider_transparency_callback(value): # self.parent.wm_attributes("-alpha", int(value/100)) config.TRANSPARENCY = int(value) + def optionmenu_appearance_theme_callback(value): + config.APPEARANCE_THEME = value + row=0 config_window.sb__transparency = createSettingBoxSlider( parent_widget=setting_box_wrapper, label_text="Transparency", - desc_text="It'll change window's transparency. (50% ~ 100%)", + desc_text="It will change window's transparency. 50% to 100%. (Default: 100%)", slider_attr_name="sb__transparency_slider", slider_range=(50, 100), - command=lambda value: slider_transparency_callback(value, config_window.sb__transparency_slider), + command=lambda value: slider_transparency_callback(value), variable=IntVar(value=config.TRANSPARENCY), ) config_window.sb__transparency.grid(row=row) @@ -43,18 +49,18 @@ def createSettingBox_Appearance(setting_box_wrapper, config_window, settings): - # config_window.sb__dropdown_menu_1 = createSettingBoxDropdownMenu( - # parent_widget=setting_box_wrapper, - # label_text="Option Menu", - # desc_text="Select your preferences from the options menu.\nYou can choose your preferred language.", - # optionmenu_attr_name="optionmenu_attr_name_1", - # dropdown_menu_attr_name="dropdown_menu_attr_name_1", - # dropdown_menu_values=["tt", "Japanese", "English"], - # command=lambda value: dropdownMenuFun(value, config_window.optionmenu_attr_name_1, config_window.dropdown_menu_attr_name_1), - # variable=StringVar(value=config.INPUT_SOURCE_LANG) - # ) - # config_window.sb__dropdown_menu_1.grid(row=row) - # row+=1 + config_window.sb__appearance_theme = createSettingBoxDropdownMenu( + parent_widget=setting_box_wrapper, + label_text="Theme", + desc_text="You can choose the color theme from \"Light\" and \"Dark\". If you select \"System\", It will adjust based on your Windows theme. (Default: System)", + optionmenu_attr_name="sb__appearance_theme_optionmenu", + dropdown_menu_attr_name="sb__appearance_theme_optionmenu_dropdown", + dropdown_menu_values=["Light", "Dark", "System"], + command=lambda value: optionmenu_appearance_theme_callback(value), + variable=StringVar(value=config.APPEARANCE_THEME) + ) + config_window.sb__appearance_theme.grid(row=row) + row+=1 # config_window.sb__dropdown_menu_2 = createSettingBoxDropdownMenu( From 84d76ed9a40c62aa5e8650d154c51718f30a0cc0 Mon Sep 17 00:00:00 2001 From: Sakamoto Shiina <68018796+ShiinaSakamoto@users.noreply.github.com> Date: Mon, 28 Aug 2023 14:43:34 +0900 Subject: [PATCH 3/3] Setting box: add items UI Scaling, Font Family, UI Language. add the function get_key_by_value to utils.py. and fixed a bit --- utils.py | 8 +- .../createSettingBox_Appearance.py | 187 +++++------------- 2 files changed, 61 insertions(+), 134 deletions(-) diff --git a/utils.py b/utils.py index 3033cb13..a68474fb 100644 --- a/utils.py +++ b/utils.py @@ -3,4 +3,10 @@ from PIL.Image import open as Image_open def getImageFile(file_name): img = Image_open(os_path.join(os_path.dirname(__file__), "img", file_name)) - return img \ No newline at end of file + return img + +def get_key_by_value(dictionary, value): + for key, val in dictionary.items(): + if val == value: + return key + return None \ No newline at end of file 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 33d144ec..e209e8af 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 @@ -1,6 +1,9 @@ from time import sleep from customtkinter import StringVar, IntVar +from tkinter import font as tk_font +from languages import selectable_languages +from utils import get_key_by_value from ..SettingBoxGenerator import SettingBoxGenerator @@ -13,12 +16,7 @@ def createSettingBox_Appearance(setting_box_wrapper, config_window, settings): sbg = SettingBoxGenerator(config_window, settings) createSettingBoxDropdownMenu = sbg.createSettingBoxDropdownMenu - createSettingBoxSwitch = sbg.createSettingBoxSwitch - createSettingBoxCheckbox = sbg.createSettingBoxCheckbox createSettingBoxSlider = sbg.createSettingBoxSlider - createSettingBoxProgressbarXSlider = sbg.createSettingBoxProgressbarXSlider - createSettingBoxEntry = sbg.createSettingBoxEntry - # 関数名は変えるかもしれない。 @@ -32,13 +30,22 @@ def createSettingBox_Appearance(setting_box_wrapper, config_window, settings): def optionmenu_appearance_theme_callback(value): config.APPEARANCE_THEME = value + def optionmenu_ui_scaling_callback(value): + # self.optionmenu_ui_scaling.set(choice) + # new_scaling_float = int(choice.replace("%", "")) / 100 + config.UI_SCALING = value + def optionmenu_font_family_callback(value): + config.FONT_FAMILY = value + + def optionmenu_ui_language_callback(value): + config.UI_LANGUAGE = get_key_by_value(selectable_languages, value) row=0 config_window.sb__transparency = createSettingBoxSlider( parent_widget=setting_box_wrapper, label_text="Transparency", - desc_text="It will change window's transparency. 50% to 100%. (Default: 100%)", + desc_text="Change the window's transparency. 50% to 100%. (Default: 100%)", slider_attr_name="sb__transparency_slider", slider_range=(50, 100), command=lambda value: slider_transparency_callback(value), @@ -48,13 +55,12 @@ def createSettingBox_Appearance(setting_box_wrapper, config_window, settings): row+=1 - config_window.sb__appearance_theme = createSettingBoxDropdownMenu( parent_widget=setting_box_wrapper, label_text="Theme", - desc_text="You can choose the color theme from \"Light\" and \"Dark\". If you select \"System\", It will adjust based on your Windows theme. (Default: System)", + desc_text="Change the color theme from \"Light\" and \"Dark\". If you select \"System\", It will adjust based on your Windows theme. (Default: System)", optionmenu_attr_name="sb__appearance_theme_optionmenu", - dropdown_menu_attr_name="sb__appearance_theme_optionmenu_dropdown", + dropdown_menu_attr_name="sb__appearance_theme_dropdown", dropdown_menu_values=["Light", "Dark", "System"], command=lambda value: optionmenu_appearance_theme_callback(value), variable=StringVar(value=config.APPEARANCE_THEME) @@ -63,131 +69,46 @@ def createSettingBox_Appearance(setting_box_wrapper, config_window, settings): row+=1 - # config_window.sb__dropdown_menu_2 = createSettingBoxDropdownMenu( - # parent_widget=setting_box_wrapper, - # label_text="Option Menu", - # desc_text="Select your preferences from the options menu.\nYou can choose your preferred language.", - # optionmenu_attr_name="optionmenu_attr_name_2", - # dropdown_menu_attr_name="dropdown_menu_attr_name_1", - # dropdown_menu_values=["tt", "Japanese", "English"], - # command=lambda value: dropdownMenuFun(value, config_window.optionmenu_attr_name_2, config_window.dropdown_menu_attr_name_1), - # variable=StringVar(value=config.INPUT_SOURCE_LANG) - # ) - # config_window.sb__dropdown_menu_2.grid(row=row) - # row+=1 - - # config_window.sb__switch_1 = createSettingBoxSwitch( - # parent_widget=setting_box_wrapper, - # label_text="Switch", - # desc_text="Turning this switch on will bring happiness.\nAs for turning it off... I leave that to your imagination", - # switch_attr_name="switch_attr_name_1", - # command=lambda: switchFun(config_window.switch_attr_name_1), - # is_checked=True, - # ) - # config_window.sb__switch_1.grid(row=row) - # row+=1 - - # config_window.sb__checkbox_1 = createSettingBoxCheckbox( - # parent_widget=setting_box_wrapper, - # label_text="Checkbox", - # desc_text="Checkbox ticked, a checkmark.", - # checkbox_attr_name="checkbox_attr_name_1", - # command=lambda: checkboxFun(config_window.checkbox_attr_name_1), - # is_checked=False, - # ) - # config_window.sb__checkbox_1.grid(row=row) - # row+=1 - - # config_window.sb__slider_1 = createSettingBoxSlider( - # parent_widget=setting_box_wrapper, - # label_text="Slider", - # desc_text="Adjust using the slider; the balance is up to you.", - # slider_attr_name="slider_attr_name_1", - # slider_range=(0, config_window.MAX_SPEAKER_ENERGY_THRESHOLD), - # slider_number_of_steps=config_window.MAX_SPEAKER_ENERGY_THRESHOLD, - # command=lambda value: sliderFun(value, config_window.slider_attr_name_1), - # variable=IntVar(value=config_window.INPUT_SPEAKER_ENERGY_THRESHOLD), - # ) - # config_window.sb__slider_1.grid(row=row) - # row+=1 + config_window.sb__ui_scaling = createSettingBoxDropdownMenu( + parent_widget=setting_box_wrapper, + label_text="UI Size", + desc_text="(Default: 100%)", + optionmenu_attr_name="sb__ui_scaling_optionmenu", + dropdown_menu_attr_name="sb__ui_scaling_dropdown", + dropdown_menu_values=["80%", "90%", "100%", "110%", "120%"], + command=lambda value: optionmenu_ui_scaling_callback(value), + variable=StringVar(value=config.UI_SCALING) + ) + config_window.sb__ui_scaling.grid(row=row) + row+=1 - # config_window.sb__progressbar_x_slider_1 = createSettingBoxProgressbarXSlider( - # parent_widget=setting_box_wrapper, - # label_text="Progressbar and Slider for check the threshold", - # desc_text="just the slider to modify the threshold for activating voice input.\nPress the microphone button to start input, and you can adjust it while monitoring the actual volume.", - # command=set_input_threshold, # ? - # variable=IntVar(value=config.INPUT_MIC_ENERGY_THRESHOLD), - # entry_attr_name="progressbar_x_slider__entry_attr_name_1", + # font_families = list(tk_font.families()) + config_window.sb__font_family = createSettingBoxDropdownMenu( + parent_widget=setting_box_wrapper, + label_text="Font Family", + desc_text="(Default: Yu Gothic UI)", + optionmenu_attr_name="sb__font_family_optionmenu", + dropdown_menu_attr_name="sb__font_family_dropdown", + dropdown_menu_values=["Font A", "Font B"], + # dropdown_menu_values=font_families, + command=lambda value: optionmenu_font_family_callback(value), + variable=StringVar(value=config.FONT_FAMILY) + ) + config_window.sb__font_family.grid(row=row) + row+=1 - # slider_attr_name="progressbar_x_slider__slider_attr_name_1", - # slider_range=(0, config_window.MAX_SPEAKER_ENERGY_THRESHOLD), - # slider_number_of_steps=config_window.MAX_SPEAKER_ENERGY_THRESHOLD, - - # progressbar_attr_name="progressbar_x_slider__progressbar_attr_name_1", - - # passive_button_attr_name="progressbar_x_slider__passive_button_attr_name_1", - # passive_button_command=lambda e: checkbox_input_speaker_threshold_check_callback( - # e, - # config_window.progressbar_x_slider__passive_button_attr_name_1, - # config_window.progressbar_x_slider__active_button_attr_name_1, - # is_turned_on=True, - # ), - # active_button_attr_name="progressbar_x_slider__active_button_attr_name_1", - # active_button_command=lambda e: checkbox_input_speaker_threshold_check_callback( - # e, - # config_window.progressbar_x_slider__passive_button_attr_name_1, - # config_window.progressbar_x_slider__active_button_attr_name_1, - # is_turned_on=False, - # ), - # button_image_filename="mic_icon_white.png" - # ) - # config_window.sb__progressbar_x_slider_1.grid(row=row) - # row+=1 - - # config_window.sb__progressbar_x_slider_2 = createSettingBoxProgressbarXSlider( - # parent_widget=setting_box_wrapper, - # label_text="Progressbar and Slider for check the threshold2", - # desc_text="just the slider to modify the threshold for activating voice input.\nPress the microphone button to start input, and you can adjust it while monitoring the actual volume.", - # command=set_input_threshold, # ? - # variable=IntVar(value=config.INPUT_SPEAKER_ENERGY_THRESHOLD), - - # entry_attr_name="progressbar_x_slider__entry_attr_name_2", - - - # slider_attr_name="progressbar_x_slider__slider_attr_name_2", - # slider_range=(0, config_window.MAX_SPEAKER_ENERGY_THRESHOLD), - # slider_number_of_steps=config_window.MAX_SPEAKER_ENERGY_THRESHOLD, - # progressbar_attr_name="progressbar_x_slider__progressbar_attr_name_2", - - # passive_button_attr_name="progressbar_x_slider__passive_button_attr_name_2", - # passive_button_command=lambda e: checkbox_input_speaker_threshold_check_callback( - # e, - # config_window.progressbar_x_slider__passive_button_attr_name_2, - # config_window.progressbar_x_slider__active_button_attr_name_2, - # is_turned_on=True, - # ), - # active_button_attr_name="progressbar_x_slider__active_button_attr_name_2", - # active_button_command=lambda e: checkbox_input_speaker_threshold_check_callback( - # e, - # config_window.progressbar_x_slider__passive_button_attr_name_2, - # config_window.progressbar_x_slider__active_button_attr_name_2, - # is_turned_on=False, - # ), - # button_image_filename="headphones_icon_white.png" - # ) - # config_window.sb__progressbar_x_slider_2.grid(row=row) - # row+=1 - - # config_window.sb__entry_1 = createSettingBoxEntry( - # parent_widget=setting_box_wrapper, - # label_text="Entry", - # desc_text="Please input a numerical value.", - # entry_attr_name="entry_attr_name_1", - # entry_width=settings.uism.SB__ENTRY_WIDTH_100, - # entry_bind__Any_KeyRelease=lambda value: entryFun(value, config_window.entry_attr_name_1), - # entry_textvariable=IntVar(value=config_window.INPUT_MIC_PHRASE_TIMEOUT), - # ) - # config_window.sb__entry_1.grid(row=row, pady=0) - # row+=1 \ No newline at end of file + selectable_languages_values = list(selectable_languages.values()) + config_window.sb__ui_language = createSettingBoxDropdownMenu( + parent_widget=setting_box_wrapper, + label_text="UI Language", + desc_text="(Default: English)", + optionmenu_attr_name="sb__ui_language_optionmenu", + dropdown_menu_attr_name="sb__ui_language_dropdown", + dropdown_menu_values=selectable_languages_values, + command=lambda value: optionmenu_ui_language_callback(value), + variable=StringVar(value=selectable_languages[config.UI_LANGUAGE]), + ) + config_window.sb__ui_language.grid(row=row) + row+=1 \ No newline at end of file