Avoid redefining the ticker spacer in each menu driver

This commit is contained in:
natinusala 2019-02-21 11:03:02 +01:00
parent 42325ea368
commit 6e20d216bd
11 changed files with 21 additions and 21 deletions

View File

@ -737,7 +737,6 @@ static void materialui_render_label_value(
{
menu_entry_t entry;
menu_animation_ctx_ticker_t ticker;
static const char ticker_spacer[] = " | ";
char label_str[255];
char value_str[255];
char *sublabel_str = NULL;
@ -755,7 +754,7 @@ static void materialui_render_label_value(
/* Initial ticker configuration */
ticker.type_enum = (enum menu_animation_ticker_type)settings->uints.menu_ticker_type;
ticker.spacer = ticker_spacer;
ticker.spacer = NULL;
label_str[0] = value_str[0] = '\0';
@ -1066,7 +1065,6 @@ static void materialui_frame(void *data, video_frame_info_t *video_info)
menu_display_ctx_clearcolor_t clearcolor;
menu_animation_ctx_ticker_t ticker;
static const char ticker_spacer[] = " | ";
menu_display_ctx_draw_t draw;
char msg[255];
char title_buf[255];
@ -1172,7 +1170,7 @@ static void materialui_frame(void *data, video_frame_info_t *video_info)
/* Initial ticker configuration */
ticker.type_enum = (enum menu_animation_ticker_type)settings->uints.menu_ticker_type;
ticker.spacer = ticker_spacer;
ticker.spacer = NULL;
usable_width = width - (mui->margin * 2);

View File

@ -848,7 +848,7 @@ static void ozone_draw_header(ozone_handle_t *ozone, video_frame_info_t *video_i
{
char title[255];
menu_animation_ctx_ticker_t ticker;
static const char* const ticker_spacer = TICKER_SPACER;
static const char* const ticker_spacer = OZONE_TICKER_SPACER;
settings_t *settings = config_get_ptr();
unsigned timedate_offset = 0;

View File

@ -64,11 +64,11 @@ typedef struct ozone_handle ozone_handle_t;
#if defined(__APPLE__)
/* UTF-8 support is currently broken on Apple devices... */
#define TICKER_SPACER " | "
#define OZONE_TICKER_SPACER " | "
#else
/* <EM SPACE><BULLET><EM SPACE>
* UCN equivalent: "\u2003\u2022\u2003" */
#define TICKER_SPACER "\xE2\x80\x83\xE2\x80\xA2\xE2\x80\x83"
#define OZONE_TICKER_SPACER "\xE2\x80\x83\xE2\x80\xA2\xE2\x80\x83"
#endif
struct ozone_handle

View File

@ -408,7 +408,7 @@ border_iterate:
menu_texture_item tex;
menu_entry_t entry;
menu_animation_ctx_ticker_t ticker;
static const char* const ticker_spacer = TICKER_SPACER;
static const char* const ticker_spacer = OZONE_TICKER_SPACER;
char entry_value[255];
char rich_label[255];
char entry_value_ticker[255];

View File

@ -110,7 +110,7 @@ void ozone_draw_sidebar(ozone_handle_t *ozone, video_frame_info_t *video_info)
unsigned i, sidebar_height, selection_y, selection_old_y, horizontal_list_size;
char console_title[255];
menu_animation_ctx_ticker_t ticker;
static const char* const ticker_spacer = TICKER_SPACER;
static const char* const ticker_spacer = OZONE_TICKER_SPACER;
settings_t *settings = config_get_ptr();
/* Initial ticker configuration */

View File

@ -62,8 +62,6 @@
#define RGUI_TERM_WIDTH(width) (((width - RGUI_TERM_START_X(width) - RGUI_TERM_START_X(width)) / (FONT_WIDTH_STRIDE)))
#define RGUI_TERM_HEIGHT(width, height) (((height - RGUI_TERM_START_Y(height) - RGUI_TERM_START_X(width)) / (FONT_HEIGHT_STRIDE)) - 1)
#define TICKER_SPACER " | "
typedef struct
{
uint32_t hover_color;
@ -1467,7 +1465,7 @@ static void rgui_frame(void *data, video_frame_info_t *video_info)
static void rgui_render(void *data, bool is_idle)
{
menu_animation_ctx_ticker_t ticker;
static const char* const ticker_spacer = TICKER_SPACER;
static const char* const ticker_spacer = TICKER_SPACER_DEFAULT;
unsigned x, y;
size_t i, end, fb_pitch, old_start;
unsigned fb_width, fb_height;
@ -2307,7 +2305,7 @@ static void rgui_update_menu_sublabel(rgui_t *rgui)
if (!string_is_empty(entry.sublabel))
{
static const char* const sublabel_spacer = TICKER_SPACER;
static const char* const sublabel_spacer = TICKER_SPACER_DEFAULT;
struct string_list *list = NULL;
size_t line_index;
bool prev_line_empty = true;

View File

@ -2329,7 +2329,6 @@ static int stripes_draw_item(
{
float icon_x, icon_y, label_offset;
menu_animation_ctx_ticker_t ticker;
static const char ticker_spacer[] = " | ";
char tmp[255];
char *ticker_str = NULL;
unsigned entry_type = 0;
@ -2343,7 +2342,7 @@ static int stripes_draw_item(
/* Initial ticker configuration */
ticker.type_enum = settings->uints.menu_ticker_type;
ticker.spacer = ticker_spacer;
ticker.spacer = NULL;
if (!node)
goto iterate;

View File

@ -2803,7 +2803,6 @@ static int xmb_draw_item(
float icon_x, icon_y, label_offset;
menu_animation_ctx_ticker_t ticker;
char tmp[255];
static const char ticker_spacer[] = " | ";
char *ticker_str = NULL;
unsigned entry_type = 0;
const float half_size = xmb->icon_size / 2.0f;
@ -2816,7 +2815,7 @@ static int xmb_draw_item(
/* Initial ticker configuration */
ticker.type_enum = (enum menu_animation_ticker_type)settings->uints.menu_ticker_type;
ticker.spacer = ticker_spacer;
ticker.spacer = NULL;
if (!node)
goto iterate;

View File

@ -560,14 +560,13 @@ static void xui_render(void *data, bool is_idle)
if (XuiHandleIsValid(m_menutitle))
{
menu_animation_ctx_ticker_t ticker;
static const char ticker_spacer[] = " | ";
menu_entries_get_title(title, sizeof(title));
mbstowcs(strw_buffer, title, sizeof(strw_buffer) / sizeof(wchar_t));
XuiTextElementSetText(m_menutitle, strw_buffer);
/* Initial ticker configuration */
ticker.type_enum = settings->uints.menu_ticker_type;
ticker.spacer = ticker_spacer;
ticker.spacer = NULL;
ticker.s = title;
ticker.len = RXUI_TERM_WIDTH(fb_width) - 3;

View File

@ -63,6 +63,8 @@ typedef struct menu_animation menu_animation_t;
#define TICKER_SPEED 333
#define TICKER_SLOW_SPEED 1600
static const char ticker_spacer_default[] = TICKER_SPACER_DEFAULT;
static menu_animation_t anim;
static retro_time_t cur_time = 0;
static retro_time_t old_time = 0;
@ -658,10 +660,13 @@ bool menu_animation_update(void)
return animation_is_active;
}
bool menu_animation_ticker(const menu_animation_ctx_ticker_t *ticker)
bool menu_animation_ticker(menu_animation_ctx_ticker_t *ticker)
{
size_t str_len = utf8len(ticker->str);
if (!ticker->spacer)
ticker->spacer = ticker_spacer_default;
if ((size_t)str_len <= ticker->len)
{
utf8cpy(ticker->s,

View File

@ -25,6 +25,8 @@
RETRO_BEGIN_DECLS
#define TICKER_SPACER_DEFAULT " | ";
typedef float (*easing_cb) (float, float, float, float);
typedef void (*tween_cb) (void*);
@ -149,7 +151,7 @@ void menu_animation_free(void);
bool menu_animation_update(void);
bool menu_animation_ticker(const menu_animation_ctx_ticker_t *ticker);
bool menu_animation_ticker(menu_animation_ctx_ticker_t *ticker);
float menu_animation_get_delta_time(void);