From 1e6c8d2ea684e8a8e7a5f2cc08858c2ba2c15387 Mon Sep 17 00:00:00 2001 From: Aidan MacDonald Date: Wed, 30 Nov 2022 12:27:52 +0000 Subject: skin engine: Settings ID to pointer conversions Convert %St tag to operate on settings pointers instead of IDs. Change-Id: Iabf4c280be82b495a64b560b59620fb477e0c738 --- apps/gui/skin_engine/skin_parser.c | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) (limited to 'apps/gui/skin_engine/skin_parser.c') diff --git a/apps/gui/skin_engine/skin_parser.c b/apps/gui/skin_engine/skin_parser.c index 8ecbf7b7f9..435bad9e1f 100644 --- a/apps/gui/skin_engine/skin_parser.c +++ b/apps/gui/skin_engine/skin_parser.c @@ -803,14 +803,14 @@ static int parse_setting_and_lang(struct skin_element *element, */ (void)wps_data; char *temp = get_param_text(element, 0); - int i; if (token->type == SKIN_TOKEN_TRANSLATEDSTRING) { #ifndef __PCTOOL__ - i = lang_english_to_id(temp); + int i = lang_english_to_id(temp); if (i < 0) i = LANG_LAST_INDEX_IN_ARRAY; + token->value.i = i; #endif } else if (element->params_count > 1) @@ -823,12 +823,13 @@ static int parse_setting_and_lang(struct skin_element *element, else { #ifndef __PCTOOL__ - if (find_setting_by_cfgname(temp, &i) == NULL) + const struct settings_list *setting = find_setting_by_cfgname(temp, NULL); + if (!setting) return WPS_ERROR_INVALID_PARAM; + + token->value.xdata = (void *)setting; #endif } - /* Store the setting number */ - token->value.i = i; return 0; } @@ -972,7 +973,7 @@ static int parse_progressbar_tag(struct skin_element* element, pb->image = PTRTOSKINOFFSET(skin_buffer, NULL); pb->slider = PTRTOSKINOFFSET(skin_buffer, NULL); pb->backdrop = PTRTOSKINOFFSET(skin_buffer, NULL); - pb->setting_id = -1; + pb->setting = NULL; pb->invert_fill_direction = false; pb->horizontal = true; @@ -1157,7 +1158,8 @@ static int parse_progressbar_tag(struct skin_element* element, param++; text = SKINOFFSETTOPTR(skin_buffer, param->data.text); #ifndef __PCTOOL__ - if (find_setting_by_cfgname(text, &pb->setting_id) == NULL) + pb->setting = find_setting_by_cfgname(text, NULL); + if (!pb->setting) return WPS_ERROR_INVALID_PARAM; #endif } -- cgit v1.2.3