[Update] Main Window: Selectable Translation Engines.

・UI調整、文言変更。日本語は幅を取りすぎるので、"(デフォルト)"表示を"(Default)"と英語表記に。他の言語との兼ね合いもあるので、今はとりあえずlocalesのymlにそれぞれ直接記述。
・UI Scaling対応
・UI Theme(Light)対応
This commit is contained in:
Sakamoto Shiina
2024-01-15 12:05:06 +09:00
parent 6cd56991c3
commit f2321fcbc4
7 changed files with 106 additions and 65 deletions

View File

@@ -10,7 +10,7 @@ main_window:
swap_button_label: 言語を入れ替え
target_language: 相手の言語
translator: 翻訳エンジン
translator_ctranslate2: オフライン翻訳(デフォルト)
translator_ctranslate2: オフライン翻訳 (Default)
textbox_tab_all: 全て
textbox_tab_sent: 送信

View File

@@ -2,7 +2,7 @@ from customtkinter import CTkFont, CTkFrame, CTkLabel, CTkImage
from ...._CreateDropdownMenuWindow import _CreateDropdownMenuWindow
from ....ui_utils import bindEnterAndLeaveColor, bindButtonPressColor, bindButtonReleaseFunction, switchActiveTabAndPassiveTab, switchTabsColor, createOptionMenuBox, bindButtonFunctionAndColor, bindEnterAndLeaveFunction
from ....ui_utils import bindEnterAndLeaveColor, bindButtonPressColor, bindButtonReleaseFunction, switchActiveTabAndPassiveTab, switchTabsColor, createOptionMenuBox, bindButtonFunctionAndColor, bindEnterAndLeaveFunction, createLabelButton
from utils import callFunctionIfCallable
@@ -345,39 +345,13 @@ def createSidebarLanguagesSettings(settings, main_window, view_variable):
sls__box_translation_optionmenu_wrapper = CTkFrame(main_window.sls__box_frame, corner_radius=0, fg_color=settings.ctm.SLS__BG_COLOR, width=0, height=0)
sls__box_translation_optionmenu_wrapper.grid(row=5, column=0, sticky="ew")
sls__box_translation_optionmenu_wrapper.grid(row=5, column=0, pady=settings.uism.SLS__SELECTABLE_TRANSLATION_PADY, sticky="ew")
sls__box_translation_optionmenu_wrapper.grid_columnconfigure((0,2), weight=1, minsize=settings.uism.SLS__BOX_ARROWS_SWAP_BUTTON_PADX)
sls__box_translation_optionmenu_wrapper.grid_columnconfigure((0,2), weight=0, minsize=settings.uism.SLS__SELECTABLE_TRANSLATION_MIN_PADX)
sls__box_translation_optionmenu_wrapper.grid_columnconfigure(1, weight=1)
# main_window.translation_engine_dropdown_menu_window = _CreateDropdownMenuWindow(
# settings=settings.config_window,
# view_variable=main_window._view_variable,
# window_additional_y_pos=settings.config_window.uism.SB__DROPDOWN_MENU_WINDOW_ADDITIONAL_Y_POS,
# window_border_width=settings.config_window.uism.SB__DROPDOWN_MENU_WINDOW_BORDER_WIDTH,
# scrollbar_ipadx=settings.config_window.uism.SB__DROPDOWN_MENU_SCROLLBAR_IPADX,
# scrollbar_width=settings.config_window.uism.SB__DROPDOWN_MENU_SCROLLBAR_WIDTH,
# value_ipadx=settings.config_window.uism.SB__DROPDOWN_MENU_VALUE_IPADX,
# value_ipady=settings.config_window.uism.SB__DROPDOWN_MENU_VALUE_IPADY,
# value_pady=settings.config_window.uism.SB__DROPDOWN_MENU_VALUE_PADY,
# value_font_size=settings.config_window.uism.SB__DROPDOWN_MENU_VALUE_FONT_SIZE,
# dropdown_menu_default_min_width=settings.config_window.uism.SB__DROPDOWN_MENU_VALUE_DEFAULT_MIN_WIDTH,
# window_bg_color=settings.config_window.ctm.SB__DROPDOWN_MENU_WINDOW_BG_COLOR,
# window_border_color=settings.config_window.ctm.SB__DROPDOWN_MENU_WINDOW_BORDER_COLOR,
# values_bg_color=settings.config_window.ctm.SB__DROPDOWN_MENU_BG_COLOR,
# values_hovered_bg_color=settings.config_window.ctm.SB__DROPDOWN_MENU_HOVERED_BG_COLOR,
# values_clicked_bg_color=settings.config_window.ctm.SB__DROPDOWN_MENU_CLICKED_BG_COLOR,
# values_text_color=settings.config_window.ctm.BASIC_TEXT_COLOR,
# )
def adjustedCommand(value):
callFunctionIfCallable(view_variable.CALLBACK_SELECTED_TRANSLATION_ENGINE, value)
@@ -388,34 +362,25 @@ def createSidebarLanguagesSettings(settings, main_window, view_variable):
command=adjustedCommand,
wrapper_widget=main_window,
attach_widget=sls__box_translation_optionmenu_wrapper,
dropdown_menu_min_width=200,
dropdown_menu_min_width=settings.uism.SIDEBAR_MIN_WIDTH,
)
(sls__selected_translation_engine_box, optionmenu_label_widget, optionmenu_img_widget) = createOptionMenuBox(
(sls__selected_translation_engine_box, label_button_label_widget) = createLabelButton(
parent_widget=sls__box_translation_optionmenu_wrapper,
optionmenu_bg_color=settings.ctm.SLS__BG_COLOR,
optionmenu_hovered_bg_color=settings.ctm.SLS__OPTIONMENU_HOVERED_BG_COLOR,
optionmenu_clicked_bg_color=settings.ctm.SLS__OPTIONMENU_CLICKED_BG_COLOR,
optionmenu_ipadx=(0,10),
optionmenu_ipady=6,
label_button_bg_color=settings.ctm.SLS__BG_COLOR,
label_button_hovered_bg_color=settings.ctm.SLS__OPTIONMENU_HOVERED_BG_COLOR,
label_button_clicked_bg_color=settings.ctm.SLS__OPTIONMENU_CLICKED_BG_COLOR,
label_button_ipadx=settings.uism.SLS__SELECTABLE_TRANSLATION_IPADX,
label_button_ipady=settings.uism.SLS__SELECTABLE_TRANSLATION_IPADY,
variable=view_variable.VAR_SELECTED_TRANSLATION_ENGINE,
font_family=settings.FONT_FAMILY,
font_size=12,
font_size=settings.uism.SLS__SELECTABLE_TRANSLATION_FONT_SIZE,
text_color=settings.ctm.LABELS_TEXT_COLOR,
image_file=settings.image_file.REFRESH_ICON.rotate(45),
image_size=(14,14),
# image_size=settings.uism.SLS__BOX_OPTION_MENU_ARROW_IMAGE_SIZE,
optionmenu_clicked_command=lambda _e: main_window.translation_engine_dropdown_menu_window.show(
label_button_clicked_command=lambda _e: main_window.translation_engine_dropdown_menu_window.show(
dropdown_menu_widget_id="translation_engine_dropdown_menu"
),
optionmenu_position="center",
setattr_widget=main_window,
image_widget_attr_name="sls__arrow_img_select",
label_button_position="center",
)
sls__selected_translation_engine_box.grid(row=0, column=1, sticky="ew")
optionmenu_img_widget.grid_remove()

View File

@@ -90,6 +90,11 @@ def _darkTheme(base_color):
SLS__OPTIONMENU_HOVERED_BG_COLOR = base_color.DARK_875_COLOR,
SLS__OPTIONMENU_CLICKED_BG_COLOR = base_color.DARK_900_COLOR,
SLS__DROPDOWN_MENU_WINDOW_BG_COLOR = base_color.DARK_888_COLOR,
SLS__DROPDOWN_MENU_WINDOW_BORDER_COLOR = base_color.DARK_650_COLOR,
SLS__DROPDOWN_MENU_BG_COLOR = base_color.DARK_888_COLOR,
SLS__DROPDOWN_MENU_HOVERED_BG_COLOR = base_color.DARK_825_COLOR,
SLS__DROPDOWN_MENU_CLICKED_BG_COLOR = base_color.DARK_900_COLOR,
CONFIG_BUTTON_BG_COLOR = base_color.DARK_850_COLOR,
CONFIG_BUTTON_HOVERED_BG_COLOR = base_color.DARK_800_COLOR,

View File

@@ -90,6 +90,11 @@ def _lightTheme(base_color):
SLS__OPTIONMENU_HOVERED_BG_COLOR = base_color.LIGHT_250_COLOR,
SLS__OPTIONMENU_CLICKED_BG_COLOR = base_color.LIGHT_400_COLOR,
SLS__DROPDOWN_MENU_WINDOW_BG_COLOR = base_color.LIGHT_300_COLOR,
SLS__DROPDOWN_MENU_WINDOW_BORDER_COLOR = base_color.LIGHT_700_COLOR,
SLS__DROPDOWN_MENU_BG_COLOR = base_color.LIGHT_300_COLOR,
SLS__DROPDOWN_MENU_HOVERED_BG_COLOR = base_color.LIGHT_200_COLOR,
SLS__DROPDOWN_MENU_CLICKED_BG_COLOR = base_color.LIGHT_400_COLOR,
CONFIG_BUTTON_BG_COLOR = base_color.LIGHT_250_COLOR,
CONFIG_BUTTON_HOVERED_BG_COLOR = base_color.LIGHT_350_COLOR,

View File

@@ -141,6 +141,24 @@ class UiScalingManager():
self.main.MINIMIZE_SIDEBAR_BUTTON_ICON_SIZE_Y = self._calculateUiSize(26)
self.main.SLS__SELECTABLE_TRANSLATION_IPADX = self.dupTuple(self._calculateUiSize(10))
self.main.SLS__SELECTABLE_TRANSLATION_IPADY = self._calculateUiSize(6)
self.main.SLS__SELECTABLE_TRANSLATION_FONT_SIZE = self._calculateUiSize(12)
self.main.SLS__SELECTABLE_TRANSLATION_IMAGE_SIZE = self.dupTuple(self._calculateUiSize(10))
self.main.SLS__SELECTABLE_TRANSLATION_PADY = self._calculateUiSize(4)
self.main.SLS__SELECTABLE_TRANSLATION_MIN_PADX = self._calculateUiSize(8)
self.main.SLS__DROPDOWN_MENU_WINDOW_ADDITIONAL_Y_POS = self._calculateUiSize(4)
self.main.SLS__DROPDOWN_MENU_WINDOW_BORDER_WIDTH = self._calculateUiSize(0, is_allowed_odd=True)
self.main.SLS__DROPDOWN_MENU_SCROLLBAR_IPADX = self.common.SCROLLBAR_IPADX
self.main.SLS__DROPDOWN_MENU_SCROLLBAR_WIDTH = self.common.SCROLLBAR_WIDTH
self.main.SLS__DROPDOWN_MENU_VALUE_IPADX = (self._calculateUiSize(8), 0)
self.main.SLS__DROPDOWN_MENU_VALUE_IPADY = self.dupTuple(self._calculateUiSize(8))
self.main.SLS__DROPDOWN_MENU_VALUE_PADY = 0
self.main.SLS__DROPDOWN_MENU_VALUE_FONT_SIZE = self._calculateUiSize(14)
self.main.SLS__DROPDOWN_MENU_VALUE_DEFAULT_MIN_WIDTH = self._calculateUiSize(200)
# Selectable Language Window
self.selectable_language_window.TOP_BAR_MIN_HEIGHT = self._calculateUiSize(50)
@@ -257,7 +275,6 @@ class UiScalingManager():
self.config_window.SB__OPTIONMENU_IMG_SIZE = (self._calculateUiSize(14), self._calculateUiSize(14))
self.config_window.SB__DROPDOWN_MENU_WINDOW_ADDITIONAL_Y_POS = self._calculateUiSize(4)
self.config_window.SB__DROPDOWN_MENU_WIDTH = self.config_window.SB__OPTIONMENU_MIN_WIDTH
self.config_window.SB__DROPDOWN_MENU_WINDOW_BORDER_WIDTH = self._calculateUiSize(1, is_allowed_odd=True)
self.config_window.SB__DROPDOWN_MENU_SCROLLBAR_IPADX = self.common.SCROLLBAR_IPADX
self.config_window.SB__DROPDOWN_MENU_SCROLLBAR_WIDTH = self.common.SCROLLBAR_WIDTH

View File

@@ -168,6 +168,55 @@ def createButtonWithImage(parent_widget, button_image_size, button_ipadxy, butto
return button_wrapper
def createLabelButton(parent_widget, label_button_bg_color, label_button_hovered_bg_color, label_button_clicked_bg_color, label_button_ipadx, label_button_ipady, variable, font_family, font_size, text_color, label_button_clicked_command, label_button_position=None, label_button_padx_between_img=0, label_button_min_height=None, label_button_min_width=None):
label_button_box = CTkFrame(parent_widget, corner_radius=6, fg_color=label_button_bg_color, cursor="hand2")
label_button_box.grid_rowconfigure(0, weight=1)
if label_button_min_height is not None:
label_button_box.grid_rowconfigure(0, minsize=label_button_min_height)
label_button_box.grid_columnconfigure(0, weight=1)
if label_button_min_width is not None:
label_button_box.grid_columnconfigure(0, minsize=label_button_min_width)
label_button_label_wrapper = CTkFrame(label_button_box, corner_radius=0, fg_color=label_button_bg_color)
label_button_label_wrapper.grid(row=0, column=0, padx=label_button_ipadx, pady=label_button_ipady, sticky="ew")
LABEL_COLUMN=0
if label_button_position == "center":
label_button_label_wrapper.grid_columnconfigure((0,2), weight=1)
LABEL_COLUMN=1
label_button_label_widget = CTkLabel(
label_button_label_wrapper,
textvariable=variable,
height=0,
font=CTkFont(family=font_family, size=font_size, weight="normal"),
text_color=text_color
)
label_button_label_widget.grid(row=0, column=LABEL_COLUMN, padx=(0, label_button_padx_between_img))
bindEnterAndLeaveColor([label_button_label_wrapper, label_button_box, label_button_label_widget], label_button_hovered_bg_color, label_button_bg_color)
bindButtonPressColor([label_button_label_wrapper, label_button_box, label_button_label_widget], label_button_clicked_bg_color, label_button_hovered_bg_color)
bindButtonReleaseFunction([label_button_label_wrapper, label_button_box, label_button_label_widget], label_button_clicked_command)
def unbindEventFromWidgets():
unbindEnterLEaveButtonPressButtonReleaseFunction([label_button_label_wrapper, label_button_box, label_button_label_widget])
label_button_box.unbindFunction = unbindEventFromWidgets
return (label_button_box, label_button_label_widget)
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_padx_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=6, fg_color=optionmenu_bg_color, cursor="hand2")

View File

@@ -75,22 +75,22 @@ class VRCT_GUI(CTk):
settings=settings.dropdown_menu_window,
view_variable=self._view_variable,
window_additional_y_pos=4,
window_border_width=1,
scrollbar_ipadx=(2,2),
scrollbar_width=16,
value_ipadx=(8,0),
value_ipady=(6,6),
value_pady=0,
value_font_size=14,
dropdown_menu_default_min_width=200,
window_additional_y_pos=self.settings.main.uism.SLS__DROPDOWN_MENU_WINDOW_ADDITIONAL_Y_POS,
window_border_width=self.settings.main.uism.SLS__DROPDOWN_MENU_WINDOW_BORDER_WIDTH,
scrollbar_ipadx=self.settings.main.uism.SLS__DROPDOWN_MENU_SCROLLBAR_IPADX,
scrollbar_width=self.settings.main.uism.SLS__DROPDOWN_MENU_SCROLLBAR_WIDTH,
value_ipadx=self.settings.main.uism.SLS__DROPDOWN_MENU_VALUE_IPADX,
value_ipady=self.settings.main.uism.SLS__DROPDOWN_MENU_VALUE_IPADY,
value_pady=self.settings.main.uism.SLS__DROPDOWN_MENU_VALUE_PADY,
value_font_size=self.settings.main.uism.SLS__DROPDOWN_MENU_VALUE_FONT_SIZE,
dropdown_menu_default_min_width=self.settings.main.uism.SLS__DROPDOWN_MENU_VALUE_DEFAULT_MIN_WIDTH,
window_bg_color="#1f2022",
window_border_color="#7f8084",
values_bg_color="#323336",
values_hovered_bg_color="#4b4c4f",
values_clicked_bg_color="#292a2d",
values_text_color=settings.main.ctm.BASIC_TEXT_COLOR,
window_bg_color=self.settings.main.ctm.SLS__DROPDOWN_MENU_WINDOW_BG_COLOR,
window_border_color=self.settings.main.ctm.SLS__DROPDOWN_MENU_WINDOW_BORDER_COLOR,
values_bg_color=self.settings.main.ctm.SLS__DROPDOWN_MENU_BG_COLOR,
values_hovered_bg_color=self.settings.main.ctm.SLS__DROPDOWN_MENU_HOVERED_BG_COLOR,
values_clicked_bg_color=self.settings.main.ctm.SLS__DROPDOWN_MENU_CLICKED_BG_COLOR,
values_text_color=self.settings.main.ctm.BASIC_TEXT_COLOR,
)
createMainWindowWidgets(