diff options
| author | kasull <qsullian@gmail.com> | 2026-03-01 20:18:08 -0500 |
|---|---|---|
| committer | kasull <qsullian@gmail.com> | 2026-03-01 20:18:08 -0500 |
| commit | 413ef78504278d37080b9b59a652e4bbd5e2a0fc (patch) | |
| tree | 67be817cf765725dd2d08c14b2d0ce8c12b20997 /src/gui/button.cpp | |
| parent | 71dd7fcccb45a54d85ae23a95a8a8905ed21fe15 (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.cpp | 23 |
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 ) { |
