Skip to content

Commit 706364e

Browse files
committed
Added 2 New Tabs
Added history and achievements tabs
1 parent 602727c commit 706364e

4 files changed

Lines changed: 95 additions & 23 deletions

File tree

.gitignore

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
2+
__pycache__/styles.cpython-312.pyc

__pycache__/styles.cpython-312.pyc

50 Bytes
Binary file not shown.

styles.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -81,4 +81,7 @@
8181
pie_color_blue_4 = "#9ed185"
8282
pie_color_blue_5 = "#7dbad9"
8383
pie_color_blue_6 = "#85b6d1"
84-
pie_color_blue_7 = "#8db4c8"
84+
pie_color_blue_7 = "#8db4c8"
85+
86+
image_width = 30
87+
image_height = 30

timer.py

Lines changed: 89 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
import customtkinter as ctk
1010
from styles import *
1111
from matplotlib.ticker import MaxNLocator
12+
from PIL import Image
1213

1314
APPNAME = "Timer App"
1415
FILENAME = "Timer Data.xlsx"
@@ -53,6 +54,16 @@
5354
settings_frame.grid_forget()
5455
settings_frame.grid_propagate(False)
5556

57+
achievements_frame = ctk.CTkFrame(WINDOW, fg_color=main_frame_color, height=HEIGHT+((widget_padding_x+frame_padding)*2), width=WIDTH, corner_radius=0)
58+
achievements_frame.grid(column=2, row=0, padx=main_frame_pad_x)
59+
achievements_frame.grid_forget()
60+
achievements_frame.grid_propagate(False)
61+
62+
history_frame = ctk.CTkFrame(WINDOW, fg_color=main_frame_color, height=HEIGHT+((widget_padding_x+frame_padding)*2), width=WIDTH, corner_radius=0)
63+
history_frame.grid(column=2, row=0, padx=main_frame_pad_x)
64+
history_frame.grid_forget()
65+
history_frame.grid_propagate(False)
66+
5667
def customize_excel(worksheet):
5768
worksheet["A1"].value = "Start:"
5869
worksheet["B1"].value = "End:"
@@ -450,23 +461,55 @@ def save_on_quit():
450461
workbook.save(data_file)
451462
WINDOW.destroy()
452463

453-
def to_main():
454-
main_frame.grid(column=2, row=0, padx=main_frame_pad_x)
455-
main_frame.grid_propagate(False)
456-
statistics_frame.grid_forget()
457-
settings_frame.grid_forget()
464+
def switch_tab(tab = str):
465+
match tab:
466+
case "main":
467+
main_frame.grid(column=2, row=0, padx=main_frame_pad_x)
468+
main_frame.grid_propagate(False)
469+
statistics_frame.grid_forget()
470+
settings_frame.grid_forget()
471+
achievements_frame.grid_forget()
472+
history_frame.grid_forget()
473+
case "statistics":
474+
statistics_frame.grid(column=2, row=0, padx=main_frame_pad_x)
475+
statistics_frame.grid_propagate(False)
476+
main_frame.grid_forget()
477+
settings_frame.grid_forget()
478+
achievements_frame.grid_forget()
479+
history_frame.grid_forget()
480+
case "settings":
481+
settings_frame.grid(column=2, row=0, padx=main_frame_pad_x)
482+
settings_frame.grid_propagate(False)
483+
main_frame.grid_forget()
484+
statistics_frame.grid_forget()
485+
achievements_frame.grid_forget()
486+
history_frame.grid_forget()
487+
case "achievements":
488+
achievements_frame.grid(column=2, row=0, padx=main_frame_pad_x)
489+
achievements_frame.grid_propagate(False)
490+
statistics_frame.grid_forget()
491+
settings_frame.grid_forget()
492+
main_frame.grid_forget()
493+
history_frame.grid_forget()
494+
case "history":
495+
history_frame.grid(column=2, row=0, padx=main_frame_pad_x)
496+
history_frame.grid_propagate(False)
497+
statistics_frame.grid_forget()
498+
settings_frame.grid_forget()
499+
main_frame.grid_forget()
500+
achievements_frame.grid_forget()
501+
load_history()
458502

459-
def to_statistics():
460-
statistics_frame.grid(column=2, row=0, padx=main_frame_pad_x)
461-
statistics_frame.grid_propagate(False)
462-
main_frame.grid_forget()
463-
settings_frame.grid_forget()
503+
504+
def load_history():
505+
global start_text
506+
start_history = ""
507+
for data in range(data_amount+1, 1, -1):
508+
print("A" + str(data))
509+
start_history += worksheet["A" + str(data)].value
510+
start_history += "\n"
511+
start_text.configure(text=start_history)
464512

465-
def to_settings():
466-
settings_frame.grid(column=2, row=0, padx=main_frame_pad_x)
467-
settings_frame.grid_propagate(False)
468-
main_frame.grid_forget()
469-
statistics_frame.grid_forget()
470513

471514
def get_goal():
472515
global goal, goal_dropdown
@@ -508,6 +551,7 @@ def change_color(color, highlight_color, widget_list, progressbar):
508551
colors = {orange_button_color: "Orange", green_button_color: "Green", blue_button_color: "Blue"}
509552
worksheet["T1"].value = colors[color]
510553
workbook.save(data_file)
554+
print("Color saved.")
511555
collect_data()
512556
for widget in widget_list:
513557
widget.configure(fg_color=color, hover_color=highlight_color)
@@ -517,7 +561,7 @@ def set_color(widget):
517561
global color, graph_color, pie_color_1, pie_color_2, pie_color_3, pie_color_4, pie_color_5, pie_color_6, pie_color_7, day_duration_list, day_name_list
518562
worksheet["T1"].value = color
519563
workbook.save(data_file)
520-
print("Color saved.")
564+
print("Color changed.")
521565
color = widget.get()
522566
colors = {"Orange": orange_button_color, "Green": green_button_color, "Blue": blue_button_color}
523567
highlight_colors = {"Orange": orange_highlight_color, "Green": green_highlight_color, "Blue": blue_highlight_color}
@@ -531,6 +575,7 @@ def set_color(widget):
531575
change_color(c, highlight_color, widget_list, progressbar)
532576

533577
#------------------------------------------------------------------------------GUI------------------------------------------------------------------------------#
578+
#clock_image = ctk.CTkImage(light_image=Image.open("images/clock.png"), size=(image_width, image_height))
534579
def change_focus(event):
535580
event.widget.focus_set()
536581

@@ -625,20 +670,42 @@ def change_focus(event):
625670
#TABS
626671
timer_tab = ctk.CTkFrame(tab_frame, width=tab_frame_width, height=tab_height*0.8, fg_color=tab_color)
627672
timer_tab.pack(pady=tab_padding_y)
628-
timer_tab_btn = ctk.CTkButton(timer_tab, text="Timer", font=(tab_font_family, 22*tab_height/55, tab_font_weight), text_color=font_color,
629-
fg_color=tab_color, width=int(tab_frame_width*0.95), height=int(tab_height*0.7), hover_color=tab_highlight_color, anchor="w", command=to_main)
673+
timer_tab_btn = ctk.CTkButton(timer_tab, text="Timer", font=(tab_font_family, 22*tab_height/50, tab_font_weight), text_color=font_color,
674+
fg_color=tab_color, width=int(tab_frame_width*0.95), height=int(tab_height*0.7), hover_color=tab_highlight_color, anchor="w", command=lambda: switch_tab("main"))
630675
timer_tab_btn.place(relx=0.5, rely=0.5, anchor="center")
631676

632677
statistics_tab = ctk.CTkFrame(tab_frame, width=tab_frame_width, height=tab_height*0.8, fg_color=tab_color)
633678
statistics_tab.pack(pady=tab_padding_y)
634-
statistics_btn = ctk.CTkButton(statistics_tab, text="Statistics", font=(tab_font_family, 22*tab_height/55, tab_font_weight), text_color=font_color,
635-
fg_color=tab_color, width=int(tab_frame_width*0.95), height=int(tab_height*0.7), hover_color=tab_highlight_color, anchor="w", command=to_statistics)
679+
statistics_btn = ctk.CTkButton(statistics_tab, text="Statistics", font=(tab_font_family, 22*tab_height/50, tab_font_weight), text_color=font_color,
680+
fg_color=tab_color, width=int(tab_frame_width*0.95), height=int(tab_height*0.7), hover_color=tab_highlight_color, anchor="w", command=lambda: switch_tab("statistics"))
636681
statistics_btn.place(relx=0.5, rely=0.5, anchor="center")
637682

683+
achievements_tab = ctk.CTkFrame(tab_frame, width=tab_frame_width, height=tab_height*0.8, fg_color=tab_color)
684+
achievements_tab.pack(pady=tab_padding_y)
685+
achievements_btn = ctk.CTkButton(achievements_tab, text="Achievements", font=(tab_font_family, 22*tab_height/50, tab_font_weight), text_color=font_color,
686+
fg_color=tab_color, width=int(tab_frame_width*0.95), height=int(tab_height*0.7), hover_color=tab_highlight_color, anchor="w", command=lambda: switch_tab("achievements"))
687+
achievements_btn.place(relx=0.5, rely=0.5, anchor="center")
688+
689+
history_tab = ctk.CTkFrame(tab_frame, width=tab_frame_width, height=tab_height*0.8, fg_color=tab_color)
690+
history_tab.pack(pady=tab_padding_y)
691+
history_btn = ctk.CTkButton(history_tab, text="History", font=(tab_font_family, 22*tab_height/50, tab_font_weight), text_color=font_color,
692+
fg_color=tab_color, width=int(tab_frame_width*0.95), height=int(tab_height*0.7), hover_color=tab_highlight_color, anchor="w", command=lambda: switch_tab("history"))
693+
history_btn.place(relx=0.5, rely=0.5, anchor="center")
694+
695+
last_sessions_frame = ctk.CTkFrame(history_frame, fg_color=frame_color, corner_radius=10, height=(HEIGHT+((widget_padding_x)*2))/2, width=WIDTH-(frame_padding*2),)
696+
last_sessions_frame.grid(padx=frame_padding, pady=frame_padding)
697+
last_sessions_frame.pack_propagate(False)
698+
start_frame = ctk.CTkFrame(last_sessions_frame, fg_color="transparent")
699+
start_frame.pack(padx=frame_padding, pady=frame_padding)
700+
start_label = ctk.CTkLabel(start_frame, text="Start", font=(font_family, font_size), text_color=font_color)
701+
start_label.pack(padx=widget_padding_x, pady=widget_padding_y)
702+
start_text = ctk.CTkLabel(start_frame, font=(font_family, font_size), text_color=font_color)
703+
start_text.pack(padx=widget_padding_x, pady=widget_padding_y)
704+
638705
settings_tab = ctk.CTkFrame(tab_frame, width=tab_frame_width, height=tab_height*0.8, fg_color=tab_color)
639706
settings_tab.place(relx=0.5, rely=1, anchor="s")
640-
settings_btn = ctk.CTkButton(settings_tab, text="Settings", font=(tab_font_family, 22*tab_height/55, tab_font_weight), text_color=font_color,
641-
fg_color=tab_color, width=int(tab_frame_width*0.95), height=int(tab_height*0.7), hover_color=tab_highlight_color, anchor="w", command=to_settings)
707+
settings_btn = ctk.CTkButton(settings_tab, text="Settings", font=(tab_font_family, 22*tab_height/50, tab_font_weight), text_color=font_color,
708+
fg_color=tab_color, width=int(tab_frame_width*0.95), height=int(tab_height*0.7), hover_color=tab_highlight_color, anchor="w", command=lambda: switch_tab("settings"))
642709
settings_btn.place(relx=0.5, rely=0.5, anchor="center")
643710

644711
color_select_frame = ctk.CTkFrame(settings_frame, fg_color=frame_color, height=200, width=int(frame_width/1.25), corner_radius=10)

0 commit comments

Comments
 (0)