163 lines
6.7 KiB
Python
163 lines
6.7 KiB
Python
from customtkinter import CTk, CTkImage
|
|
|
|
# from window_help_and_info import ToplevelWindowInformation
|
|
|
|
from ._CreateSelectableLanguagesWindow import _CreateSelectableLanguagesWindow
|
|
|
|
from ._changeMainWindowWidgetsStatus import _changeMainWindowWidgetsStatus
|
|
from ._changeConfigWindowWidgetsStatus import _changeConfigWindowWidgetsStatus
|
|
from ._printToTextbox import _printToTextbox
|
|
|
|
from .main_window import createMainWindowWidgets
|
|
from .config_window import ConfigWindow
|
|
from .ui_utils import _setDefaultActiveTab
|
|
|
|
from utils import callFunctionIfCallable
|
|
|
|
class VRCT_GUI(CTk):
|
|
def __init__(self):
|
|
super().__init__()
|
|
|
|
def createGUI(self, settings, view_variable):
|
|
self.settings = settings
|
|
self._view_variable = view_variable
|
|
|
|
createMainWindowWidgets(
|
|
vrct_gui=self,
|
|
settings=self.settings.main,
|
|
view_variable=self._view_variable
|
|
)
|
|
|
|
self.config_window = ConfigWindow(
|
|
vrct_gui=self,
|
|
settings=self.settings.config_window,
|
|
view_variable=self._view_variable
|
|
)
|
|
# self.information_window = ToplevelWindowInformation(self)
|
|
|
|
self.selectable_languages_window = _CreateSelectableLanguagesWindow(
|
|
vrct_gui=self,
|
|
settings=self.settings.selectable_language_window,
|
|
view_variable=self._view_variable
|
|
)
|
|
|
|
def startMainLoop(self):
|
|
self.mainloop()
|
|
|
|
|
|
def quitVRCT(self):
|
|
self.quit()
|
|
self.destroy()
|
|
|
|
|
|
def openConfigWindow(self, e):
|
|
callFunctionIfCallable(self._view_variable.CALLBACK_OPEN_CONFIG_WINDOW)
|
|
self.config_window.deiconify()
|
|
self.config_window.focus_set()
|
|
self.config_window.focus()
|
|
self.config_window.grab_set()
|
|
|
|
def closeConfigWindow(self):
|
|
callFunctionIfCallable(self._view_variable.CALLBACK_CLOSE_CONFIG_WINDOW)
|
|
self.config_window.withdraw()
|
|
self.config_window.grab_release()
|
|
|
|
|
|
|
|
|
|
def openSelectableLanguagesWindow(self, selectable_language_window_type):
|
|
# print("___________________________________open____________________________________________________")
|
|
# print("your", self._view_variable.IS_OPENED_SELECTABLE_YOUR_LANGUAGE_WINDOW)
|
|
# print("target", self._view_variable.IS_OPENED_SELECTABLE_TARGET_LANGUAGE_WINDOW)
|
|
if selectable_language_window_type == "your_language":
|
|
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.selectable_languages_window.createContainer(selectable_language_window_type)
|
|
self.selectable_languages_window.deiconify()
|
|
self.selectable_languages_window.focus_set()
|
|
self.selectable_languages_window.attributes("-topmost", True)
|
|
|
|
|
|
def closeSelectableLanguagesWindow(self):
|
|
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()
|
|
|
|
|
|
# print("______________________________________close_________________________________________________")
|
|
# print("your", self._view_variable.IS_OPENED_SELECTABLE_YOUR_LANGUAGE_WINDOW)
|
|
# print("target", self._view_variable.IS_OPENED_SELECTABLE_TARGET_LANGUAGE_WINDOW)
|
|
if self._view_variable.IS_OPENED_SELECTABLE_TARGET_LANGUAGE_WINDOW is not False or self._view_variable.IS_OPENED_SELECTABLE_YOUR_LANGUAGE_WINDOW is not False:
|
|
def callback():
|
|
self._view_variable.IS_OPENED_SELECTABLE_TARGET_LANGUAGE_WINDOW = False
|
|
self._view_variable.IS_OPENED_SELECTABLE_YOUR_LANGUAGE_WINDOW = False
|
|
self.after(500,callback)
|
|
|
|
|
|
|
|
def changeMainWindowWidgetsStatus(self, status, target_names):
|
|
_changeMainWindowWidgetsStatus(
|
|
vrct_gui=self,
|
|
settings=self.settings.main,
|
|
view_variable=self._view_variable,
|
|
status=status,
|
|
target_names=target_names,
|
|
)
|
|
|
|
def changeConfigWindowWidgetsStatus(self, status, target_names):
|
|
_changeConfigWindowWidgetsStatus(
|
|
config_window=self.config_window,
|
|
settings=self.settings.config_window,
|
|
view_variable=self._view_variable,
|
|
status=status,
|
|
target_names=target_names,
|
|
)
|
|
|
|
def printToTextbox(self, target_type, original_message=None, translated_message=None):
|
|
_printToTextbox(
|
|
vrct_gui=self,
|
|
settings=self.settings.main,
|
|
target_type=target_type,
|
|
original_message=original_message,
|
|
translated_message=translated_message,
|
|
tags=target_type,
|
|
)
|
|
|
|
def setDefaultActiveLanguagePresetTab(self, tab_no:str):
|
|
self.current_active_preset_tab = getattr(self, f"sls__presets_button_{tab_no}")
|
|
_setDefaultActiveTab(
|
|
active_tab_widget=self.current_active_preset_tab,
|
|
active_bg_color=self.settings.main.ctm.SLS__PRESETS_TAB_BG_ACTIVE_COLOR,
|
|
active_text_color=self.settings.main.ctm.SLS__PRESETS_TAB_ACTIVE_TEXT_COLOR
|
|
)
|
|
|
|
def enableMainWindowSidebarCompactMode(self):
|
|
self.sidebar_bg_container.grid_remove()
|
|
self.sidebar_compact_mode_bg_container.grid()
|
|
self.minimize_sidebar_button_container__for_closing.grid_remove()
|
|
self.minimize_sidebar_button_container__for_opening.grid()
|
|
|
|
def disableMainWindowSidebarCompactMode(self):
|
|
self.sidebar_compact_mode_bg_container.grid_remove()
|
|
self.sidebar_bg_container.grid()
|
|
self.minimize_sidebar_button_container__for_opening.grid_remove()
|
|
self.minimize_sidebar_button_container__for_closing.grid()
|
|
|
|
|
|
vrct_gui = VRCT_GUI() |