diff --git a/menu/menu_displaylist.c b/menu/menu_displaylist.c index 01df4882fd..bf6efe6ba8 100644 --- a/menu/menu_displaylist.c +++ b/menu/menu_displaylist.c @@ -7724,106 +7724,98 @@ bool menu_displaylist_ctl(enum menu_displaylist_ctl_state type, void *data) break; case ST_INT: { + float i; int32_t orig_value = *setting->value.target.integer; unsigned setting_type = MENU_SETTING_DROPDOWN_SETTING_INT_ITEM; + float step = setting->step; + double min = setting->enforce_minrange ? setting->min : 0.00; + double max = setting->enforce_maxrange ? setting->max : 999.00; - if (setting->enforce_minrange && setting->enforce_maxrange) + if (setting->get_string_representation) { - float i; - float step = setting->step; - double min = setting->min; - double max = setting->max; - - if (setting->get_string_representation) + for (i = min; i <= max; i += step) { - for (i = min; i <= max; i += step) - { - char val_s[256], val_d[256]; - int val = (int)i; + char val_s[256], val_d[256]; + int val = (int)i; - *setting->value.target.integer = val; + *setting->value.target.integer = val; - setting->get_string_representation(setting, - val_s, sizeof(val_s)); - snprintf(val_d, sizeof(val_d), "%d", setting->enum_idx); - menu_entries_append_enum(info->list, - val_s, - val_d, - MENU_ENUM_LABEL_NO_ITEMS, - setting_type, val, 0); - } - - *setting->value.target.integer = orig_value; + setting->get_string_representation(setting, + val_s, sizeof(val_s)); + snprintf(val_d, sizeof(val_d), "%d", setting->enum_idx); + menu_entries_append_enum(info->list, + val_s, + val_d, + MENU_ENUM_LABEL_NO_ITEMS, + setting_type, val, 0); } - else + + *setting->value.target.integer = orig_value; + } + else + { + for (i = min; i <= max; i += step) { - for (i = min; i <= max; i += step) - { - char val_s[16], val_d[16]; - int val = (int)i; + char val_s[16], val_d[16]; + int val = (int)i; - snprintf(val_s, sizeof(val_s), "%d", val); - snprintf(val_d, sizeof(val_d), "%d", setting->enum_idx); + snprintf(val_s, sizeof(val_s), "%d", val); + snprintf(val_d, sizeof(val_d), "%d", setting->enum_idx); - menu_entries_append_enum(info->list, - val_s, - val_d, - MENU_ENUM_LABEL_NO_ITEMS, - setting_type, val, 0); - } + menu_entries_append_enum(info->list, + val_s, + val_d, + MENU_ENUM_LABEL_NO_ITEMS, + setting_type, val, 0); } } } break; case ST_UINT: { + float i; unsigned orig_value = *setting->value.target.unsigned_integer; unsigned setting_type = MENU_SETTING_DROPDOWN_SETTING_UINT_ITEM; + float step = setting->step; + double min = setting->enforce_minrange ? setting->min : 0.00; + double max = setting->enforce_maxrange ? setting->max : 999.00; - if (setting->enforce_minrange && setting->enforce_maxrange) + if (setting->get_string_representation) { - float i; - float step = setting->step; - double min = setting->min; - double max = setting->max; - - if (setting->get_string_representation) + for (i = min; i <= max; i += step) { - for (i = min; i <= max; i += step) - { - char val_s[256], val_d[256]; - int val = (int)i; + char val_s[256], val_d[256]; + int val = (int)i; - *setting->value.target.unsigned_integer = val; + *setting->value.target.unsigned_integer = val; - setting->get_string_representation(setting, - val_s, sizeof(val_s)); - snprintf(val_d, sizeof(val_d), "%d", setting->enum_idx); - menu_entries_append_enum(info->list, - val_s, - val_d, - MENU_ENUM_LABEL_NO_ITEMS, - setting_type, val, 0); - } - - *setting->value.target.unsigned_integer = orig_value; + setting->get_string_representation(setting, + val_s, sizeof(val_s)); + snprintf(val_d, sizeof(val_d), "%d", setting->enum_idx); + menu_entries_append_enum(info->list, + val_s, + val_d, + MENU_ENUM_LABEL_NO_ITEMS, + setting_type, val, 0); } - else + + *setting->value.target.unsigned_integer = orig_value; + } + else + { + for (i = min; i <= max; i += step) { - for (i = min; i <= max; i += step) - { - char val_s[16], val_d[16]; - int val = (int)i; + char val_s[16], val_d[16]; + int val = (int)i; - snprintf(val_s, sizeof(val_s), "%d", val); - snprintf(val_d, sizeof(val_d), "%d", setting->enum_idx); + snprintf(val_s, sizeof(val_s), "%d", val); + snprintf(val_d, sizeof(val_d), "%d", setting->enum_idx); - menu_entries_append_enum(info->list, - val_s, - val_d, - MENU_ENUM_LABEL_NO_ITEMS, - setting_type, val, 0); - } + menu_entries_append_enum(info->list, + val_s, + val_d, + MENU_ENUM_LABEL_NO_ITEMS, + setting_type, val, 0); } } } diff --git a/menu/menu_setting.c b/menu/menu_setting.c index bc2ea66782..c726ee504c 100644 --- a/menu/menu_setting.c +++ b/menu/menu_setting.c @@ -8127,6 +8127,7 @@ static bool setting_append_list( parent_group, general_write_handler, general_read_handler); + (*list)[list_info->index - 1].action_ok = &setting_action_ok_uint; menu_settings_list_current_add_range(list, list_info, 0, 0, 1.0, true, false); END_SUB_GROUP(list, list_info, parent_group);