merge ofw PR 3840 [ci skip]

GUI: NumberInput small improvements by Willy-JL
This commit is contained in:
MX
2024-08-17 17:53:50 +03:00
parent 6a689d29ce
commit 67dae229a9

View File

@@ -93,7 +93,7 @@ static void number_input_draw_input(Canvas* canvas, NumberInputModel* model) {
const size_t text_x = 8; const size_t text_x = 8;
const size_t text_y = 25; const size_t text_y = 25;
elements_slightly_rounded_frame(canvas, 6, 14, 116, 15); elements_slightly_rounded_frame(canvas, 4, 14, 120, 15);
canvas_draw_str(canvas, text_x, text_y, furi_string_get_cstr(model->text_buffer)); canvas_draw_str(canvas, text_x, text_y, furi_string_get_cstr(model->text_buffer));
} }
@@ -206,7 +206,7 @@ static void number_input_add_digit(NumberInputModel* model, char* newChar) {
} }
model->current_number = strtol(furi_string_get_cstr(model->text_buffer), NULL, 10); model->current_number = strtol(furi_string_get_cstr(model->text_buffer), NULL, 10);
if(model->current_number == 0) { if(model->current_number == 0) {
furi_string_reset(model->text_buffer); furi_string_set(model->text_buffer, "0");
} }
} }
@@ -417,7 +417,9 @@ void number_input_set_result_callback(
int32_t max_value) { int32_t max_value) {
furi_check(number_input); furi_check(number_input);
if(current_number != 0) {
current_number = CLAMP(current_number, max_value, min_value); current_number = CLAMP(current_number, max_value, min_value);
}
with_view_model( with_view_model(
number_input->view, number_input->view,
@@ -426,7 +428,11 @@ void number_input_set_result_callback(
model->callback = callback; model->callback = callback;
model->callback_context = callback_context; model->callback_context = callback_context;
model->current_number = current_number; model->current_number = current_number;
if(current_number != 0) {
furi_string_printf(model->text_buffer, "%ld", current_number); furi_string_printf(model->text_buffer, "%ld", current_number);
} else {
furi_string_set(model->text_buffer, "");
}
model->min_value = min_value; model->min_value = min_value;
model->max_value = max_value; model->max_value = max_value;
}, },