mirror of
https://github.com/FAUSheppy/homelab_gamevault
synced 2025-12-06 06:51:36 +01:00
wip: extra files & picture scroller
This commit is contained in:
@@ -6,7 +6,7 @@ def show_large_picture(app, path):
|
||||
'''Show a full-window version of the clicked picture'''
|
||||
pass
|
||||
|
||||
def create_details_page(app, software):
|
||||
def create_details_page(app, software, backswitch_function):
|
||||
'''Create the details page for a software and return its elements for later destruction'''
|
||||
|
||||
elements = []
|
||||
@@ -19,10 +19,19 @@ def create_details_page(app, software):
|
||||
|
||||
img = PIL.ImageTk.PhotoImage(img)
|
||||
|
||||
# navbar #
|
||||
navbar = customtkinter.CTkFrame(app)
|
||||
navbar.grid(column=0, row=0)
|
||||
back_button = customtkinter.CTkButton(navbar, text="Back",
|
||||
command=backswitch_function)
|
||||
back_button.pack(anchor="nw", side="left")
|
||||
elements.append(navbar)
|
||||
elements.append(back_button)
|
||||
|
||||
# thumbnail image #
|
||||
thumbnail_image = customtkinter.CTkButton(app, text="", image=img, width=500, height=700,
|
||||
command=lambda: show_large_picture(app, path))
|
||||
thumbnail_image.grid(column=0, row=0, padx=10, pady=10)
|
||||
thumbnail_image.grid(column=0, row=1, padx=10, pady=10)
|
||||
elements.append(thumbnail_image)
|
||||
|
||||
# fonts #
|
||||
@@ -31,7 +40,8 @@ def create_details_page(app, software):
|
||||
|
||||
# info box #
|
||||
info_frame = customtkinter.CTkFrame(app)
|
||||
info_frame.grid(column=1, row=0, sticky="ns", padx=10, pady=10)
|
||||
info_frame.grid(column=1, row=1, sticky="ns", padx=10, pady=10)
|
||||
elements.append(info_frame)
|
||||
|
||||
# title #
|
||||
title = customtkinter.CTkLabel(info_frame, text=software.title, font=title_font)
|
||||
@@ -46,18 +56,32 @@ def create_details_page(app, software):
|
||||
elements.append(genre)
|
||||
|
||||
# description #
|
||||
description = customtkinter.CTkTextbox(info_frame, width=400, height=200)
|
||||
description = customtkinter.CTkTextbox(info_frame)
|
||||
description.insert("0.0", software.description)
|
||||
description.pack(anchor="w", side="top", fill="both", padx=20, pady=15)
|
||||
elements.append(description)
|
||||
|
||||
# registry modification #
|
||||
reg_mod_yes_no = "yes" if software.reg_files else "no"
|
||||
reg_mod_text = "Requires Registry Modification: {}".format(reg_mod_yes_no)
|
||||
reg_mod_info = customtkinter.CTkLabel(info_frame, text=reg_mod_text, padx=20)
|
||||
reg_mod_info.pack(anchor="w", side="top")
|
||||
elements.append(reg_mod_info)
|
||||
|
||||
# dependencies #
|
||||
if software.dependencies:
|
||||
dependencies_text = ",".join(software.dependencies)
|
||||
dependencies_text = "Dependencies: " + ",".join(software.dependencies)
|
||||
dependencies = customtkinter.CTkLabel(info_frame, text=dependencies_text)
|
||||
dependencies.pack(anchor="w", side="top", padx=20)
|
||||
elements.append(dependencies)
|
||||
|
||||
# extra_files #
|
||||
if software.extra_files:
|
||||
extra_text = "Targets extra directories: " + ",".join(set(software.extra_files.values()))
|
||||
extra_text_label = customtkinter.CTkLabel(info_frame, text=extra_text)
|
||||
extra_text_label.pack(anchor="w", side="top", padx=20)
|
||||
elements.append(extra_text_label)
|
||||
|
||||
# buttons #
|
||||
install_button = customtkinter.CTkButton(info_frame, text="Install",
|
||||
command=lambda: software.install())
|
||||
@@ -75,15 +99,21 @@ def create_details_page(app, software):
|
||||
elements.append(remove_button)
|
||||
|
||||
# add other pictures #
|
||||
i = 0
|
||||
for path in software.pictures[1:]:
|
||||
img = PIL.Image.open(path)
|
||||
img = img.resize((200, 300))
|
||||
img = PIL.ImageTk.PhotoImage(img)
|
||||
extra_pic_button = customtkinter.CTkButton(app, text="", image=img, width=200, height=300,
|
||||
command=lambda: show_large_picture(app, path))
|
||||
extra_pic_button.grid(padx=10, pady=10, row=0, column=i)
|
||||
elements.append(extra_pic_button)
|
||||
i += 1
|
||||
if software.pictures:
|
||||
|
||||
picture_frame = customtkinter.CTkScrollableFrame(info_frame, height=200, width=300, orientation="horizontal")
|
||||
picture_frame.pack(anchor="w", side="top", padx=10)
|
||||
|
||||
i = 0
|
||||
for path in software.pictures[1:]:
|
||||
img = PIL.Image.open(path)
|
||||
img = img.resize((180, 180))
|
||||
img = PIL.ImageTk.PhotoImage(img)
|
||||
extra_pic_button = customtkinter.CTkButton(picture_frame, text="", image=img, command=lambda: show_large_picture(app, path))
|
||||
extra_pic_button.grid(padx=10, pady=10, row=0, column=i)
|
||||
elements.append(extra_pic_button)
|
||||
i += 1
|
||||
|
||||
elements.append(picture_frame)
|
||||
|
||||
return elements
|
||||
|
||||
Reference in New Issue
Block a user