CMenuOptionNumberChooser: expand localize functionality for any number

This commit is contained in:
2018-04-04 14:07:26 +02:00
parent 6656a65fb4
commit fdbddce9dd
4 changed files with 28 additions and 20 deletions

View File

@@ -1612,8 +1612,7 @@ void CMenuOptionNumberChooser::init( const neutrino_locale_t& lName,
lower_bound = min_value;
upper_bound = max_value;
display_offset = print_offset;
localized_value = special_value;
localized_value_name = special_value_name;
setLocalizedValue (special_value, special_value_name);
observ = Observ;
slider_on = sliderOn;
@@ -1677,18 +1676,24 @@ int CMenuOptionNumberChooser::paint(bool selected)
const char * l_option;
char option_value[40];
if ((localized_value_name == NONEXISTANT_LOCALE) || ((*optionValue) != localized_value))
for (size_t i = 0; i < localized.size(); i++)
{
if (numberFormatFunction) {
std::string s = numberFormatFunction(*optionValue + display_offset);
strncpy(option_value, s.c_str(), sizeof(option_value));
} else
sprintf(option_value, numberFormat.c_str(), *optionValue + display_offset);
l_option = option_value;
if ((localized[i].value_name == NONEXISTANT_LOCALE) || ((*optionValue) != localized[i].value))
{
if (numberFormatFunction) {
std::string s = numberFormatFunction(*optionValue + display_offset);
strncpy(option_value, s.c_str(), sizeof(option_value));
} else
sprintf(option_value, numberFormat.c_str(), *optionValue + display_offset);
l_option = option_value;
}
else
{
l_option = g_Locale->getText(localized[i].value_name);
break;
}
}
else
l_option = g_Locale->getText(localized_value_name);
//paint item
prepareItem(selected, height);