Merge branch 'view' into UI_2.0

This commit is contained in:
Sakamoto Shiina
2023-10-08 22:52:18 +09:00
17 changed files with 412 additions and 71 deletions

19
view.py
View File

@@ -692,14 +692,20 @@ class View():
def updateList_MicHost(self, new_mic_host_list:list): def updateList_MicHost(self, new_mic_host_list:list):
self.view_variable.LIST_MIC_HOST = new_mic_host_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.dropdown_menu_window.updateDropdownMenuValues(
dropdown_menu_widget_id="sb__optionmenu_mic_host",
dropdown_menu_values=new_mic_host_list,
)
def updateSelected_MicHost(self, selected_mic_host_name:str): def updateSelected_MicHost(self, selected_mic_host_name:str):
self.view_variable.VAR_MIC_HOST.set(selected_mic_host_name) self.view_variable.VAR_MIC_HOST.set(selected_mic_host_name)
def updateList_MicDevice(self, new_mic_device_list): def updateList_MicDevice(self, new_mic_device_list:list):
self.view_variable.LIST_MIC_DEVICE = 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.dropdown_menu_window.updateDropdownMenuValues(
dropdown_menu_widget_id="sb__optionmenu_mic_device",
dropdown_menu_values=new_mic_device_list,
)
def updateSelected_MicDevice(self, default_selected_mic_device_name:str): def updateSelected_MicDevice(self, default_selected_mic_device_name:str):
self.view_variable.VAR_MIC_DEVICE.set(default_selected_mic_device_name) self.view_variable.VAR_MIC_DEVICE.set(default_selected_mic_device_name)
@@ -714,9 +720,12 @@ class View():
vrct_gui.config_window.sb__progressbar_x_slider__progressbar_mic_energy_threshold.set(0) vrct_gui.config_window.sb__progressbar_x_slider__progressbar_mic_energy_threshold.set(0)
def updateList_SpeakerDevice(self, new_speaker_device_list): def updateList_SpeakerDevice(self, new_speaker_device_list:list):
self.view_variable.LIST_SPEAKER_DEVICE = 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.dropdown_menu_window.updateDropdownMenuValues(
dropdown_menu_widget_id="sb__optionmenu_speaker_device",
dropdown_menu_values=new_speaker_device_list,
)
@staticmethod @staticmethod
def updateSetProgressBar_SpeakerEnergy(new_speaker_energy): def updateSetProgressBar_SpeakerEnergy(new_speaker_energy):

View File

@@ -0,0 +1,281 @@
from types import SimpleNamespace
from customtkinter import CTkToplevel, CTkFrame, CTkLabel, CTkFont, CTkScrollableFrame
from time import sleep
from .ui_utils import bindButtonReleaseFunction, bindEnterAndLeaveColor, bindButtonPressColor, getLatestWidth, getLatestHeight
from functools import partial
class _CreateDropdownMenuWindow(CTkToplevel):
def __init__(self, settings, view_variable):
super().__init__()
self.withdraw()
self.hide = True
self.title("")
self.overrideredirect(True)
self.wm_attributes("-alpha", 0)
self.wm_attributes("-toolwindow", True)
self.configure(fg_color="#ff7f50")
self.resizable(width=False, height=False)
self.settings = settings
self.attach_widget = None
self._view_variable = view_variable
self.wrapper_widget = None
self.dropdown_menu_widgets = {}
self.active_dropdown_menu_widget = None
self.attach_widget_width = None
self.attach_widget_height = None
self.attach_widget_x_pos = None
self.attach_widget_y_pos = None
self.x_pos = None
self.y_pos = None
self.init_height = 200
self.new_height = self.init_height
self.init_width = 200
self.new_width = self.init_width
self.init_max_display_length = 8
self.max_display_length = self.init_max_display_length
def updateDropdownMenuValues(self, dropdown_menu_widget_id, dropdown_menu_values):
self.dropdown_menu_widgets[dropdown_menu_widget_id].widget.destroy()
self.createDropdownMenuBox(
dropdown_menu_widget_id=dropdown_menu_widget_id,
dropdown_menu_values=dropdown_menu_values,
command=self.dropdown_menu_widgets[dropdown_menu_widget_id].command,
wrapper_widget=self.dropdown_menu_widgets[dropdown_menu_widget_id].wrapper_widget,
dropdown_menu_width=self.dropdown_menu_widgets[dropdown_menu_widget_id].dropdown_menu_settings.dropdown_menu_width,
dropdown_menu_height=self.dropdown_menu_widgets[dropdown_menu_widget_id].dropdown_menu_settings.dropdown_menu_height,
max_display_length=self.dropdown_menu_widgets[dropdown_menu_widget_id].dropdown_menu_settings.max_display_length,
)
def createDropdownMenuBox(self, dropdown_menu_widget_id, dropdown_menu_values, command, wrapper_widget, dropdown_menu_width=None, dropdown_menu_height=None, max_display_length=None):
self.new_width = dropdown_menu_width if dropdown_menu_width is not None else self.init_width
self.new_height = dropdown_menu_height if dropdown_menu_height is not None else self.init_height
self.max_display_length = max_display_length if max_display_length is not None else self.init_max_display_length
self.wrapper_widget = wrapper_widget
self.dropdown_menu_container = CTkFrame(self, corner_radius=0, fg_color="#ff7f50", width=0, height=0)
self.dropdown_menu_container.grid(row=0, column=0, sticky="nsew")
self.dropdown_menu_container.grid_remove()
self.dropdown_menu_widgets[dropdown_menu_widget_id] = SimpleNamespace()
self.dropdown_menu_widgets[dropdown_menu_widget_id] = SimpleNamespace(
widget=self.dropdown_menu_container,
command=command,
wrapper_widget=wrapper_widget,
dropdown_menu_settings=SimpleNamespace(
dropdown_menu_width=dropdown_menu_width,
dropdown_menu_height=dropdown_menu_height,
max_display_length=max_display_length,
)
)
self.scroll_frame_container = CTkScrollableFrame(
self.dropdown_menu_container,
corner_radius=0,
fg_color=self.settings.ctm.SB__DROPDOWN_MENU_WINDOW_BG_COLOR,
width=0,
height=0,
border_color=self.settings.ctm.SB__DROPDOWN_MENU_WINDOW_BORDER_COLOR,
border_width=1,
)
self.scroll_frame_container.grid(row=0, column=0, sticky="nsew")
self.scroll_frame_container._scrollbar.grid_configure(padx=(1, 2))
self.scroll_frame_container.grid_columnconfigure(0, weight=1)
self.dropdown_menu_values_box = CTkFrame(self.scroll_frame_container, corner_radius=0, fg_color=self.settings.ctm.SB__DROPDOWN_MENU_WINDOW_BG_COLOR, width=0, height=0)
self.dropdown_menu_values_box.grid(row=0, column=0, sticky="nsew")
self.dropdown_menu_values_box.grid_columnconfigure(0, weight=1)
self._createDropdownMenuValues(dropdown_menu_widget_id, dropdown_menu_values, command)
def _createDropdownMenuValues(self, dropdown_menu_widget_id, dropdown_menu_values, command):
self.dropdown_menu_values_wrapper = CTkFrame(self.scroll_frame_container, corner_radius=0, fg_color=self.settings.ctm.SB__DROPDOWN_MENU_WINDOW_BG_COLOR)
self.dropdown_menu_values_wrapper.grid(row=0, column=0, sticky="nsew")
self.dropdown_menu_values_wrapper.grid_columnconfigure(0, weight=1)
# for get to the height__________________
__dropdown_menu_value_wrapper = CTkFrame(self.dropdown_menu_values_wrapper, corner_radius=0, fg_color=self.settings.ctm.SB__DROPDOWN_MENU_BG_COLOR, width=0, height=0)
__dropdown_menu_value_wrapper.grid(row=0, column=0, ipadx=6, ipady=6, sticky="nsew")
setattr(self, f"{dropdown_menu_widget_id}__{0}", __dropdown_menu_value_wrapper)
__dropdown_menu_value_wrapper.grid_rowconfigure((0,2), weight=1)
__dropdown_menu_value_wrapper.grid_columnconfigure(0, weight=1)
__label_widget = CTkLabel(
__dropdown_menu_value_wrapper,
text="Aa",
height=0,
corner_radius=0,
font=CTkFont(family=self.settings.FONT_FAMILY, size=14, weight="normal"),
anchor="w",
text_color=self.settings.ctm.BASIC_TEXT_COLOR,
)
# setattr(self, f"l", __label_widget)
__label_widget.grid(row=1, column=0, padx=(8,0), sticky="w")
label_height = getLatestHeight(__dropdown_menu_value_wrapper)
# ______________________________________
dropdown_menu_values_length = len(dropdown_menu_values)
if dropdown_menu_values_length < self.max_display_length:
new_height = int(dropdown_menu_values_length * label_height)
else:
new_height = int(self.max_display_length * label_height)
self.scroll_frame_container.configure(width=self.new_width, height=new_height)
# This is for CustomTkinter's spec change or bug fix.
self.scroll_frame_container._scrollbar.configure(height=0)
row=0
for dropdown_menu_value in dropdown_menu_values:
dropdown_menu_value_wrapper = CTkFrame(self.dropdown_menu_values_wrapper, corner_radius=0, fg_color=self.settings.ctm.SB__DROPDOWN_MENU_BG_COLOR, width=0, height=0, cursor="hand2")
dropdown_menu_value_wrapper.grid(row=row, column=0, ipadx=6, ipady=6, sticky="nsew")
setattr(self, f"{dropdown_menu_widget_id}__{row}", dropdown_menu_value_wrapper)
dropdown_menu_value_wrapper.grid_rowconfigure((0,2), weight=1)
dropdown_menu_value_wrapper.grid_columnconfigure(0, weight=1)
label_widget = CTkLabel(
dropdown_menu_value_wrapper,
text=dropdown_menu_value,
height=0,
corner_radius=0,
font=CTkFont(family=self.settings.FONT_FAMILY, size=14, weight="normal"),
anchor="w",
text_color=self.settings.ctm.BASIC_TEXT_COLOR,
)
# setattr(self, f"l", label_widget)
label_widget.grid(row=1, column=0, padx=(8,0), sticky="w")
bindEnterAndLeaveColor([dropdown_menu_value_wrapper, label_widget], self.settings.ctm.SB__DROPDOWN_MENU_HOVERED_BG_COLOR, self.settings.ctm.SB__DROPDOWN_MENU_BG_COLOR)
bindButtonPressColor([dropdown_menu_value_wrapper, label_widget], self.settings.ctm.SB__DROPDOWN_MENU_CLICKED_BG_COLOR, self.settings.ctm.SB__DROPDOWN_MENU_BG_COLOR)
def optimizedCommand(value, _e):
command(value)
self._withdraw()
callback = partial(optimizedCommand, dropdown_menu_value)
bindButtonReleaseFunction([dropdown_menu_value_wrapper, label_widget], callback)
row+=1
def show(self, dropdown_menu_widget_id, target_widget):
if self.hide is False: return
self.wm_attributes("-alpha", 0)
self.attach_widget = target_widget
if self.active_dropdown_menu_widget is not None:
self.active_dropdown_menu_widget.grid_remove()
target_Widget = self.dropdown_menu_widgets[dropdown_menu_widget_id].widget
target_Widget.grid()
self.active_dropdown_menu_widget = target_Widget
self.deiconify()
self._adjustToTargetWidgetGeometry()
self.BIND_CONFIGURE_FUNC_ID = self.attach_widget.winfo_toplevel().bind("<Configure>", self._adjustToTargetWidgetGeometry, "+")
self.BIND_UNMAP_FUNC_ID = self.attach_widget.bind("<Unmap>", self._withdraw, "+")
self.BIND_BUTTON_1_FUNC_ID = self.attach_widget.winfo_toplevel().bind("<Button-1>", self._withdraw, "+")
self.hide = False
for i in range(0,91,10):
if not self.winfo_exists():
break
self.attributes("-alpha", i/100)
self.update()
sleep(1/100)
self.wm_attributes("-alpha", 1)
self.update()
def _withdraw(self, e=None):
self.withdraw()
self.attach_widget.winfo_toplevel().unbind("<Configure>", self.BIND_CONFIGURE_FUNC_ID)
self.attach_widget.unbind("<Unmap>", self.BIND_UNMAP_FUNC_ID)
self.attach_widget.winfo_toplevel().unbind("<Button-1>", self.BIND_BUTTON_1_FUNC_ID)
self.hide = True
def _adjustToTargetWidgetGeometry(self, e=None):
if not self.attach_widget.winfo_exists():
return
self.attach_widget.update_idletasks()
self.update()
if self.attach_widget_x_pos == self.attach_widget.winfo_rootx() and self.attach_widget_y_pos == self.attach_widget.winfo_rooty():
self.lift()
return
self.wrapper_widget_y_pos = self.wrapper_widget.winfo_rooty()
self.wrapper_widget_bottom_y_pos = self.wrapper_widget_y_pos + self.wrapper_widget.winfo_height()
self.attach_widget_width = self.attach_widget.winfo_width()
self.attach_widget_height = self.attach_widget.winfo_height()
self.attach_widget_x_pos = self.attach_widget.winfo_rootx()
self.attach_widget_y_pos = self.attach_widget.winfo_rooty()
self.y_pos = int(self.attach_widget_y_pos + self.attach_widget_height + 4)
if self.wrapper_widget_y_pos > self.y_pos or self.y_pos > self.wrapper_widget_bottom_y_pos:
self.hideTemporarily()
else:
if self.winfo_exists():
self.deiconify()
if self.winfo_width() >= self.attach_widget_width:
self.x_pos = int(self.attach_widget_x_pos - (self.winfo_width() - self.attach_widget_width))
else:
self.x_pos = self.attach_widget_x_pos
self.geometry("+{}+{}".format(self.x_pos, self.y_pos))
self.lift()
def hideTemporarily(self):
self.withdraw()

View File

@@ -13,6 +13,8 @@ class _CreateErrorWindow(CTkToplevel):
self.wm_attributes("-alpha", 0) self.wm_attributes("-alpha", 0)
self.wm_attributes("-toolwindow", True) self.wm_attributes("-toolwindow", True)
self.configure(fg_color="#fff")
self.settings = settings self.settings = settings
self.attach_widget = None self.attach_widget = None
self._view_variable = view_variable self._view_variable = view_variable

View File

@@ -15,7 +15,7 @@ class _CreateModalWindow(CTkToplevel):
self.attach_window = attach_window self.attach_window = attach_window
self.configure(fg_color="black") self.configure(fg_color="#ff7f50")
self.protocol("WM_DELETE_WINDOW", lambda e: self.withdraw()) self.protocol("WM_DELETE_WINDOW", lambda e: self.withdraw())
self.settings = settings self.settings = settings

View File

@@ -18,8 +18,7 @@ class _CreateSelectableLanguagesWindow(CTkToplevel):
self.attach = vrct_gui.main_bg_container self.attach = vrct_gui.main_bg_container
self.vrct_gui = vrct_gui self.vrct_gui = vrct_gui
self.configure(fg_color="#ff7f50")
self.configure(fg_color="black")
self.protocol("WM_DELETE_WINDOW", vrct_gui.closeSelectableLanguagesWindow) self.protocol("WM_DELETE_WINDOW", vrct_gui.closeSelectableLanguagesWindow)
self.settings = settings self.settings = settings
@@ -80,15 +79,11 @@ class _CreateSelectableLanguagesWindow(CTkToplevel):
self.top_container.rowconfigure((0,2), weight=1) self.top_container.rowconfigure((0,2), weight=1)
self.top_container.columnconfigure(1, weight=1) self.top_container.columnconfigure(1, weight=1)
self.go_back_button_container = CTkFrame(self.top_container, corner_radius=0, fg_color=self.settings.ctm.GO_BACK_BUTTON_BG_COLOR, width=0, height=0) self.go_back_button_container = CTkFrame(self.top_container, corner_radius=0, fg_color=self.settings.ctm.GO_BACK_BUTTON_BG_COLOR, width=0, height=0, cursor="hand2")
self.go_back_button_container.grid(row=1, column=0) self.go_back_button_container.grid(row=1, column=0)
self.go_back_button_label_wrapper = CTkFrame(self.go_back_button_container, corner_radius=0, fg_color=self.settings.ctm.GO_BACK_BUTTON_BG_COLOR, width=0, height=0)
self.go_back_button_label_wrapper.grid(row=0, column=0)
self.go_back_button_label = CTkLabel( self.go_back_button_label = CTkLabel(
self.go_back_button_label_wrapper, self.go_back_button_container,
textvariable=self._view_variable.VAR_GO_BACK_LABEL_SELECTABLE_LANGUAGE, textvariable=self._view_variable.VAR_GO_BACK_LABEL_SELECTABLE_LANGUAGE,
height=0, height=0,
corner_radius=0, corner_radius=0,
@@ -98,7 +93,12 @@ class _CreateSelectableLanguagesWindow(CTkToplevel):
) )
self.go_back_button_label.grid(row=0, column=0, padx=10, pady=8) self.go_back_button_label.grid(row=0, column=0, padx=10, pady=8)
bindButtonReleaseFunction([self.go_back_button_label_wrapper, self.go_back_button_label], lambda _e: self.vrct_gui.closeSelectableLanguagesWindow())
bindEnterAndLeaveColor([self.go_back_button_container, self.go_back_button_label], self.settings.ctm.GO_BACK_BUTTON_BG_HOVERED_COLOR, self.settings.ctm.GO_BACK_BUTTON_BG_COLOR)
bindButtonPressColor([self.go_back_button_container, self.go_back_button_label], self.settings.ctm.GO_BACK_BUTTON_BG_CLICKED_COLOR, self.settings.ctm.GO_BACK_BUTTON_BG_COLOR)
bindButtonReleaseFunction([self.go_back_button_container, self.go_back_button_label], lambda _e: self.vrct_gui.closeSelectableLanguagesWindow())
@@ -137,7 +137,7 @@ class _CreateSelectableLanguagesWindow(CTkToplevel):
column=0 column=0
for selectable_language_name in self._view_variable.LIST_SELECTABLE_LANGUAGES: for selectable_language_name in self._view_variable.LIST_SELECTABLE_LANGUAGES:
self.wrapper = CTkFrame(self.container, corner_radius=0, fg_color=self.settings.ctm.LANGUAGE_BUTTON_BG_COLOR, width=0, height=0) self.wrapper = CTkFrame(self.container, corner_radius=0, fg_color=self.settings.ctm.LANGUAGE_BUTTON_BG_COLOR, width=0, height=0, cursor="hand2")
self.wrapper.grid(row=row, column=column, ipadx=6, ipady=6, sticky="nsew") self.wrapper.grid(row=row, column=column, ipadx=6, ipady=6, sticky="nsew")
setattr(self, f"{row}_{column}", self.wrapper) setattr(self, f"{row}_{column}", self.wrapper)

View File

@@ -3,7 +3,8 @@ from typing import Union
from customtkinter import CTkOptionMenu, CTkFont, CTkFrame, CTkLabel, CTkRadioButton, CTkEntry, CTkSlider, CTkSwitch, CTkCheckBox, CTkProgressBar 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
from vrct_gui import vrct_gui
SETTING_BOX_COLUMN = 1 SETTING_BOX_COLUMN = 1
@@ -14,6 +15,7 @@ class _SettingBoxGenerator():
self.parent_widget = parent_widget self.parent_widget = parent_widget
self.settings = settings self.settings = settings
self.dropdown_menu_window = vrct_gui.vrct_gui.dropdown_menu_window
def _createSettingBoxFrame(self, for_var_label_text, for_var_desc_text): def _createSettingBoxFrame(self, for_var_label_text, for_var_desc_text):
setting_box_frame = CTkFrame(self.parent_widget, corner_radius=0, fg_color=self.settings.ctm.SB__BG_COLOR, width=0, height=0) setting_box_frame = CTkFrame(self.parent_widget, corner_radius=0, fg_color=self.settings.ctm.SB__BG_COLOR, width=0, height=0)
@@ -73,22 +75,43 @@ class _SettingBoxGenerator():
self.config_window.additional_widgets.append(setting_box_desc) self.config_window.additional_widgets.append(setting_box_desc)
def createSettingBoxDropdownMenu(self, for_var_label_text, for_var_desc_text, optionmenu_attr_name, command, variable=None, dropdown_menu_values=None): def createSettingBoxDropdownMenu(self, for_var_label_text, for_var_desc_text, optionmenu_attr_name, command, dropdown_menu_width=None, variable=None, dropdown_menu_values=None):
(setting_box_frame, setting_box_item_frame) = self._createSettingBoxFrame(for_var_label_text, for_var_desc_text) (setting_box_frame, setting_box_item_frame) = self._createSettingBoxFrame(for_var_label_text, for_var_desc_text)
option_menu_widget = CTkOptionMenu( def adjustedCommand(value):
setting_box_item_frame, variable.set(value)
height=self.settings.uism.SB__OPTIONMENU_HEIGHT, command(value)
width=self.settings.uism.SB__OPTIONMENU_WIDTH,
values=dropdown_menu_values, self.dropdown_menu_window.createDropdownMenuBox(
button_color=self.settings.ctm.SB__OPTIONMENU_BG_COLOR, dropdown_menu_widget_id=optionmenu_attr_name,
button_hover_color=self.settings.ctm.SB__OPTIONMENU_HOVERED_BG_COLOR, dropdown_menu_values=dropdown_menu_values,
fg_color=self.settings.ctm.SB__OPTIONMENU_BG_COLOR, command=adjustedCommand,
font=CTkFont(family=self.settings.FONT_FAMILY, size=self.settings.uism.SB__OPTION_MENU_FONT_SIZE, weight="normal"), wrapper_widget=self.config_window.main_bg_container,
variable=variable, dropdown_menu_width=dropdown_menu_width,
command=command,
anchor="w",
) )
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,
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),
optionmenu_clicked_command=lambda _e: self.dropdown_menu_window.show(
dropdown_menu_widget_id=optionmenu_attr_name,
target_widget=option_menu_widget,
),
)
option_menu_widget.grid(row=1, column=SETTING_BOX_COLUMN, sticky="e") option_menu_widget.grid(row=1, column=SETTING_BOX_COLUMN, sticky="e")
setattr(self.config_window, optionmenu_attr_name, option_menu_widget) setattr(self.config_window, optionmenu_attr_name, option_menu_widget)

View File

@@ -18,7 +18,7 @@ def createSettingBox_AdvancedSettings(setting_box_wrapper, config_window, settin
for_var_label_text=view_variable.VAR_LABEL_OSC_IP_ADDRESS, for_var_label_text=view_variable.VAR_LABEL_OSC_IP_ADDRESS,
for_var_desc_text=view_variable.VAR_DESC_OSC_IP_ADDRESS, for_var_desc_text=view_variable.VAR_DESC_OSC_IP_ADDRESS,
entry_attr_name="sb__entry_ip_address", entry_attr_name="sb__entry_ip_address",
entry_width=settings.uism.SB__ENTRY_WIDTH_150, entry_width=settings.uism.RESPONSIVE_UI_SIZE_INT_150,
entry_bind__Any_KeyRelease=lambda value: entry_ip_address_callback(value), entry_bind__Any_KeyRelease=lambda value: entry_ip_address_callback(value),
entry_textvariable=view_variable.VAR_OSC_IP_ADDRESS, entry_textvariable=view_variable.VAR_OSC_IP_ADDRESS,
) )
@@ -30,9 +30,9 @@ def createSettingBox_AdvancedSettings(setting_box_wrapper, config_window, settin
for_var_label_text=view_variable.VAR_LABEL_OSC_PORT, for_var_label_text=view_variable.VAR_LABEL_OSC_PORT,
for_var_desc_text=view_variable.VAR_DESC_OSC_PORT, for_var_desc_text=view_variable.VAR_DESC_OSC_PORT,
entry_attr_name="sb__entry_port", entry_attr_name="sb__entry_port",
entry_width=settings.uism.SB__ENTRY_WIDTH_150, entry_width=settings.uism.RESPONSIVE_UI_SIZE_INT_150,
entry_bind__Any_KeyRelease=lambda value: entry_port_callback(value), entry_bind__Any_KeyRelease=lambda value: entry_port_callback(value),
entry_textvariable=view_variable.VAR_OSC_PORT, entry_textvariable=view_variable.VAR_OSC_PORT,
) )
config_window.sb__port.grid(row=row) config_window.sb__port.grid(row=row, pady=0)
row+=1 row+=1

View File

@@ -68,6 +68,7 @@ def createSettingBox_Appearance(setting_box_wrapper, config_window, settings, vi
for_var_desc_text=view_variable.VAR_DESC_FONT_FAMILY, for_var_desc_text=view_variable.VAR_DESC_FONT_FAMILY,
optionmenu_attr_name="sb__optionmenu_font_family", optionmenu_attr_name="sb__optionmenu_font_family",
dropdown_menu_values=view_variable.LIST_FONT_FAMILY, dropdown_menu_values=view_variable.LIST_FONT_FAMILY,
dropdown_menu_width=settings.uism.RESPONSIVE_UI_SIZE_INT_300,
command=lambda value: optionmenu_font_family_callback(value), command=lambda value: optionmenu_font_family_callback(value),
variable=view_variable.VAR_FONT_FAMILY, variable=view_variable.VAR_FONT_FAMILY,
) )
@@ -83,5 +84,5 @@ def createSettingBox_Appearance(setting_box_wrapper, config_window, settings, vi
command=lambda value: optionmenu_ui_language_callback(value), command=lambda value: optionmenu_ui_language_callback(value),
variable=view_variable.VAR_UI_LANGUAGE, variable=view_variable.VAR_UI_LANGUAGE,
) )
config_window.sb__ui_language.grid(row=row) config_window.sb__ui_language.grid(row=row, pady=0)
row+=1 row+=1

View File

@@ -66,7 +66,7 @@ def createSettingBox_Others(setting_box_wrapper, config_window, settings, view_v
for_var_label_text=view_variable.VAR_LABEL_MESSAGE_FORMAT, for_var_label_text=view_variable.VAR_LABEL_MESSAGE_FORMAT,
for_var_desc_text=view_variable.VAR_DESC_MESSAGE_FORMAT, for_var_desc_text=view_variable.VAR_DESC_MESSAGE_FORMAT,
entry_attr_name="sb__entry_message_format", entry_attr_name="sb__entry_message_format",
entry_width=settings.uism.SB__ENTRY_WIDTH_250, entry_width=settings.uism.RESPONSIVE_UI_SIZE_INT_250,
entry_bind__Any_KeyRelease=lambda value: entry_message_format_callback(value), entry_bind__Any_KeyRelease=lambda value: entry_message_format_callback(value),
entry_textvariable=view_variable.VAR_MESSAGE_FORMAT, entry_textvariable=view_variable.VAR_MESSAGE_FORMAT,
) )
@@ -91,6 +91,6 @@ def createSettingBox_Others(setting_box_wrapper, config_window, settings, view_v
command=lambda: checkbox_startup_osc_enabled_check_callback(config_window.sb__checkbox_startup_osc_enabled_check), command=lambda: checkbox_startup_osc_enabled_check_callback(config_window.sb__checkbox_startup_osc_enabled_check),
variable=view_variable.VAR_STARTUP_OSC_ENABLED_CHECK, variable=view_variable.VAR_STARTUP_OSC_ENABLED_CHECK,
) )
config_window.sb__startup_osc_enabled_check.grid(row=row) config_window.sb__startup_osc_enabled_check.grid(row=row, pady=0)
row+=1 row+=1

View File

@@ -58,6 +58,7 @@ def createSettingBox_Mic(setting_box_wrapper, config_window, settings, view_vari
for_var_desc_text=view_variable.VAR_DESC_MIC_DEVICE, for_var_desc_text=view_variable.VAR_DESC_MIC_DEVICE,
optionmenu_attr_name="sb__optionmenu_mic_device", optionmenu_attr_name="sb__optionmenu_mic_device",
dropdown_menu_values=view_variable.LIST_MIC_DEVICE, dropdown_menu_values=view_variable.LIST_MIC_DEVICE,
dropdown_menu_width=settings.uism.RESPONSIVE_UI_SIZE_INT_300,
command=lambda value: optionmenu_input_mic_device_callback(value), command=lambda value: optionmenu_input_mic_device_callback(value),
variable=view_variable.VAR_MIC_DEVICE, variable=view_variable.VAR_MIC_DEVICE,
) )
@@ -107,7 +108,7 @@ def createSettingBox_Mic(setting_box_wrapper, config_window, settings, view_vari
for_var_label_text=view_variable.VAR_LABEL_MIC_RECORD_TIMEOUT, for_var_label_text=view_variable.VAR_LABEL_MIC_RECORD_TIMEOUT,
for_var_desc_text=view_variable.VAR_DESC_MIC_RECORD_TIMEOUT, for_var_desc_text=view_variable.VAR_DESC_MIC_RECORD_TIMEOUT,
entry_attr_name="sb__entry_mic_record_timeout", entry_attr_name="sb__entry_mic_record_timeout",
entry_width=settings.uism.SB__ENTRY_WIDTH_100, entry_width=settings.uism.RESPONSIVE_UI_SIZE_INT_100,
entry_bind__Any_KeyRelease=lambda value: entry_input_mic_record_timeout_callback(value), entry_bind__Any_KeyRelease=lambda value: entry_input_mic_record_timeout_callback(value),
entry_textvariable=view_variable.VAR_MIC_RECORD_TIMEOUT, entry_textvariable=view_variable.VAR_MIC_RECORD_TIMEOUT,
entry_bind__FocusOut=view_variable.CALLBACK_FOCUS_OUT_MIC_RECORD_TIMEOUT, entry_bind__FocusOut=view_variable.CALLBACK_FOCUS_OUT_MIC_RECORD_TIMEOUT,
@@ -119,7 +120,7 @@ def createSettingBox_Mic(setting_box_wrapper, config_window, settings, view_vari
for_var_label_text=view_variable.VAR_LABEL_MIC_PHRASE_TIMEOUT, for_var_label_text=view_variable.VAR_LABEL_MIC_PHRASE_TIMEOUT,
for_var_desc_text=view_variable.VAR_DESC_MIC_PHRASE_TIMEOUT, for_var_desc_text=view_variable.VAR_DESC_MIC_PHRASE_TIMEOUT,
entry_attr_name="sb__entry_mic_phrase_timeout", entry_attr_name="sb__entry_mic_phrase_timeout",
entry_width=settings.uism.SB__ENTRY_WIDTH_100, entry_width=settings.uism.RESPONSIVE_UI_SIZE_INT_100,
entry_bind__Any_KeyRelease=lambda value: entry_input_mic_phrase_timeout_callback(value), entry_bind__Any_KeyRelease=lambda value: entry_input_mic_phrase_timeout_callback(value),
entry_textvariable=view_variable.VAR_MIC_PHRASE_TIMEOUT, entry_textvariable=view_variable.VAR_MIC_PHRASE_TIMEOUT,
entry_bind__FocusOut=view_variable.CALLBACK_FOCUS_OUT_MIC_PHRASE_TIMEOUT, entry_bind__FocusOut=view_variable.CALLBACK_FOCUS_OUT_MIC_PHRASE_TIMEOUT,
@@ -131,7 +132,7 @@ def createSettingBox_Mic(setting_box_wrapper, config_window, settings, view_vari
for_var_label_text=view_variable.VAR_LABEL_MIC_MAX_PHRASES, for_var_label_text=view_variable.VAR_LABEL_MIC_MAX_PHRASES,
for_var_desc_text=view_variable.VAR_DESC_MIC_MAX_PHRASES, for_var_desc_text=view_variable.VAR_DESC_MIC_MAX_PHRASES,
entry_attr_name="sb__entry_mic_max_phrases", entry_attr_name="sb__entry_mic_max_phrases",
entry_width=settings.uism.SB__ENTRY_WIDTH_100, entry_width=settings.uism.RESPONSIVE_UI_SIZE_INT_100,
entry_bind__Any_KeyRelease=lambda value: entry_input_mic_max_phrases_callback(value), entry_bind__Any_KeyRelease=lambda value: entry_input_mic_max_phrases_callback(value),
entry_textvariable=view_variable.VAR_MIC_MAX_PHRASES, entry_textvariable=view_variable.VAR_MIC_MAX_PHRASES,
entry_bind__FocusOut=view_variable.CALLBACK_FOCUS_OUT_MIC_MAX_PHRASES, entry_bind__FocusOut=view_variable.CALLBACK_FOCUS_OUT_MIC_MAX_PHRASES,
@@ -145,9 +146,9 @@ def createSettingBox_Mic(setting_box_wrapper, config_window, settings, view_vari
for_var_label_text=view_variable.VAR_LABEL_MIC_WORD_FILTER, for_var_label_text=view_variable.VAR_LABEL_MIC_WORD_FILTER,
for_var_desc_text=view_variable.VAR_DESC_MIC_WORD_FILTER, for_var_desc_text=view_variable.VAR_DESC_MIC_WORD_FILTER,
entry_attr_name="sb__entry_mic_word_filter", entry_attr_name="sb__entry_mic_word_filter",
entry_width=settings.uism.SB__ENTRY_WIDTH_300, entry_width=settings.uism.RESPONSIVE_UI_SIZE_INT_300,
entry_bind__Any_KeyRelease=lambda value: entry_input_mic_word_filters_callback(value), entry_bind__Any_KeyRelease=lambda value: entry_input_mic_word_filters_callback(value),
entry_textvariable=view_variable.VAR_MIC_WORD_FILTER, entry_textvariable=view_variable.VAR_MIC_WORD_FILTER,
) )
config_window.sb__mic_word_filter.grid(row=row) config_window.sb__mic_word_filter.grid(row=row, pady=0)
row+=1 row+=1

View File

@@ -41,6 +41,7 @@ def createSettingBox_Speaker(setting_box_wrapper, config_window, settings, view_
for_var_desc_text=view_variable.VAR_DESC_SPEAKER_DEVICE, for_var_desc_text=view_variable.VAR_DESC_SPEAKER_DEVICE,
optionmenu_attr_name="sb__optionmenu_speaker_device", optionmenu_attr_name="sb__optionmenu_speaker_device",
dropdown_menu_values=view_variable.LIST_SPEAKER_DEVICE, dropdown_menu_values=view_variable.LIST_SPEAKER_DEVICE,
dropdown_menu_width=settings.uism.RESPONSIVE_UI_SIZE_INT_300,
command=lambda value: optionmenu_input_speaker_device_callback(value), command=lambda value: optionmenu_input_speaker_device_callback(value),
variable=view_variable.VAR_SPEAKER_DEVICE, variable=view_variable.VAR_SPEAKER_DEVICE,
) )
@@ -90,7 +91,7 @@ def createSettingBox_Speaker(setting_box_wrapper, config_window, settings, view_
for_var_label_text=view_variable.VAR_LABEL_SPEAKER_RECORD_TIMEOUT, for_var_label_text=view_variable.VAR_LABEL_SPEAKER_RECORD_TIMEOUT,
for_var_desc_text=view_variable.VAR_DESC_SPEAKER_RECORD_TIMEOUT, for_var_desc_text=view_variable.VAR_DESC_SPEAKER_RECORD_TIMEOUT,
entry_attr_name="sb__entry_speaker_record_timeout", entry_attr_name="sb__entry_speaker_record_timeout",
entry_width=settings.uism.SB__ENTRY_WIDTH_100, entry_width=settings.uism.RESPONSIVE_UI_SIZE_INT_100,
entry_bind__Any_KeyRelease=lambda value: entry_input_speaker_record_timeout_callback(value), entry_bind__Any_KeyRelease=lambda value: entry_input_speaker_record_timeout_callback(value),
entry_textvariable=view_variable.VAR_SPEAKER_RECORD_TIMEOUT, entry_textvariable=view_variable.VAR_SPEAKER_RECORD_TIMEOUT,
entry_bind__FocusOut=view_variable.CALLBACK_FOCUS_OUT_SPEAKER_RECORD_TIMEOUT, entry_bind__FocusOut=view_variable.CALLBACK_FOCUS_OUT_SPEAKER_RECORD_TIMEOUT,
@@ -102,7 +103,7 @@ def createSettingBox_Speaker(setting_box_wrapper, config_window, settings, view_
for_var_label_text=view_variable.VAR_LABEL_SPEAKER_PHRASE_TIMEOUT, for_var_label_text=view_variable.VAR_LABEL_SPEAKER_PHRASE_TIMEOUT,
for_var_desc_text=view_variable.VAR_DESC_SPEAKER_PHRASE_TIMEOUT, for_var_desc_text=view_variable.VAR_DESC_SPEAKER_PHRASE_TIMEOUT,
entry_attr_name="sb__entry_speaker_phrase_timeout", entry_attr_name="sb__entry_speaker_phrase_timeout",
entry_width=settings.uism.SB__ENTRY_WIDTH_100, entry_width=settings.uism.RESPONSIVE_UI_SIZE_INT_100,
entry_bind__Any_KeyRelease=lambda value: entry_input_speaker_phrase_timeout_callback(value), entry_bind__Any_KeyRelease=lambda value: entry_input_speaker_phrase_timeout_callback(value),
entry_textvariable=view_variable.VAR_SPEAKER_PHRASE_TIMEOUT, entry_textvariable=view_variable.VAR_SPEAKER_PHRASE_TIMEOUT,
entry_bind__FocusOut=view_variable.CALLBACK_FOCUS_OUT_SPEAKER_PHRASE_TIMEOUT, entry_bind__FocusOut=view_variable.CALLBACK_FOCUS_OUT_SPEAKER_PHRASE_TIMEOUT,
@@ -114,11 +115,11 @@ def createSettingBox_Speaker(setting_box_wrapper, config_window, settings, view_
for_var_label_text=view_variable.VAR_LABEL_SPEAKER_MAX_PHRASES, for_var_label_text=view_variable.VAR_LABEL_SPEAKER_MAX_PHRASES,
for_var_desc_text=view_variable.VAR_DESC_SPEAKER_MAX_PHRASES, for_var_desc_text=view_variable.VAR_DESC_SPEAKER_MAX_PHRASES,
entry_attr_name="sb__entry_speaker_max_phrases", entry_attr_name="sb__entry_speaker_max_phrases",
entry_width=settings.uism.SB__ENTRY_WIDTH_100, entry_width=settings.uism.RESPONSIVE_UI_SIZE_INT_100,
entry_bind__Any_KeyRelease=lambda value: entry_input_speaker_max_phrases_callback(value), entry_bind__Any_KeyRelease=lambda value: entry_input_speaker_max_phrases_callback(value),
entry_textvariable=view_variable.VAR_SPEAKER_MAX_PHRASES, entry_textvariable=view_variable.VAR_SPEAKER_MAX_PHRASES,
entry_bind__FocusOut=view_variable.CALLBACK_FOCUS_OUT_SPEAKER_MAX_PHRASES, entry_bind__FocusOut=view_variable.CALLBACK_FOCUS_OUT_SPEAKER_MAX_PHRASES,
) )
config_window.sb__speaker_max_phrases.grid(row=row) config_window.sb__speaker_max_phrases.grid(row=row, pady=0)
row+=1 row+=1
# __________ # __________

View File

@@ -16,9 +16,9 @@ def createSettingBox_Translation(setting_box_wrapper, config_window, settings, v
for_var_label_text=view_variable.VAR_LABEL_DEEPL_AUTH_KEY, for_var_label_text=view_variable.VAR_LABEL_DEEPL_AUTH_KEY,
for_var_desc_text=view_variable.VAR_DESC_DEEPL_AUTH_KEY, for_var_desc_text=view_variable.VAR_DESC_DEEPL_AUTH_KEY,
entry_attr_name="sb__entry_deepl_authkey", entry_attr_name="sb__entry_deepl_authkey",
entry_width=settings.uism.SB__ENTRY_WIDTH_300, entry_width=settings.uism.RESPONSIVE_UI_SIZE_INT_300,
entry_bind__Any_KeyRelease=lambda value: deepl_authkey_callback(value), entry_bind__Any_KeyRelease=lambda value: deepl_authkey_callback(value),
entry_textvariable=view_variable.VAR_DEEPL_AUTH_KEY, entry_textvariable=view_variable.VAR_DEEPL_AUTH_KEY,
) )
config_window.sb__deepl_authkey.grid(row=row) config_window.sb__deepl_authkey.grid(row=row, pady=0)
row+=1 row+=1

View File

@@ -93,7 +93,7 @@ def createSidebarLanguagesSettings(settings, main_window, view_variable):
text_color=settings.ctm.LABELS_TEXT_COLOR, text_color=settings.ctm.LABELS_TEXT_COLOR,
image_file=settings.image_file.ARROW_LEFT.rotate(180), image_file=settings.image_file.ARROW_LEFT.rotate(180),
image_size=(20,20), image_size=(20,20),
command=open_selectable_language_window_command, optionmenu_clicked_command=open_selectable_language_window_command,
optionmenu_position="center", optionmenu_position="center",
setattr_widget=main_window, setattr_widget=main_window,

View File

@@ -41,6 +41,7 @@ class ColorThemeManager():
self.DARK_450_COLOR = "#b8b9bd" self.DARK_450_COLOR = "#b8b9bd"
self.DARK_500_COLOR = "#a9aaae" self.DARK_500_COLOR = "#a9aaae"
self.DARK_600_COLOR = "#7f8084" self.DARK_600_COLOR = "#7f8084"
# self.DARK_650_COLOR = "#75767a"
self.DARK_700_COLOR = "#6a6c6f" self.DARK_700_COLOR = "#6a6c6f"
self.DARK_725_COLOR = "#636467" self.DARK_725_COLOR = "#636467"
self.DARK_750_COLOR = "#5b5c5f" self.DARK_750_COLOR = "#5b5c5f"
@@ -198,12 +199,14 @@ class ColorThemeManager():
self.selectable_language_window.MAIN_BG_COLOR = self.DARK_875_COLOR self.selectable_language_window.MAIN_BG_COLOR = self.DARK_875_COLOR
self.selectable_language_window.LANGUAGE_BUTTON_BG_COLOR = self.selectable_language_window.MAIN_BG_COLOR
self.selectable_language_window.GO_BACK_BUTTON_BG_COLOR = self.DARK_800_COLOR self.selectable_language_window.GO_BACK_BUTTON_BG_COLOR = self.DARK_800_COLOR
self.selectable_language_window.GO_BACK_BUTTON_BG_HOVERED_COLOR = self.DARK_750_COLOR
self.selectable_language_window.GO_BACK_BUTTON_BG_CLICKED_COLOR = self.DARK_875_COLOR
self.selectable_language_window.TOP_BG_COLOR = self.main.SIDEBAR_BG_COLOR self.selectable_language_window.TOP_BG_COLOR = self.main.SIDEBAR_BG_COLOR
self.selectable_language_window.TITLE_TEXT_COLOR = self.DARK_400_COLOR self.selectable_language_window.TITLE_TEXT_COLOR = self.DARK_400_COLOR
self.selectable_language_window.LANGUAGE_BUTTON_BG_COLOR = self.selectable_language_window.MAIN_BG_COLOR
self.selectable_language_window.LANGUAGE_BUTTON_BG_HOVERED_COLOR = self.DARK_825_COLOR self.selectable_language_window.LANGUAGE_BUTTON_BG_HOVERED_COLOR = self.DARK_825_COLOR
self.selectable_language_window.LANGUAGE_BUTTON_BG_CLICKED_COLOR = self.DARK_888_COLOR self.selectable_language_window.LANGUAGE_BUTTON_BG_CLICKED_COLOR = self.DARK_888_COLOR
@@ -232,6 +235,13 @@ class ColorThemeManager():
self.config_window.SB__OPTIONMENU_BG_COLOR = self.DARK_925_COLOR 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_HOVERED_BG_COLOR = self.DARK_850_COLOR
self.config_window.SB__OPTIONMENU_CLICKED_BG_COLOR = self.DARK_950_COLOR
self.config_window.SB__DROPDOWN_MENU_WINDOW_BG_COLOR = self.config_window.MAIN_BG_COLOR
self.config_window.SB__DROPDOWN_MENU_WINDOW_BORDER_COLOR = self.DARK_600_COLOR
# self.config_window.SB__DROPDOWN_MENU_WINDOW_BG_COLOR = self.DARK_700_COLOR
self.config_window.SB__DROPDOWN_MENU_BG_COLOR = self.DARK_875_COLOR
self.config_window.SB__DROPDOWN_MENU_HOVERED_BG_COLOR = self.DARK_800_COLOR
self.config_window.SB__DROPDOWN_MENU_CLICKED_BG_COLOR = self.DARK_900_COLOR
self.config_window.SB__SLIDER_BUTTON_COLOR = self.DARK_700_COLOR self.config_window.SB__SLIDER_BUTTON_COLOR = self.DARK_700_COLOR
self.config_window.SB__SLIDER_BUTTON_HOVERED_COLOR = self.DARK_600_COLOR self.config_window.SB__SLIDER_BUTTON_HOVERED_COLOR = self.DARK_600_COLOR
@@ -381,7 +391,7 @@ class ColorThemeManager():
self.config_window.SB__BG_COLOR = self.DARK_888_COLOR self.config_window.SB__BG_COLOR = self.DARK_888_COLOR
self.config_window.SB__OPTIONMENU_BG_COLOR = self.DARK_925_COLOR 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_HOVERED_BG_COLOR = self.DARK_875_COLOR
self.config_window.SB__SLIDER_BUTTON_COLOR = self.DARK_700_COLOR self.config_window.SB__SLIDER_BUTTON_COLOR = self.DARK_700_COLOR
self.config_window.SB__SLIDER_BUTTON_HOVERED_COLOR = self.DARK_600_COLOR self.config_window.SB__SLIDER_BUTTON_HOVERED_COLOR = self.DARK_600_COLOR

View File

@@ -15,6 +15,11 @@ class UiScalingManager():
def _calculatedUiSizes(self): def _calculatedUiSizes(self):
# Common # Common
# RESPONSIVE_UI_SIZE_INT_10 ... RESPONSIVE_UI_SIZE_INT_300
for i in range(10, 301, 10):
setattr(self.main, f"RESPONSIVE_UI_SIZE_INT_{i}", self._calculateUiSize(i))
setattr(self.config_window, f"RESPONSIVE_UI_SIZE_INT_{i}", self._calculateUiSize(i))
# Main # Main
self.main.TEXTBOX_PADX = self._calculateUiSize(16) self.main.TEXTBOX_PADX = self._calculateUiSize(16)
@@ -146,9 +151,9 @@ class UiScalingManager():
self.config_window.SB__OPTION_MENU_FONT_SIZE = self.config_window.SB__SELECTOR_FONT_SIZE 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_MIN_HEIGHT = self._calculateUiSize(30)
self.config_window.SB__OPTIONMENU_WIDTH = self._calculateUiSize(200) self.config_window.SB__OPTIONMENU_MIN_WIDTH = self._calculateUiSize(200)
self.config_window.SB__DROPDOWN_MENU_WIDTH = self.config_window.SB__OPTIONMENU_WIDTH 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_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_CORNER_RADIUS = self._calculateUiSize(10)
self.config_window.SB__DROPDOWN_MENU_FRAME_MAX_HEIGHT = self._calculateUiSize(200) self.config_window.SB__DROPDOWN_MENU_FRAME_MAX_HEIGHT = self._calculateUiSize(200)
@@ -166,12 +171,8 @@ class UiScalingManager():
self.config_window.SB__ENTRY_FONT_SIZE = self.config_window.SB__SELECTOR_FONT_SIZE self.config_window.SB__ENTRY_FONT_SIZE = self.config_window.SB__SELECTOR_FONT_SIZE
self.config_window.SB__ENTRY_HEIGHT = self._calculateUiSize(30) self.config_window.SB__ENTRY_HEIGHT = self._calculateUiSize(30)
# SB__ENTRY_WIDTH_10 ... SB__ENTRY_WIDTH_200
for i in range(10, 301, 10):
setattr(self.config_window, f'SB__ENTRY_WIDTH_{i}', self._calculateUiSize(i))
self.config_window.SB__PROGRESSBAR_X_SLIDER__ENTRY_WIDTH = self.config_window.RESPONSIVE_UI_SIZE_INT_50
self.config_window.SB__PROGRESSBAR_X_SLIDER__ENTRY_WIDTH = self.config_window.SB__ENTRY_WIDTH_50
self.config_window.SB__PROGRESSBAR_X_SLIDER__ENTRY_HEIGHT = self.config_window.SB__ENTRY_HEIGHT self.config_window.SB__PROGRESSBAR_X_SLIDER__ENTRY_HEIGHT = self.config_window.SB__ENTRY_HEIGHT
self.config_window.SB__PROGRESSBAR_X_SLIDER__SLIDER_HEIGHT = self._calculateUiSize(40) self.config_window.SB__PROGRESSBAR_X_SLIDER__SLIDER_HEIGHT = self._calculateUiSize(40)
self.config_window.SB__PROGRESSBAR_X_SLIDER__SLIDER_BUTTON_LENGTH = self._calculateUiSize(2) self.config_window.SB__PROGRESSBAR_X_SLIDER__SLIDER_BUTTON_LENGTH = self._calculateUiSize(2)

View File

@@ -142,14 +142,18 @@ def createButtonWithImage(parent_widget, button_fg_color, button_enter_color, bu
return button_wrapper 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, optionmenu_clicked_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_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 = 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 LABEL_COLUMN=0
if optionmenu_position == "center": 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"), font=CTkFont(family=font_family, size=font_size, weight="normal"),
text_color=text_color 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( 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: if image_widget_attr_name is not None:
setattr(setattr_widget, image_widget_attr_name, optionmenu_img_widget) 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) bindEnterAndLeaveColor([optionmenu_label_wrapper, option_menu_box, optionmenu_label_widget, optionmenu_img_widget], optionmenu_hovered_bg_color, optionmenu_bg_color)
@@ -185,6 +189,6 @@ def createOptionMenuBox(parent_widget, optionmenu_bg_color, optionmenu_hovered_b
bindButtonReleaseFunction([optionmenu_label_wrapper, option_menu_box, optionmenu_label_widget, optionmenu_img_widget], command) bindButtonReleaseFunction([optionmenu_label_wrapper, option_menu_box, optionmenu_label_widget, optionmenu_img_widget], optionmenu_clicked_command)
return option_menu_box return option_menu_box

View File

@@ -1,11 +1,10 @@
from customtkinter import CTk, CTkImage from customtkinter import CTk, CTkImage
# from window_help_and_info import ToplevelWindowInformation
from ._CreateSelectableLanguagesWindow import _CreateSelectableLanguagesWindow from ._CreateSelectableLanguagesWindow import _CreateSelectableLanguagesWindow
from ._CreateModalWindow import _CreateModalWindow from ._CreateModalWindow import _CreateModalWindow
from ._CreateErrorWindow import _CreateErrorWindow from ._CreateErrorWindow import _CreateErrorWindow
from ._CreateDropdownMenuWindow import _CreateDropdownMenuWindow
from ._changeMainWindowWidgetsStatus import _changeMainWindowWidgetsStatus from ._changeMainWindowWidgetsStatus import _changeMainWindowWidgetsStatus
from ._changeConfigWindowWidgetsStatus import _changeConfigWindowWidgetsStatus from ._changeConfigWindowWidgetsStatus import _changeConfigWindowWidgetsStatus
from ._printToTextbox import _printToTextbox from ._printToTextbox import _printToTextbox
@@ -21,6 +20,7 @@ class VRCT_GUI(CTk):
super().__init__() super().__init__()
self.adjusted_event=None self.adjusted_event=None
self.BIND_CONFIGURE_ADJUSTED_GEOMETRY_FUNC_ID=None self.BIND_CONFIGURE_ADJUSTED_GEOMETRY_FUNC_ID=None
self.BIND_FOCUS_IN_MODAL_WINDOW_LIFT_CONFIG_WINDOW_FUNC_ID=None
def createGUI(self, settings, view_variable): def createGUI(self, settings, view_variable):
@@ -33,12 +33,16 @@ class VRCT_GUI(CTk):
view_variable=self._view_variable view_variable=self._view_variable
) )
self.dropdown_menu_window = _CreateDropdownMenuWindow(
settings=self.settings.config_window,
view_variable=self._view_variable,
)
self.config_window = ConfigWindow( self.config_window = ConfigWindow(
vrct_gui=self, vrct_gui=self,
settings=self.settings.config_window, settings=self.settings.config_window,
view_variable=self._view_variable view_variable=self._view_variable
) )
# self.information_window = ToplevelWindowInformation(self)
self.selectable_languages_window = _CreateSelectableLanguagesWindow( self.selectable_languages_window = _CreateSelectableLanguagesWindow(
vrct_gui=self, vrct_gui=self,
@@ -74,20 +78,20 @@ class VRCT_GUI(CTk):
self.adjustToMainWindowGeometry() self.adjustToMainWindowGeometry()
self.modal_window.deiconify() self.modal_window.deiconify()
self.BIND_CONFIGURE_ADJUSTED_GEOMETRY_FUNC_ID = self.bind("<Configure>", self.adjustToMainWindowGeometry) self.BIND_CONFIGURE_ADJUSTED_GEOMETRY_FUNC_ID = self.bind("<Configure>", self.adjustToMainWindowGeometry, "+")
self.BIND_FOCUS_IN_MODAL_WINDOW_LIFT_CONFIG_WINDOW_FUNC_ID = self.modal_window.bind("<FocusIn>", lambda _e: self.config_window.lift(), "+")
self.config_window.deiconify() self.config_window.deiconify()
self.config_window.focus_set() self.config_window.focus_set()
self.config_window.grab_set()
def closeConfigWindow(self): def closeConfigWindow(self):
callFunctionIfCallable(self._view_variable.CALLBACK_CLOSE_CONFIG_WINDOW) callFunctionIfCallable(self._view_variable.CALLBACK_CLOSE_CONFIG_WINDOW)
self.config_window.withdraw() self.config_window.withdraw()
self.config_window.grab_release()
self.modal_window.withdraw() self.modal_window.withdraw()
self.unbind("<Configure>", self.BIND_CONFIGURE_ADJUSTED_GEOMETRY_FUNC_ID) self.unbind("<Configure>", self.BIND_CONFIGURE_ADJUSTED_GEOMETRY_FUNC_ID)
self.modal_window.unbind("<FocusIn>", self.BIND_FOCUS_IN_MODAL_WINDOW_LIFT_CONFIG_WINDOW_FUNC_ID)
self.adjusted_event=None self.adjusted_event=None
@@ -200,6 +204,10 @@ class VRCT_GUI(CTk):
self.after(150, lambda: self.config_window.lift()) self.after(150, lambda: self.config_window.lift())
elif self.adjusted_event is None: elif self.adjusted_event is None:
self.after(150, lambda: self.config_window.lift()) self.after(150, lambda: self.config_window.lift())
else:
pass
self.config_window.focus_set()
if e is not None: if e is not None:
self.adjusted_event=str(e) self.adjusted_event=str(e)