ui, fix scroller

This commit is contained in:
Krzosa Karol
2025-01-22 09:01:17 +01:00
parent 98f5116ee6
commit 61df7baed0

View File

@@ -615,13 +615,12 @@ fn void ui_demo_update(app_frame_t *frame) {
}
locl f32 scroller_value;
// @todo: fix scroller to match mouse
defer_block(ui_push_top(scroller_box), ui_pop_top()) {
f32 item_count = (f32)item_box->node_count;
f32 all_items_size = item_count * rn_state.main_font->size;
f32 item_box_size = r2f32_get_size(ui->top->full_rect).y;
f32 scroller_box_size = r2f32_get_size(scroller_box->full_rect).y;
f32 scroller_size = CLAMP(item_box_size / all_items_size, 0, 1.0f);
f32 scroller_size = CLAMP(item_box_size / (all_items_size + frame->window_size.y), 0, 1.0f);
f32 scrollable_space = (1 - scroller_size);
f32 scroller_norm = scroller_value / (all_items_size);
f32 scroller_percent = scroller_norm * scrollable_space;