[Update] Config Window: Add About VRCT Tab. This is The Credit Page.
*The button that is supposed to open the link is not working yet.
This commit is contained in:
1 parent
fc5f9b24c3
commit
1b6fa4c3e8
62 files changed
+934
-23
No files matched your search
+7
-2
@@ -30,7 +30,13 @@ def _createSettingBoxContainer(config_window, settings, view_variable, setting_b
|
||||
setting_box_row=0
|
||||
for setting_box_setting in setting_box_container_settings["setting_boxes"]:
|
||||
# Top-Padding that can be container the section title
|
||||
setting_box_top_padding = CTkFrame(setting_box_container_widget, corner_radius=0, fg_color=settings.ctm.MAIN_BG_COLOR, width=0, height=settings.uism.SB__TOP_PADY)
|
||||
if setting_box_setting.get("about_vrct", False) is True:
|
||||
setting_box_top_padding = CTkFrame(setting_box_container_widget, corner_radius=0, fg_color=settings.ctm.ABOUT_VRCT_BG, width=0, height=settings.uism.ABOUT_VRCT_SB__TOP_PADY)
|
||||
setting_box_wrapper = CTkFrame(setting_box_container_widget, fg_color=settings.ctm.MAIN_BG_COLOR, corner_radius=0, width=0, height=0)
|
||||
else:
|
||||
setting_box_top_padding = CTkFrame(setting_box_container_widget, corner_radius=0, fg_color=settings.ctm.MAIN_BG_COLOR, width=0, height=settings.uism.SB__TOP_PADY)
|
||||
setting_box_wrapper = CTkFrame(setting_box_container_widget, fg_color=settings.ctm.SB__WRAPPER_BG_COLOR, corner_radius=0, width=0, height=0)
|
||||
|
||||
setting_box_top_padding.grid(row=setting_box_row, column=0, sticky="ew", padx=0, pady=0)
|
||||
setting_box_top_padding.grid_columnconfigure(0, weight=1)
|
||||
setting_box_row+=1
|
||||
@@ -47,7 +53,6 @@ def _createSettingBoxContainer(config_window, settings, view_variable, setting_b
|
||||
setting_box_wrapper_section_title.place(relx=0, rely=0.4, anchor="nw")
|
||||
|
||||
|
||||
setting_box_wrapper = CTkFrame(setting_box_container_widget, fg_color=settings.ctm.SB__WRAPPER_BG_COLOR, corner_radius=0, width=0, height=0)
|
||||
setting_box_wrapper.grid(row=setting_box_row, column=0, sticky="ew")
|
||||
setting_box_wrapper.grid_columnconfigure(0, weight=1)
|
||||
setting_box_row+=1
|
||||
|
||||
+28
-2
@@ -12,6 +12,8 @@ from .setting_box_containers.setting_box_others import createSettingBox_Others,
|
||||
from .setting_box_containers.setting_box_advanced_settings import createSettingBox_AdvancedSettings
|
||||
from .setting_box_containers.setting_box_translation import createSettingBox_Translation
|
||||
|
||||
from .setting_box_containers.setting_box_about_vrct import createSettingBox_AboutVrct
|
||||
|
||||
|
||||
def createSideMenuAndSettingsBoxContainers(config_window, settings, view_variable):
|
||||
|
||||
@@ -30,9 +32,9 @@ def createSideMenuAndSettingsBoxContainers(config_window, settings, view_variabl
|
||||
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")
|
||||
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, sticky="nsew")
|
||||
|
||||
|
||||
|
||||
@@ -128,12 +130,36 @@ def createSideMenuAndSettingsBoxContainers(config_window, settings, view_variabl
|
||||
]
|
||||
},
|
||||
},
|
||||
|
||||
# About VRCT. It is separated from the others.
|
||||
{
|
||||
"side_menu_tab_attr_name": "side_menu_tab_about_vrct",
|
||||
"label_attr_name": "label_about_vrct",
|
||||
"selected_mark_attr_name": "selected_mark_about_vrct",
|
||||
"textvariable": view_variable.VAR_SIDE_MENU_LABEL_ABOUT_VRCT,
|
||||
"setting_box_container_settings": {
|
||||
"setting_box_container_attr_name": "setting_box_container_about_vrct",
|
||||
"setting_boxes": [
|
||||
{ "var_section_title": None, "setting_box": createSettingBox_AboutVrct, "about_vrct": True },
|
||||
]
|
||||
},
|
||||
},
|
||||
]
|
||||
SEPARATE_ROW_COUNT=1 # It's just count the row and separate from below.
|
||||
SEPARATE_ROW_NUMBER = len(side_menu_and_setting_box_containers_settings) - SEPARATE_ROW_COUNT
|
||||
|
||||
all_side_menu_tab_attr_name = [item["side_menu_tab_attr_name"] for item in side_menu_and_setting_box_containers_settings]
|
||||
|
||||
side_menu_row=0
|
||||
for sm_and_sbc_setting in side_menu_and_setting_box_containers_settings:
|
||||
|
||||
if side_menu_row == SEPARATE_ROW_NUMBER:
|
||||
side_menu_separator = CTkFrame(config_window.side_menu_container, corner_radius=0, fg_color=settings.ctm.SIDE_MENU_LABELS_BG_COLOR, width=0, height=0)
|
||||
config_window.side_menu_container.grid_rowconfigure(side_menu_row, weight=1, minsize=settings.uism.SIDE_MENU_LABELS_SEPARATE_MIN_HEIGHT)
|
||||
side_menu_separator.grid(row=side_menu_row, column=0, sticky="nsew")
|
||||
side_menu_row+=1
|
||||
|
||||
|
||||
_addConfigSideMenuItem(
|
||||
config_window=config_window,
|
||||
settings=settings,
|
||||
|
||||
+1
@@ -0,0 +1 @@
|
||||
from .createSettingBox_AboutVrct import createSettingBox_AboutVrct
|
||||
+578
@@ -0,0 +1,578 @@
|
||||
from types import SimpleNamespace
|
||||
from customtkinter import CTkFrame, CTkLabel, CTkImage, CTkFont
|
||||
|
||||
from utils import callFunctionIfCallable, splitListRandomly
|
||||
from ......ui_utils import bindButtonFunctionAndColor, animateRotation, bindEnterAndLeaveFunction
|
||||
|
||||
def createSettingBox_AboutVrct(setting_box_wrapper, config_window, settings, view_variable):
|
||||
setting_box_wrapper.grid_columnconfigure(0, weight=1, minsize=settings.uism.MAIN_AREA_MIN_WIDTH)
|
||||
about_vrct_uism = settings.about_vrct.uism
|
||||
ABOUT_VRCT_BG = settings.ctm.ABOUT_VRCT_BG
|
||||
|
||||
|
||||
# For padding left. without this, setting_box_wrapper's bg shows...
|
||||
about_vrct_container_wrapper = CTkFrame(setting_box_wrapper, fg_color=ABOUT_VRCT_BG, corner_radius=0, width=0, height=0)
|
||||
about_vrct_container_wrapper.grid(column=0, row=0, padx=0, pady=0, sticky="nsew")
|
||||
about_vrct_container_wrapper.grid_columnconfigure(0, weight=1)
|
||||
|
||||
|
||||
about_vrct_container = CTkFrame(about_vrct_container_wrapper, fg_color=ABOUT_VRCT_BG, corner_radius=0, width=0, height=0)
|
||||
about_vrct_container.grid(column=0, row=0, padx=about_vrct_uism.ABOUT_VRCT_CONTAINER_LEFT_PADX, pady=0, sticky="nsew")
|
||||
about_vrct_container.grid_columnconfigure(0, weight=1)
|
||||
|
||||
|
||||
def createSectionContainer(section_row, section_title_image_file_name:str=None, section_bottom_padding:int=0, section_title_bottom_padding:int=0):
|
||||
section_container = CTkFrame(about_vrct_container, fg_color=ABOUT_VRCT_BG, corner_radius=0, width=0, height=0)
|
||||
section_container.grid(column=0, row=section_row, padx=0, pady=(0, section_bottom_padding), sticky="nsew")
|
||||
section_container.grid_columnconfigure(0, weight=1)
|
||||
|
||||
contents_row=0
|
||||
if section_title_image_file_name is not None:
|
||||
section_title_frame = settings.about_vrct.embedImageCTkLabel(section_container, section_title_image_file_name)
|
||||
section_title_frame.grid(column=0, row=contents_row, padx=0, pady=(0,section_title_bottom_padding), sticky="nw")
|
||||
contents_row = 1
|
||||
|
||||
|
||||
|
||||
section_contents_wrapper = CTkFrame(section_container, fg_color=ABOUT_VRCT_BG, corner_radius=0, width=0, height=0)
|
||||
section_contents_wrapper.grid(column=0, row=contents_row, padx=0, pady=0, sticky="nsew")
|
||||
section_contents_wrapper.grid_columnconfigure(0, weight=1)
|
||||
|
||||
return (section_container, section_contents_wrapper)
|
||||
|
||||
|
||||
|
||||
def createImageButtonRows(parent_frame, image_buttons_settings:list, bottom_pady, directly_type:str=None, corner_radius:int=0, ipadx:int=0, ipady:int=0):
|
||||
button_row=0
|
||||
setting_length = len(image_buttons_settings)
|
||||
for index, each_setting in enumerate(image_buttons_settings):
|
||||
each_button = settings.about_vrct.embedImageButtonCTkLabel(
|
||||
parent_frame=parent_frame,
|
||||
image_file_name=each_setting["image_file_name"],
|
||||
callback=each_setting["callback"],
|
||||
directly_type=directly_type,
|
||||
corner_radius=corner_radius,
|
||||
)
|
||||
each_button.grid(column=0, row=button_row, padx=0, pady=(0, bottom_pady), sticky="nsew")
|
||||
each_button.img_label.grid(padx=ipadx, pady=ipady, sticky="nsew")
|
||||
if index == setting_length-1:
|
||||
each_button.grid(pady=0)
|
||||
button_row+=1
|
||||
|
||||
def createContactButton(parent_frame, image_file_name, callback_arg, fg_color=ABOUT_VRCT_BG):
|
||||
frame = settings.about_vrct.embedImageButtonCTkLabel(
|
||||
parent_frame=parent_frame,
|
||||
image_file_name=image_file_name,
|
||||
callback=lambda _e: callFunctionIfCallable(view_variable.CALLBACK_OPEN_WEBPAGE_ABOUT_VRCT, callback_arg),
|
||||
fg_color=fg_color,
|
||||
hovered_color=fg_color,
|
||||
clicked_color=fg_color,
|
||||
)
|
||||
return frame
|
||||
|
||||
def createTellUsButton(parent_frame, image_file_name, callback):
|
||||
tell_us_button_frame = settings.about_vrct.embedImageButtonCTkLabel(
|
||||
parent_frame=parent_frame,
|
||||
image_file_name=image_file_name,
|
||||
callback=callback,
|
||||
corner_radius=about_vrct_uism.TELL_US_BUTTON_CORNER_RADIUS,
|
||||
)
|
||||
tell_us_button_frame.img_label.grid(padx=about_vrct_uism.TELL_US_BUTTON_PADX, pady=about_vrct_uism.TELL_US_BUTTON_PADY, sticky="nsew")
|
||||
|
||||
tell_us_button_frame.configure(border_width=about_vrct_uism.TELL_US_BUTTON_BORDER_WIDTH, border_color=settings.ctm.ABOUT_VRCT_TELL_US_BUTTON_BORDER_COLOR)
|
||||
|
||||
return tell_us_button_frame
|
||||
|
||||
|
||||
|
||||
|
||||
section_row=0
|
||||
# The Developers ----------------------------------
|
||||
_the_developers, the_developers_contents_wrapper = createSectionContainer(
|
||||
section_row=section_row,
|
||||
section_title_image_file_name="dev_section_title.png",
|
||||
section_bottom_padding=about_vrct_uism.SECTION_BOTTOM_PADY,
|
||||
section_title_bottom_padding=about_vrct_uism.THE_DEVELOPERS_SECTION_TITLE_BOTTOM_PADY
|
||||
)
|
||||
|
||||
dev_misya_label = settings.about_vrct.embedImageCTkLabel(the_developers_contents_wrapper, "dev_misya.png")
|
||||
dev_misya_label.grid(column=0, row=0, padx=0, pady=0, sticky="nsw")
|
||||
|
||||
dev_misya_x = createContactButton(
|
||||
parent_frame=dev_misya_label,
|
||||
image_file_name="dev_x_icon.png",
|
||||
callback_arg="X_MISYA",
|
||||
fg_color=settings.ctm.ABOUT_VRCT_DEV_BG
|
||||
)
|
||||
dev_misya_x.place(x=about_vrct_uism.DEVS_MISYA_X_X, y=about_vrct_uism.DEVS_CONTACTS_Y1, anchor="nw")
|
||||
|
||||
dev_misya_github = createContactButton(
|
||||
parent_frame=dev_misya_label,
|
||||
image_file_name="dev_github_icon.png",
|
||||
callback_arg="GITHUB_MISYA",
|
||||
fg_color=settings.ctm.ABOUT_VRCT_DEV_BG
|
||||
)
|
||||
dev_misya_github.place(x=about_vrct_uism.DEVS_MISYA_GITHUB_X, y=about_vrct_uism.DEVS_CONTACTS_Y1, anchor="nw")
|
||||
|
||||
|
||||
|
||||
dev_shiina_label = settings.about_vrct.embedImageCTkLabel(the_developers_contents_wrapper, "dev_shiina.png")
|
||||
dev_shiina_label.grid(column=1, row=0, padx=0, pady=0, sticky="nse")
|
||||
|
||||
dev_shiina_x = createContactButton(
|
||||
parent_frame=dev_shiina_label,
|
||||
image_file_name="dev_x_icon.png",
|
||||
callback_arg="X_SHIINA",
|
||||
fg_color=settings.ctm.ABOUT_VRCT_DEV_BG
|
||||
)
|
||||
dev_shiina_x.place(x=about_vrct_uism.DEVS_SHIINA_X_X, y=about_vrct_uism.DEVS_CONTACTS_Y1, anchor="nw")
|
||||
|
||||
|
||||
section_row+=1
|
||||
# Project Links And Logo ----------------------------------
|
||||
_project_links_and_logo, project_links_and_logo_contents_wrapper = createSectionContainer(
|
||||
section_bottom_padding=about_vrct_uism.PROJECT_LINKS_SECTION_BOTTOM_PADDING,
|
||||
section_row=section_row,
|
||||
)
|
||||
|
||||
project_links_and_logo_wrapper = CTkFrame(project_links_and_logo_contents_wrapper, fg_color=ABOUT_VRCT_BG, corner_radius=0, width=0, height=0)
|
||||
project_links_and_logo_wrapper.grid(column=0, row=0, padx=about_vrct_uism.PROJECT_LINK_CONTENTS_PADX, pady=0, sticky="nsew")
|
||||
project_links_and_logo_wrapper.grid_columnconfigure(1, weight=1)
|
||||
|
||||
|
||||
vrct_logo_label = settings.about_vrct.embedImageCTkLabel(project_links_and_logo_wrapper, "vrct_logo_for_about_vrct.png")
|
||||
vrct_logo_label.grid(column=0, row=0, padx=0, pady=0, sticky="nsw")
|
||||
|
||||
|
||||
project_links_wrapper = CTkFrame(project_links_and_logo_wrapper, fg_color=ABOUT_VRCT_BG, corner_radius=0, width=0, height=0)
|
||||
project_links_wrapper.grid(column=2, row=0, padx=0, pady=0, sticky="nse")
|
||||
|
||||
project_link_settings = [
|
||||
{
|
||||
"image_file_name": "project_link_booth.png",
|
||||
"callback": lambda _e: callFunctionIfCallable(view_variable.CALLBACK_OPEN_WEBPAGE_ABOUT_VRCT, "BOOTH")
|
||||
},
|
||||
{
|
||||
"image_file_name": "project_link_documents.png",
|
||||
"callback": lambda _e: callFunctionIfCallable(view_variable.CALLBACK_OPEN_WEBPAGE_ABOUT_VRCT, "VRCT_DOCUMENTS")
|
||||
},
|
||||
{
|
||||
"image_file_name": "project_link_vrct_github.png",
|
||||
"callback": lambda _e: callFunctionIfCallable(view_variable.CALLBACK_OPEN_WEBPAGE_ABOUT_VRCT, "VRCT_GITHUB")
|
||||
},
|
||||
{
|
||||
"image_file_name": "project_link_contact_us.png",
|
||||
"callback": lambda _e: callFunctionIfCallable(view_variable.CALLBACK_OPEN_WEBPAGE_ABOUT_VRCT, "CONTACT_US")
|
||||
},
|
||||
]
|
||||
|
||||
createImageButtonRows(
|
||||
parent_frame=project_links_wrapper,
|
||||
image_buttons_settings=project_link_settings,
|
||||
bottom_pady=about_vrct_uism.PROJECT_LINK_BOTTOM_PADY,
|
||||
corner_radius=about_vrct_uism.PROJECT_LINK_CORNER_RADIUS,
|
||||
ipadx=about_vrct_uism.PROJECT_LINK_ITEM_IPADX,
|
||||
ipady=about_vrct_uism.PROJECT_LINK_ITEM_IPADY,
|
||||
)
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
section_row+=1
|
||||
# Contributors ----------------------------------
|
||||
_contributors, contributors_contents_wrapper = createSectionContainer(
|
||||
section_row=section_row,
|
||||
section_title_image_file_name="contributors_section_title.png",
|
||||
section_bottom_padding=about_vrct_uism.SECTION_BOTTOM_PADY,
|
||||
section_title_bottom_padding=about_vrct_uism.CONTRIBUTORS_SECTION_TITLE_BOTTOM_PADY
|
||||
)
|
||||
|
||||
contributors_members = settings.about_vrct.embedImageCTkLabel(contributors_contents_wrapper, "contributors_members.png")
|
||||
contributors_members.grid(column=0, row=0, padx=0, pady=0, sticky="nsew")
|
||||
|
||||
|
||||
|
||||
# done_san
|
||||
contributors_done_san_x = createContactButton(
|
||||
parent_frame=contributors_members,
|
||||
image_file_name="contributors_x_icon.png",
|
||||
callback_arg="X_DONE_SAN",
|
||||
)
|
||||
contributors_done_san_x.place(x=about_vrct_uism.CONTRIBUTORS_DONE_SAN_X_X, y=about_vrct_uism.CONTRIBUTORS_CONTACTS_Y1, anchor="nw")
|
||||
|
||||
# IYA
|
||||
contributors_iya_x = createContactButton(
|
||||
parent_frame=contributors_members,
|
||||
image_file_name="contributors_x_icon.png",
|
||||
callback_arg="X_IYA",
|
||||
)
|
||||
contributors_iya_x.place(x=about_vrct_uism.CONTRIBUTORS_IYA_X_X, y=about_vrct_uism.CONTRIBUTORS_CONTACTS_Y1, anchor="nw")
|
||||
|
||||
# RERA
|
||||
contributors_rera_x = createContactButton(
|
||||
parent_frame=contributors_members,
|
||||
image_file_name="contributors_x_icon.png",
|
||||
callback_arg="X_RERA",
|
||||
)
|
||||
contributors_rera_x.place(x=about_vrct_uism.CONTRIBUTORS_RERA_X_X, y=about_vrct_uism.CONTRIBUTORS_CONTACTS_Y1, anchor="nw")
|
||||
|
||||
contributors_rera_github = createContactButton(
|
||||
parent_frame=contributors_members,
|
||||
image_file_name="contributors_github_icon.png",
|
||||
callback_arg="GITHUB_RERA",
|
||||
)
|
||||
contributors_rera_github.place(x=about_vrct_uism.CONTRIBUTORS_RERA_GITHUB_X, y=about_vrct_uism.CONTRIBUTORS_CONTACTS_Y1, anchor="nw")
|
||||
|
||||
|
||||
# POPOSUKE
|
||||
contributors_poposuke_x = createContactButton(
|
||||
parent_frame=contributors_members,
|
||||
image_file_name="contributors_x_icon.png",
|
||||
callback_arg="X_POPOSUKE",
|
||||
)
|
||||
contributors_poposuke_x.place(x=about_vrct_uism.CONTRIBUTORS_POPOSUKE_X_X, y=about_vrct_uism.CONTRIBUTORS_CONTACTS_Y2, anchor="nw")
|
||||
|
||||
# KUMAGUMA
|
||||
contributors_kumaguma_x = createContactButton(
|
||||
parent_frame=contributors_members,
|
||||
image_file_name="contributors_x_icon.png",
|
||||
callback_arg="X_KUMAGUMA",
|
||||
)
|
||||
contributors_kumaguma_x.place(x=about_vrct_uism.CONTRIBUTORS_KUMAGUMA_X_X, y=about_vrct_uism.CONTRIBUTORS_CONTACTS_Y2, anchor="nw")
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
section_row+=1
|
||||
# Special Thanks & Supporters ----------------------------------
|
||||
_special_thanks, special_thanks_contents_wrapper = createSectionContainer(
|
||||
section_row=section_row,
|
||||
section_title_image_file_name="special_thanks_section_title.png",
|
||||
section_bottom_padding=about_vrct_uism.SECTION_BOTTOM_PADY,
|
||||
section_title_bottom_padding=about_vrct_uism.SPECIAL_THANKS_SECTION_TITLE_BOTTOM_PADY
|
||||
)
|
||||
|
||||
special_thanks_members = settings.about_vrct.embedImageCTkLabel(special_thanks_contents_wrapper, "special_thanks_members.png")
|
||||
special_thanks_members.grid(column=0, row=0, padx=0, pady=(0,about_vrct_uism.SPECIAL_THANKS_MEMBERS_BOTTOM_PADY), sticky="nsew")
|
||||
|
||||
special_thanks_message = settings.about_vrct.embedImageCTkLabel(special_thanks_contents_wrapper, settings.about_vrct.image_file.SPECIAL_THANKS_MESSAGE)
|
||||
special_thanks_message.grid(column=0, row=1, padx=0, pady=(0,about_vrct_uism.SPECIAL_THANKS_MESSAGE_BOTTOM_PADY), sticky="nsew")
|
||||
|
||||
special_thanks_message_and_you = settings.about_vrct.embedImageCTkLabel(special_thanks_contents_wrapper, "special_thanks_message_and_you.png")
|
||||
special_thanks_message_and_you.grid(column=0, row=2, padx=0, pady=(0,about_vrct_uism.SPECIAL_THANKS_MESSAGE_AND_YOU_BOTTOM_PADY), sticky="nsw")
|
||||
|
||||
special_thanks_tell_us_message = createTellUsButton(
|
||||
parent_frame=special_thanks_contents_wrapper,
|
||||
image_file_name=settings.about_vrct.image_file.SPECIAL_THANKS_TELL_US_MESSAGE,
|
||||
callback=lambda _e: callFunctionIfCallable(view_variable.CALLBACK_OPEN_WEBPAGE_ABOUT_VRCT, "SUPPORTER_REGISTRATION"),
|
||||
)
|
||||
special_thanks_tell_us_message.grid(column=0, row=3)
|
||||
|
||||
|
||||
|
||||
|
||||
section_row+=1
|
||||
# Special Thanks & Supporters ----------------------------------
|
||||
_poster_showcase, poster_showcase_contents_wrapper = createSectionContainer(
|
||||
section_row=section_row,
|
||||
section_title_image_file_name="poster_showcase_section_title.png",
|
||||
section_bottom_padding=about_vrct_uism.SECTION_BOTTOM_PADY,
|
||||
section_title_bottom_padding=about_vrct_uism.POSTER_SHOWCASE_SECTION_TITLE_BOTTOM_PADY
|
||||
)
|
||||
|
||||
poster_showcase_worlds_wrapper = CTkFrame(poster_showcase_contents_wrapper, fg_color=ABOUT_VRCT_BG, corner_radius=0, width=0, height=0)
|
||||
poster_showcase_worlds_wrapper.grid(column=0, row=0, padx=0, pady=0, sticky="nsew")
|
||||
poster_showcase_worlds_wrapper.grid_columnconfigure(0, weight=1)
|
||||
|
||||
|
||||
poster_showcase_worlds = CTkFrame(poster_showcase_worlds_wrapper, fg_color=ABOUT_VRCT_BG, corner_radius=0, width=0, height=0)
|
||||
poster_showcase_worlds.grid(column=0, row=0, padx=0, pady=(0,about_vrct_uism.POSTER_SHOWCASE_WORLD_BOTTOM_PADY), sticky="nsew")
|
||||
poster_showcase_worlds.grid_columnconfigure(0, weight=1)
|
||||
|
||||
|
||||
poster_showcase_worlds_settings = [
|
||||
{
|
||||
"image_file_name": "ehon_no_heikousekai_jimusho.png",
|
||||
"callback": lambda _e: callFunctionIfCallable(view_variable.CALLBACK_OPEN_WEBPAGE_ABOUT_VRCT, "TEMP")
|
||||
},
|
||||
{
|
||||
"image_file_name": "ikoiba.png",
|
||||
"callback": lambda _e: callFunctionIfCallable(view_variable.CALLBACK_OPEN_WEBPAGE_ABOUT_VRCT, "TEMP")
|
||||
},
|
||||
{
|
||||
"image_file_name": "ippaidou.png",
|
||||
"callback": lambda _e: callFunctionIfCallable(view_variable.CALLBACK_OPEN_WEBPAGE_ABOUT_VRCT, "TEMP")
|
||||
},
|
||||
{
|
||||
"image_file_name": "japanese_culture_osenbeito.png",
|
||||
"callback": lambda _e: callFunctionIfCallable(view_variable.CALLBACK_OPEN_WEBPAGE_ABOUT_VRCT, "TEMP")
|
||||
},
|
||||
{
|
||||
"image_file_name": "kimodameshi.png",
|
||||
"callback": lambda _e: callFunctionIfCallable(view_variable.CALLBACK_OPEN_WEBPAGE_ABOUT_VRCT, "TEMP")
|
||||
},
|
||||
{
|
||||
"image_file_name": "kokekkopiyopiyo.png",
|
||||
"callback": lambda _e: callFunctionIfCallable(view_variable.CALLBACK_OPEN_WEBPAGE_ABOUT_VRCT, "TEMP")
|
||||
},
|
||||
{
|
||||
"image_file_name": "kuroinu_work_room.png",
|
||||
"callback": lambda _e: callFunctionIfCallable(view_variable.CALLBACK_OPEN_WEBPAGE_ABOUT_VRCT, "TEMP")
|
||||
},
|
||||
{
|
||||
"image_file_name": "language_exchange_tervern.png",
|
||||
"callback": lambda _e: callFunctionIfCallable(view_variable.CALLBACK_OPEN_WEBPAGE_ABOUT_VRCT, "TEMP")
|
||||
},
|
||||
{
|
||||
"image_file_name": "nihongokurabu.png",
|
||||
"callback": lambda _e: callFunctionIfCallable(view_variable.CALLBACK_OPEN_WEBPAGE_ABOUT_VRCT, "TEMP")
|
||||
},
|
||||
{
|
||||
"image_file_name": "parallel_collar.png",
|
||||
"callback": lambda _e: callFunctionIfCallable(view_variable.CALLBACK_OPEN_WEBPAGE_ABOUT_VRCT, "TEMP")
|
||||
},
|
||||
{
|
||||
"image_file_name": "re_yatuha_room.png",
|
||||
"callback": lambda _e: callFunctionIfCallable(view_variable.CALLBACK_OPEN_WEBPAGE_ABOUT_VRCT, "TEMP")
|
||||
},
|
||||
{
|
||||
"image_file_name": "silakan_datang_ke_rumahku.png",
|
||||
"callback": lambda _e: callFunctionIfCallable(view_variable.CALLBACK_OPEN_WEBPAGE_ABOUT_VRCT, "TEMP")
|
||||
},
|
||||
{
|
||||
"image_file_name": "study_japanese_world_japanichijou.png",
|
||||
"callback": lambda _e: callFunctionIfCallable(view_variable.CALLBACK_OPEN_WEBPAGE_ABOUT_VRCT, "TEMP")
|
||||
},
|
||||
{
|
||||
"image_file_name": "uj_club.png",
|
||||
"callback": lambda _e: callFunctionIfCallable(view_variable.CALLBACK_OPEN_WEBPAGE_ABOUT_VRCT, "TEMP")
|
||||
},
|
||||
{
|
||||
"image_file_name": "usanezumi_shrine2.png",
|
||||
"callback": lambda _e: callFunctionIfCallable(view_variable.CALLBACK_OPEN_WEBPAGE_ABOUT_VRCT, "TEMP")
|
||||
},
|
||||
{
|
||||
"image_file_name": "yuttari_eikaiwa.png",
|
||||
"callback": lambda _e: callFunctionIfCallable(view_variable.CALLBACK_OPEN_WEBPAGE_ABOUT_VRCT, "TEMP")
|
||||
},
|
||||
]
|
||||
|
||||
result = splitListRandomly(poster_showcase_worlds_settings, 8)
|
||||
poster_showcase_worlds_frame_list = []
|
||||
for split_poster_showcase_worlds_settings in result:
|
||||
poster_showcase_worlds_frame = CTkFrame(poster_showcase_worlds_wrapper, fg_color=ABOUT_VRCT_BG, corner_radius=0, width=0, height=0)
|
||||
poster_showcase_worlds_frame.grid_columnconfigure(0, weight=1)
|
||||
|
||||
createImageButtonRows(
|
||||
parent_frame=poster_showcase_worlds_frame,
|
||||
image_buttons_settings=split_poster_showcase_worlds_settings,
|
||||
bottom_pady=about_vrct_uism.POSTER_SHOWCASE_WORLD_ITEM_BOTTOM_PADY,
|
||||
directly_type="showcased_worlds",
|
||||
corner_radius=about_vrct_uism.POSTER_SHOWCASE_WORLD_CORNER_RADIUS,
|
||||
ipadx=about_vrct_uism.POSTER_SHOWCASE_WORLD_ITEM_IPADX,
|
||||
ipady=about_vrct_uism.POSTER_SHOWCASE_WORLD_ITEM_IPADY,
|
||||
)
|
||||
|
||||
poster_showcase_worlds_frame_list.append(poster_showcase_worlds_frame)
|
||||
|
||||
|
||||
pagination_button_settings = settings.about_vrct.image_file.POSTER_SHOWCASE_WORLD_PAGINATION_BUTTON
|
||||
|
||||
def toNextPagePosterShowcase(current_function_index):
|
||||
view_variable.CALLBACK_ABOUT_VRCT_CHANGE_POSTER_SHOWCASE_WORLD_LIST=None
|
||||
poster_showcase_worlds_frame_list[current_function_index].grid_remove()
|
||||
current_function_index = (current_function_index + 1) % len(poster_showcase_worlds_frame_list)
|
||||
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 = 180
|
||||
if current_function_index == 0:
|
||||
start_angle = 180
|
||||
goal_angle = 360
|
||||
|
||||
animateRotation(
|
||||
tk_root=config_window,
|
||||
img_frame=config_window.poster_showcase_pagination_button.img_label,
|
||||
img=pagination_button_settings.img,
|
||||
img_width=pagination_button_settings.width,
|
||||
img_height=pagination_button_settings.height,
|
||||
start_angle=start_angle,
|
||||
goal_angle=goal_angle,
|
||||
duration=0.5,
|
||||
)
|
||||
|
||||
view_variable.CALLBACK_ABOUT_VRCT_CHANGE_POSTER_SHOWCASE_WORLD_LIST=toNextPagePosterShowcase
|
||||
|
||||
# Initialize
|
||||
view_variable.CALLBACK_ABOUT_VRCT_CHANGE_POSTER_SHOWCASE_WORLD_LIST=toNextPagePosterShowcase
|
||||
|
||||
|
||||
poster_showcase_worlds_frame_list[0].grid(column=0, row=0, padx=0, pady=(0,about_vrct_uism.POSTER_SHOWCASE_WORLD_BOTTOM_PADY), sticky="nsew")
|
||||
|
||||
poster_showcase_worlds_wrapper.grid_rowconfigure(1, weight=1)
|
||||
|
||||
poster_showcase_pagination_button_wrapper = CTkFrame(poster_showcase_worlds_wrapper, fg_color=ABOUT_VRCT_BG, corner_radius=0, width=0, height=0)
|
||||
poster_showcase_pagination_button_wrapper.grid(column=0, row=2, padx=0, pady=0, sticky="nsew")
|
||||
|
||||
|
||||
poster_showcase_pagination_button_wrapper.grid_columnconfigure((0,2), weight=1)
|
||||
config_window.poster_showcase_pagination_button = settings.about_vrct.embedImageButtonCTkLabel(
|
||||
parent_frame=poster_showcase_pagination_button_wrapper,
|
||||
image_file_name="poster_showcase_pagination_button.png",
|
||||
callback=lambda _e: callFunctionIfCallable(view_variable.CALLBACK_ABOUT_VRCT_CHANGE_POSTER_SHOWCASE_WORLD_LIST, view_variable.CALLBACK_ABOUT_VRCT_POSTER_SHOWCASE_CURRENT_PAGE_NUM),
|
||||
hovered_color="transparent",
|
||||
clicked_color="transparent",
|
||||
)
|
||||
config_window.poster_showcase_pagination_button.grid(column=1, row=0, padx=0, pady=0, sticky="nsew")
|
||||
|
||||
|
||||
# poster_showcase_pagination_button_wrapper.grid_columnconfigure((0,2), weight=1)
|
||||
poster_showcase_pagination_button_chato = settings.about_vrct.embedImageButtonCTkLabel(
|
||||
parent_frame=poster_showcase_pagination_button_wrapper,
|
||||
image_file_name="poster_showcase_pagination_button_chato.png",
|
||||
callback=lambda _e: callFunctionIfCallable(view_variable.CALLBACK_ABOUT_VRCT_CHANGE_POSTER_SHOWCASE_WORLD_LIST, view_variable.CALLBACK_ABOUT_VRCT_POSTER_SHOWCASE_CURRENT_PAGE_NUM),
|
||||
hovered_color="transparent",
|
||||
clicked_color="transparent",
|
||||
)
|
||||
poster_showcase_pagination_button_chato.place(relx=0.5, rely=0.5, anchor="center")
|
||||
|
||||
pagination_button_chato_settings = settings.about_vrct.image_file.POSTER_SHOWCASE_WORLD_PAGINATION_BUTTON_CHATO
|
||||
|
||||
def rotateChatoAnimation():
|
||||
view_variable.CALLBACK_ABOUT_VRCT_CHANGE_POSTER_SHOWCASE_BUTTON_HOVERED = None
|
||||
|
||||
animateRotation(
|
||||
tk_root=config_window,
|
||||
img_frame=poster_showcase_pagination_button_chato.img_label,
|
||||
img=pagination_button_chato_settings.img,
|
||||
img_width=pagination_button_chato_settings.width,
|
||||
img_height=pagination_button_chato_settings.height,
|
||||
start_angle=0,
|
||||
goal_angle=360,
|
||||
duration=0.5,
|
||||
)
|
||||
view_variable.CALLBACK_ABOUT_VRCT_CHANGE_POSTER_SHOWCASE_BUTTON_HOVERED = rotateChatoAnimation
|
||||
|
||||
|
||||
view_variable.CALLBACK_ABOUT_VRCT_CHANGE_POSTER_SHOWCASE_BUTTON_HOVERED = rotateChatoAnimation
|
||||
|
||||
bindEnterAndLeaveFunction(
|
||||
target_widgets=[config_window.poster_showcase_pagination_button.img_label,poster_showcase_pagination_button_chato.img_label],
|
||||
enterFunction=lambda _e: callFunctionIfCallable(view_variable.CALLBACK_ABOUT_VRCT_CHANGE_POSTER_SHOWCASE_BUTTON_HOVERED),
|
||||
leaveFunction=None,
|
||||
)
|
||||
|
||||
|
||||
|
||||
|
||||
poster_container = CTkFrame(poster_showcase_contents_wrapper, fg_color=ABOUT_VRCT_BG, corner_radius=0, width=0, height=0)
|
||||
poster_container.grid(column=1, row=0, padx=0, pady=0, sticky="nsew")
|
||||
poster_container.grid_columnconfigure(1, weight=1)
|
||||
|
||||
|
||||
poster_images_wrapper = CTkFrame(poster_container, fg_color=ABOUT_VRCT_BG, corner_radius=0, width=0, height=0)
|
||||
poster_images_wrapper.grid(column=0, row=0, padx=0, pady=(0,about_vrct_uism.POSTER_SHOWCASE_POSTER_IMAGES_BOTTOM_PADY), sticky="nsew")
|
||||
poster_images_wrapper.grid_columnconfigure(1, weight=1)
|
||||
|
||||
|
||||
|
||||
|
||||
poster_image_arrow_left = settings.about_vrct.embedImageButtonCTkLabel(poster_images_wrapper, "arrow_left.png", lambda _e: callFunctionIfCallable(view_variable.CALLBACK_ABOUT_VRCT_POSTER_PREV_BUTTON))
|
||||
poster_image_arrow_left.grid(column=0, row=0, padx=0, pady=0, sticky="nsew")
|
||||
poster_image_arrow_left.configure(corner_radius=about_vrct_uism.POSTER_CHANGE_BUTTON_CORNER_RADIUS)
|
||||
|
||||
bindButtonFunctionAndColor(
|
||||
target_widgets=[poster_image_arrow_left],
|
||||
enter_color=settings.ctm.ABOUT_VRCT_BUTTON_HOVERED_BG_COLOR,
|
||||
leave_color=ABOUT_VRCT_BG,
|
||||
clicked_color=settings.ctm.ABOUT_VRCT_BUTTON_CLICKED_BG_COLOR,
|
||||
buttonReleasedFunction=None,
|
||||
)
|
||||
|
||||
|
||||
# For change the image, register to config_window
|
||||
config_window.poster_image_frame__iya_vrct_poster_ja = settings.about_vrct.embedImageCTkLabel(poster_images_wrapper, "iya_vrct_poster_ja.png", directly_type="vrct_posters")
|
||||
config_window.poster_image_frame__iya_vrct_poster_en = settings.about_vrct.embedImageCTkLabel(poster_images_wrapper, "iya_vrct_poster_en.png", directly_type="vrct_posters")
|
||||
config_window.poster_image_frame__iya_vrct_poster_cn = settings.about_vrct.embedImageCTkLabel(poster_images_wrapper, "iya_vrct_poster_cn.png", directly_type="vrct_posters")
|
||||
|
||||
config_window.poster_image_frame_dict = {
|
||||
"iya_vrct_poster_ja": config_window.poster_image_frame__iya_vrct_poster_ja,
|
||||
"iya_vrct_poster_en": config_window.poster_image_frame__iya_vrct_poster_en,
|
||||
"iya_vrct_poster_cn": config_window.poster_image_frame__iya_vrct_poster_cn,
|
||||
}
|
||||
def vrctPostersGridRemove():
|
||||
for poster_frame in config_window.poster_image_frame_dict.values():
|
||||
poster_frame.grid_remove()
|
||||
|
||||
|
||||
def gridVrctPoster_Ja():
|
||||
vrctPostersGridRemove()
|
||||
config_window.poster_image_frame_dict["iya_vrct_poster_ja"].grid(column=1, row=0, padx=0, pady=0, sticky="nsew")
|
||||
view_variable.CALLBACK_ABOUT_VRCT_POSTER_PREV_BUTTON=gridVrctPoster_Cn
|
||||
view_variable.CALLBACK_ABOUT_VRCT_POSTER_NEXT_BUTTON=gridVrctPoster_En
|
||||
|
||||
def gridVrctPoster_En():
|
||||
vrctPostersGridRemove()
|
||||
config_window.poster_image_frame_dict["iya_vrct_poster_en"].grid(column=1, row=0, padx=0, pady=0, sticky="nsew")
|
||||
view_variable.CALLBACK_ABOUT_VRCT_POSTER_PREV_BUTTON=gridVrctPoster_Ja
|
||||
view_variable.CALLBACK_ABOUT_VRCT_POSTER_NEXT_BUTTON=gridVrctPoster_Cn
|
||||
|
||||
def gridVrctPoster_Cn():
|
||||
vrctPostersGridRemove()
|
||||
config_window.poster_image_frame_dict["iya_vrct_poster_cn"].grid(column=1, row=0, padx=0, pady=0, sticky="nsew")
|
||||
view_variable.CALLBACK_ABOUT_VRCT_POSTER_PREV_BUTTON=gridVrctPoster_En
|
||||
view_variable.CALLBACK_ABOUT_VRCT_POSTER_NEXT_BUTTON=gridVrctPoster_Ja
|
||||
|
||||
gridVrctPoster_Ja()
|
||||
|
||||
poster_image_arrow_right = settings.about_vrct.embedImageButtonCTkLabel(poster_images_wrapper, "arrow_right.png", lambda _e: callFunctionIfCallable(view_variable.CALLBACK_ABOUT_VRCT_POSTER_NEXT_BUTTON))
|
||||
poster_image_arrow_right.grid(column=2, row=0, padx=0, pady=0, sticky="nsew")
|
||||
poster_image_arrow_right.configure(corner_radius=about_vrct_uism.POSTER_CHANGE_BUTTON_CORNER_RADIUS)
|
||||
|
||||
|
||||
bindButtonFunctionAndColor(
|
||||
target_widgets=[poster_image_arrow_right],
|
||||
enter_color=settings.ctm.ABOUT_VRCT_BUTTON_HOVERED_BG_COLOR,
|
||||
leave_color=ABOUT_VRCT_BG,
|
||||
clicked_color=settings.ctm.ABOUT_VRCT_BUTTON_CLICKED_BG_COLOR,
|
||||
buttonReleasedFunction=None,
|
||||
)
|
||||
|
||||
|
||||
poster_images_authors_wrapper = CTkFrame(poster_container, fg_color=ABOUT_VRCT_BG, corner_radius=0, width=0, height=0)
|
||||
poster_images_authors_wrapper.grid(column=0, row=1, padx=0, pady=0, sticky="nsew")
|
||||
|
||||
poster_images_authors = settings.about_vrct.embedImageCTkLabel(poster_images_authors_wrapper, "poster_images_authors.png")
|
||||
poster_images_authors.grid(column=0, row=0, padx=0, pady=0, sticky="nsew")
|
||||
|
||||
|
||||
poster_tell_us_message = createTellUsButton(
|
||||
parent_frame=poster_showcase_contents_wrapper,
|
||||
image_file_name=settings.about_vrct.image_file.POSTER_TELL_US_MESSAGE,
|
||||
callback=lambda _e: callFunctionIfCallable(view_variable.CALLBACK_OPEN_WEBPAGE_ABOUT_VRCT, "TEMP"),
|
||||
)
|
||||
poster_tell_us_message.grid(column=0, row=1, columnspan=2, padx=0, pady=(about_vrct_uism.POSTER_TELL_US_MESSAGE_TOP_PADY,0), sticky="nse")
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
section_row+=1
|
||||
# VRChat disclaimer ----------------------------------
|
||||
vrchat_disclaimer, vrchat_disclaimer_contents_wrapper = createSectionContainer(
|
||||
section_row=section_row,
|
||||
)
|
||||
|
||||
|
||||
vrchat_disclaimer_label = settings.about_vrct.embedImageCTkLabel(vrchat_disclaimer_contents_wrapper, "vrchat_disclaimer.png")
|
||||
vrchat_disclaimer_label.grid(column=0, row=0, padx=0, pady=(about_vrct_uism.VRCHAT_DISCLAIMER_SECTION_TOP_PADDING, 0), sticky="nsew")
|
||||
Reference in new issue
Block a user