From 06bfb5214a04d59c7ef7a763d3f38928d12e8d0e Mon Sep 17 00:00:00 2001 From: Holger Schemel Date: Fri, 29 May 2015 11:27:38 +0200 Subject: [PATCH] added missing configurability of 'list_size' for info elements --- src/conf_gfx.c | 1 + src/files.c | 8 ++++++++ src/main.h | 1 + src/screens.c | 12 +++++++++--- 4 files changed, 19 insertions(+), 3 deletions(-) diff --git a/src/conf_gfx.c b/src/conf_gfx.c index 8c3bc2d8..b63cb940 100644 --- a/src/conf_gfx.c +++ b/src/conf_gfx.c @@ -6229,6 +6229,7 @@ struct ConfigInfo image_config[] = { "menu.list_size.LEVELNR", "-1" }, { "menu.list_size.SCORES", "-1" }, { "menu.list_size.INFO", "-1" }, + { "menu.list_size.INFO[ELEMENTS]", "-1" }, { "menu.list_size.SETUP", "-1" }, { "main.button.name.x", "0" }, diff --git a/src/files.c b/src/files.c index aa44fc26..184fbb0f 100644 --- a/src/files.c +++ b/src/files.c @@ -8862,6 +8862,14 @@ static void LoadMenuDesignSettingsFromFilename(char *filename) menu.draw_xoffset_info[i] = get_integer_from_string(value_1); if (value_2 != NULL) menu.draw_yoffset_info[i] = get_integer_from_string(value_2); + + if (i == GFX_SPECIAL_ARG_INFO_ELEMENTS) + { + char *value_1 = getHashEntry(setup_file_hash, "menu.list_size.INFO"); + + if (value_1 != NULL) + menu.list_size_info[i] = get_integer_from_string(value_1); + } } /* special case: initialize with default values that may be overwritten */ diff --git a/src/main.h b/src/main.h index a75329ff..c0dbcd79 100644 --- a/src/main.h +++ b/src/main.h @@ -2166,6 +2166,7 @@ struct MenuInfo int scrollbar_xoffset; int list_size[NUM_SPECIAL_GFX_ARGS]; + int list_size_info[NUM_SPECIAL_GFX_INFO_ARGS]; struct TitleFadingInfo enter_menu; struct TitleFadingInfo leave_menu; diff --git a/src/screens.c b/src/screens.c index c9c2ba4a..869daaed 100644 --- a/src/screens.c +++ b/src/screens.c @@ -98,9 +98,15 @@ MENU_SCREEN_INFO_YSTART2 - \ TILEY / 2) #define MAX_INFO_ELEMENTS_ON_SCREEN 128 -#define NUM_INFO_ELEMENTS_ON_SCREEN MIN(MENU_SCREEN_INFO_YSIZE / \ - MENU_SCREEN_INFO_YSTEP, \ - MAX_INFO_ELEMENTS_ON_SCREEN) +#define STD_INFO_ELEMENTS_ON_SCREEN (MENU_SCREEN_INFO_YSIZE / \ + MENU_SCREEN_INFO_YSTEP) +#define NUM_INFO_ELEMENTS_FROM_CONF \ + (menu.list_size_info[GFX_SPECIAL_ARG_INFO_ELEMENTS] > 0 ? \ + menu.list_size_info[GFX_SPECIAL_ARG_INFO_ELEMENTS] : \ + MAX_MENU_ENTRIES_ON_SCREEN) +#define NUM_INFO_ELEMENTS_ON_SCREEN MIN(MIN(STD_INFO_ELEMENTS_ON_SCREEN, \ + MAX_INFO_ELEMENTS_ON_SCREEN), \ + NUM_INFO_ELEMENTS_FROM_CONF) #define MAX_MENU_ENTRIES_ON_SCREEN (SCR_FIELDY - MENU_SCREEN_START_YPOS) #define MAX_MENU_TEXT_LENGTH_BIG 13 #define MAX_MENU_TEXT_LENGTH_MEDIUM (MAX_MENU_TEXT_LENGTH_BIG * 2) -- 2.34.1