Merge branch 'view' into UI_2.0
This commit is contained in:
28
view.py
28
view.py
@@ -70,6 +70,7 @@ class View():
|
||||
VAR_LABEL_YOUR_LANGUAGE=StringVar(value="Your Language"), # JA: あなたの言語
|
||||
VAR_YOUR_LANGUAGE = StringVar(value="Japanese\n(Japan)"),
|
||||
CALLBACK_OPEN_SELECTABLE_YOUR_LANGUAGE_WINDOW=None,
|
||||
IS_OPENED_SELECTABLE_YOUR_LANGUAGE_WINDOW=False,
|
||||
CALLBACK_SELECTED_YOUR_LANGUAGE=None,
|
||||
|
||||
VAR_LABEL_BOTH_DIRECTION_DESC=StringVar(value="Translate Each Other"), # JA: 双方向に翻訳
|
||||
@@ -77,6 +78,7 @@ class View():
|
||||
VAR_LABEL_TARGET_LANGUAGE=StringVar(value="Target Language"), # JA: 相手の言語
|
||||
VAR_TARGET_LANGUAGE = StringVar(value="English\n(United States)"),
|
||||
CALLBACK_OPEN_SELECTABLE_TARGET_LANGUAGE_WINDOW=None,
|
||||
IS_OPENED_SELECTABLE_TARGET_LANGUAGE_WINDOW=False,
|
||||
CALLBACK_SELECTED_TARGET_LANGUAGE=None,
|
||||
|
||||
|
||||
@@ -86,6 +88,9 @@ class View():
|
||||
VAR_LABEL_TEXTBOX_SYSTEM=StringVar(value="System"), # JA: システム
|
||||
|
||||
|
||||
# Selectable Language Window
|
||||
VAR_TITLE_LABEL_SELECTABLE_LANGUAGE=StringVar(value=""),
|
||||
VAR_GO_BACK_LABEL_SELECTABLE_LANGUAGE=StringVar(value="Go Back"),
|
||||
|
||||
|
||||
|
||||
@@ -381,8 +386,10 @@ class View():
|
||||
vrct_gui.recreateMainWindowSidebar()
|
||||
|
||||
def openSelectableLanguagesWindow_YourLanguage(self, _e):
|
||||
self.view_variable.VAR_TITLE_LABEL_SELECTABLE_LANGUAGE.set("Your Language")
|
||||
vrct_gui.openSelectableLanguagesWindow("your_language")
|
||||
def openSelectableLanguagesWindow_TargetLanguage(self, _e):
|
||||
self.view_variable.VAR_TITLE_LABEL_SELECTABLE_LANGUAGE.set("Target Language")
|
||||
vrct_gui.openSelectableLanguagesWindow("target_language")
|
||||
|
||||
|
||||
@@ -430,8 +437,11 @@ class View():
|
||||
|
||||
@staticmethod
|
||||
def _printToTextbox_Info(info_message):
|
||||
vrct_gui.printToTextbox(vrct_gui.textbox_all, info_message, "", "INFO")
|
||||
vrct_gui.printToTextbox(vrct_gui.textbox_system, info_message, "", "INFO")
|
||||
vrct_gui.printToTextbox(
|
||||
target_type="INFO",
|
||||
original_message=info_message,
|
||||
translated_message="",
|
||||
)
|
||||
|
||||
|
||||
|
||||
@@ -440,8 +450,11 @@ class View():
|
||||
|
||||
@staticmethod
|
||||
def _printToTextbox_Sent(original_message, translated_message):
|
||||
vrct_gui.printToTextbox(vrct_gui.textbox_all, original_message, translated_message, "SEND")
|
||||
vrct_gui.printToTextbox(vrct_gui.textbox_sent, original_message, translated_message, "SEND")
|
||||
vrct_gui.printToTextbox(
|
||||
target_type="SEND",
|
||||
original_message=original_message,
|
||||
translated_message=translated_message,
|
||||
)
|
||||
|
||||
|
||||
def printToTextbox_ReceivedMessage(self, original_message, translated_message):
|
||||
@@ -449,8 +462,11 @@ class View():
|
||||
|
||||
@staticmethod
|
||||
def _printToTextbox_Received(original_message, translated_message):
|
||||
vrct_gui.printToTextbox(vrct_gui.textbox_all, original_message, translated_message, "RECEIVE")
|
||||
vrct_gui.printToTextbox(vrct_gui.textbox_received, original_message, translated_message, "RECEIVE")
|
||||
vrct_gui.printToTextbox(
|
||||
target_type="RECEIVE",
|
||||
original_message=original_message,
|
||||
translated_message=translated_message,
|
||||
)
|
||||
|
||||
|
||||
@staticmethod
|
||||
|
||||
@@ -37,13 +37,15 @@ class _CreateSelectableLanguagesWindow(CTkToplevel):
|
||||
def createContainer(self, selectable_language_window_type):
|
||||
self.selectable_language_window_type = selectable_language_window_type
|
||||
|
||||
self.attach.update_idletasks()
|
||||
self.x_pos = self.attach.winfo_rootx()
|
||||
self.y_pos = self.attach.winfo_rooty()
|
||||
self.width_new = self.attach.winfo_width() - 16
|
||||
self.height_new = self.attach.winfo_height() - 50
|
||||
self.width_new = self.attach.winfo_width()
|
||||
self.height_new = self.attach.winfo_height()
|
||||
|
||||
|
||||
self.geometry('+{}+{}'.format(self.x_pos, self.y_pos))
|
||||
self.geometry('{}x{}+{}+{}'.format(self.width_new, self.height_new, self.x_pos, self.y_pos))
|
||||
|
||||
|
||||
|
||||
if self.is_created is True:
|
||||
@@ -69,16 +71,15 @@ class _CreateSelectableLanguagesWindow(CTkToplevel):
|
||||
|
||||
|
||||
def _createContainer(self):
|
||||
# self.geometry('{}x{}+{}+{}'.format(self.width_new, self.height_new, self.x_pos, self.y_pos))
|
||||
# self.geometry('{}x{}+{}+{}'.format(self.width_new, self.height_new, self.x_pos, self.y_pos))
|
||||
|
||||
|
||||
self.rowconfigure(0, minsize=50)
|
||||
self.top_container = CTkFrame(self, corner_radius=0, fg_color=self.settings.ctm.MAIN_BG_COLOR, width=0, height=0)
|
||||
self.rowconfigure(1, weight=1)
|
||||
self.columnconfigure(0, weight=1)
|
||||
self.top_container = CTkFrame(self, corner_radius=0, fg_color=self.settings.ctm.TOP_BG_COLOR, width=0, height=0)
|
||||
self.top_container.grid(row=0, column=0, sticky="nsew")
|
||||
|
||||
|
||||
self.top_container.rowconfigure((0,2), 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.grid(row=1, column=0)
|
||||
|
||||
@@ -88,19 +89,37 @@ class _CreateSelectableLanguagesWindow(CTkToplevel):
|
||||
|
||||
self.go_back_button_label = CTkLabel(
|
||||
self.go_back_button_label_wrapper,
|
||||
text="Go back",
|
||||
textvariable=self._view_variable.VAR_GO_BACK_LABEL_SELECTABLE_LANGUAGE,
|
||||
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,
|
||||
)
|
||||
self.go_back_button_label.grid(row=1, column=0, padx=10, pady=10)
|
||||
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())
|
||||
|
||||
|
||||
|
||||
self.title_container = CTkFrame(self.top_container, corner_radius=0, fg_color=self.settings.ctm.TOP_BG_COLOR, width=0, height=0)
|
||||
self.title_container.grid(row=1, column=1, sticky="nsew")
|
||||
|
||||
self.title_container.columnconfigure((0,2), weight=1)
|
||||
self.title_container.rowconfigure((0,2), weight=1)
|
||||
self.title_label = CTkLabel(
|
||||
self.title_container,
|
||||
textvariable=self._view_variable.VAR_TITLE_LABEL_SELECTABLE_LANGUAGE,
|
||||
height=0,
|
||||
corner_radius=0,
|
||||
font=CTkFont(family=self.settings.FONT_FAMILY, size=18, weight="normal"),
|
||||
anchor="w",
|
||||
text_color=self.settings.ctm.TITLE_TEXT_COLOR,
|
||||
)
|
||||
self.title_label.grid(row=1, column=1)
|
||||
|
||||
|
||||
|
||||
|
||||
self.scroll_frame_container = CTkScrollableFrame(self, corner_radius=0, fg_color=self.settings.ctm.MAIN_BG_COLOR, width=self.width_new, height=self.height_new)
|
||||
self.scroll_frame_container.grid(row=1, column=0, sticky="nsew")
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
from datetime import datetime
|
||||
from customtkinter import CTkFont
|
||||
|
||||
def _printToTextbox(settings, target_textbox, original_message, translated_message, tags=None):
|
||||
def _printToTextbox(settings, target_textbox, original_message=None, translated_message=None, tags=None):
|
||||
now_raw_data = datetime.now()
|
||||
now = now_raw_data.strftime('%H:%M:%S')
|
||||
now_hm = now_raw_data.strftime('%H:%M')
|
||||
|
||||
@@ -51,29 +51,7 @@ def createSidebarLanguagesSettings(settings, main_window, view_variable):
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
def createOption_DropdownMenu_for_languageSettings(setattr_obj, parent_widget, optionmenu_attr_name, dropdown_menu_values, command, width:int = 200, font_size:int = 10, text_color="white", variable=""):
|
||||
setattr(setattr_obj, optionmenu_attr_name, CTkOptionMenu(
|
||||
parent_widget,
|
||||
height=30,
|
||||
width=width,
|
||||
values=dropdown_menu_values,
|
||||
button_color=settings.ctm.SLS__DROPDOWN_MENU_BG_COLOR,
|
||||
fg_color=settings.ctm.SLS__DROPDOWN_MENU_BG_COLOR,
|
||||
text_color=text_color,
|
||||
font=CTkFont(family=settings.FONT_FAMILY, size=font_size, weight="normal"),
|
||||
variable=variable,
|
||||
anchor="center",
|
||||
command=command,
|
||||
))
|
||||
target_optionmenu_attr = getattr(setattr_obj, optionmenu_attr_name)
|
||||
target_optionmenu_attr.grid(row=0, column=0, sticky="e")
|
||||
|
||||
|
||||
|
||||
|
||||
def createLanguageSettingBox(parent_widget, var_title_text, title_text_attr_name, arrow_img_attr_name, dropdown_menu_values, open_selectable_language_window_command, variable):
|
||||
def createLanguageSettingBox(parent_widget, var_title_text, title_text_attr_name, arrow_img_attr_name, open_selectable_language_window_command, variable):
|
||||
sls__box = CTkFrame(parent_widget, corner_radius=0, fg_color=settings.ctm.SLS__BOX_BG_COLOR, width=0, height=0)
|
||||
|
||||
sls__box.columnconfigure((0,2), weight=1)
|
||||
@@ -102,11 +80,11 @@ def createSidebarLanguagesSettings(settings, main_window, view_variable):
|
||||
|
||||
sls__selected_language_box.columnconfigure(0, minsize=200)
|
||||
sls__selected_language_box.rowconfigure(0, minsize=30)
|
||||
sls__selected_language_label = CTkFrame(sls__selected_language_box, corner_radius=0, fg_color=settings.ctm.SLS__DROPDOWN_MENU_BG_COLOR)
|
||||
sls__selected_language_label.grid(row=0, column=0)
|
||||
sls__selected_language_label_frame = CTkFrame(sls__selected_language_box, corner_radius=0, fg_color=settings.ctm.SLS__DROPDOWN_MENU_BG_COLOR)
|
||||
sls__selected_language_label_frame.grid(row=0, column=0)
|
||||
|
||||
sls__selected_language_label = CTkLabel(
|
||||
sls__selected_language_label,
|
||||
sls__selected_language_label_frame,
|
||||
textvariable=variable,
|
||||
height=0,
|
||||
# anchor="center",
|
||||
@@ -133,12 +111,12 @@ def createSidebarLanguagesSettings(settings, main_window, view_variable):
|
||||
|
||||
|
||||
|
||||
# bindEnterAndLeaveColor([self.wrapper, label_widget], self.settings.ctm.LANGUAGE_BUTTON_BG_HOVERED_COLOR, self.settings.ctm.LANGUAGE_BUTTON_BG_COLOR)
|
||||
# bindButtonPressColor([self.wrapper, label_widget], self.settings.ctm.LANGUAGE_BUTTON_BG_CLICKED_COLOR, self.settings.ctm.LANGUAGE_BUTTON_BG_COLOR)
|
||||
bindEnterAndLeaveColor([sls__selected_language_label_frame, sls__selected_language_box, sls__selected_language_label], settings.ctm.SLS__DROPDOWN_MENU_HOVERED_BG_COLOR, settings.ctm.SLS__DROPDOWN_MENU_BG_COLOR)
|
||||
bindButtonPressColor([sls__selected_language_label_frame, sls__selected_language_box, sls__selected_language_label], settings.ctm.SLS__DROPDOWN_MENU_CLICKED_BG_COLOR, settings.ctm.SLS__DROPDOWN_MENU_HOVERED_BG_COLOR)
|
||||
|
||||
|
||||
|
||||
bindButtonReleaseFunction([sls__selected_language_box, sls__selected_language_label, sls__selected_language_arrow_img], open_selectable_language_window_command)
|
||||
bindButtonReleaseFunction([sls__selected_language_label_frame, sls__selected_language_box, sls__selected_language_label, sls__selected_language_arrow_img], open_selectable_language_window_command)
|
||||
|
||||
return sls__box
|
||||
|
||||
@@ -251,7 +229,6 @@ def createSidebarLanguagesSettings(settings, main_window, view_variable):
|
||||
var_title_text=view_variable.VAR_LABEL_YOUR_LANGUAGE,
|
||||
title_text_attr_name="sls__title_text_your_language",
|
||||
arrow_img_attr_name="sls__arrow_img_your_language",
|
||||
dropdown_menu_values=view_variable.LIST_SELECTABLE_LANGUAGES,
|
||||
open_selectable_language_window_command=callbackOpenSelectableYourLanguageWindow,
|
||||
variable=view_variable.VAR_YOUR_LANGUAGE
|
||||
)
|
||||
@@ -299,7 +276,6 @@ def createSidebarLanguagesSettings(settings, main_window, view_variable):
|
||||
var_title_text=view_variable.VAR_LABEL_TARGET_LANGUAGE,
|
||||
title_text_attr_name="sls__title_text_target_language",
|
||||
arrow_img_attr_name="sls__arrow_img_target_language",
|
||||
dropdown_menu_values=view_variable.LIST_SELECTABLE_LANGUAGES,
|
||||
open_selectable_language_window_command=callbackOpenSelectableTargetLanguageWindow,
|
||||
variable=view_variable.VAR_TARGET_LANGUAGE
|
||||
)
|
||||
|
||||
@@ -151,6 +151,8 @@ class ColorThemeManager():
|
||||
self.main.SLS__BOX_ARROWS_TEXT_COLOR = self.DARK_500_COLOR
|
||||
|
||||
self.main.SLS__DROPDOWN_MENU_BG_COLOR = self.DARK_888_COLOR
|
||||
self.main.SLS__DROPDOWN_MENU_HOVERED_BG_COLOR = self.DARK_875_COLOR
|
||||
self.main.SLS__DROPDOWN_MENU_CLICKED_BG_COLOR = self.DARK_900_COLOR
|
||||
|
||||
|
||||
self.main.CONFIG_BUTTON_BG_COLOR = self.main.SIDEBAR_BG_COLOR
|
||||
@@ -179,6 +181,8 @@ class ColorThemeManager():
|
||||
self.selectable_language_window.GO_BACK_BUTTON_BG_COLOR = self.DARK_800_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.LANGUAGE_BUTTON_BG_HOVERED_COLOR = self.DARK_825_COLOR
|
||||
self.selectable_language_window.LANGUAGE_BUTTON_BG_CLICKED_COLOR = self.DARK_888_COLOR
|
||||
|
||||
|
||||
@@ -64,13 +64,28 @@ class VRCT_GUI(CTk):
|
||||
self.config_window.grab_release()
|
||||
|
||||
|
||||
|
||||
|
||||
def openSelectableLanguagesWindow(self, selectable_language_window_type):
|
||||
if selectable_language_window_type == "your_language":
|
||||
self.sls__arrow_img_your_language.configure(image=CTkImage((self.settings.main.image_file.ARROW_LEFT),size=(20,20)))
|
||||
elif selectable_language_window_type == "target_language":
|
||||
self.sls__arrow_img_target_language.configure(image=CTkImage((self.settings.main.image_file.ARROW_LEFT),size=(20,20)))
|
||||
if self._view_variable.IS_OPENED_SELECTABLE_YOUR_LANGUAGE_WINDOW is False:
|
||||
self.sls__arrow_img_your_language.configure(image=CTkImage((self.settings.main.image_file.ARROW_LEFT),size=(20,20)))
|
||||
self._view_variable.IS_OPENED_SELECTABLE_YOUR_LANGUAGE_WINDOW = True
|
||||
self._view_variable.IS_OPENED_SELECTABLE_TARGET_LANGUAGE_WINDOW = False
|
||||
else:
|
||||
self._view_variable.IS_OPENED_SELECTABLE_YOUR_LANGUAGE_WINDOW = False
|
||||
return
|
||||
|
||||
elif selectable_language_window_type == "target_language":
|
||||
if self._view_variable.IS_OPENED_SELECTABLE_TARGET_LANGUAGE_WINDOW is False:
|
||||
self.sls__arrow_img_target_language.configure(image=CTkImage((self.settings.main.image_file.ARROW_LEFT),size=(20,20)))
|
||||
self._view_variable.IS_OPENED_SELECTABLE_TARGET_LANGUAGE_WINDOW = True
|
||||
self._view_variable.IS_OPENED_SELECTABLE_YOUR_LANGUAGE_WINDOW = False
|
||||
else:
|
||||
self._view_variable.IS_OPENED_SELECTABLE_TARGET_LANGUAGE_WINDOW = False
|
||||
return
|
||||
|
||||
|
||||
self.sls__arrow_img_target_language
|
||||
self.selectable_languages_window.createContainer(selectable_language_window_type)
|
||||
self.selectable_languages_window.deiconify()
|
||||
self.selectable_languages_window.focus_set()
|
||||
@@ -81,6 +96,8 @@ class VRCT_GUI(CTk):
|
||||
self.sls__arrow_img_your_language.configure(image=CTkImage((self.settings.main.image_file.ARROW_LEFT).rotate(180),size=(20,20)))
|
||||
self.sls__arrow_img_target_language.configure(image=CTkImage((self.settings.main.image_file.ARROW_LEFT).rotate(180),size=(20,20)))
|
||||
self.selectable_languages_window.withdraw()
|
||||
self._view_variable.IS_OPENED_SELECTABLE_TARGET_LANGUAGE_WINDOW = False
|
||||
self._view_variable.IS_OPENED_SELECTABLE_YOUR_LANGUAGE_WINDOW = False
|
||||
|
||||
|
||||
|
||||
@@ -108,13 +125,30 @@ class VRCT_GUI(CTk):
|
||||
target_names=target_names,
|
||||
)
|
||||
|
||||
def printToTextbox(self, target_textbox, original_message, translated_message, tags=None):
|
||||
def printToTextbox(self, target_type, original_message=None, translated_message=None):
|
||||
match (target_type):
|
||||
case "INFO":
|
||||
target_textbox = self.textbox_system
|
||||
case "SEND":
|
||||
target_textbox = self.textbox_sent
|
||||
case "RECEIVE":
|
||||
target_textbox = self.textbox_received
|
||||
case (_):
|
||||
raise ValueError(f"No matching case for target_type: {target_type}")
|
||||
_printToTextbox(
|
||||
settings=self.settings.main,
|
||||
target_textbox=target_textbox,
|
||||
original_message=original_message,
|
||||
translated_message=translated_message,
|
||||
tags=tags,
|
||||
tags=target_type,
|
||||
)
|
||||
# To automatically print the same log to the textbox_all widget as well.
|
||||
_printToTextbox(
|
||||
settings=self.settings.main,
|
||||
target_textbox=self.textbox_all,
|
||||
original_message=original_message,
|
||||
translated_message=translated_message,
|
||||
tags=target_type,
|
||||
)
|
||||
|
||||
def setDefaultActiveLanguagePresetTab(self, tab_no:str):
|
||||
|
||||
Reference in New Issue
Block a user