From 2df6a146108625cbe19b10e139907b7eb4b048f0 Mon Sep 17 00:00:00 2001 From: Jason Hilder Date: Fri, 5 Jun 2026 08:10:41 +0200 Subject: [PATCH] Added a better way for drawing ui elements. --- src/gui/control_bar.odin | 23 +++++++++++++++++++++-- 1 file changed, 21 insertions(+), 2 deletions(-) diff --git a/src/gui/control_bar.odin b/src/gui/control_bar.odin index 6542a7e..a1200a4 100644 --- a/src/gui/control_bar.odin +++ b/src/gui/control_bar.odin @@ -1,11 +1,30 @@ package gui +import "core:log" import m "../machine" import rl "vendor:raylib" -CB_PADDING :: 20 +PADDING :: 10 gui_control_bar :: proc(rect: rl.Rectangle, s: ^m.System) { rl.DrawRectangleLinesEx(rect, 1, rl.DARKGRAY) - rl.GuiButton(rl.Rectangle{rect.x, rect.y, 100, rect.height}, "test") + + // Small text area + + // Control bar buttons + btn_w : f32 = 80 + btn_h : f32 = rect.height - (PADDING * 2) + gap : f32 = 6 + cursor : f32 = rect.x + PADDING + + if btn(&cursor, rect, btn_h, btn_w, gap, "RUN") { log.info("RUN clicked") } + if btn(&cursor, rect, btn_h, btn_w, gap, "PAUSE") { log.info("PAUSE clicked") } + if btn(&cursor, rect, btn_h, btn_w, gap, "STEP") { log.info("STEP clicked") } + if btn(&cursor, rect, btn_h, btn_w, gap, "STOP") { log.info("STOP clicked") } +} + +btn :: proc(cursor: ^f32, rect: rl.Rectangle, h, w, gap: f32, label: cstring) -> bool { + r := rl.Rectangle{cursor^, rect.y + PADDING, w, h} + cursor^ += w + gap + return rl.GuiButton(r, label) }