diff options
author | Campbell Barton <ideasman42@gmail.com> | 2011-03-29 18:36:55 +0400 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2011-03-29 18:36:55 +0400 |
commit | b84a6c4d7eba665975661428072eda57fa33abb7 (patch) | |
tree | 0cf48d0cb2b4274441d35d7e35687aaa90ea96da /source/blender | |
parent | e020c1504eb90138ba8bda74085df56a3522895e (diff) |
use less verbose string formatting for units and interface.
Diffstat (limited to 'source/blender')
-rw-r--r-- | source/blender/blenkernel/intern/unit.c | 4 | ||||
-rw-r--r-- | source/blender/editors/interface/interface.c | 56 |
2 files changed, 20 insertions, 40 deletions
diff --git a/source/blender/blenkernel/intern/unit.c b/source/blender/blenkernel/intern/unit.c index d4084412f63..37e604fa0cb 100644 --- a/source/blender/blenkernel/intern/unit.c +++ b/source/blender/blenkernel/intern/unit.c @@ -344,9 +344,7 @@ static int unit_as_string(char *str, int len_max, double value, int prec, bUnitC /* Convert to a string */ { - char conv_str[6] = {'%', '.', '0', 'l', 'f', '\0'}; /* "%.2lf" when prec is 2, must be under 10 */ - conv_str[2] += prec; - len= snprintf(str, len_max, conv_str, (float)value_conv); + len= snprintf(str, len_max, "%.*lf", prec, value_conv); if(len >= len_max) len= len_max; diff --git a/source/blender/editors/interface/interface.c b/source/blender/editors/interface/interface.c index afee8416239..166046aa64e 100644 --- a/source/blender/editors/interface/interface.c +++ b/source/blender/editors/interface/interface.c @@ -1528,18 +1528,13 @@ void ui_get_but_string(uiBut *but, char *str, int maxlen) if(ui_is_but_unit(but)) { ui_get_but_string_unit(but, str, maxlen, value, 0); } - else if(but->a2) { /* amount of digits defined */ - if(but->a2==1) BLI_snprintf(str, maxlen, "%.1f", value); - else if(but->a2==2) BLI_snprintf(str, maxlen, "%.2f", value); - else if(but->a2==3) BLI_snprintf(str, maxlen, "%.3f", value); - else if(but->a2==4) BLI_snprintf(str, maxlen, "%.4f", value); - else if(but->a2==5) BLI_snprintf(str, maxlen, "%.5f", value); - else if(but->a2==6) BLI_snprintf(str, maxlen, "%.6f", value); - else if(but->a2==7) BLI_snprintf(str, maxlen, "%.7f", value); - else BLI_snprintf(str, maxlen, "%.4f", value); + else { + int prec= (int)but->a2; + if(prec==0) prec= 3; + else CLAMP(prec, 1, 7); + + BLI_snprintf(str, maxlen, "%.*f", prec, value); } - else - BLI_snprintf(str, maxlen, "%.3f", value); } else BLI_snprintf(str, maxlen, "%d", (int)value); @@ -1997,19 +1992,12 @@ void ui_check_but(uiBut *but) ui_get_but_string_unit(but, new_str, sizeof(new_str), value, TRUE); BLI_snprintf(but->drawstr, sizeof(but->drawstr), "%s%s", but->str, new_str); } - else if(but->a2) { /* amount of digits defined */ - if(but->a2==1) sprintf(but->drawstr, "%s%.1f", but->str, value); - else if(but->a2==2) sprintf(but->drawstr, "%s%.2f", but->str, value); - else if(but->a2==3) sprintf(but->drawstr, "%s%.3f", but->str, value); - else if(but->a2==4) sprintf(but->drawstr, "%s%.4f", but->str, value); - else if(but->a2==5) sprintf(but->drawstr, "%s%.5f", but->str, value); - else if(but->a2==6) sprintf(but->drawstr, "%s%.6f", but->str, value); - else if(but->a2==7) sprintf(but->drawstr, "%s%.7f", but->str, value); - else sprintf(but->drawstr, "%s%.4f", but->str, value); - } else { - if(but->hardmax<10.001f) sprintf(but->drawstr, "%s%.3f", but->str, value); - else sprintf(but->drawstr, "%s%.2f", but->str, value); + int prec= (int)but->a2; + if(prec==0) prec= (but->hardmax < 10.001f) ? 3 : 2; + else CLAMP(prec, 1, 7); + + BLI_snprintf(but->drawstr, sizeof(but->drawstr), "%s%.*f", but->str, prec, value); } } else { @@ -2026,22 +2014,16 @@ void ui_check_but(uiBut *but) case LABEL: if(ui_is_but_float(but)) { + int prec= (int)but->a2; value= ui_get_but_val(but); - if(but->a2) { /* amount of digits defined */ - if(but->a2==1) sprintf(but->drawstr, "%s%.1f", but->str, value); - else if(but->a2==2) sprintf(but->drawstr, "%s%.2f", but->str, value); - else if(but->a2==3) sprintf(but->drawstr, "%s%.3f", but->str, value); - else if(but->a2==4) sprintf(but->drawstr, "%s%.4f", but->str, value); - else if(but->a2==5) sprintf(but->drawstr, "%s%.5f", but->str, value); - else if(but->a2==6) sprintf(but->drawstr, "%s%.6f", but->str, value); - else if(but->a2==7) sprintf(but->drawstr, "%s%.7f", but->str, value); - else sprintf(but->drawstr, "%s%.4f", but->str, value); - } - else { - sprintf(but->drawstr, "%s%.2f", but->str, value); - } + if(prec==0) prec= 3; + else CLAMP(prec, 1, 7); + + BLI_snprintf(but->drawstr, sizeof(but->drawstr), "%s%.*f", but->str, prec, value); + } + else { + strncpy(but->drawstr, but->str, UI_MAX_DRAW_STR); } - else strncpy(but->drawstr, but->str, UI_MAX_DRAW_STR); break; |