Merge branch 'view' into UI_2.0

This commit is contained in:
Sakamoto Shiina
2023-10-13 13:49:45 +09:00
9 changed files with 78 additions and 11 deletions

11
view.py
View File

@@ -156,6 +156,8 @@ class View():
SLIDER_RANGE_TRANSPARENCY=(50, 100),
CALLBACK_SET_TRANSPARENCY=None,
VAR_TRANSPARENCY=IntVar(value=config.TRANSPARENCY),
CALLBACK_BUTTON_PRESS_TRANSPARENCY=self._closeTheCoverOfMainWindow,
CALLBACK_BUTTON_RELEASE_TRANSPARENCY=self._openTheCoverOfMainWindow,
VAR_LABEL_APPEARANCE_THEME=StringVar(value=i18n.t("config_window.appearance_theme.label")),
VAR_DESC_APPEARANCE_THEME=StringVar(value=i18n.t("config_window.appearance_theme.desc")),
@@ -539,6 +541,15 @@ class View():
vrct_gui.attributes("-topmost", False)
@staticmethod
def _openTheCoverOfMainWindow():
vrct_gui.modal_window.show()
vrct_gui.config_window.lift()
@staticmethod
def _closeTheCoverOfMainWindow():
vrct_gui.modal_window.withdraw()
def enableMainWindowSidebarCompactMode(self):
self.view_variable.IS_MAIN_WINDOW_SIDEBAR_COMPACT_MODE = True
vrct_gui._enableMainWindowSidebarCompactMode()

View File

@@ -1,5 +1,7 @@
from customtkinter import CTkToplevel, CTkFrame, CTkLabel, CTkFont
from .ui_utils import fadeInAnimation
class _CreateModalWindow(CTkToplevel):
def __init__(self, attach_window, settings, view_variable):
super().__init__()
@@ -46,4 +48,10 @@ class _CreateModalWindow(CTkToplevel):
anchor="w",
text_color=self.settings.ctm.TEXT_COLOR,
)
self.modal_container_label_wrapper.place(relx=0.5, rely=0.5, anchor="center")
self.modal_container_label_wrapper.place(relx=0.5, rely=0.5, anchor="center")
def show(self):
self.attributes("-alpha", 0)
self.deiconify()
fadeInAnimation(self, steps=5, interval=0.005, max_alpha=0.5)

View File

@@ -4,6 +4,7 @@ from .widgets import createConfigWindowTitle, createSideMenuAndSettingsBoxContai
from customtkinter import CTkToplevel, CTkFrame
from ..ui_utils import getImagePath, getLatestWidth, getLatestHeight
from utils import isEven
class ConfigWindow(CTkToplevel):
def __init__(self, vrct_gui, settings, view_variable):
@@ -35,8 +36,17 @@ class ConfigWindow(CTkToplevel):
createSideMenuAndSettingsBoxContainers(config_window=self, settings=self.settings, view_variable=self._view_variable)
# for fixing 1px bug
l_width = getLatestWidth(self.side_menu_bg_container)
if isEven(l_width) is False:
self.side_menu_bg_container.grid_columnconfigure(0, weight=0, minsize=l_width+1)
# for fixing 1px bug
self.side_menu_bg_container.grid_rowconfigure(2, weight=1)
sls__box_optionmenu_wrapper_fix_1px_bug = CTkFrame(self.side_menu_bg_container, corner_radius=0, width=0, height=0)
sls__box_optionmenu_wrapper_fix_1px_bug.grid(row=1, column=0, sticky="ew")
sls__box_optionmenu_wrapper_fix_1px_bug.grid(row=3, column=0, sticky="sew")
# for fixing 1px bug
l_width = getLatestWidth(self.side_menu_bg_container)
self.bind_all("<Button-1>", lambda event: event.widget.focus_set(), "+")

View File

@@ -13,7 +13,7 @@ def _createSettingBoxCompactModeButton(parent_widget, config_window, settings, v
config_window.setting_box_compact_mode_button_container = CTkFrame(parent_widget, corner_radius=0, fg_color=settings.ctm.TOP_BAR_BG_COLOR, width=0, height=0)
config_window.setting_box_compact_mode_button_container.grid(row=0, column=column_num, padx=settings.uism.COMPACT_MODE_PADX, sticky="nsw")
config_window.setting_box_compact_mode_button_container.grid(row=0, column=column_num, padx=settings.uism.COMPACT_MODE_PADX, sticky="nse")

View File

@@ -13,10 +13,15 @@ def createSettingBoxTopBar(config_window, settings, view_variable):
config_window.setting_box_top_bar.grid(row=0, column=1, sticky="nsew")
config_window.setting_box_top_bar.grid_rowconfigure(0, weight=1)
column_num=0
_createSettingBoxTitle(parent_widget=config_window.setting_box_top_bar, config_window=config_window, settings=settings, view_variable=view_variable, column_num=column_num)
column_num+=1
config_window.setting_box_top_bar.grid_columnconfigure(column_num, weight=1)
column_num+=1
_createSettingBoxCompactModeButton(parent_widget=config_window.setting_box_top_bar, config_window=config_window, settings=settings, view_variable=view_variable, column_num=column_num)
column_num+=1
@@ -27,4 +32,4 @@ def createSettingBoxTopBar(config_window, settings, view_variable):
# for fixing 1px bug
setting_box_top_bar_fix_1px_bug = CTkFrame(config_window.setting_box_top_bar, corner_radius=0, width=0, height=0)
setting_box_top_bar_fix_1px_bug.grid(row=0, column=column_num, sticky="ns")
setting_box_top_bar_fix_1px_bug.grid(row=0, column=column_num, sticky="nse")

View File

@@ -29,8 +29,8 @@ def createSideMenuAndSettingsBoxContainers(config_window, settings, view_variabl
config_window.grid_rowconfigure(1, weight=1)
config_window.side_menu_bg_container = CTkFrame(config_window, corner_radius=0, fg_color=settings.ctm.SIDE_MENU_BG_COLOR, width=0, height=0)
config_window.side_menu_bg_container.grid(row=1, column=0, sticky="nsew")
config_window.side_menu_bg_container.grid_columnconfigure(0, weight=1)
config_window.side_menu_bg_container.grid_rowconfigure(0, weight=1)
config_window.side_menu_container = CTkFrame(config_window.side_menu_bg_container, corner_radius=0, fg_color=settings.ctm.SIDE_MENU_LABELS_BG_FOR_FAKE_BORDER_COLOR, width=0, height=0)
config_window.side_menu_container.grid(row=0, column=0, padx=settings.uism.TOP_BAR_SIDE__TITLE_PADX, pady=(settings.uism.SIDE_MENU_TOP_PADY, 0), sticky="nsew")

View File

@@ -204,11 +204,10 @@ class _SettingBoxGenerator():
def createSettingBoxSlider(self, for_var_label_text, for_var_desc_text, slider_attr_name, slider_range, command, variable, slider_number_of_steps: Union[int, None] = None):
def createSettingBoxSlider(self, for_var_label_text, for_var_desc_text, slider_attr_name, slider_range, command, variable, slider_number_of_steps: Union[int, None] = None, slider_bind__ButtonPress=None, slider_bind__ButtonRelease=None):
(setting_box_frame, setting_box_item_frame) = self._createSettingBoxFrame(slider_attr_name, for_var_label_text, for_var_desc_text)
# print(self.settings.uism.SB__SLIDER_WIDTH)
# print(self.settings.uism.SB__SLIDER_HEIGHT)
slider_widget = CTkSlider(
setting_box_item_frame,
width=self.settings.uism.SB__SLIDER_WIDTH,
@@ -225,6 +224,17 @@ class _SettingBoxGenerator():
slider_widget.grid(row=1, column=SETTING_BOX_COLUMN, sticky="e")
if slider_bind__ButtonPress is not None:
def adjusted_slider_bind__ButtonPress(_e):
command(_e)
slider_bind__ButtonPress()
slider_widget.configure(command=adjusted_slider_bind__ButtonPress)
if slider_bind__ButtonRelease is not None:
def adjusted_slider_bind__ButtonRelease(_e):
slider_bind__ButtonRelease()
slider_widget.bind("<ButtonRelease>", adjusted_slider_bind__ButtonRelease, "+")
return setting_box_frame

View File

@@ -33,6 +33,8 @@ def createSettingBox_Appearance(setting_box_wrapper, config_window, settings, vi
slider_range=view_variable.SLIDER_RANGE_TRANSPARENCY,
command=lambda value: slider_transparency_callback(value),
variable=view_variable.VAR_TRANSPARENCY,
slider_bind__ButtonPress=view_variable.CALLBACK_BUTTON_PRESS_TRANSPARENCY,
slider_bind__ButtonRelease=view_variable.CALLBACK_BUTTON_RELEASE_TRANSPARENCY,
)
config_window.sb__transparency.grid(row=row)
row+=1

View File

@@ -23,6 +23,23 @@ class VRCT_GUI(CTk):
self.is_config_window_already_opened_once=False
self.BIND_CONFIGURE_ADJUSTED_GEOMETRY_FUNC_ID=None
self.BIND_FOCUS_IN_MODAL_WINDOW_LIFT_CONFIG_WINDOW_FUNC_ID=None
self.BIND_UNMAP_DETECT_MAIN_WINDOW_STATE_FUNC_ID = None
self.BIND_MAP_DETECT_MAIN_WINDOW_STATE_FUNC_ID = None
self.window_state = None
def detectMainWindowState(self, _e=None):
self.new_window_state = self.wm_state()
if self.window_state == self.new_window_state:
return
else:
self.window_state = self.new_window_state
if self.window_state == "iconic":
self.modal_window.withdraw()
elif self.window_state == "normal":
self.modal_window.show()
def _showGUI(self):
@@ -111,11 +128,13 @@ class VRCT_GUI(CTk):
callFunctionIfCallable(self._view_variable.CALLBACK_OPEN_CONFIG_WINDOW)
self._adjustToMainWindowGeometry()
self.modal_window.attributes("-alpha", 0)
self.modal_window.deiconify()
fadeInAnimation(self.modal_window, steps=5, interval=0.005, max_alpha=0.5)
self.modal_window.show()
self.BIND_CONFIGURE_ADJUSTED_GEOMETRY_FUNC_ID = self.bind("<Configure>", self._adjustToMainWindowGeometry, "+")
self.BIND_UNMAP_DETECT_MAIN_WINDOW_STATE_FUNC_ID = self.bind("<Unmap>", self.detectMainWindowState, "+")
self.BIND_MAP_DETECT_MAIN_WINDOW_STATE_FUNC_ID = self.bind("<Map>", self.detectMainWindowState, "+")
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.attributes("-alpha", 0)
@@ -134,6 +153,8 @@ class VRCT_GUI(CTk):
self.modal_window.withdraw()
self.unbind("<Configure>", self.BIND_CONFIGURE_ADJUSTED_GEOMETRY_FUNC_ID)
self.unbind("<Unmap>", self.BIND_UNMAP_DETECT_MAIN_WINDOW_STATE_FUNC_ID)
self.unbind("<Map>", self.BIND_MAP_DETECT_MAIN_WINDOW_STATE_FUNC_ID)
self.modal_window.unbind("<FocusIn>", self.BIND_FOCUS_IN_MODAL_WINDOW_LIFT_CONFIG_WINDOW_FUNC_ID)
self.adjusted_event=None