From b747c4e6adcd6c91081192cc2f4ec17d7d4fd7e5 Mon Sep 17 00:00:00 2001
From: Patrick Cleavelin <patrick@spacegirl.nl>
Date: Fri, 23 Jun 2023 21:08:23 -0500
Subject: [PATCH] add more styles

---
 src/lib.zig  | 15 ++++++++++-----
 src/main.zig |  7 +++++--
 2 files changed, 15 insertions(+), 7 deletions(-)

diff --git a/src/lib.zig b/src/lib.zig
index 13b0ee2..b2b5a10 100644
--- a/src/lib.zig
+++ b/src/lib.zig
@@ -32,9 +32,14 @@ pub const UI_Direction = enum {
     bottomToTop,
 };
 
+// TODO: don't couple to raylib
 pub const UI_Style = struct {
-    // TODO: don't couple to raylib
-    hover_color: raylib.Color,
+    color: raylib.Color = raylib.LIGHTGRAY,
+    hover_color: raylib.Color = raylib.WHITE,
+    border_color: raylib.Color = raylib.DARKGRAY,
+
+    text_color: raylib.Color = raylib.BLACK,
+    text_size: i32 = 20,
 };
 
 pub const Vec2 = struct {
@@ -422,15 +427,15 @@ pub fn DrawUI(box: *UI_Box, parent: ?*UI_Box, my_index: u32, num_siblings: u32,
     }
 
     if (box.flags.drawBackground) {
-        const color = if (TestBoxHover(box)) box.style.hover_color else raylib.DARKGRAY;
+        const color = if (TestBoxHover(box)) box.style.hover_color else box.style.color;
 
         raylib.DrawRectangle(@floatToInt(i32, box.computed_pos.x), @floatToInt(i32, box.computed_pos.y), @floatToInt(i32, box.computed_size.x), @floatToInt(i32, box.computed_size.y), color);
     }
     if (box.flags.drawBorder) {
-        raylib.DrawRectangleLines(@floatToInt(i32, box.computed_pos.x), @floatToInt(i32, box.computed_pos.y), @floatToInt(i32, box.computed_size.x), @floatToInt(i32, box.computed_size.y), raylib.BLUE);
+        raylib.DrawRectangleLines(@floatToInt(i32, box.computed_pos.x), @floatToInt(i32, box.computed_pos.y), @floatToInt(i32, box.computed_size.x), @floatToInt(i32, box.computed_size.y), box.style.border_color);
     }
     if (box.flags.drawText) {
-        raylib.DrawText(box.label, @floatToInt(i32, box.computed_pos.x), @floatToInt(i32, box.computed_pos.y), 10, raylib.RED);
+        raylib.DrawText(box.label, @floatToInt(i32, box.computed_pos.x), @floatToInt(i32, box.computed_pos.y), box.style.text_size, box.style.text_color);
     }
 
     // draw children
diff --git a/src/main.zig b/src/main.zig
index ee4e116..6582eff 100644
--- a/src/main.zig
+++ b/src/main.zig
@@ -39,7 +39,7 @@ pub fn main() !void {
         raylib.ClearBackground(raylib.BLACK);
 
         if (show_buttons) {
-            _ = try ui.PushBox("ButtonArray", .{}, dir);
+            _ = try ui.PushBox("ButtonArray", .{}, .topToBottom);
             defer ui.PopBox();
 
             if (try ui.MakeButton("Show Labels")) {
@@ -57,6 +57,8 @@ pub fn main() !void {
         if (other_button_shown) {
             _ = try ui.PushBox("TextArray", .{}, dir);
             defer ui.PopBox();
+            try ui.PushStyle(.{ .text_color = raylib.YELLOW });
+            defer ui.PopStyle();
 
             _ = try ui.MakeLabel("This is some text");
 
@@ -64,8 +66,9 @@ pub fn main() !void {
                 try ui.PushStyle(.{ .hover_color = raylib.SKYBLUE });
                 defer ui.PopStyle();
 
-                for (0..20) |_| {
+                for (0..10) |_| {
                     _ = try ui.MakeButton("So is this");
+                    _ = try ui.MakeBox("spacer", .{}, dir);
                 }
             }