diff --git a/brewos.iso b/brewos.iso index c3f52d9..d98752e 100644 Binary files a/brewos.iso and b/brewos.iso differ diff --git a/build/brewos.elf b/build/brewos.elf index de28cad..7f25586 100755 Binary files a/build/brewos.elf and b/build/brewos.elf differ diff --git a/build/graphics.o b/build/graphics.o index d78a9de..493e0c2 100644 Binary files a/build/graphics.o and b/build/graphics.o differ diff --git a/build/wm.o b/build/wm.o index c557350..e771c4e 100644 Binary files a/build/wm.o and b/build/wm.o differ diff --git a/iso_root/brewos.elf b/iso_root/brewos.elf index de28cad..7f25586 100755 Binary files a/iso_root/brewos.elf and b/iso_root/brewos.elf differ diff --git a/src/kernel/graphics.c b/src/kernel/graphics.c index 50a3a37..3688bf6 100644 --- a/src/kernel/graphics.c +++ b/src/kernel/graphics.c @@ -3,7 +3,7 @@ #include "font.h" static struct limine_framebuffer *g_fb = NULL; -static uint32_t g_bg_color = 0xFF6B4423; // Coffee color by default +static uint32_t g_bg_color = 0xFF696969; // Dark gray background // Dirty rectangle tracking static DirtyRect g_dirty = {0, 0, 0, 0, false}; diff --git a/src/kernel/wm.c b/src/kernel/wm.c index 0741d2c..1fdfdb4 100644 --- a/src/kernel/wm.c +++ b/src/kernel/wm.c @@ -66,6 +66,40 @@ void draw_button(int x, int y, int w, int h, const char *text, bool pressed) { draw_string(tx, ty, text, COLOR_BLACK); } +void draw_coffee_cup(int x, int y, int size) { + // Coffee cup icon - small retro style + int cup_w = size; + int cup_h = size - 2; + + // Cup body (tan/cream color) + draw_rect(x + 1, y + 2, cup_w - 2, cup_h - 3, COLOR_LTGRAY); + + // Cup outline + draw_rect(x + 1, y + 2, cup_w - 2, 1, COLOR_BLACK); // Top + draw_rect(x + 1, y + 2, 1, cup_h - 3, COLOR_BLACK); // Left + draw_rect(x + cup_w - 2, y + 2, 1, cup_h - 3, COLOR_BLACK); // Right + draw_rect(x + 1, y + cup_h - 1, cup_w - 2, 1, COLOR_BLACK); // Bottom + + // Rounded bottom corners + draw_rect(x + 1, y + cup_h - 1, 1, 1, COLOR_LTGRAY); + draw_rect(x + cup_w - 2, y + cup_h - 1, 1, 1, COLOR_LTGRAY); + + // Handle - much bigger (on the right side, pointing inward) + draw_rect(x + cup_w, y + 3, 2, 8, COLOR_BLACK); + draw_rect(x + cup_w - 2, y + 3, 2, 1, COLOR_BLACK); + draw_rect(x + cup_w - 2, y + 10, 2, 1, COLOR_BLACK); + + // Coffee liquid inside - rainbow Apple logo stripes (blue, green, yellow, red, purple, blue) + int stripe_height = (cup_h - 5) / 6; + int coffee_y = y + 4; + draw_rect(x + 2, coffee_y, cup_w - 4, stripe_height, COLOR_APPLE_BLUE); + draw_rect(x + 2, coffee_y + stripe_height, cup_w - 4, stripe_height, COLOR_APPLE_GREEN); + draw_rect(x + 2, coffee_y + stripe_height * 2, cup_w - 4, stripe_height, COLOR_APPLE_YELLOW); + draw_rect(x + 2, coffee_y + stripe_height * 3, cup_w - 4, stripe_height, COLOR_APPLE_RED); + draw_rect(x + 2, coffee_y + stripe_height * 4, cup_w - 4, stripe_height, COLOR_APPLE_VIOLET); + draw_rect(x + 2, coffee_y + stripe_height * 5, cup_w - 4, stripe_height, COLOR_APPLE_BLUE); +} + void draw_icon(int x, int y, const char *label) { // Simple "File" Icon draw_rect(x + 10, y, 20, 25, COLOR_WHITE); @@ -261,8 +295,12 @@ void wm_paint(void) { draw_rect(0, sh - 28, sw, 28, COLOR_GRAY); draw_rect(0, sh - 28, sw, 2, COLOR_WHITE); // Top highlight - // 5. Start Button - draw_button(2, sh - 26, 60, 24, "BrewOS", start_menu_open); + // 5. Start Button with Coffee Cup Icon + draw_bevel_rect(2, sh - 26, 90, 24, start_menu_open); + // Draw coffee cup icon on the button + draw_coffee_cup(5, sh - 24, 20); + // Draw BrewOS text with extra spacing on the left + draw_string(35, sh - 18, "BrewOS", COLOR_BLACK); // Clock draw_clock(sw - 80, sh - 20); diff --git a/src/kernel/wm.h b/src/kernel/wm.h index 5863f97..04073f9 100644 --- a/src/kernel/wm.h +++ b/src/kernel/wm.h @@ -14,6 +14,13 @@ #define COLOR_DKGRAY 0xFF808080 #define COLOR_RED 0xFFFF0000 #define COLOR_COFFEE 0xFF6B4423 +#define COLOR_APPLE_RED 0xFFFF0000 +#define COLOR_APPLE_ORANGE 0xFFFF7F00 +#define COLOR_APPLE_YELLOW 0xFFFFFF00 +#define COLOR_APPLE_GREEN 0xFF00FF00 +#define COLOR_APPLE_BLUE 0xFF0000FF +#define COLOR_APPLE_INDIGO 0xFF4B0082 +#define COLOR_APPLE_VIOLET 0xFF9400D3 typedef struct Window Window; struct Window {