minor improvements
This commit is contained in:
52
src/ui/ui.c
52
src/ui/ui.c
@@ -181,14 +181,6 @@ fn ui_signal_t ui__button(ui_code_loc_t loc, char *str, ...) {
|
||||
return signal;
|
||||
}
|
||||
|
||||
#define ui_list_button(...) ui__list_button(UILOC, __VA_ARGS__)
|
||||
fn ui_signal_t ui__list_button(ui_code_loc_t loc, char *str, ...) {
|
||||
S8_FMT(tcx.temp, str, string);
|
||||
ui_box_t *box = ui_build_box_from_string(loc, (ui_box_flags_t){ .draw_text = true }, string);
|
||||
ui_signal_t signal = ui_signal_from_box(box);
|
||||
return signal;
|
||||
}
|
||||
|
||||
#define ui_label(...) ui__label(UILOC, __VA_ARGS__)
|
||||
fn ui_box_t *ui__label(ui_code_loc_t loc, char *str, ...) {
|
||||
S8_FMT(tcx.temp, str, string);
|
||||
@@ -267,7 +259,7 @@ fn void ui__draw_box(app_frame_t *frame, ui_box_t *box) {
|
||||
}
|
||||
if (ui_is_active_box(box)) {
|
||||
rect_color = accent1_color_global;
|
||||
text_color = accent1_color_global;
|
||||
text_color = white_color_global;
|
||||
}
|
||||
|
||||
if (box->flags.draw_rect) {
|
||||
@@ -320,7 +312,7 @@ fn void ui_serial_subtype(void *p, type_t *type, s8_t name) {
|
||||
switch(type->kind) {
|
||||
case type_kind_i8: {
|
||||
i8 *n = (i8 *)p;
|
||||
if (ui_list_button("%S: %d##slider%S", name, *n, name).dragging) {
|
||||
if (ui_button("%S: %d##slider%S", name, *n, name).dragging) {
|
||||
f32 delta = ui->event->mouse_delta.x;
|
||||
n[0] += (i8)delta;
|
||||
}
|
||||
@@ -328,7 +320,7 @@ fn void ui_serial_subtype(void *p, type_t *type, s8_t name) {
|
||||
} break;
|
||||
case type_kind_i16: {
|
||||
i16 *n = (i16 *)p;
|
||||
if (ui_list_button("%S: %d##slider%S", name, *n, name).dragging) {
|
||||
if (ui_button("%S: %d##slider%S", name, *n, name).dragging) {
|
||||
f32 delta = ui->event->mouse_delta.x;
|
||||
n[0] += (i16)delta;
|
||||
}
|
||||
@@ -336,7 +328,7 @@ fn void ui_serial_subtype(void *p, type_t *type, s8_t name) {
|
||||
} break;
|
||||
case type_kind_i32: {
|
||||
i32 *n = (i32 *)p;
|
||||
if (ui_list_button("%S: %d##slider%S", name, *n, name).dragging) {
|
||||
if (ui_button("%S: %d##slider%S", name, *n, name).dragging) {
|
||||
f32 delta = ui->event->mouse_delta.x;
|
||||
n[0] += (i32)delta;
|
||||
}
|
||||
@@ -344,7 +336,7 @@ fn void ui_serial_subtype(void *p, type_t *type, s8_t name) {
|
||||
} break;
|
||||
case type_kind_i64: {
|
||||
i64 *n = (i64 *)p;
|
||||
if (ui_list_button("%S: %lld##slider%S", name, (long long)*n, name).dragging) {
|
||||
if (ui_button("%S: %lld##slider%S", name, (long long)*n, name).dragging) {
|
||||
f32 delta = ui->event->mouse_delta.x;
|
||||
n[0] += (i64)delta;
|
||||
}
|
||||
@@ -352,7 +344,7 @@ fn void ui_serial_subtype(void *p, type_t *type, s8_t name) {
|
||||
} break;
|
||||
case type_kind_u8: {
|
||||
u8 *n = (u8 *)p;
|
||||
if (ui_list_button("%S: %u##slider%S", name, *n, name).dragging) {
|
||||
if (ui_button("%S: %u##slider%S", name, *n, name).dragging) {
|
||||
f32 delta = ui->event->mouse_delta.x;
|
||||
n[0] += (u8)delta;
|
||||
}
|
||||
@@ -360,7 +352,7 @@ fn void ui_serial_subtype(void *p, type_t *type, s8_t name) {
|
||||
} break;
|
||||
case type_kind_u16: {
|
||||
u16 *n = (u16 *)p;
|
||||
if (ui_list_button("%S: %u##slider%S", name, *n, name).dragging) {
|
||||
if (ui_button("%S: %u##slider%S", name, *n, name).dragging) {
|
||||
f32 delta = ui->event->mouse_delta.x;
|
||||
n[0] += (u16)delta;
|
||||
}
|
||||
@@ -368,7 +360,7 @@ fn void ui_serial_subtype(void *p, type_t *type, s8_t name) {
|
||||
} break;
|
||||
case type_kind_u32: {
|
||||
u32 *n = (u32 *)p;
|
||||
if (ui_list_button("%S: %u##slider%S", name, *n, name).dragging) {
|
||||
if (ui_button("%S: %u##slider%S", name, *n, name).dragging) {
|
||||
f32 delta = ui->event->mouse_delta.x;
|
||||
n[0] += (u32)delta;
|
||||
}
|
||||
@@ -376,7 +368,7 @@ fn void ui_serial_subtype(void *p, type_t *type, s8_t name) {
|
||||
} break;
|
||||
case type_kind_u64: {
|
||||
u64 *n = (u64 *)p;
|
||||
if (ui_list_button("%S: %llu##slider%S", name, (unsigned long long)*n, name).dragging) {
|
||||
if (ui_button("%S: %llu##slider%S", name, (unsigned long long)*n, name).dragging) {
|
||||
f32 delta = ui->event->mouse_delta.x;
|
||||
n[0] += (u64)delta;
|
||||
}
|
||||
@@ -384,35 +376,35 @@ fn void ui_serial_subtype(void *p, type_t *type, s8_t name) {
|
||||
} break;
|
||||
case type_kind_b8: {
|
||||
b8 *n = (b8 *)p;
|
||||
if (ui_list_button("%S: %s", name, *n ? "true" : "false").clicked) {
|
||||
if (ui_button("%S: %s", name, *n ? "true" : "false").clicked) {
|
||||
*n = !*n;
|
||||
}
|
||||
return;
|
||||
} break;
|
||||
case type_kind_b16: {
|
||||
b16 *n = (b16 *)p;
|
||||
if (ui_list_button("%S: %s", name, *n ? "true" : "false").clicked) {
|
||||
if (ui_button("%S: %s", name, *n ? "true" : "false").clicked) {
|
||||
*n = !*n;
|
||||
}
|
||||
return;
|
||||
} break;
|
||||
case type_kind_b32: {
|
||||
b32 *n = (b32 *)p;
|
||||
if (ui_list_button("%S: %s", name, *n ? "true" : "false").clicked) {
|
||||
if (ui_button("%S: %s", name, *n ? "true" : "false").clicked) {
|
||||
*n = !*n;
|
||||
}
|
||||
return;
|
||||
} break;
|
||||
case type_kind_b64: {
|
||||
b64 *n = (b64 *)p;
|
||||
if (ui_list_button("%S: %s", name, *n ? "true" : "false").clicked) {
|
||||
if (ui_button("%S: %s", name, *n ? "true" : "false").clicked) {
|
||||
*n = !*n;
|
||||
}
|
||||
return;
|
||||
} break;
|
||||
case type_kind_f32: {
|
||||
f32 *n = (f32 *)p;
|
||||
if (ui_list_button("%S: %f##slider%S", name, *n, name).dragging) {
|
||||
if (ui_button("%S: %f##slider%S", name, *n, name).dragging) {
|
||||
f32 delta = ui->event->mouse_delta.x;
|
||||
n[0] += delta;
|
||||
}
|
||||
@@ -420,7 +412,7 @@ fn void ui_serial_subtype(void *p, type_t *type, s8_t name) {
|
||||
} break;
|
||||
case type_kind_f64: {
|
||||
f64 *n = (f64 *)p;
|
||||
if (ui_list_button("%S: %f##slider%S", name, *n, name).dragging) {
|
||||
if (ui_button("%S: %f##slider%S", name, *n, name).dragging) {
|
||||
f32 delta = ui->event->mouse_delta.x;
|
||||
n[0] += delta;
|
||||
}
|
||||
@@ -428,7 +420,7 @@ fn void ui_serial_subtype(void *p, type_t *type, s8_t name) {
|
||||
} break;
|
||||
case type_kind_isize: {
|
||||
isize *n = (isize *)p;
|
||||
if (ui_list_button("%S: %lld##slider%S", name, *n, name).dragging) {
|
||||
if (ui_button("%S: %lld##slider%S", name, *n, name).dragging) {
|
||||
f32 delta = ui->event->mouse_delta.x;
|
||||
n[0] += (isize)delta;
|
||||
}
|
||||
@@ -436,7 +428,7 @@ fn void ui_serial_subtype(void *p, type_t *type, s8_t name) {
|
||||
} break;
|
||||
case type_kind_usize: {
|
||||
usize *n = (usize *)p;
|
||||
if (ui_list_button("%S: %llu##slider%S", name, *n, name).dragging) {
|
||||
if (ui_button("%S: %llu##slider%S", name, *n, name).dragging) {
|
||||
f32 delta = ui->event->mouse_delta.x;
|
||||
n[0] += (usize)delta;
|
||||
}
|
||||
@@ -444,7 +436,7 @@ fn void ui_serial_subtype(void *p, type_t *type, s8_t name) {
|
||||
} break;
|
||||
case type_kind_int: {
|
||||
int *n = (int *)p;
|
||||
if (ui_list_button("%S: %d##slider%S", name, *n, name).dragging) {
|
||||
if (ui_button("%S: %d##slider%S", name, *n, name).dragging) {
|
||||
f32 delta = ui->event->mouse_delta.x;
|
||||
n[0] += (int)delta;
|
||||
}
|
||||
@@ -452,7 +444,7 @@ fn void ui_serial_subtype(void *p, type_t *type, s8_t name) {
|
||||
} break;
|
||||
case type_kind_char: {
|
||||
char *n = (char *)p;
|
||||
if (ui_list_button("%S: %c##slider%S", name, *n, name).dragging) {
|
||||
if (ui_button("%S: %c##slider%S", name, *n, name).dragging) {
|
||||
f32 delta = ui->event->mouse_delta.x;
|
||||
n[0] += (char)delta;
|
||||
}
|
||||
@@ -468,7 +460,7 @@ fn void ui_serial_subtype(void *p, type_t *type, s8_t name) {
|
||||
if (type->kind == type_kind_enum) {
|
||||
i64 value = ti_enum_read_value(p, type);
|
||||
s8_t string_value = ti_enum_value_to_name(value, type);
|
||||
if (ui_list_button("%S: %S = %S", name, type->name, string_value).clicked) {
|
||||
if (ui_button("%S: %S = %S", name, type->name, string_value).clicked) {
|
||||
i64 new_value = ti_enum_next_value(p, value, type);
|
||||
ti_enum_write_value(p, new_value, type);
|
||||
}
|
||||
@@ -527,12 +519,12 @@ fn void ui_demo_update(app_frame_t *frame) {
|
||||
|
||||
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) {
|
||||
if (ui_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);
|
||||
ui_signal_t signal = ui_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);
|
||||
|
||||
Reference in New Issue
Block a user