(menu.c) Cleanups

This commit is contained in:
twinaphex 2015-01-11 06:14:13 +01:00
parent 751f2b7403
commit 22ccfc7db7
1 changed files with 68 additions and 64 deletions

View File

@ -299,6 +299,9 @@ void menu_free(void *data)
void menu_ticker_line(char *buf, size_t len, unsigned idx, void menu_ticker_line(char *buf, size_t len, unsigned idx,
const char *str, bool selected) const char *str, bool selected)
{ {
unsigned ticker_period, phase, phase_left_stop;
unsigned phase_left_moving, phase_right_stop;
unsigned left_offset, right_offset;
size_t str_len = strlen(str); size_t str_len = strlen(str);
if (str_len <= len) if (str_len <= len)
@ -314,17 +317,16 @@ void menu_ticker_line(char *buf, size_t len, unsigned idx,
return; return;
} }
{
/* Wrap long strings in options with some kind of ticker line. */ /* Wrap long strings in options with some kind of ticker line. */
unsigned ticker_period = 2 * (str_len - len) + 4; ticker_period = 2 * (str_len - len) + 4;
unsigned phase = idx % ticker_period; phase = idx % ticker_period;
unsigned phase_left_stop = 2; phase_left_stop = 2;
unsigned phase_left_moving = phase_left_stop + (str_len - len); phase_left_moving = phase_left_stop + (str_len - len);
unsigned phase_right_stop = phase_left_moving + 2; phase_right_stop = phase_left_moving + 2;
unsigned left_offset = phase - phase_left_stop; left_offset = phase - phase_left_stop;
unsigned right_offset = (str_len - len) - (phase - phase_right_stop); right_offset = (str_len - len) - (phase - phase_right_stop);
/* Ticker period: /* Ticker period:
* [Wait at left (2 ticks), * [Wait at left (2 ticks),
@ -340,7 +342,6 @@ void menu_ticker_line(char *buf, size_t len, unsigned idx,
strlcpy(buf, str + str_len - len, len + 1); strlcpy(buf, str + str_len - len, len + 1);
else else
strlcpy(buf, str + right_offset, len + 1); strlcpy(buf, str + right_offset, len + 1);
}
} }
void menu_apply_deferred_settings(void) void menu_apply_deferred_settings(void)
@ -357,8 +358,12 @@ void menu_apply_deferred_settings(void)
for (; setting->type != ST_NONE; setting++) for (; setting->type != ST_NONE; setting++)
{ {
if ((setting->type < ST_GROUP) && (setting->flags & SD_FLAG_IS_DEFERRED)) if (setting->type >= ST_GROUP)
{ continue;
if (!(setting->flags & SD_FLAG_IS_DEFERRED))
continue;
switch (setting->type) switch (setting->type)
{ {
case ST_BOOL: case ST_BOOL:
@ -393,14 +398,13 @@ void menu_apply_deferred_settings(void)
case ST_DIR: case ST_DIR:
case ST_STRING: case ST_STRING:
case ST_BIND: case ST_BIND:
/* always run the deferred write handler */ /* Always run the deferred write handler */
setting->deferred_handler(setting); setting->deferred_handler(setting);
break; break;
default: default:
break; break;
} }
} }
}
} }
/** /**