min max tweaks

This commit is contained in:
Krzosa Karol
2025-01-18 11:41:18 +01:00
parent bd8f9ed12e
commit 68683c0218

View File

@@ -506,7 +506,7 @@ fn void ui_serial_type(void *p, type_t *type) {
ui_serial_subtype(p, type, type->name); ui_serial_subtype(p, type, type->name);
} }
app_event_t ui_test_event; gb app_event_t ui_test_event;
fn void ui_demo_update(app_frame_t *frame) { fn void ui_demo_update(app_frame_t *frame) {
for (app_event_t *ev = frame->first_event; ev; ev = ev->next) { for (app_event_t *ev = frame->first_event; ev; ev = ev->next) {
ui_begin_build(UILOC, ev, window_rect_from_frame(frame)); ui_begin_build(UILOC, ev, window_rect_from_frame(frame));
@@ -523,7 +523,21 @@ fn void ui_demo_update(app_frame_t *frame) {
defer_block(ui_push_top(item_box), ui_pop_top()) { defer_block(ui_push_top(item_box), ui_pop_top()) {
for (i32 i = 0; i < lengthof(tweak_table); i += 1) { for (i32 i = 0; i < lengthof(tweak_table); i += 1) {
mt_tweak_t *tweak = tweak_table + i; mt_tweak_t *tweak = tweak_table + i;
ui_serial_subtype(tweak->ptr, tweak->type, tweak->name); if (tweak->type->kind == type_kind_b32) {
b32 *n = (b32 *)tweak->ptr;
if (ui_list_button("%S: %s##slider%S", tweak->name, *n ? "true" : "false", tweak->name).clicked) {
*n = !*n;
}
} else if (tweak->type->kind == type_kind_f32) {
f32 *n = (f32 *)tweak->ptr;
ui_signal_t signal = ui_list_button("%S: %f##slider%S", tweak->name, *n, tweak->name);
if (signal.dragging) {
f32 size = tweak->max - tweak->min;
v2f32_t string_size = rn_measure_string(&rn_state.main_font, signal.box->string);
f32 delta = (ui->event->mouse_delta.x / string_size.x) * size;
*n = CLAMP(*n + delta, tweak->min, tweak->max);
}
} else_is_invalid;
} }
ui_serial_type(&ui_test_event, type(app_event_t)); ui_serial_type(&ui_test_event, type(app_event_t));
defer_if (ui_begin_expander("app_event_t").clicked, ui_end_expander()) { defer_if (ui_begin_expander("app_event_t").clicked, ui_end_expander()) {