[bugfix] Main Window: 設定画面を開いた時に、メイン画面に被せるモーダル型ウィンドウが、メイン画面最小化時はそれに従って消し、メイン画面をまた開いた時に表示するように修正。
[Refactor] そのモーダル型ウィンドウの表示関数を移動
This commit is contained in:
@@ -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)
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
Reference in New Issue
Block a user