summaryrefslogtreecommitdiff
path: root/src/gui/button.cpp
diff options
context:
space:
mode:
authorkasull <qsullian@gmail.com>2026-03-01 20:18:08 -0500
committerkasull <qsullian@gmail.com>2026-03-01 20:18:08 -0500
commit413ef78504278d37080b9b59a652e4bbd5e2a0fc (patch)
tree67be817cf765725dd2d08c14b2d0ce8c12b20997 /src/gui/button.cpp
parent71dd7fcccb45a54d85ae23a95a8a8905ed21fe15 (diff)
editor ui rework
add responsive editor relayout for window resize rework header with back/save, view mode buttons, and 2d view type selector add clipped, scrollable assets and contextual tool panels simplify tool button wiring and repeated layout logic simplify 2d top-down editor internals and shared grid update hooks
Diffstat (limited to 'src/gui/button.cpp')
-rw-r--r--src/gui/button.cpp23
1 files changed, 19 insertions, 4 deletions
diff --git a/src/gui/button.cpp b/src/gui/button.cpp
index 2b57772..1548e0e 100644
--- a/src/gui/button.cpp
+++ b/src/gui/button.cpp
@@ -5,15 +5,30 @@ void gui_button_draw_fn( void* ptr ) {
I32 x = gui_relx( btn );
I32 y = gui_rely( btn );
+ I32 mx, my;
+ gui_cursor_pos( &mx, &my );
+ U8 inbounds = mx >= x && mx <= x + btn->w && my >= y && my <= y + btn->h;
+ U8 active = btn->held && inbounds && gui_mbutton_down( GUI_MBTNLEFT );
+ U8 hover = inbounds && !active;
+
+ CLR border = gui_is_fg_window( btn )? ui_clr.border : ui_clr.border_inactive;
+ if( active )
+ border = { 0.f, 1.f, 0.f, 1.f };
+
+ CLR fill = ui_clr.bg_sec;
+ CLR txt = ui_clr.txt;
+ if( hover ) {
+ fill = ui_clr.border;
+ txt = CLR::BLACK();
+ }
- CLR col = gui_is_fg_window( btn )? ui_clr.border : ui_clr.border_inactive;
- gui_draw_frect( x, y, btn->w, btn->h, col );
- gui_draw_frect( x+1, y+1, btn->w-2, btn->h-2, ui_clr.bg_sec );
+ gui_draw_frect( x, y, btn->w, btn->h, border );
+ gui_draw_frect( x+1, y+1, btn->w-2, btn->h-2, fill );
I32 middle = x + btn->w/2;
I32 middle_y = y + btn->h/2 - 7;
- gui_draw_str( middle, middle_y, ALIGN_C, FNT_JPN12, ui_clr.txt, btn->name );
+ gui_draw_str( middle, middle_y, ALIGN_C, FNT_JPN12, txt, btn->name );
}
void gui_button_input_fn( void* ptr ) {