Merge branch 'view' into UI_2.0

This commit is contained in:
Sakamoto Shiina
2023-10-10 19:18:15 +09:00
20 changed files with 352 additions and 154 deletions

View File

@@ -222,7 +222,7 @@ class Config:
@UI_SCALING.setter
def UI_SCALING(self, value):
if value in ["80%", "90%", "100%", "110%", "120%"]:
if value in ["40%", "60%", "80%", "90%", "100%", "110%", "120%", "150%", "200%"]:
self._UI_SCALING = value
saveJson(self.PATH_CONFIG, inspect.currentframe().f_code.co_name, value)

View File

@@ -12,4 +12,12 @@ def get_key_by_value(dictionary, value):
return None
def callFunctionIfCallable(function, *args):
if callable(function) is True: function(*args)
if callable(function) is True: function(*args)
def isEven(number):
return number % 2 == 0
def makeEven(number, minus:bool=False):
if minus is True:
return number if isEven(number) else number - 1
return number if isEven(number) else number + 1

View File

@@ -49,7 +49,7 @@ class View():
self.settings.selectable_language_window = SimpleNamespace(
ctm=all_ctm.selectable_language_window,
uism=all_uism.config_window,
uism=all_uism.selectable_language_window,
**common_args
)
@@ -136,6 +136,7 @@ class View():
CALLBACK_SELECTED_SETTING_BOX_TAB=None,
VAR_ERROR_MESSAGE=StringVar(value=""),
VAR_VERSION=StringVar(value=config.VERSION),
VAR_CONFIG_WINDOW_TITLE=StringVar(value=i18n.t("config_window.config_title")),
# Side Menu Labels
@@ -163,7 +164,7 @@ class View():
VAR_LABEL_UI_SCALING=StringVar(value=i18n.t("config_window.ui_size.label")),
VAR_DESC_UI_SCALING=None,
LIST_UI_SCALING=["80%", "90%", "100%", "110%", "120%"],
LIST_UI_SCALING=["40%", "60%", "80%", "90%", "100%", "110%", "120%", "150%", "200%"],
CALLBACK_SET_UI_SCALING=None,
VAR_UI_SCALING=StringVar(value=config.UI_SCALING),

View File

@@ -6,8 +6,29 @@ from time import sleep
from .ui_utils import bindButtonReleaseFunction, bindEnterAndLeaveColor, bindButtonPressColor, getLatestWidth, getLatestHeight
from functools import partial
from utils import isEven, makeEven
class _CreateDropdownMenuWindow(CTkToplevel):
def __init__(self, settings, view_variable):
def __init__(self,
settings,
view_variable,
window_additional_y_pos,
window_border_width,
scrollbar_ipadx,
scrollbar_width,
value_ipadx,
value_ipady,
value_pady,
value_font_size,
window_bg_color,
window_border_color,
values_bg_color,
values_hovered_bg_color,
values_clicked_bg_color,
values_text_color,
):
super().__init__()
self.withdraw()
self.hide = True
@@ -22,6 +43,23 @@ class _CreateDropdownMenuWindow(CTkToplevel):
self.resizable(width=False, height=False)
self.window_additional_y_pos=window_additional_y_pos
self.window_border_width=window_border_width
self.scrollbar_ipadx=scrollbar_ipadx
self.scrollbar_width=scrollbar_width
self.value_ipadx=value_ipadx
self.value_ipady=value_ipady
self.value_pady=value_pady
self.value_font_size=value_font_size
self.window_bg_color=window_bg_color
self.window_border_color=window_border_color
self.values_bg_color=values_bg_color
self.values_hovered_bg_color=values_hovered_bg_color
self.values_clicked_bg_color=values_clicked_bg_color
self.values_text_color=values_text_color
self.settings = settings
self.attach_widget = None
self._view_variable = view_variable
@@ -55,6 +93,7 @@ class _CreateDropdownMenuWindow(CTkToplevel):
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,
attach_widget=self.dropdown_menu_widgets[dropdown_menu_widget_id].attach_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,
@@ -62,17 +101,46 @@ class _CreateDropdownMenuWindow(CTkToplevel):
)
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
def createDropdownMenuBox(self, dropdown_menu_widget_id, dropdown_menu_values, command, wrapper_widget, attach_widget, dropdown_menu_width=None, dropdown_menu_height=None, max_display_length=None):
self.attach_widget = attach_widget
self.wrapper_widget = wrapper_widget
self.update()
self.new_width = dropdown_menu_width if dropdown_menu_width is not None else self.attach_widget.winfo_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 = CTkFrame(self, corner_radius=0, fg_color=self.window_border_color, width=0, height=0)
self.dropdown_menu_container.grid(row=0, column=0, sticky="nsew")
self.dropdown_menu_container.grid_remove()
BORDER_WIDTH=self.window_border_width
self.scroll_frame_container = CTkScrollableFrame(
self.dropdown_menu_container,
corner_radius=0,
fg_color=self.window_bg_color,
width=0,
height=0,
border_width=0,
)
self.scroll_frame_container.grid(row=0, column=0, padx=BORDER_WIDTH, pady=BORDER_WIDTH, sticky="nsew")
self.scroll_frame_container._scrollbar.grid_configure(padx=self.scrollbar_ipadx)
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.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)
geometry_width = int(self.new_width + self.scroll_frame_container._scrollbar.winfo_width() + (BORDER_WIDTH*2) + (self.scrollbar_ipadx[0] + self.scrollbar_ipadx[1]))
geometry_height = int(self.new_height + (BORDER_WIDTH*2))
self.dropdown_menu_widgets[dropdown_menu_widget_id] = SimpleNamespace()
@@ -80,42 +148,30 @@ class _CreateDropdownMenuWindow(CTkToplevel):
widget=self.dropdown_menu_container,
command=command,
wrapper_widget=wrapper_widget,
attach_widget=attach_widget,
dropdown_menu_settings=SimpleNamespace(
dropdown_menu_width=dropdown_menu_width,
dropdown_menu_height=dropdown_menu_height,
max_display_length=max_display_length,
)
),
_settings=SimpleNamespace(
geometry_width=geometry_width,
geometry_height=geometry_height,
),
)
self.dropdown_menu_container.grid_remove()
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 = CTkFrame(self.scroll_frame_container, corner_radius=0, fg_color=self.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")
__dropdown_menu_value_wrapper = CTkFrame(self.dropdown_menu_values_wrapper, corner_radius=0, fg_color=self.values_bg_color, width=0, height=0)
__dropdown_menu_value_wrapper.grid(row=0, column=0, pady=self.value_pady, sticky="nsew")
setattr(self, f"{dropdown_menu_widget_id}__{0}", __dropdown_menu_value_wrapper)
@@ -126,34 +182,45 @@ class _CreateDropdownMenuWindow(CTkToplevel):
text="Aa",
height=0,
corner_radius=0,
font=CTkFont(family=self.settings.FONT_FAMILY, size=14, weight="normal"),
font=CTkFont(family=self.settings.FONT_FAMILY, size=self.value_font_size, weight="normal"),
anchor="w",
text_color=self.settings.ctm.BASIC_TEXT_COLOR,
text_color=self.values_text_color,
)
# setattr(self, f"l", __label_widget)
__label_widget.grid(row=1, column=0, padx=(8,0), sticky="w")
__label_widget.grid(row=1, column=0, padx=self.value_ipadx, pady=self.value_ipady, sticky="w")
label_height = getLatestHeight(__dropdown_menu_value_wrapper)
# for fixing 1px bug
if isEven(label_height) is False:
self.value_ipady = (self.value_ipady[0], self.value_ipady[1] - 1)
__dropdown_menu_value_wrapper.destroy()
# ______________________________________
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)
self.new_height = int(dropdown_menu_values_length * label_height)
else:
new_height = int(self.max_display_length * label_height)
self.new_height = int(self.max_display_length * label_height)
self.scroll_frame_container.configure(width=self.new_width, height=new_height)
# for fixing 1px bug
self.new_height = makeEven(self.new_height)
self.new_width = makeEven(self.new_width)
self.scroll_frame_container.configure(width=self.new_width, height=self.new_height)
# This is for CustomTkinter's spec change or bug fix.
self.scroll_frame_container._scrollbar.configure(height=0)
self.scroll_frame_container._scrollbar.configure(width=self.scrollbar_width)
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")
dropdown_menu_value_wrapper = CTkFrame(self.dropdown_menu_values_wrapper, corner_radius=0, fg_color=self.values_bg_color, width=0, height=0, cursor="hand2")
dropdown_menu_value_wrapper.grid(row=row, column=0, pady=self.value_pady, sticky="nsew")
setattr(self, f"{dropdown_menu_widget_id}__{row}", dropdown_menu_value_wrapper)
@@ -165,18 +232,17 @@ class _CreateDropdownMenuWindow(CTkToplevel):
text=dropdown_menu_value,
height=0,
corner_radius=0,
font=CTkFont(family=self.settings.FONT_FAMILY, size=14, weight="normal"),
font=CTkFont(family=self.settings.FONT_FAMILY, size=self.value_font_size, weight="normal"),
anchor="w",
text_color=self.settings.ctm.BASIC_TEXT_COLOR,
text_color=self.values_text_color,
)
# setattr(self, f"l", label_widget)
label_widget.grid(row=1, column=0, padx=(8,0), sticky="w")
label_widget.grid(row=1, column=0, padx=self.value_ipadx, pady=self.value_ipady, 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)
bindEnterAndLeaveColor([dropdown_menu_value_wrapper, label_widget], self.values_hovered_bg_color, self.values_bg_color)
bindButtonPressColor([dropdown_menu_value_wrapper, label_widget], self.values_clicked_bg_color, self.values_bg_color)
@@ -191,19 +257,23 @@ class _CreateDropdownMenuWindow(CTkToplevel):
def show(self, dropdown_menu_widget_id, target_widget):
def show(self, dropdown_menu_widget_id):
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
target_data = self.dropdown_menu_widgets[dropdown_menu_widget_id]
self.attach_widget = target_data.attach_widget
target_data.widget.grid()
self.active_dropdown_menu_widget = target_data.widget
self.geometry("{}x{}".format(target_data._settings.geometry_width, target_data._settings.geometry_height))
self.deiconify()
self._adjustToTargetWidgetGeometry()
@@ -257,7 +327,7 @@ class _CreateDropdownMenuWindow(CTkToplevel):
self.attach_widget_y_pos = self.attach_widget.winfo_rooty()
self.y_pos = int(self.attach_widget_y_pos + self.attach_widget_height + 4)
self.y_pos = int(self.attach_widget_y_pos + self.attach_widget_height + self.window_additional_y_pos)
if self.wrapper_widget_y_pos > self.y_pos or self.y_pos > self.wrapper_widget_bottom_y_pos:
self.hideTemporarily()

View File

@@ -1,8 +1,25 @@
from customtkinter import CTkToplevel, CTkFrame, CTkLabel, CTkFont
from time import sleep
from .ui_utils import getLatestWidth, getLatestHeight
from utils import isEven
class _CreateErrorWindow(CTkToplevel):
def __init__(self, settings, view_variable, wrapper_widget):
def __init__(
self,
settings,
view_variable,
wrapper_widget,
message_ipadx,
message_ipady,
message_font_size,
message_bg_color,
message_text_color,
):
super().__init__()
self.withdraw()
self.hide = True
@@ -21,6 +38,13 @@ class _CreateErrorWindow(CTkToplevel):
self.wrapper_widget = wrapper_widget
self.message_ipadx = message_ipadx
self.message_ipady = message_ipady
self.message_font_size = message_font_size
self.message_bg_color = message_bg_color
self.message_text_color = message_text_color
self.attach_widget_width = None
self.attach_widget_height = None
@@ -31,11 +55,10 @@ class _CreateErrorWindow(CTkToplevel):
self.rowconfigure(0,weight=1)
self.columnconfigure(0,weight=1)
self.grid_rowconfigure(0,weight=1)
self.grid_columnconfigure(0,weight=1)
# The color code [#bb4448] is a mixture of [#a9555c] and [#cc3333] (for a redder shade).
self.modal_container = CTkFrame(self, corner_radius=0, fg_color="#bb4448", width=0, height=0)
self.modal_container = CTkFrame(self, corner_radius=0, fg_color=self.message_bg_color, width=0, height=0)
self.modal_container.grid(row=0, column=0, sticky="nsew")
@@ -45,11 +68,13 @@ class _CreateErrorWindow(CTkToplevel):
textvariable=self._view_variable.VAR_ERROR_MESSAGE,
height=0,
corner_radius=0,
font=CTkFont(family=self.settings.FONT_FAMILY, size=12, weight="normal"),
font=CTkFont(family=self.settings.FONT_FAMILY, size=self.message_font_size, weight="normal"),
anchor="w",
text_color="white",
justify="left",
text_color=self.message_text_color,
)
self.modal_container_label_wrapper.grid(row=0, column=0, padx=10, pady=6, sticky="nsew")
self.modal_container_label_wrapper.grid(row=0, column=0, padx=self.message_ipadx, pady=self.message_ipady, sticky="nsew")
@@ -65,6 +90,21 @@ class _CreateErrorWindow(CTkToplevel):
self.hide = False
label_width = getLatestWidth(self.modal_container_label_wrapper)
label_height = getLatestHeight(self.modal_container_label_wrapper)
# for fixing 1px bug
if isEven(label_width) is False:
self.modal_container_label_wrapper.grid(padx=(self.message_ipadx[0], self.message_ipadx[1]-1))
else:
self.modal_container_label_wrapper.grid(padx=self.message_ipadx)
# for fixing 1px bug
if isEven(label_height) is False:
self.modal_container_label_wrapper.grid(pady=(self.message_ipady[0], self.message_ipady[1]-1))
else:
self.modal_container_label_wrapper.grid(pady=self.message_ipady)
for i in range(0,101,20):
if not self.winfo_exists():

View File

@@ -29,10 +29,10 @@ class _CreateModalWindow(CTkToplevel):
self.height_new = self.attach_window.winfo_height()
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,weight=1)
self.columnconfigure(0,weight=1)
self.grid_rowconfigure(0,weight=1)
self.grid_columnconfigure(0,weight=1)
self.modal_container = CTkFrame(self, corner_radius=0, fg_color="black", width=0, height=0)
self.modal_container.grid(row=0, column=0, sticky="nsew")

View File

@@ -43,7 +43,7 @@ class _CreateSelectableLanguagesWindow(CTkToplevel):
self.height_new = self.attach.winfo_height()
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))
@@ -70,15 +70,15 @@ class _CreateSelectableLanguagesWindow(CTkToplevel):
def _createContainer(self):
self.rowconfigure(0, minsize=50)
self.rowconfigure(1, weight=1)
self.columnconfigure(0, weight=1)
self.grid_rowconfigure(0, minsize=self.settings.uism.TOP_BAR_MIN_HEIGHT)
self.grid_rowconfigure(1, weight=1)
self.grid_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.top_container.grid_rowconfigure((0,2), weight=1)
self.top_container.grid_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, cursor="hand2")
self.go_back_button_container.grid(row=1, column=0)
@@ -87,11 +87,11 @@ class _CreateSelectableLanguagesWindow(CTkToplevel):
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"),
font=CTkFont(family=self.settings.FONT_FAMILY, size=self.settings.uism.GO_BACK_BUTTON_LABEL_FONT_SIZE, weight="normal"),
anchor="w",
text_color=self.settings.ctm.BASIC_TEXT_COLOR,
)
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=self.settings.uism.GO_BACK_BUTTON_IPADX, pady=self.settings.uism.GO_BACK_BUTTON_IPADY)
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)
@@ -105,14 +105,14 @@ class _CreateSelectableLanguagesWindow(CTkToplevel):
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_container.grid_columnconfigure((0,2), weight=1)
self.title_container.grid_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"),
font=CTkFont(family=self.settings.FONT_FAMILY, size=self.settings.uism.TITLE_FONT_SIZE, weight="normal"),
anchor="w",
text_color=self.settings.ctm.TITLE_TEXT_COLOR,
)
@@ -124,6 +124,11 @@ class _CreateSelectableLanguagesWindow(CTkToplevel):
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")
self.scroll_frame_container._scrollbar.grid_configure(padx=self.settings.uism.SCROLLBAR_IPADX)
# This is for CustomTkinter's spec change or bug fix.
self.scroll_frame_container._scrollbar.configure(height=0)
self.scroll_frame_container._scrollbar.configure(width=self.settings.uism.SCROLLBAR_WIDTH)
self.container = CTkFrame(self.scroll_frame_container, corner_radius=0, fg_color=self.settings.ctm.MAIN_BG_COLOR, width=0, height=0)
@@ -138,25 +143,25 @@ class _CreateSelectableLanguagesWindow(CTkToplevel):
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, cursor="hand2")
self.wrapper.grid(row=row, column=column, ipadx=6, ipady=6, sticky="nsew")
self.wrapper.grid(row=row, column=column, sticky="nsew")
setattr(self, f"{row}_{column}", self.wrapper)
self.wrapper.rowconfigure((0,2), weight=1)
self.wrapper.grid_rowconfigure((0,2), weight=1)
selectable_language_name_for_text = selectable_language_name.replace("\n", " ")
label_widget = CTkLabel(
self.wrapper,
text=selectable_language_name_for_text,
height=0,
corner_radius=0,
font=CTkFont(family=self.settings.FONT_FAMILY, size=14, weight="normal"),
font=CTkFont(family=self.settings.FONT_FAMILY, size=self.settings.uism.VALUES_TEXT_FONT_SIZE, 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))
label_widget.grid(row=1, column=0, padx=self.settings.uism.VALUES_TEXT_IPADX, pady=self.settings.uism.VALUES_TEXT_IPADY)

View File

@@ -102,12 +102,12 @@ def _changeMainWindowWidgetsStatus(vrct_gui, settings, view_variable, status, ta
if status == "disabled":
vrct_gui.sidebar_config_button_wrapper.configure(cursor="")
vrct_gui.sidebar_config_button.configure(
image=CTkImage((settings.image_file.CONFIGURATION_ICON_DISABLED)),
image=CTkImage(settings.image_file.CONFIGURATION_ICON_DISABLED, size=COMPACT_MODE_ICON_SIZE_TUPLES),
)
elif status == "normal":
vrct_gui.sidebar_config_button_wrapper.configure(cursor="hand2")
vrct_gui.sidebar_config_button.configure(
image=CTkImage((settings.image_file.CONFIGURATION_ICON)),
image=CTkImage(settings.image_file.CONFIGURATION_ICON, size=COMPACT_MODE_ICON_SIZE_TUPLES),
)

View File

@@ -27,32 +27,26 @@ def _printToTextbox(vrct_gui, settings, target_type, original_message=None, tran
# common tag settings
# target_textbox._textbox.tag_configure("START", spacing1=16)
target_textbox._textbox.tag_configure("LABEL", font=CTkFont(family=settings.FONT_FAMILY, size=12, weight="normal"))
target_textbox._textbox.tag_configure("TIMESTAMP", font=CTkFont(family=settings.FONT_FAMILY, size=12, weight="normal"), foreground=settings.ctm.TEXTBOX_TIMESTAMP_TEXT_COLOR)
target_textbox._textbox.tag_configure("SECONDARY_TEXT_FONT", font=CTkFont(family=settings.FONT_FAMILY, size=12, weight="normal"))
target_textbox._textbox.tag_configure("MAIN_TEXT_FONT", font=CTkFont(family=settings.FONT_FAMILY, size=16, weight="normal"))
target_textbox._textbox.tag_configure("LABEL", font=CTkFont(family=settings.FONT_FAMILY, size=settings.uism.TEXTBOX_FONT_SIZE__LABEL, weight="normal"))
target_textbox._textbox.tag_configure("TIMESTAMP", font=CTkFont(family=settings.FONT_FAMILY, size=settings.uism.TEXTBOX_FONT_SIZE__TIMESTAMP, weight="normal"), foreground=settings.ctm.TEXTBOX_TIMESTAMP_TEXT_COLOR)
target_textbox._textbox.tag_configure("SECONDARY_TEXT_FONT", font=CTkFont(family=settings.FONT_FAMILY, size=settings.uism.TEXTBOX_FONT_SIZE__SECONDARY_TEXT_FONT, weight="normal"))
target_textbox._textbox.tag_configure("MAIN_TEXT_FONT", font=CTkFont(family=settings.FONT_FAMILY, size=settings.uism.TEXTBOX_FONT_SIZE__MAIN_TEXT_FONT, weight="normal"))
# System Tag Settings
target_textbox.tag_config("SYSTEM_FOR_FIRST_INSERT", spacing1=16)
target_textbox.tag_config("FIRST_INSERT_SPACING", spacing1=settings.uism.TEXTBOX_FIRST_INSERT_SPACING)
target_textbox.tag_config("SYSTEM_TAG", foreground=settings.ctm.TEXTBOX_SYSTEM_TAG_TEXT_COLOR)
target_textbox.tag_config("SYSTEM_TEXT", foreground=settings.ctm.TEXTBOX_TEXT_SUB_COLOR)
target_textbox._textbox.tag_configure("SYSTEM_TEXT_FONT", font=CTkFont(family=settings.FONT_FAMILY, size=12, weight="normal"))
target_textbox._textbox.tag_configure("SYSTEM_TEXT_FONT", font=CTkFont(family=settings.FONT_FAMILY, size=settings.uism.TEXTBOX_FONT_SIZE__SYSTEM_TEXT_FONT, weight="normal"))
# Sent Tag Settings
target_textbox.tag_config("SENT_FOR_FIRST_INSERT", spacing1=16)
target_textbox.tag_config("SENT_TAG", foreground=settings.ctm.TEXTBOX_SENT_TAG_TEXT_COLOR)
target_textbox.tag_config("SENT_TEXT", foreground=settings.ctm.TEXTBOX_TEXT_COLOR)
target_textbox.tag_config("SENT_SUB_TEXT", foreground=settings.ctm.TEXTBOX_TEXT_SUB_COLOR)
target_textbox._textbox.tag_configure("SENT_MAIN_TEXT_FONT", font=CTkFont(family=settings.FONT_FAMILY, size=16, weight="normal"))
target_textbox._textbox.tag_configure("SENT_SECONDARY_TEXT_FONT", font=CTkFont(family=settings.FONT_FAMILY, size=12, weight="normal"))
# Received Tag Settings
target_textbox.tag_config("RECEIVED_FOR_FIRST_INSERT", spacing1=16)
target_textbox.tag_config("RECEIVED_TAG", foreground=settings.ctm.TEXTBOX_RECEIVED_TAG_TEXT_COLOR)
target_textbox.tag_config("RECEIVED_TEXT", foreground=settings.ctm.TEXTBOX_TEXT_COLOR)
target_textbox.tag_config("RECEIVED_SUB_TEXT", foreground=settings.ctm.TEXTBOX_TEXT_SUB_COLOR)
target_textbox._textbox.tag_configure("RECEIVED_MAIN_TEXT_FONT", font=CTkFont(family=settings.FONT_FAMILY, size=16, weight="normal"))
target_textbox._textbox.tag_configure("RECEIVED_SECONDARY_TEXT_FONT", font=CTkFont(family=settings.FONT_FAMILY, size=12, weight="normal"))
FAKE_MARGIN = " "
# insert
@@ -60,32 +54,32 @@ def _printToTextbox(vrct_gui, settings, target_type, original_message=None, tran
target_textbox.insert("end", "\n")
match (target_type):
case "SYSTEM":
target_textbox.insert("end", "System", ("SYSTEM_TAG", "SYSTEM_FOR_FIRST_INSERT", "JUSTIFY_CENTER"))
target_textbox.insert("end", "System", ("SYSTEM_TAG", "FIRST_INSERT_SPACING", "JUSTIFY_CENTER", "LABEL"))
target_textbox.insert("end", FAKE_MARGIN+original_message+FAKE_MARGIN, ("SYSTEM_TEXT", "SYSTEM_TEXT_FONT", "JUSTIFY_CENTER"))
target_textbox.insert("end", now_hm, ("TIMESTAMP", "JUSTIFY_CENTER"))
case "SENT":
target_textbox.insert("end", now_hm, ("TIMESTAMP", "SENT_FOR_FIRST_INSERT", "JUSTIFY_RIGHT"))
target_textbox.insert("end", FAKE_MARGIN+"Sent", ("SENT_TAG"))
target_textbox.insert("end", now_hm, ("TIMESTAMP", "FIRST_INSERT_SPACING", "JUSTIFY_RIGHT"))
target_textbox.insert("end", FAKE_MARGIN+"Sent", ("SENT_TAG", "LABEL"))
target_textbox.insert("end", "\n")
if is_only_one_message is False:
target_textbox.insert("end", original_message, ("SENT_SUB_TEXT", "SENT_SECONDARY_TEXT_FONT", "JUSTIFY_RIGHT"))
target_textbox.insert("end", original_message, ("SENT_SUB_TEXT", "SECONDARY_TEXT_FONT", "JUSTIFY_RIGHT"))
target_textbox.insert("end", "\n")
target_textbox.insert("end", translated_message, ("SENT_TEXT", "SENT_MAIN_TEXT_FONT", "JUSTIFY_RIGHT"))
target_textbox.insert("end", translated_message, ("SENT_TEXT", "MAIN_TEXT_FONT", "JUSTIFY_RIGHT"))
else:
target_textbox.insert("end", original_message, ("SENT_TEXT", "SENT_MAIN_TEXT_FONT", "JUSTIFY_RIGHT"))
target_textbox.insert("end", original_message, ("SENT_TEXT", "MAIN_TEXT_FONT", "JUSTIFY_RIGHT"))
case "RECEIVED":
target_textbox.insert("end", "Received", ("RECEIVED_TAG", "RECEIVED_FOR_FIRST_INSERT", "JUSTIFY_LEFT"))
target_textbox.insert("end", "Received", ("RECEIVED_TAG", "FIRST_INSERT_SPACING", "JUSTIFY_LEFT", "LABEL"))
target_textbox.insert("end", FAKE_MARGIN+now_hm, ("TIMESTAMP"))
if is_only_one_message is False:
target_textbox.insert("end", "\n")
target_textbox.insert("end", original_message, ("RECEIVED_SUB_TEXT", "RECEIVED_SECONDARY_TEXT_FONT"))
target_textbox.insert("end", original_message, ("RECEIVED_SUB_TEXT", "SECONDARY_TEXT_FONT"))
target_textbox.insert("end", "\n")
target_textbox.insert("end", translated_message, ("RECEIVED_TEXT", "RECEIVED_MAIN_TEXT_FONT", "JUSTIFY_LEFT"))
target_textbox.insert("end", translated_message, ("RECEIVED_TEXT", "MAIN_TEXT_FONT", "JUSTIFY_LEFT"))
else:
target_textbox.insert("end", "\n")
target_textbox.insert("end", original_message, ("RECEIVED_TEXT", "RECEIVED_MAIN_TEXT_FONT", "JUSTIFY_LEFT"))
target_textbox.insert("end", original_message, ("RECEIVED_TEXT", "MAIN_TEXT_FONT", "JUSTIFY_LEFT"))
target_textbox.configure(state="disabled")
target_textbox.see("end")

View File

@@ -13,8 +13,7 @@ class ConfigWindow(CTkToplevel):
# configure window
self.after(200, lambda: self.iconbitmap(getImagePath("vrct_logo_mark_black.ico")))
self.title("Settings")
self.geometry(f"{1080}x{680}")
self.geometry(f"{settings.uism.DEFAULT_WIDTH}x{settings.uism.DEFAULT_HEIGHT}")
self.configure(fg_color="#ff7f50")
@@ -23,10 +22,11 @@ class ConfigWindow(CTkToplevel):
self.settings = settings
self._view_variable = view_variable
self.title(self._view_variable.VAR_CONFIG_WINDOW_TITLE.get())
# When the configuration window's compact mode is turned on, it will call `grid_remove()` on each widget appended to this array. In the opposite case, `grid()` will be called.
self.additional_widgets = []
createConfigWindowTitle(config_window=self, settings=self.settings)
createConfigWindowTitle(config_window=self, settings=self.settings, view_variable=self._view_variable)
createSettingBoxTopBar(config_window=self, settings=self.settings, view_variable=self._view_variable)

View File

@@ -1,9 +1,9 @@
from customtkinter import CTkFont, CTkFrame, CTkLabel, CTkImage
def createConfigWindowTitle(config_window, settings):
def createConfigWindowTitle(config_window, settings, view_variable):
config_window.grid_columnconfigure(0, weight=0, minsize=settings.uism.TOP_BAR_SIDE__WIDTH)
config_window.grid_rowconfigure(0, weight=0, minsize=settings.uism.TOP_BAR__HEIGHT)
config_window.grid_columnconfigure(0, weight=0, minsize=settings.uism.TOP_BAR_SIDE_AREA_MIN_WIDTH)
config_window.grid_rowconfigure(0, weight=0, minsize=settings.uism.TOP_BAR__MIN_HEIGHT)
config_window.side_menu_config_window_title_logo_frame = CTkFrame(config_window, corner_radius=0, fg_color=settings.ctm.TOP_BAR_BG_COLOR, width=0, height=0)
config_window.side_menu_config_window_title_logo_frame.grid(row=0, column=0, sticky="nsew")
@@ -18,7 +18,8 @@ def createConfigWindowTitle(config_window, settings):
config_window.side_menu_config_window_title_logo_wrapper.grid_rowconfigure(0,weight=1)
config_window.side_menu_config_window_title = CTkLabel(
config_window.side_menu_config_window_title_logo_frame,
text="Settings",
# text="Settings",
textvariable=view_variable.VAR_CONFIG_WINDOW_TITLE,
height=0,
anchor="w",
font=CTkFont(family=settings.FONT_FAMILY, size=settings.uism.TOP_BAR_SIDE__CONFIG_TITLE_FONT_SIZE, weight="bold"),

View File

@@ -27,8 +27,8 @@ class _SettingBoxGenerator():
setting_box_frame_wrapper = CTkFrame(setting_box_frame, corner_radius=0, fg_color=self.settings.ctm.SB__BG_COLOR, width=0, height=0)
setting_box_frame_wrapper.grid(row=0, column=0, padx=self.settings.uism.SB__IPADX, pady=self.settings.uism.SB__IPADY, sticky="ew")
setting_box_frame_wrapper.grid_columnconfigure(0, weight=0, minsize=int(self.settings.uism.SB__MAIN_WIDTH / 2))
setting_box_frame_wrapper.grid_columnconfigure(2, weight=1, minsize=int(self.settings.uism.SB__MAIN_WIDTH / 2))
setting_box_frame_wrapper.grid_columnconfigure(0, weight=0, minsize=int(self.settings.uism.MAIN_AREA_MIN_WIDTH / 2))
setting_box_frame_wrapper.grid_columnconfigure(2, weight=1, minsize=int(self.settings.uism.MAIN_AREA_MIN_WIDTH / 2))
setting_box_frame_wrapper_fix_border = CTkFrame(setting_box_frame, corner_radius=0, width=0, height=0)
setting_box_frame_wrapper_fix_border.grid(row=1, column=0, sticky="ew")
@@ -40,7 +40,7 @@ class _SettingBoxGenerator():
setting_box_item_frame = CTkFrame(setting_box_frame_wrapper, corner_radius=0, width=0, height=0, fg_color=self.settings.ctm.SB__BG_COLOR)
setting_box_item_frame.grid(row=0, column=2, padx=0, sticky="nsew")
setting_box_item_frame.rowconfigure((0,2), weight=1)
setting_box_item_frame.grid_rowconfigure((0,2), weight=1)
setting_box_item_frame.grid_columnconfigure(0, weight=1)
return (setting_box_frame, setting_box_item_frame)
@@ -67,7 +67,7 @@ class _SettingBoxGenerator():
anchor="w",
justify="left",
# height=0,
wraplength=int(self.settings.uism.SB__MAIN_WIDTH / 2),
wraplength=int(self.settings.uism.MAIN_AREA_MIN_WIDTH / 2),
font=CTkFont(family=self.settings.FONT_FAMILY, size=self.settings.uism.SB__DESC_FONT_SIZE, weight="normal"),
text_color=self.settings.ctm.LABELS_DESC_TEXT_COLOR
)
@@ -82,13 +82,6 @@ class _SettingBoxGenerator():
variable.set(value)
command(value)
self.dropdown_menu_window.createDropdownMenuBox(
dropdown_menu_widget_id=optionmenu_attr_name,
dropdown_menu_values=dropdown_menu_values,
command=adjustedCommand,
wrapper_widget=self.config_window.main_bg_container,
dropdown_menu_width=dropdown_menu_width,
)
option_menu_widget = createOptionMenuBox(
parent_widget=setting_box_item_frame,
@@ -108,13 +101,21 @@ class _SettingBoxGenerator():
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")
setattr(self.config_window, optionmenu_attr_name, option_menu_widget)
self.dropdown_menu_window.createDropdownMenuBox(
dropdown_menu_widget_id=optionmenu_attr_name,
dropdown_menu_values=dropdown_menu_values,
command=adjustedCommand,
wrapper_widget=self.config_window.main_bg_container,
attach_widget=option_menu_widget,
dropdown_menu_width=dropdown_menu_width,
)
return setting_box_frame

View File

@@ -11,12 +11,11 @@ def createMainWindowWidgets(vrct_gui, settings, view_variable):
vrct_gui.iconbitmap(getImagePath("vrct_logo_mark_black.ico"))
vrct_gui.title("VRCT")
vrct_gui.geometry(f"{880}x{640}")
vrct_gui.minsize(400, 175)
vrct_gui.minsize(200, 200)
# Main Container
vrct_gui.grid_columnconfigure(1, weight=1)
vrct_gui.grid_columnconfigure(1, weight=1, minsize=settings.uism.MAIN_AREA_MIN_WIDTH)
vrct_gui.configure(fg_color="#ff7f50")
@@ -35,7 +34,7 @@ def createMainWindowWidgets(vrct_gui, settings, view_variable):
vrct_gui.main_topbar_container.columnconfigure(1,weight=1)
vrct_gui.main_topbar_container.grid_columnconfigure(1,weight=1)
vrct_gui.main_topbar_center_container = CTkFrame(vrct_gui.main_topbar_container, corner_radius=0, fg_color=settings.ctm.MAIN_BG_COLOR, width=0, height=0)
vrct_gui.main_topbar_center_container.grid(row=0, column=1, sticky="nsew")
@@ -88,7 +87,7 @@ def createMainWindowWidgets(vrct_gui, settings, view_variable):
main_topbar_column+=1
vrct_gui.update_available_container.rowconfigure((0,2), weight=1)
vrct_gui.update_available_container.grid_rowconfigure((0,2), weight=1)
vrct_gui.update_available_icon = CTkLabel(
vrct_gui.update_available_container,

View File

@@ -51,10 +51,10 @@ def createSidebarLanguagesSettings(settings, main_window, view_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(1, weight=1)
sls__box.grid_columnconfigure(1, weight=1)
sls__box_wrapper = CTkFrame(sls__box, corner_radius=0, fg_color=settings.ctm.SLS__BOX_BG_COLOR, width=0, height=0)
sls__box_wrapper.grid(row=2, column=1, padx=10, pady=settings.uism.SLS__BOX_IPADY, sticky="ew")
sls__box_wrapper.grid(row=2, column=1, padx=settings.uism.SLS__BOX_IPADX, pady=settings.uism.SLS__BOX_IPADY, sticky="ew")
sls__box_wrapper.grid_columnconfigure(0, weight=1)
@@ -86,13 +86,13 @@ def createSidebarLanguagesSettings(settings, main_window, view_variable):
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,0),
optionmenu_ipady=2,
optionmenu_ipady=settings.uism.SLS__BOX_OPTION_MENU_IPADY,
variable=variable,
font_family=settings.FONT_FAMILY,
font_size=settings.uism.SLS__BOX_DROPDOWN_MENU_FONT_SIZE,
font_size=settings.uism.SLS__BOX_OPTION_MENU_FONT_SIZE,
text_color=settings.ctm.LABELS_TEXT_COLOR,
image_file=settings.image_file.ARROW_LEFT.rotate(180),
image_size=(20,20),
image_size=settings.uism.SLS__BOX_OPTION_MENU_ARROW_IMAGE_SIZE,
optionmenu_clicked_command=open_selectable_language_window_command,
optionmenu_position="center",
@@ -127,7 +127,7 @@ def createSidebarLanguagesSettings(settings, main_window, view_variable):
# Presets buttons
main_window.sidebar_bg_container.grid_rowconfigure(2, weight=1)
main_window.sls__presets_buttons_container = CTkFrame(main_window.sls__container, corner_radius=0, fg_color=settings.ctm.SIDEBAR_BG_COLOR, width=0, height=30)
main_window.sls__presets_buttons_container = CTkFrame(main_window.sls__container, corner_radius=0, fg_color=settings.ctm.SIDEBAR_BG_COLOR, width=0, height=settings.uism.SLS__PRESET_TAB_NUMBER_HEIGHT)
main_window.sls__presets_buttons_container.grid(row=1, column=0, sticky="nsew")
main_window.sls__presets_buttons_box = CTkFrame(main_window.sls__presets_buttons_container, corner_radius=0, fg_color=settings.ctm.SIDEBAR_BG_COLOR, width=0, height=0)
@@ -165,10 +165,10 @@ def createSidebarLanguagesSettings(settings, main_window, view_variable):
preset_tab_attr_name,
CTkFrame(
main_window.sls__presets_buttons_box,
corner_radius=6,
corner_radius=settings.uism.SLS__PRESET_TAB_NUMBER_CORNER_RADIUS,
fg_color=settings.ctm.SLS__PRESETS_TAB_BG_PASSIVE_COLOR,
width=0,
height=36,
height=settings.uism.SLS__PRESET_TAB_NUMBER_ADJUSTED_HEIGHT,
cursor="hand2",
)
)

View File

@@ -5,7 +5,7 @@ def createEntryMessageBox(settings, main_window):
main_window.main_entry_message_container.grid(row=2, column=0, sticky="ew")
main_window.main_entry_message_container.columnconfigure(0, weight=1)
main_window.main_entry_message_container.grid_columnconfigure(0, weight=1)
main_window.entry_message_box = CTkEntry(
main_window.main_entry_message_container,
border_color=settings.ctm.TEXTBOX_ENTRY_BORDER_COLOR,

View File

@@ -16,8 +16,8 @@ def createSidebar(settings, main_window, view_variable):
main_window.sidebar_compact_mode_bg_container = CTkFrame(main_window.sidebar_bg_container_wrapper, corner_radius=0, fg_color=settings.ctm.SIDEBAR_BG_COLOR, width=0, height=0)
main_window.sidebar_bg_container.grid_columnconfigure(0, weight=0, minsize=settings.uism.SIDEBAR_WIDTH)
main_window.sidebar_compact_mode_bg_container.grid_columnconfigure(0, weight=0, minsize=settings.uism.COMPACT_MODE_SIDEBAR_WIDTH)
main_window.sidebar_bg_container.grid_columnconfigure(0, weight=0, minsize=settings.uism.SIDEBAR_MIN_WIDTH)
main_window.sidebar_compact_mode_bg_container.grid_columnconfigure(0, weight=0, minsize=settings.uism.COMPACT_MODE_SIDEBAR_MIN_WIDTH)
createSidebarFeatures(settings, main_window, view_variable)

View File

@@ -114,7 +114,7 @@ def createTextbox(settings, main_window, view_variable):
target_widget.columnconfigure((0,2), weight=1)
target_widget.grid_columnconfigure((0,2), weight=1)
setattr(main_window, "label_widget", CTkLabel(
target_widget,
textvariable=textbox_setting["textvariable"],

View File

@@ -281,6 +281,12 @@ class ColorThemeManager():
self.config_window.SIDE_MENU_SELECTED_MARK_ACTIVE_BG_COLOR = self.main.SF__SWITCH_BOX_ACTIVE_BG_COLOR
# Error Message Window for Config Window
# The color code [#bb4448] is a mixture of [#a9555c] and [#cc3333] (for a redder shade).
self.config_window.SB__ERROR_MESSAGE_BG_COLOR = "#bb4448"
self.config_window.SB__ERROR_MESSAGE_TEXT_COLOR = "#fff"

View File

@@ -6,6 +6,7 @@ class UiScalingManager():
self.SCALING_FLOAT = max(scaling_float, 0.4)
self.main = SimpleNamespace()
self.config_window = SimpleNamespace()
self.selectable_language_window = SimpleNamespace()
self.modal_window = SimpleNamespace()
self._calculatedUiSizes()
@@ -22,6 +23,8 @@ class UiScalingManager():
# Main
self.main.MAIN_AREA_MIN_WIDTH = self._calculateUiSize(640)
self.main.TEXTBOX_PADX = self._calculateUiSize(16)
self.main.TEXTBOX_CORNER_RADIUS = self._calculateUiSize(6)
@@ -30,6 +33,13 @@ class UiScalingManager():
self.main.TEXTBOX_TAB_PADX = self._calculateUiSize(10)
self.main.TEXTBOX_TAB_PADY = (self._calculateUiSize(4), self._calculateUiSize(10))
self.main.TEXTBOX_FIRST_INSERT_SPACING = self._calculateUiSize(16)
self.main.TEXTBOX_FONT_SIZE__LABEL = self._calculateUiSize(12)
self.main.TEXTBOX_FONT_SIZE__TIMESTAMP = self._calculateUiSize(12)
self.main.TEXTBOX_FONT_SIZE__SYSTEM_TEXT_FONT = self._calculateUiSize(12)
self.main.TEXTBOX_FONT_SIZE__SECONDARY_TEXT_FONT = self._calculateUiSize(12)
self.main.TEXTBOX_FONT_SIZE__MAIN_TEXT_FONT = self._calculateUiSize(16)
self.main.TEXTBOX_ENTRY_FONT_SIZE = self._calculateUiSize(16)
self.main.TEXTBOX_ENTRY_HEIGHT = self._calculateUiSize(40)
self.main.TEXTBOX_ENTRY_PADX = self.main.TEXTBOX_PADX
@@ -39,8 +49,8 @@ class UiScalingManager():
# Sidebar
self.main.SIDEBAR_WIDTH = self._calculateUiSize(230)
self.main.COMPACT_MODE_SIDEBAR_WIDTH = self._calculateUiSize(60)
self.main.SIDEBAR_MIN_WIDTH = self._calculateUiSize(230)
self.main.COMPACT_MODE_SIDEBAR_MIN_WIDTH = self._calculateUiSize(60)
# Sidebar Features
self.main.SF__LOGO_MAX_SIZE = self._calculateUiSize(120)
@@ -64,12 +74,18 @@ class UiScalingManager():
self.main.SLS__TITLE_PADY = (self._calculateUiSize(12), self._calculateUiSize(6))
self.main.SLS__PRESET_TAB_NUMBER_FONT_SIZE = self._calculateUiSize(16)
self.main.SLS__PRESET_TAB_NUMBER_HEIGHT = self._calculateUiSize(30)
self.main.SLS__PRESET_TAB_NUMBER_CORNER_RADIUS = self._calculateUiSize(6)
self.main.SLS__PRESET_TAB_NUMBER_ADJUSTED_HEIGHT = self._calculateUiSize(36)
self.main.SLS__BOX_SECTION_TITLE_FONT_SIZE = self._calculateUiSize(16)
self.main.SLS__BOX_SECTION_TITLE_BOTTOM_PADY = self._calculateUiSize(10)
self.main.SLS__BOX_IPADX = self._calculateUiSize(10)
self.main.SLS__BOX_IPADY = (self._calculateUiSize(8),self._calculateUiSize(18))
self.main.SLS__BOX_DROPDOWN_MENU_FONT_SIZE = self._calculateUiSize(14)
self.main.SLS__BOX_DROPDOWN_MENU_WIDTH = self._calculateUiSize(200)
self.main.SLS__BOX_OPTION_MENU_FONT_SIZE = self._calculateUiSize(14)
self.main.SLS__BOX_OPTION_MENU_IPADY = self._calculateUiSize(2)
self.main.SLS__BOX_OPTION_MENU_ARROW_IMAGE_SIZE = (self._calculateUiSize(20), self._calculateUiSize(20))
# self.main.SLS__BOX_OPTION_MENU_WIDTH = self._calculateUiSize(200)
self.main.SLS__BOX_ARROWS_PADY = self._calculateUiSize(10)
self.main.SLS__BOX_ARROWS_IMAGE_SIZE = self.dupTuple(self._calculateUiSize(16))
self.main.SLS__BOX_ARROWS_DESC_FONT_SIZE = self._calculateUiSize(12)
@@ -102,14 +118,34 @@ class UiScalingManager():
self.main.MINIMIZE_SIDEBAR_BUTTON_ICON_SIZE_Y = self._calculateUiSize(26)
# Selectable Language Window
self.selectable_language_window.TOP_BAR_MIN_HEIGHT = self._calculateUiSize(50)
self.selectable_language_window.SCROLLBAR_IPADX = (self._calculateUiSize(2), self._calculateUiSize(2))
self.selectable_language_window.SCROLLBAR_WIDTH = self._calculateUiSize(16)
self.selectable_language_window.GO_BACK_BUTTON_LABEL_FONT_SIZE = self._calculateUiSize(14)
self.selectable_language_window.GO_BACK_BUTTON_IPADX = self._calculateUiSize(10)
self.selectable_language_window.GO_BACK_BUTTON_IPADY = self._calculateUiSize(8)
self.selectable_language_window.TITLE_FONT_SIZE = self._calculateUiSize(18)
self.selectable_language_window.VALUES_TEXT_FONT_SIZE = self._calculateUiSize(14)
self.selectable_language_window.VALUES_TEXT_IPADX = (self._calculateUiSize(8), 0)
self.selectable_language_window.VALUES_TEXT_IPADY = self._calculateUiSize(8)
self.modal_window.TEXT_FONT_SIZE = self._calculateUiSize(20)
# Config Window
self.config_window.DEFAULT_WIDTH = self._calculateUiSize(1080)
self.config_window.DEFAULT_HEIGHT = self._calculateUiSize(680)
# Top bar common
self.config_window.TOP_BAR__HEIGHT = self._calculateUiSize(40)
self.config_window.TOP_BAR__MIN_HEIGHT = self._calculateUiSize(40)
self.config_window.TOP_BAR__IPADY = self._calculateUiSize(12)
# Top bar Side
self.config_window.TOP_BAR_SIDE__WIDTH = self._calculateUiSize(220)
self.config_window.TOP_BAR_SIDE_AREA_MIN_WIDTH = self._calculateUiSize(220)
self.config_window.TOP_BAR_SIDE__CONFIG_LOGO_MARK_SIZE = self.dupTuple(self._calculateUiSize(28))
self.config_window.TOP_BAR_SIDE__CONFIG_TITLE_FONT_SIZE = self._calculateUiSize(22)
self.config_window.TOP_BAR_SIDE__CONFIG_TITLE_LEFT_PADX = int(self.config_window.TOP_BAR_SIDE__CONFIG_TITLE_FONT_SIZE + self._calculateUiSize(16))
@@ -127,7 +163,7 @@ class UiScalingManager():
# Setting Box
self.config_window.SB__MAIN_WIDTH = self._calculateUiSize(720)
self.config_window.MAIN_AREA_MIN_WIDTH = self._calculateUiSize(720)
self.config_window.SB__TOP_PADY_IF_WITH_SECTION_TITLE = (self._calculateUiSize(24))
self.config_window.SB__TOP_PADY_IF_WITHOUT_SECTION_TITLE = (self._calculateUiSize(64))
self.config_window.SB__BOTTOM_PADY = (self._calculateUiSize(40))
@@ -143,6 +179,10 @@ class UiScalingManager():
self.config_window.SB__DESC_TOP_PADY = self._calculateUiSize(2)
self.config_window.SB__ERROR_MESSAGE_IPADX = (self._calculateUiSize(10), self._calculateUiSize(10))
self.config_window.SB__ERROR_MESSAGE_IPADY = (self._calculateUiSize(6), self._calculateUiSize(6))
self.config_window.SB__ERROR_MESSAGE_FONT_SIZE = self._calculateUiSize(12)
self.config_window.SB__SELECTOR_FONT_SIZE = self._calculateUiSize(14)
self.config_window.SB__RADIO_BUTTON_FONT_SIZE = self.config_window.SB__SELECTOR_FONT_SIZE
@@ -153,10 +193,16 @@ class UiScalingManager():
self.config_window.SB__OPTION_MENU_FONT_SIZE = self.config_window.SB__SELECTOR_FONT_SIZE
self.config_window.SB__OPTIONMENU_MIN_HEIGHT = self._calculateUiSize(30)
self.config_window.SB__OPTIONMENU_MIN_WIDTH = self._calculateUiSize(200)
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_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_MAX_HEIGHT = self._calculateUiSize(200)
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._calculateUiSize(2), self._calculateUiSize(2))
self.config_window.SB__DROPDOWN_MENU_SCROLLBAR_WIDTH = self._calculateUiSize(16)
self.config_window.SB__DROPDOWN_MENU_VALUE_IPADX = (self._calculateUiSize(8), 0)
self.config_window.SB__DROPDOWN_MENU_VALUE_IPADY = (self._calculateUiSize(6), self._calculateUiSize(6))
self.config_window.SB__DROPDOWN_MENU_VALUE_PADY = (0, self._calculateUiSize(1, is_allowed_odd=True))
self.config_window.SB__DROPDOWN_MENU_VALUE_FONT_SIZE = self._calculateUiSize(14)
self.config_window.SB__SWITCH_WIDTH = self._calculateUiSize(50)
@@ -186,9 +232,12 @@ class UiScalingManager():
def _calculateUiSize(self, default_size, is_allowed_odd: bool = False):
def _calculateUiSize(self, default_size, is_allowed_odd:bool=False, is_zero_allowed:bool=False):
size = int(default_size * self.SCALING_FLOAT)
size += 1 if not is_allowed_odd and size % 2 != 0 else 0
if size <= 0:
size = 0 if is_zero_allowed else 1
return size
@staticmethod

View File

@@ -36,6 +36,22 @@ class VRCT_GUI(CTk):
self.dropdown_menu_window = _CreateDropdownMenuWindow(
settings=self.settings.config_window,
view_variable=self._view_variable,
window_additional_y_pos=self.settings.config_window.uism.SB__DROPDOWN_MENU_WINDOW_ADDITIONAL_Y_POS,
window_border_width=self.settings.config_window.uism.SB__DROPDOWN_MENU_WINDOW_BORDER_WIDTH,
scrollbar_ipadx=self.settings.config_window.uism.SB__DROPDOWN_MENU_SCROLLBAR_IPADX,
scrollbar_width=self.settings.config_window.uism.SB__DROPDOWN_MENU_SCROLLBAR_WIDTH,
value_ipadx=self.settings.config_window.uism.SB__DROPDOWN_MENU_VALUE_IPADX,
value_ipady=self.settings.config_window.uism.SB__DROPDOWN_MENU_VALUE_IPADY,
value_pady=self.settings.config_window.uism.SB__DROPDOWN_MENU_VALUE_PADY,
value_font_size=self.settings.config_window.uism.SB__DROPDOWN_MENU_VALUE_FONT_SIZE,
window_bg_color=self.settings.config_window.ctm.SB__DROPDOWN_MENU_WINDOW_BG_COLOR,
window_border_color=self.settings.config_window.ctm.SB__DROPDOWN_MENU_WINDOW_BORDER_COLOR,
values_bg_color=self.settings.config_window.ctm.SB__DROPDOWN_MENU_BG_COLOR,
values_hovered_bg_color=self.settings.config_window.ctm.SB__DROPDOWN_MENU_HOVERED_BG_COLOR,
values_clicked_bg_color=self.settings.config_window.ctm.SB__DROPDOWN_MENU_CLICKED_BG_COLOR,
values_text_color=self.settings.config_window.ctm.BASIC_TEXT_COLOR,
)
self.config_window = ConfigWindow(
@@ -60,6 +76,14 @@ class VRCT_GUI(CTk):
settings=self.settings.modal_window,
view_variable=self._view_variable,
wrapper_widget=self.config_window.main_bg_container,
message_ipadx=self.settings.config_window.uism.SB__ERROR_MESSAGE_IPADX,
message_ipady=self.settings.config_window.uism.SB__ERROR_MESSAGE_IPADY,
message_font_size=self.settings.config_window.uism.SB__ERROR_MESSAGE_FONT_SIZE,
message_bg_color=self.settings.config_window.ctm.SB__ERROR_MESSAGE_BG_COLOR,
message_text_color=self.settings.config_window.ctm.SB__ERROR_MESSAGE_TEXT_COLOR,
)
@@ -102,7 +126,7 @@ class VRCT_GUI(CTk):
# 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.sls__arrow_img_your_language.configure(image=CTkImage(self.settings.main.image_file.ARROW_LEFT, size=self.settings.main.uism.SLS__BOX_OPTION_MENU_ARROW_IMAGE_SIZE))
self._view_variable.IS_OPENED_SELECTABLE_YOUR_LANGUAGE_WINDOW = True
self._view_variable.IS_OPENED_SELECTABLE_TARGET_LANGUAGE_WINDOW = False
else:
@@ -111,7 +135,7 @@ class VRCT_GUI(CTk):
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.sls__arrow_img_target_language.configure(image=CTkImage(self.settings.main.image_file.ARROW_LEFT, size=self.settings.main.uism.SLS__BOX_OPTION_MENU_ARROW_IMAGE_SIZE))
self._view_variable.IS_OPENED_SELECTABLE_TARGET_LANGUAGE_WINDOW = True
self._view_variable.IS_OPENED_SELECTABLE_YOUR_LANGUAGE_WINDOW = False
else:
@@ -126,8 +150,8 @@ class VRCT_GUI(CTk):
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.sls__arrow_img_your_language.configure(image=CTkImage(self.settings.main.image_file.ARROW_LEFT.rotate(180), size=self.settings.main.uism.SLS__BOX_OPTION_MENU_ARROW_IMAGE_SIZE))
self.sls__arrow_img_target_language.configure(image=CTkImage(self.settings.main.image_file.ARROW_LEFT.rotate(180), size=self.settings.main.uism.SLS__BOX_OPTION_MENU_ARROW_IMAGE_SIZE))
self.selectable_languages_window.withdraw()