ui, fix scroller
This commit is contained in:
@@ -615,13 +615,12 @@ fn void ui_demo_update(app_frame_t *frame) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
locl f32 scroller_value;
|
locl f32 scroller_value;
|
||||||
// @todo: fix scroller to match mouse
|
|
||||||
defer_block(ui_push_top(scroller_box), ui_pop_top()) {
|
defer_block(ui_push_top(scroller_box), ui_pop_top()) {
|
||||||
f32 item_count = (f32)item_box->node_count;
|
f32 item_count = (f32)item_box->node_count;
|
||||||
f32 all_items_size = item_count * rn_state.main_font->size;
|
f32 all_items_size = item_count * rn_state.main_font->size;
|
||||||
f32 item_box_size = r2f32_get_size(ui->top->full_rect).y;
|
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_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 scrollable_space = (1 - scroller_size);
|
||||||
f32 scroller_norm = scroller_value / (all_items_size);
|
f32 scroller_norm = scroller_value / (all_items_size);
|
||||||
f32 scroller_percent = scroller_norm * scrollable_space;
|
f32 scroller_percent = scroller_norm * scrollable_space;
|
||||||
|
|||||||
Reference in New Issue
Block a user