[Update] About VRCT: Poster Showcase. 起動毎に、最初に表示されるワールド名部分のページをランダムに。
This commit is contained in:
@@ -1,3 +1,4 @@
|
||||
from random import randint
|
||||
from types import SimpleNamespace
|
||||
from customtkinter import CTkFrame, CTkLabel, CTkImage, CTkFont
|
||||
|
||||
@@ -334,6 +335,20 @@ def createSettingBox_AboutVrct(setting_box_wrapper, config_window, settings, vie
|
||||
|
||||
pagination_button_settings = settings.about_vrct.image_file.POSTER_SHOWCASE_WORLD_PAGINATION_BUTTON
|
||||
|
||||
def defineAngles(index):
|
||||
start_angle = 0
|
||||
goal_angle = 90
|
||||
if index == 0:
|
||||
start_angle = 0
|
||||
goal_angle = 90
|
||||
elif index == 1:
|
||||
start_angle = 90
|
||||
goal_angle = 180
|
||||
elif index == 2:
|
||||
start_angle = 180
|
||||
goal_angle = 360
|
||||
return(start_angle, goal_angle)
|
||||
|
||||
def toNextPagePosterShowcase():
|
||||
current_function_index = view_variable.CALLBACK_ABOUT_VRCT_POSTER_SHOWCASE_CURRENT_PAGE_NUM
|
||||
view_variable.CALLBACK_ABOUT_VRCT_CHANGE_POSTER_SHOWCASE_WORLD_LIST=None
|
||||
@@ -343,17 +358,7 @@ def createSettingBox_AboutVrct(setting_box_wrapper, config_window, settings, vie
|
||||
poster_showcase_worlds_frame_list[current_function_index].grid(column=0, row=0, padx=0, pady=(0,about_vrct_uism.POSTER_SHOWCASE_WORLD_BOTTOM_PADY), sticky="nsew")
|
||||
view_variable.CALLBACK_ABOUT_VRCT_POSTER_SHOWCASE_CURRENT_PAGE_NUM = current_function_index
|
||||
|
||||
start_angle = 0
|
||||
goal_angle = 90
|
||||
if pre_function_index == 0:
|
||||
start_angle = 0
|
||||
goal_angle = 90
|
||||
elif pre_function_index == 1:
|
||||
start_angle = 90
|
||||
goal_angle = 180
|
||||
elif pre_function_index == 2:
|
||||
start_angle = 180
|
||||
goal_angle = 360
|
||||
start_angle, goal_angle = defineAngles(pre_function_index)
|
||||
|
||||
animateRotation(
|
||||
tk_root=config_window,
|
||||
@@ -371,6 +376,9 @@ def createSettingBox_AboutVrct(setting_box_wrapper, config_window, settings, vie
|
||||
# Initialize
|
||||
view_variable.CALLBACK_ABOUT_VRCT_CHANGE_POSTER_SHOWCASE_WORLD_LIST=toNextPagePosterShowcase
|
||||
|
||||
view_variable.CALLBACK_ABOUT_VRCT_POSTER_SHOWCASE_CURRENT_PAGE_NUM = randint(0, len(poster_showcase_worlds_frame_list)-1)
|
||||
|
||||
start_angle, _goal_angle = defineAngles(view_variable.CALLBACK_ABOUT_VRCT_POSTER_SHOWCASE_CURRENT_PAGE_NUM)
|
||||
|
||||
poster_showcase_worlds_frame_list[view_variable.CALLBACK_ABOUT_VRCT_POSTER_SHOWCASE_CURRENT_PAGE_NUM].grid(column=0, row=0, padx=0, pady=(0,about_vrct_uism.POSTER_SHOWCASE_WORLD_BOTTOM_PADY), sticky="nsew")
|
||||
|
||||
@@ -387,6 +395,7 @@ def createSettingBox_AboutVrct(setting_box_wrapper, config_window, settings, vie
|
||||
callback=lambda _e: callFunctionIfCallable(view_variable.CALLBACK_ABOUT_VRCT_CHANGE_POSTER_SHOWCASE_WORLD_LIST),
|
||||
hovered_color="transparent",
|
||||
clicked_color="transparent",
|
||||
rotate_angle=-start_angle # for clockwise angle, put negative "-"
|
||||
)
|
||||
config_window.poster_showcase_pagination_button.grid(column=1, row=0, padx=0, pady=0, sticky="nsew")
|
||||
|
||||
|
||||
@@ -124,7 +124,7 @@ class AboutVrctManager():
|
||||
return size
|
||||
|
||||
|
||||
def embedImageCTkLabel(self, parent_frame, image_file_name, image_scaling=IMAGE_STANDARD_SCALING, directly_type:str=None, fg_color:str="transparent", anchor:str="w"):
|
||||
def embedImageCTkLabel(self, parent_frame, image_file_name, image_scaling=IMAGE_STANDARD_SCALING, directly_type:str=None, fg_color:str="transparent", anchor:str="w", rotate_angle:int=0):
|
||||
|
||||
img = getImageFileFromUiUtils_AboutVrct(image_file_name, directly_type)
|
||||
|
||||
@@ -146,12 +146,12 @@ class AboutVrctManager():
|
||||
height=image_height,
|
||||
fg_color=fg_color,
|
||||
anchor=anchor,
|
||||
image=CTkImage((img), size=(image_width, image_height))
|
||||
image=CTkImage((img).rotate(rotate_angle), size=(image_width, image_height))
|
||||
)
|
||||
|
||||
return img_label
|
||||
|
||||
def embedImageButtonCTkLabel(self, parent_frame, image_file_name, callback, image_scaling=IMAGE_STANDARD_SCALING, directly_type:str=None, fg_color:str=None, hovered_color:str=None, clicked_color:str=None, anchor:str="w", corner_radius:int=0, no_bind:bool=False):
|
||||
def embedImageButtonCTkLabel(self, parent_frame, image_file_name, callback, image_scaling=IMAGE_STANDARD_SCALING, directly_type:str=None, fg_color:str=None, hovered_color:str=None, clicked_color:str=None, anchor:str="w", corner_radius:int=0, no_bind:bool=False, rotate_angle:int=0):
|
||||
|
||||
fg_color = self.ctm.ABOUT_VRCT_BG if fg_color is None else fg_color
|
||||
|
||||
@@ -162,7 +162,7 @@ class AboutVrctManager():
|
||||
|
||||
img_label_frame = CTkFrame(parent_frame, fg_color=fg_color, corner_radius=corner_radius, width=0, height=0)
|
||||
|
||||
img_label = self.embedImageCTkLabel(img_label_frame, image_file_name, image_scaling, directly_type, fg_color, anchor)
|
||||
img_label = self.embedImageCTkLabel(img_label_frame, image_file_name, image_scaling, directly_type, fg_color, anchor, rotate_angle)
|
||||
|
||||
if no_bind is False:
|
||||
img_label_frame.configure(cursor="hand2")
|
||||
|
||||
Reference in New Issue
Block a user