min max tweaks
This commit is contained in:
@@ -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()) {
|
||||||
|
|||||||
Reference in New Issue
Block a user