Cleaned up the activity button a bit and renamed some things.

This commit is contained in:
2026-02-15 11:28:36 -08:00
parent 7f8108dd52
commit de7324fc90

33
main.c
View File

@@ -92,7 +92,7 @@ char my_button(int x, int y, int width, int height, int font_size, char *title)
} }
#endif #endif
char activity_button(int x, int y, int width, int height, char *title, char *subtitle, F32 font_size, Color font_color, Color background_color) char activity_button(Rectangle rect, char *title, char *subtitle, F32 font_size, Color font_color, Color background_color)
{ {
char button_pressed = 0; char button_pressed = 0;
@@ -103,8 +103,6 @@ char activity_button(int x, int y, int width, int height, char *title, char *sub
Vector2 title_font_d = MeasureTextEx(state.font, title, (float)font_size, 2); Vector2 title_font_d = MeasureTextEx(state.font, title, (float)font_size, 2);
Vector2 subtitle_font_d = MeasureTextEx(state.font, subtitle, (float)subtitle_font_size, 2); Vector2 subtitle_font_d = MeasureTextEx(state.font, subtitle, (float)subtitle_font_size, 2);
Rectangle rect = { x, y, width, height };
if(CheckCollisionPointRec(state.mouse_pos, rect)) { if(CheckCollisionPointRec(state.mouse_pos, rect)) {
if(IsMouseButtonPressed(MOUSE_BUTTON_LEFT)) if(IsMouseButtonPressed(MOUSE_BUTTON_LEFT))
button_pressed = 1; button_pressed = 1;
@@ -148,12 +146,12 @@ Color activity_type_color_representation[activity_type_COUNT] = {
// TODO: String representation. // TODO: String representation.
typedef struct Activity { typedef struct activity {
activity_type activity; // TODO: Rename to kind or type. activity_type type; // TODO: Rename to kind or type.
Color color; Color color;
U64 began; U64 began;
U64 ended; U64 ended;
} Activity; } activity;
typedef struct Activity_Stat { typedef struct Activity_Stat {
U64 total_seconds; U64 total_seconds;
@@ -180,7 +178,7 @@ int main(int argc, char *argv[])
(void)argc; (void)argc;
(void)argv; (void)argv;
Activity activities[100]; activity activities[100];
U32 current_activity = 0; U32 current_activity = 0;
Activity_Stat activities_stats[activity_type_COUNT]; Activity_Stat activities_stats[activity_type_COUNT];
@@ -261,7 +259,7 @@ int main(int argc, char *argv[])
else else
continue; continue;
activities[current_activity].activity = type; activities[current_activity].type = type;
activities[current_activity].color = activity_type_color_representation[type]; activities[current_activity].color = activity_type_color_representation[type];
activities[current_activity].began = lower; activities[current_activity].began = lower;
activities[current_activity].ended = upper; activities[current_activity].ended = upper;
@@ -300,7 +298,7 @@ int main(int argc, char *argv[])
GenTextureMipmaps(&state.font.texture); GenTextureMipmaps(&state.font.texture);
SetTextureFilter(state.font.texture, TEXTURE_FILTER_BILINEAR); SetTextureFilter(state.font.texture, TEXTURE_FILTER_BILINEAR);
activities[current_activity].activity = other; activities[current_activity].type = other;
activities[current_activity].color = RED; activities[current_activity].color = RED;
activities[current_activity].began = now(); activities[current_activity].began = now();
activities[current_activity].ended = lower_bound_s; activities[current_activity].ended = lower_bound_s;
@@ -347,32 +345,33 @@ int main(int argc, char *argv[])
F32 width = (window_w-padding_x*6.0f) / 5.0f; F32 width = (window_w-padding_x*6.0f) / 5.0f;
for(U32 i = 0; i <= current_activity; i++) { for(U32 i = 0; i <= current_activity; i++) {
activities_stats[activities[i].activity].total_seconds += activities[i].ended - activities[i].began; activities_stats[activities[i].type].total_seconds += activities[i].ended - activities[i].began;
} }
for(U32 i = 0; i < activity_type_COUNT; i ++) { for(U32 i = 0; i < activity_type_COUNT; i ++) {
Hours time = break_time(activities_stats[i].total_seconds); Hours time = break_time(activities_stats[i].total_seconds);
snprintf(activities_stats[i].seconds_str, sizeof(activities_stats[i].seconds_str), "%02llu:%02llu:%02llu", time.hours, time.minutes, time.seconds); snprintf(activities_stats[i].seconds_str, sizeof(activities_stats[i].seconds_str), "%02llu:%02llu:%02llu", time.hours, time.minutes, time.seconds);
if(activity_button((padding_x*(i+1))+(width*i), 60, width, (window_h-70), activity_type_string_representation[i], activities_stats[i].seconds_str, font_size, (activities[current_activity].activity == i ? WHITE : BLACK), activity_type_color_representation[i])) { Rectangle rect = { (padding_x*(i+1))+(width*i), 60, width, (window_h-70) };
if(activities[current_activity].activity != i) { if(activity_button(rect, activity_type_string_representation[i], activities_stats[i].seconds_str, font_size, (activities[current_activity].type == i ? WHITE : BLACK), activity_type_color_representation[i])) {
if(activities[current_activity].type != i) {
current_activity++; current_activity++;
activities[current_activity].activity = i; activities[current_activity].type = i;
activities[current_activity].color = activity_type_color_representation[i]; activities[current_activity].color = activity_type_color_representation[i];
activities[current_activity].began = now_s; activities[current_activity].began = now_s;
activities[current_activity].ended = now_s; activities[current_activity].ended = now_s;
} }
} }
if(activities[current_activity].activity == i) if(activities[current_activity].type == i)
DrawRectangleRoundedLinesEx((Rectangle){ (padding_x*(i+1))+(width*i), 60, width, (window_h-70) }, 0.2f, 100, 5.0f, WHITE); DrawRectangleRoundedLinesEx(rect, 0.2f, 100, 5.0f, WHITE);
} }
// DrawTextEx(state.font, "Hello, world! && How are you?", (Vector2){100, 400}, font_size, 2, BLUE); // DrawTextEx(state.font, "Hello, world! && How are you?", (Vector2){100, 400}, font_size, 2, BLUE);
EndDrawing(); EndDrawing();
for(U32 i = 0; i <= current_activity; i++) { for(U32 i = 0; i <= current_activity; i++) {
activities_stats[activities[i].activity].total_seconds = 0; activities_stats[activities[i].type].total_seconds = 0;
} }
// Save the state every 5 seconds. // Save the state every 5 seconds.
@@ -383,7 +382,7 @@ int main(int argc, char *argv[])
for(U32 i = 0; i <= current_activity; i++) { for(U32 i = 0; i <= current_activity; i++) {
snprintf(write_buffer, sizeof(write_buffer), snprintf(write_buffer, sizeof(write_buffer),
"%s %llu %llu\n", "%s %llu %llu\n",
activity_type_string_representation[activities[i].activity], activity_type_string_representation[activities[i].type],
activities[i].began, activities[i].began,
activities[i].ended); activities[i].ended);