ui tweaks

This commit is contained in:
2026-03-05 03:37:12 -05:00
parent 708192ec02
commit 9b3afcfb46
4 changed files with 57 additions and 19 deletions

View File

@@ -1004,10 +1004,35 @@ static void update_panel_splitters(AppState *app) {
B32 mouse_released = !input.mouse_down && input.was_mouse_down;
PlatformCursor cursor = PLATFORM_CURSOR_ARROW;
// Check hover on splitter elements (uses previous-frame layout)
B32 hover_browser = Clay_PointerOver(CLAY_ID("SplitBrowser"));
B32 hover_right = Clay_PointerOver(CLAY_ID("SplitRight"));
B32 hover_log = Clay_PointerOver(CLAY_ID("SplitLog"));
// Check hover on splitter elements with expanded hit area (splitters are 1px)
F32 grab_margin = uis(3);
F32 mx = input.mouse_pos.x, my = input.mouse_pos.y;
B32 hover_browser = false, hover_right = false, hover_log = false;
{
Clay_ElementData d = Clay_GetElementData(CLAY_ID("SplitBrowser"));
if (d.found) {
Clay_BoundingBox b = d.boundingBox;
hover_browser = mx >= b.x - grab_margin && mx <= b.x + b.width + grab_margin &&
my >= b.y && my <= b.y + b.height;
}
}
{
Clay_ElementData d = Clay_GetElementData(CLAY_ID("SplitRight"));
if (d.found) {
Clay_BoundingBox b = d.boundingBox;
hover_right = mx >= b.x - grab_margin && mx <= b.x + b.width + grab_margin &&
my >= b.y && my <= b.y + b.height;
}
}
{
Clay_ElementData d = Clay_GetElementData(CLAY_ID("SplitLog"));
if (d.found) {
Clay_BoundingBox b = d.boundingBox;
hover_log = mx >= b.x && mx <= b.x + b.width &&
my >= b.y - grab_margin && my <= b.y + b.height + grab_margin;
}
}
// Start drag
if (mouse_clicked && app->panel_drag == 0) {
@@ -1061,7 +1086,7 @@ static void update_panel_splitters(AppState *app) {
// Header bar — transport / layout toggle
static void build_header_bar(AppState *app) {
Clay_Color bar_bg = g_theme.bg_dark;
Clay_Color bar_bg = g_theme.header_bg;
Clay_Color border_bot = {(F32)Max((S32)bar_bg.r - 12, 0), (F32)Max((S32)bar_bg.g - 12, 0), (F32)Max((S32)bar_bg.b - 12, 0), 255};
static Clay_TextElementConfig header_btn_active_text = {};
@@ -1796,10 +1821,10 @@ static void build_ui(AppState *app) {
) {
build_browser_panel(app);
// Browser splitter (vertical, 4px wide)
// Browser splitter (vertical, 1px line)
if (app->show_browser) {
CLAY(CLAY_ID("SplitBrowser"),
.layout = { .sizing = { .width = CLAY_SIZING_FIXED(uis(4)), .height = CLAY_SIZING_GROW() } },
.layout = { .sizing = { .width = CLAY_SIZING_FIXED(1), .height = CLAY_SIZING_GROW() } },
.backgroundColor = g_theme.border
) {}
}
@@ -1807,9 +1832,9 @@ static void build_ui(AppState *app) {
build_main_panel(app);
if (app->show_props || app->show_midi_devices) {
// Right splitter (vertical, 4px wide)
// Right splitter (vertical, 1px line)
CLAY(CLAY_ID("SplitRight"),
.layout = { .sizing = { .width = CLAY_SIZING_FIXED(uis(4)), .height = CLAY_SIZING_GROW() } },
.layout = { .sizing = { .width = CLAY_SIZING_FIXED(1), .height = CLAY_SIZING_GROW() } },
.backgroundColor = g_theme.border
) {}
@@ -1824,10 +1849,10 @@ static void build_ui(AppState *app) {
}
}
// Log splitter (horizontal, 4px tall)
// Log splitter (horizontal, 1px line)
if (app->show_log) {
CLAY(CLAY_ID("SplitLog"),
.layout = { .sizing = { .width = CLAY_SIZING_GROW(), .height = CLAY_SIZING_FIXED(uis(4)) } },
.layout = { .sizing = { .width = CLAY_SIZING_GROW(), .height = CLAY_SIZING_FIXED(1) } },
.backgroundColor = g_theme.border
) {}
}