Merge branch 'about_vrct' into develop

This commit is contained in:
Sakamoto Shiina
2024-04-26 11:32:03 +09:00
46 changed files with 312 additions and 132 deletions

Binary file not shown.

Before

Width:  |  Height:  |  Size: 62 KiB

After

Width:  |  Height:  |  Size: 64 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 52 KiB

After

Width:  |  Height:  |  Size: 53 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 959 B

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.0 KiB

After

Width:  |  Height:  |  Size: 8.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.4 KiB

After

Width:  |  Height:  |  Size: 5.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.4 KiB

After

Width:  |  Height:  |  Size: 5.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 10 KiB

After

Width:  |  Height:  |  Size: 9.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.0 KiB

After

Width:  |  Height:  |  Size: 6.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.2 KiB

After

Width:  |  Height:  |  Size: 6.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.9 KiB

After

Width:  |  Height:  |  Size: 6.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.2 KiB

After

Width:  |  Height:  |  Size: 7.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.6 KiB

After

Width:  |  Height:  |  Size: 8.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.8 KiB

After

Width:  |  Height:  |  Size: 6.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.2 KiB

After

Width:  |  Height:  |  Size: 6.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.1 KiB

After

Width:  |  Height:  |  Size: 7.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 13 KiB

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.0 KiB

After

Width:  |  Height:  |  Size: 6.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.5 KiB

After

Width:  |  Height:  |  Size: 9.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.5 KiB

After

Width:  |  Height:  |  Size: 7.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 34 KiB

After

Width:  |  Height:  |  Size: 36 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 147 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 146 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 144 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 105 KiB

After

Width:  |  Height:  |  Size: 107 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 119 KiB

After

Width:  |  Height:  |  Size: 121 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 105 KiB

After

Width:  |  Height:  |  Size: 107 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 100 KiB

View File

@@ -61,8 +61,10 @@ def renameWeightFolder(path):
if os_path.exists(weight_path):
os_rename(weight_path, os_path.join(path, "weights"))
def splitListRandomly(lst, split_count):
random.shuffle(lst)
def splitList(lst:list, split_count:int, to_shuffle:bool=False):
if to_shuffle is True:
random.shuffle(lst)
split_lists = []
for i in range(0, len(lst), split_count):
sub_list = lst[i:i+split_count]

13
view.py
View File

@@ -607,8 +607,11 @@ class View():
# About VRCT Tab
CALLBACK_OPEN_WEBPAGE_ABOUT_VRCT=self.openWebPage_AboutVrct,
CALLBACK_ABOUT_VRCT_POSTER_NEXT_BUTTON=None,
CALLBACK_ABOUT_VRCT_POSTER_PREV_BUTTON=None,
CALLBACK_ABOUT_VRCT_POSTER_IMAGE_CURRENT_PAGE_NUM=0,
CALLBACK_ABOUT_VRCT_CHANGE_POSTER_SHOWCASE_WORLD_LIST=None,
CALLBACK_ABOUT_VRCT_POSTER_SHOWCASE_CURRENT_PAGE_NUM=0,
)
@@ -1119,7 +1122,7 @@ class View():
def openWebPage_DeepL_Auth_Key(self):
self.openWebPage(config.DEEPL_AUTH_KEY_PAGE_URL)
def openWebPage_AboutVrct(self, target_type:str):
def openWebPage_AboutVrct(self, target_type:str, arg=None):
url = ""
match (target_type):
case ("X_MISYA"):
@@ -1159,6 +1162,14 @@ class View():
case ("SUPPORTER_REGISTRATION"):
url = "https://docs.google.com/forms/d/e/1FAIpQLSepLzdEOTJQFVHdOOxAA0dix3zCmnNBlmH4XWon5FldXkIiqw/viewform"
case ("X_SHIINA_POSTER_SHOWCASE_POST"):
if arg is None:
print("arg that received is None. it mus be something number")
return
url = "https://twitter.com/Shiina_12siy/status/" + arg
case "TEMP":
print("here is still under construction.")
return

View File

@@ -35,7 +35,7 @@ def createSideMenuAndSettingsBoxContainers(config_window, settings, view_variabl
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, 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_PADY, sticky="nsew")

View File

@@ -0,0 +1,122 @@
poster_showcase_worlds_settings = [
# トサカひよ
{
"author_name": "tosaka_hiyo",
"data": [
{ "image_file_name": "kokekkopiyopiyo.png", "x_post_num": "1779076974369276014" },
]
},
# MiuJepang
{
"author_name": "miu_jepang",
"data": [
{ "image_file_name": "ippaidou.png", "x_post_num": None },
{ "image_file_name": "nihongokurabu.png", "x_post_num": "1779004631936614893" },
{ "image_file_name": "language_exchange_tervern.png", "x_post_num": "1779749425923150317" },
{ "image_file_name": "japanese_culture_osenbeito.png", "x_post_num": None },
{ "image_file_name": "silakan_datang_ke_rumahku.png", "x_post_num": None },
{ "image_file_name": "uj_club.png", "x_post_num": "1780791654196388201" },
{ "image_file_name": "sushi_stand_guruguru.png", "x_post_num": None },
]
},
# poposuke_sig
{
"author_name": "poposuke_sig",
"data": [
{ "image_file_name": "usanezumi_shrine2.png", "x_post_num": "1781224020383506649" },
]
},
# KUROINU_YOUHEI
{
"author_name": "kuroinu_youhei",
"data": [
{ "image_file_name": "kuroinu_work_room.png", "x_post_num": "1779750007564112146" },
]
},
# いちや_ICHIYA
{
"author_name": "ichiya",
"data": [
{ "image_file_name": "ehon_no_heikousekai_jimusho.png", "x_post_num": "1780792306976850285" },
{ "image_file_name": "ikoiba.png", "x_post_num": "1782723006923780580" },
{ "image_file_name": "kimodameshi.png", "x_post_num": "1781224391692714133" },
{ "image_file_name": "parallel_collar.png", "x_post_num": None },
]
},
# HayaTikaze
{
"author_name": "haya_tikaze",
"data": [
{ "image_file_name": "study_japanese_world_japanichijou.png", "x_post_num": "1781539871829766550" },
]
},
# aji_3
{
"author_name": "aji_3",
"data": [
{ "image_file_name": "yuttari_eikaiwa.png", "x_post_num": "1779002892999078046" },
]
},
# 八葉そるち
{
"author_name": "yatuha_soruti",
"data": [
{ "image_file_name": "re_yatuha_room.png", "x_post_num": "1779830390435590196" },
]
},
# chakamoto
{
"author_name": "chakamoto",
"data": [
{ "image_file_name": "coffee_keisyoku_chakachaka.png", "x_post_num": None },
]
},
# MloYolM (よるむ)
{
"author_name": "yolm",
"data": [
{ "image_file_name": "cafe_cian.png", "x_post_num": None },
]
},
# ミラクル・オルカ
{
"author_name": "miracle_orca",
"data": [
{ "image_file_name": "mamehinata_dogrun.png", "x_post_num": "1782723423179100471" },
]
},
# いんくEenkoo
{
"author_name": "eenkoo",
"data": [
{ "image_file_name": "tyuuniti_kouryuukai.png", "x_post_num": None },
]
},
# 1ban_meno
{
"author_name": "1ban_meno",
"data": [
{ "image_file_name": "bar_asagao.png", "x_post_num": None },
]
},
# 沈黙静寂
{
"author_name": "sizudama_sizusabi",
"data": [
{ "image_file_name": "monogatari_meetup.png", "x_post_num": "1781538415789674976" },
]
},
]

View File

@@ -1,8 +1,10 @@
from random import randint
from types import SimpleNamespace
from customtkinter import CTkFrame, CTkLabel, CTkImage, CTkFont
from utils import callFunctionIfCallable, splitListRandomly
from utils import callFunctionIfCallable, splitList
from ......ui_utils import bindButtonFunctionAndColor, animateRotation, bindEnterAndLeaveFunction
from .about_vrct_store import poster_showcase_worlds_settings
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)
@@ -49,9 +51,10 @@ def createSettingBox_AboutVrct(setting_box_wrapper, config_window, settings, vie
each_button = settings.about_vrct.embedImageButtonCTkLabel(
parent_frame=parent_frame,
image_file_name=each_setting["image_file_name"],
callback=each_setting["callback"],
callback=each_setting.get("callback", None),
directly_type=directly_type,
corner_radius=corner_radius,
no_bind=each_setting.get("no_bind", False),
)
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")
@@ -293,74 +296,25 @@ def createSettingBox_AboutVrct(setting_box_wrapper, config_window, settings, vie
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)
compounded_poster_showcase_worlds_list = []
for each_author_settings in poster_showcase_worlds_settings:
for data in each_author_settings["data"]:
if data["x_post_num"] is None:
append_settings = {
"image_file_name": data["image_file_name"],
"no_bind": True,
}
else:
x_post_num = data["x_post_num"]
callback = lambda _e,arg=x_post_num: view_variable.CALLBACK_OPEN_WEBPAGE_ABOUT_VRCT("X_SHIINA_POSTER_SHOWCASE_POST", arg)
append_settings = {
"image_file_name": data["image_file_name"],
"callback": callback,
}
compounded_poster_showcase_worlds_list.append(append_settings)
result = splitList(compounded_poster_showcase_worlds_list, 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)
@@ -381,18 +335,30 @@ def createSettingBox_AboutVrct(setting_box_wrapper, config_window, settings, vie
pagination_button_settings = settings.about_vrct.image_file.POSTER_SHOWCASE_WORLD_PAGINATION_BUTTON
def toNextPagePosterShowcase(current_function_index):
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
poster_showcase_worlds_frame_list[current_function_index].grid_remove()
pre_function_index = current_function_index
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
start_angle, goal_angle = defineAngles(pre_function_index)
animateRotation(
tk_root=config_window,
@@ -410,22 +376,26 @@ 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)
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")
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")
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(column=0, row=2, padx=0, pady=(0, about_vrct_uism.POSTER_SHOWCASE_WORLD_PAGINATION_BUTTON_BOTTOM_PADY), 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),
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")
@@ -434,11 +404,11 @@ def createSettingBox_AboutVrct(setting_box_wrapper, config_window, settings, vie
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),
callback=lambda _e: callFunctionIfCallable(view_variable.CALLBACK_ABOUT_VRCT_CHANGE_POSTER_SHOWCASE_WORLD_LIST),
hovered_color="transparent",
clicked_color="transparent",
)
poster_showcase_pagination_button_chato.place(relx=0.5, rely=0.5, anchor="center")
poster_showcase_pagination_button_chato.place(relx=0.502, rely=0.51, anchor="center")
pagination_button_chato_settings = settings.about_vrct.image_file.POSTER_SHOWCASE_WORLD_PAGINATION_BUTTON_CHATO
@@ -494,40 +464,107 @@ def createSettingBox_AboutVrct(setting_box_wrapper, config_window, settings, vie
)
# 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")
poster_image_frame_settings_list = [
{
"file_name": "iya_vrct_poster_ja.png",
"poster_type": "poster",
},
{
"file_name": "iya_vrct_poster_en.png",
"poster_type": "poster",
},
{
"file_name": "iya_vrct_poster_cn.png",
"poster_type": "poster",
},
{
"file_name": "iya_vrct_poster_ko.png",
"poster_type": "poster",
},
{
"file_name": "iya_vrct_manga_ja.png",
"poster_type": "manga",
},
{
"file_name": "iya_vrct_manga_en.png",
"poster_type": "manga",
},
{
"file_name": "iya_vrct_manga_ko.png",
"poster_type": "manga",
},
]
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()
poster_frame_list = []
for poster_frame_settings in poster_image_frame_settings_list:
poster_frame = settings.about_vrct.embedImageCTkLabel(poster_images_wrapper, poster_frame_settings["file_name"], directly_type="vrct_posters")
poster_frame_list.append(poster_frame)
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
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")
config_window.poster_images_authors = settings.about_vrct.embedImageCTkLabel(poster_images_authors_wrapper, settings.about_vrct.image_file.POSTER_IMAGES_AUTHOR)
config_window.poster_images_authors_m = settings.about_vrct.embedImageCTkLabel(poster_images_authors_wrapper, settings.about_vrct.image_file.POSTER_IMAGES_AUTHOR_M)
def toPrevPagePosterImage():
current_function_index = view_variable.CALLBACK_ABOUT_VRCT_POSTER_IMAGE_CURRENT_PAGE_NUM
view_variable.CALLBACK_ABOUT_VRCT_POSTER_PREV_BUTTON=None
view_variable.CALLBACK_ABOUT_VRCT_POSTER_NEXT_BUTTON=None
poster_frame_list[current_function_index].grid_remove()
current_function_index = (current_function_index - 1) % len(poster_frame_list)
poster_frame_list[current_function_index].grid(column=1, row=0, padx=0, pady=0, sticky="nsew")
view_variable.CALLBACK_ABOUT_VRCT_POSTER_IMAGE_CURRENT_PAGE_NUM = current_function_index
if poster_image_frame_settings_list[current_function_index]["poster_type"] == "poster":
config_window.poster_images_authors_m.grid_remove()
config_window.poster_images_authors.grid(column=0, row=0, padx=0, pady=0, sticky="nsew")
elif poster_image_frame_settings_list[current_function_index]["poster_type"] == "manga":
config_window.poster_images_authors.grid_remove()
config_window.poster_images_authors_m.grid(column=0, row=0, padx=0, pady=0, sticky="nsew")
view_variable.CALLBACK_ABOUT_VRCT_POSTER_PREV_BUTTON=toPrevPagePosterImage
view_variable.CALLBACK_ABOUT_VRCT_POSTER_NEXT_BUTTON=toNextPagePosterImage
def toNextPagePosterImage():
current_function_index = view_variable.CALLBACK_ABOUT_VRCT_POSTER_IMAGE_CURRENT_PAGE_NUM
view_variable.CALLBACK_ABOUT_VRCT_POSTER_PREV_BUTTON=None
view_variable.CALLBACK_ABOUT_VRCT_POSTER_NEXT_BUTTON=None
poster_frame_list[current_function_index].grid_remove()
current_function_index = (current_function_index + 1) % len(poster_frame_list)
poster_frame_list[current_function_index].grid(column=1, row=0, padx=0, pady=0, sticky="nsew")
view_variable.CALLBACK_ABOUT_VRCT_POSTER_IMAGE_CURRENT_PAGE_NUM = current_function_index
if poster_image_frame_settings_list[current_function_index]["poster_type"] == "poster":
config_window.poster_images_authors_m.grid_remove()
config_window.poster_images_authors.grid(column=0, row=0, padx=0, pady=0, sticky="nsew")
elif poster_image_frame_settings_list[current_function_index]["poster_type"] == "manga":
config_window.poster_images_authors.grid_remove()
config_window.poster_images_authors_m.grid(column=0, row=0, padx=0, pady=0, sticky="nsew")
view_variable.CALLBACK_ABOUT_VRCT_POSTER_PREV_BUTTON=toPrevPagePosterImage
view_variable.CALLBACK_ABOUT_VRCT_POSTER_NEXT_BUTTON=toNextPagePosterImage
# Initialize
view_variable.CALLBACK_ABOUT_VRCT_POSTER_PREV_BUTTON=toPrevPagePosterImage
view_variable.CALLBACK_ABOUT_VRCT_POSTER_NEXT_BUTTON=toNextPagePosterImage
config_window.poster_images_authors.grid(column=0, row=0, padx=0, pady=0, sticky="nsew")
poster_frame_list[0].grid(column=1, row=0, padx=0, pady=0, sticky="nsew")
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")
@@ -543,11 +580,10 @@ def createSettingBox_AboutVrct(setting_box_wrapper, config_window, settings, vie
)
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(

View File

@@ -56,12 +56,13 @@ class AboutVrctManager():
self.uism.SPECIAL_THANKS_MESSAGE_AND_YOU_BOTTOM_PADY = self._calculateUiSize(8)
self.uism.POSTER_SHOWCASE_SECTION_TITLE_BOTTOM_PADY = self._calculateUiSize(6)
self.uism.POSTER_SHOWCASE_POSTER_IMAGES_BOTTOM_PADY = self._calculateUiSize(18)
self.uism.POSTER_SHOWCASE_POSTER_IMAGES_BOTTOM_PADY = self._calculateUiSize(6)
self.uism.POSTER_SHOWCASE_WORLD_ITEM_BOTTOM_PADY = self._calculateUiSize(4)
self.uism.POSTER_SHOWCASE_WORLD_ITEM_IPADX = self._calculateUiSize(12)
self.uism.POSTER_SHOWCASE_WORLD_ITEM_IPADY = self._calculateUiSize(4)
self.uism.POSTER_SHOWCASE_WORLD_BOTTOM_PADY = self._calculateUiSize(4)
self.uism.POSTER_SHOWCASE_WORLD_CORNER_RADIUS = self._calculateUiSize(4)
self.uism.POSTER_SHOWCASE_WORLD_PAGINATION_BUTTON_BOTTOM_PADY = self._calculateUiSize(18)
self.uism.POSTER_TELL_US_MESSAGE_TOP_PADY = self._calculateUiSize(20)
self.uism.POSTER_CHANGE_BUTTON_CORNER_RADIUS = self._calculateUiSize(6)
@@ -72,12 +73,19 @@ class AboutVrctManager():
if ui_language == "ja":
self.image_file.SPECIAL_THANKS_MESSAGE = "special_thanks_message_ja.png"
self.image_file.SPECIAL_THANKS_TELL_US_MESSAGE = "special_thanks_tell_us_message_ja.png"
self.image_file.POSTER_IMAGES_AUTHOR = "poster_images_authors_ja.png"
self.image_file.POSTER_IMAGES_AUTHOR_M = "poster_images_authors_m_ja.png"
self.image_file.POSTER_TELL_US_MESSAGE = "poster_tell_us_message_ja.png"
else:
self.image_file.SPECIAL_THANKS_MESSAGE = "special_thanks_message_en.png"
self.image_file.SPECIAL_THANKS_TELL_US_MESSAGE = "special_thanks_tell_us_message_en.png"
self.image_file.POSTER_IMAGES_AUTHOR = "poster_images_authors_en.png"
self.image_file.POSTER_IMAGES_AUTHOR_M = "poster_images_authors_m_en.png"
self.image_file.POSTER_TELL_US_MESSAGE = "poster_tell_us_message_en.png"
poster_showcase_pagination_button_image = getImageFileFromUiUtils_AboutVrct("poster_showcase_pagination_button.png")
self.image_file.POSTER_SHOWCASE_WORLD_PAGINATION_BUTTON = SimpleNamespace(
img = poster_showcase_pagination_button_image,
@@ -117,7 +125,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)
@@ -139,12 +147,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):
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
@@ -155,18 +163,19 @@ 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)
img_label_frame.configure(cursor="hand2")
img_label.configure(cursor="hand2")
img_label._canvas.configure(cursor="hand2")
bindButtonFunctionAndColor(
target_widgets=[img_label_frame, img_label],
enter_color=hovered_color,
leave_color=fg_color,
clicked_color=clicked_color,
buttonReleasedFunction=callback,
)
if no_bind is False:
img_label_frame.configure(cursor="hand2")
img_label.configure(cursor="hand2")
img_label._canvas.configure(cursor="hand2")
bindButtonFunctionAndColor(
target_widgets=[img_label_frame, img_label],
enter_color=hovered_color,
leave_color=fg_color,
clicked_color=clicked_color,
buttonReleasedFunction=callback,
)
img_label.grid()
img_label_frame.img_label = img_label

View File

@@ -223,7 +223,7 @@ class UiScalingManager():
# Side menu
self.config_window.SIDE_MENU_TOP_PADY = (self._calculateUiSize(54), self._calculateUiSize(60))
self.config_window.SIDE_MENU_PADY = (self._calculateUiSize(54), self._calculateUiSize(72))
self.config_window.SIDE_MENU_LABELS_SEPARATE_MIN_HEIGHT = self._calculateUiSize(40)
self.config_window.SIDE_MENU_LABELS_IPADX = self._calculateUiSize(20)
self.config_window.SIDE_MENU_LABELS_IPADY = self._calculateUiSize(8)