[Update] 設定画面から透明度変更時に、メイン画面のカバーを一時的に外すように。

スライダークリック時(ドラッグ時)にカバーを外し、リリース時に戻す。
リリースはCTkSlider側で設定されていないのでうまくいくけど、
CTkSliderはbind ButtonPress(クリック)はオーバーライドされるので引数command(クリックイベント)に無理やり挟み込み。
This commit is contained in:
Sakamoto Shiina
2023-10-13 13:41:10 +09:00
parent 77500adb8d
commit 508cca8215
3 changed files with 26 additions and 3 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

@@ -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