diff --git a/custom_theme_dark.json b/custom_theme_dark.json index 1d0fdda..573332e 100644 --- a/custom_theme_dark.json +++ b/custom_theme_dark.json @@ -11,26 +11,32 @@ }, "CTkButton": { "fg_color": ["#21498a", "#21498a"], - "hover_color": ["#2a5c9e", "#2a5c9e"] + "hover_color": ["#2a5c9e", "#2a5c9e"], + "corner_radius": 8 }, "CTkEntry": { "fg_color": ["#1e1e1e", "#1e1e1e"], "text_color": ["#ecd7b2", "#ecd7b2"], - "placeholder_text_color": ["#888888", "#888888"] + "placeholder_text_color": ["#888888", "#888888"], + "corner_radius": 8, + "border_width": 2 }, "CTkOptionMenu": { "fg_color": ["#21498a", "#21498a"], "button_color": ["#21498a", "#21498a"], "button_hover_color": ["#2a5c9e", "#2a5c9e"], - "text_color": ["#ecd7b2", "#ecd7b2"] + "text_color": ["#ecd7b2", "#ecd7b2"], + "corner_radius": 8 }, "CTkProgressBar": { "fg_color": ["#1e1e1e", "#1e1e1e"], - "progress_color": ["#21498a", "#21498a"] + "progress_color": ["#21498a", "#21498a"], + "corner_radius": 8 }, "CTkSwitch": { "fg_color": ["#1e1e1e", "#1e1e1e"], "progress_color": ["#21498a", "#21498a"], - "text_color": ["#ecd7b2", "#ecd7b2"] + "text_color": ["#ecd7b2", "#ecd7b2"], + "corner_radius": 8 } } \ No newline at end of file diff --git a/custom_theme_light.json b/custom_theme_light.json index 2259a16..3d7ed4d 100644 --- a/custom_theme_light.json +++ b/custom_theme_light.json @@ -11,26 +11,32 @@ }, "CTkButton": { "fg_color": ["#4077d1", "#4077d1"], - "hover_color": ["#5a8ee6", "#5a8ee6"] + "hover_color": ["#5a8ee6", "#5a8ee6"], + "corner_radius": 8 }, "CTkEntry": { "fg_color": ["#ffffff", "#ffffff"], "text_color": ["#000000", "#000000"], - "placeholder_text_color": ["#888888", "#888888"] + "placeholder_text_color": ["#888888", "#888888"], + "corner_radius": 8, + "border_width": 2 }, "CTkOptionMenu": { "fg_color": ["#4077d1", "#4077d1"], "button_color": ["#4077d1", "#4077d1"], "button_hover_color": ["#5a8ee6", "#5a8ee6"], - "text_color": ["#000000", "#000000"] + "text_color": ["#000000", "#000000"], + "corner_radius": 8 }, "CTkProgressBar": { "fg_color": ["#ffffff", "#ffffff"], - "progress_color": ["#4077d1", "#4077d1"] + "progress_color": ["#4077d1", "#4077d1"], + "corner_radius": 8 }, "CTkSwitch": { "fg_color": ["#ffffff", "#ffffff"], "progress_color": ["#4077d1", "#4077d1"], - "text_color": ["#000000", "#000000"] + "text_color": ["#000000", "#000000"], + "corner_radius": 8 } } \ No newline at end of file diff --git a/gui.py b/gui.py index b776ab2..01ebe5b 100644 --- a/gui.py +++ b/gui.py @@ -6,6 +6,7 @@ import sys import threading import time import converter +import webbrowser import downloader import utils import config @@ -22,6 +23,20 @@ class VideoConverterGUI: customtkinter.set_appearance_mode("Dark") # Modes: "System", "Dark", "Light" customtkinter.set_default_color_theme(os.path.join(os.path.dirname(__file__), "custom_theme_dark.json")) + # --- Footer Frame --- + self.footer_frame = customtkinter.CTkFrame(master, fg_color="transparent") + self.footer_frame.pack(side="bottom", fill="x", padx=10, pady=(5, 10)) + + self.nickname_label = customtkinter.CTkLabel(self.footer_frame, text="by ramforth") + self.nickname_label.pack(side="left", padx=(10, 0)) + + self.gitea_link = customtkinter.CTkLabel(self.footer_frame, text="https://gitea.ramforth.net/ramforth", text_color="#4077d1", cursor="hand2") + self.gitea_link.pack(side="right", padx=(0, 10)) + self.gitea_link.bind("", lambda e: self.open_link("https://gitea.ramforth.net/ramforth")) + # Add underline font + underline_font = customtkinter.CTkFont(family="sans-serif", size=12, underline=True) + self.gitea_link.configure(font=underline_font) + # --- Pack bottom elements first --- # This makes them stick to the bottom self.status_var = customtkinter.StringVar(value="Ready") # Give it a default value @@ -87,6 +102,9 @@ class VideoConverterGUI: self.cancel_button = customtkinter.CTkButton(master, text="Cancel", command=self.cancel_conversion, state="disabled") self.cancel_button.pack(pady=5) + def open_link(self, url): + """Opens the given URL in a web browser.""" + webbrowser.open_new(url) def toggle_mode(self): # Check if the switch is on (1) or off (0)