summaryrefslogtreecommitdiff
path: root/apps
diff options
context:
space:
mode:
Diffstat (limited to 'apps')
-rw-r--r--apps/gui/bitmap/list.c3
-rw-r--r--apps/gui/list.c8
-rw-r--r--apps/gui/skin_engine/skin_parser.c2
-rw-r--r--apps/gui/skin_engine/skin_tokens.c8
-rw-r--r--apps/gui/skin_engine/skin_tokens.h2
-rw-r--r--apps/gui/statusbar-skinned.c20
-rw-r--r--apps/gui/statusbar-skinned.h2
-rw-r--r--apps/gui/viewport.c1
-rw-r--r--apps/menu.c4
9 files changed, 48 insertions, 2 deletions
diff --git a/apps/gui/bitmap/list.c b/apps/gui/bitmap/list.c
index e209003372..10616c9df4 100644
--- a/apps/gui/bitmap/list.c
+++ b/apps/gui/bitmap/list.c
@@ -40,6 +40,7 @@
40#include "sound.h" 40#include "sound.h"
41#include "misc.h" 41#include "misc.h"
42#include "viewport.h" 42#include "viewport.h"
43#include "statusbar-skinned.h"
43 44
44#define ICON_PADDING 1 45#define ICON_PADDING 1
45 46
@@ -82,6 +83,8 @@ static bool draw_title(struct screen *display, struct gui_synclist *list)
82 int style = STYLE_DEFAULT; 83 int style = STYLE_DEFAULT;
83 struct viewport *title_text_vp = &title_text[screen]; 84 struct viewport *title_text_vp = &title_text[screen];
84 85
86 if (sb_set_title_text(list->title, list->title_icon, screen))
87 return false; /* the sbs is handling the title */
85 display->scroll_stop(title_text_vp); 88 display->scroll_stop(title_text_vp);
86 if (!list_display_title(list, screen)) 89 if (!list_display_title(list, screen))
87 return false; 90 return false;
diff --git a/apps/gui/list.c b/apps/gui/list.c
index a3b822503b..ccb51959ff 100644
--- a/apps/gui/list.c
+++ b/apps/gui/list.c
@@ -39,6 +39,7 @@
39#include "talk.h" 39#include "talk.h"
40#include "viewport.h" 40#include "viewport.h"
41#include "appevents.h" 41#include "appevents.h"
42#include "statusbar-skinned.h"
42 43
43/* The minimum number of pending button events in queue before starting 44/* The minimum number of pending button events in queue before starting
44 * to limit list drawing interval. 45 * to limit list drawing interval.
@@ -399,6 +400,12 @@ void gui_synclist_set_title(struct gui_synclist * gui_list,
399{ 400{
400 gui_list->title = title; 401 gui_list->title = title;
401 gui_list->title_icon = icon; 402 gui_list->title_icon = icon;
403#ifdef HAVE_LCD_BITMAP
404 int i;
405 FOR_NB_SCREENS(i)
406 sb_set_title_text(title, icon, i);
407#endif
408 send_event(GUI_EVENT_ACTIONUPDATE, (void*)1);
402} 409}
403 410
404void gui_synclist_set_nb_items(struct gui_synclist * lists, int nb_items) 411void gui_synclist_set_nb_items(struct gui_synclist * lists, int nb_items)
@@ -550,7 +557,6 @@ bool gui_synclist_do_button(struct gui_synclist * lists,
550#else 557#else
551 static int next_item_modifier = 1; 558 static int next_item_modifier = 1;
552 static int last_accel_tick = 0; 559 static int last_accel_tick = 0;
553
554 if (global_settings.list_accel_start_delay) 560 if (global_settings.list_accel_start_delay)
555 { 561 {
556 int start_delay = global_settings.list_accel_start_delay * (HZ/2); 562 int start_delay = global_settings.list_accel_start_delay * (HZ/2);
diff --git a/apps/gui/skin_engine/skin_parser.c b/apps/gui/skin_engine/skin_parser.c
index 844fe5f120..7fbf63bfeb 100644
--- a/apps/gui/skin_engine/skin_parser.c
+++ b/apps/gui/skin_engine/skin_parser.c
@@ -366,6 +366,8 @@ static const struct wps_tag all_tags[] = {
366 parse_viewport_display }, 366 parse_viewport_display },
367#ifdef HAVE_LCD_BITMAP 367#ifdef HAVE_LCD_BITMAP
368 { WPS_VIEWPORT_CUSTOMLIST, "Vp", WPS_REFRESH_STATIC, parse_playlistview }, 368 { WPS_VIEWPORT_CUSTOMLIST, "Vp", WPS_REFRESH_STATIC, parse_playlistview },
369 { WPS_TOKEN_LIST_TITLE_TEXT, "Lt", WPS_REFRESH_DYNAMIC, NULL },
370 { WPS_TOKEN_LIST_TITLE_ICON, "Li", WPS_REFRESH_DYNAMIC, NULL },
369#endif 371#endif
370 { WPS_NO_TOKEN, "V", 0, parse_viewport }, 372 { WPS_NO_TOKEN, "V", 0, parse_viewport },
371 373
diff --git a/apps/gui/skin_engine/skin_tokens.c b/apps/gui/skin_engine/skin_tokens.c
index 1189925ea0..a682bdf87a 100644
--- a/apps/gui/skin_engine/skin_tokens.c
+++ b/apps/gui/skin_engine/skin_tokens.c
@@ -416,6 +416,14 @@ const char *get_token_value(struct gui_wps *gwps,
416 case WPS_TOKEN_PLAYLIST_ENTRIES: 416 case WPS_TOKEN_PLAYLIST_ENTRIES:
417 snprintf(buf, buf_size, "%d", playlist_amount()); 417 snprintf(buf, buf_size, "%d", playlist_amount());
418 return buf; 418 return buf;
419
420 case WPS_TOKEN_LIST_TITLE_TEXT:
421 return (char*)token->value.data;
422 case WPS_TOKEN_LIST_TITLE_ICON:
423 if (intval)
424 *intval = token->value.i;
425 snprintf(buf, buf_size, "%d", token->value.i);
426 return buf;
419 427
420 case WPS_TOKEN_PLAYLIST_NAME: 428 case WPS_TOKEN_PLAYLIST_NAME:
421 return playlist_name(NULL, buf, buf_size); 429 return playlist_name(NULL, buf, buf_size);
diff --git a/apps/gui/skin_engine/skin_tokens.h b/apps/gui/skin_engine/skin_tokens.h
index 5778f95808..d0df058cf0 100644
--- a/apps/gui/skin_engine/skin_tokens.h
+++ b/apps/gui/skin_engine/skin_tokens.h
@@ -189,6 +189,8 @@ enum wps_token_type {
189 189
190 /* buttons */ 190 /* buttons */
191 TOKEN_MARKER_MISC, 191 TOKEN_MARKER_MISC,
192 WPS_TOKEN_LIST_TITLE_TEXT,
193 WPS_TOKEN_LIST_TITLE_ICON,
192 WPS_TOKEN_BUTTON_VOLUME, 194 WPS_TOKEN_BUTTON_VOLUME,
193 WPS_TOKEN_LASTTOUCH, 195 WPS_TOKEN_LASTTOUCH,
194#if (CONFIG_LED == LED_VIRTUAL) || defined(HAVE_REMOTE_LCD) 196#if (CONFIG_LED == LED_VIRTUAL) || defined(HAVE_REMOTE_LCD)
diff --git a/apps/gui/statusbar-skinned.c b/apps/gui/statusbar-skinned.c
index f5458fb252..2ebdcca048 100644
--- a/apps/gui/statusbar-skinned.c
+++ b/apps/gui/statusbar-skinned.c
@@ -33,6 +33,7 @@
33#include "statusbar-skinned.h" 33#include "statusbar-skinned.h"
34#include "debug.h" 34#include "debug.h"
35#include "font.h" 35#include "font.h"
36#include "icon.h"
36 37
37 38
38/* currently only one wps_state is needed */ 39/* currently only one wps_state is needed */
@@ -44,6 +45,25 @@ static struct wps_sync_data sb_skin_sync_data = { .do_full_update = false
44/* initial setup of wps_data */ 45/* initial setup of wps_data */
45static int update_delay = DEFAULT_UPDATE_DELAY; 46static int update_delay = DEFAULT_UPDATE_DELAY;
46 47
48bool sb_set_title_text(char* title, enum themable_icons icon, enum screen_type screen)
49{
50 int i;
51 bool retval = false;
52 for(i=0; i<sb_skin_data[screen].num_tokens; i++)
53 {
54 if (sb_skin_data[screen].tokens[i].type == WPS_TOKEN_LIST_TITLE_TEXT)
55 {
56 sb_skin_data[screen].tokens[i].value.data = title;
57 retval = true;
58 }
59 else if (sb_skin_data[screen].tokens[i].type == WPS_TOKEN_LIST_TITLE_ICON)
60 {
61 sb_skin_data[screen].tokens[i].value.i = icon+1;
62 }
63 }
64 return retval;
65}
66
47 67
48void sb_skin_data_load(enum screen_type screen, const char *buf, bool isfile) 68void sb_skin_data_load(enum screen_type screen, const char *buf, bool isfile)
49{ 69{
diff --git a/apps/gui/statusbar-skinned.h b/apps/gui/statusbar-skinned.h
index bbd4a65018..35bde0bcc1 100644
--- a/apps/gui/statusbar-skinned.h
+++ b/apps/gui/statusbar-skinned.h
@@ -29,6 +29,7 @@
29#include <string.h> 29#include <string.h>
30#include <stdlib.h> 30#include <stdlib.h>
31#include "config.h" 31#include "config.h"
32#include "icon.h"
32 33
33 34
34void sb_skin_data_load(enum screen_type screen, const char *buf, bool isfile); 35void sb_skin_data_load(enum screen_type screen, const char *buf, bool isfile);
@@ -39,6 +40,7 @@ struct viewport *sb_skin_get_info_vp(enum screen_type screen);
39void sb_skin_update(enum screen_type screen, bool force); 40void sb_skin_update(enum screen_type screen, bool force);
40 41
41void sb_skin_set_update_delay(int delay); 42void sb_skin_set_update_delay(int delay);
43bool sb_set_title_text(char* title, enum themable_icons icon, enum screen_type screen);
42 44
43#if (LCD_DEPTH > 1) || (defined(HAVE_REMOTE_LCD) && LCD_REMOTE_DEPTH > 1) 45#if (LCD_DEPTH > 1) || (defined(HAVE_REMOTE_LCD) && LCD_REMOTE_DEPTH > 1)
44char* sb_get_backdrop(enum screen_type screen); 46char* sb_get_backdrop(enum screen_type screen);
diff --git a/apps/gui/viewport.c b/apps/gui/viewport.c
index 142be1c8ac..6e4d9913c4 100644
--- a/apps/gui/viewport.c
+++ b/apps/gui/viewport.c
@@ -104,6 +104,7 @@ static void toggle_theme(enum screen_type screen, bool force)
104 FOR_NB_SCREENS(i) 104 FOR_NB_SCREENS(i)
105 { 105 {
106 enable_event = enable_event || is_theme_enabled(i); 106 enable_event = enable_event || is_theme_enabled(i);
107 sb_set_title_text(NULL, Icon_NOICON, i);
107 } 108 }
108 toggle_events(enable_event); 109 toggle_events(enable_event);
109 110
diff --git a/apps/menu.c b/apps/menu.c
index eb4bf0e1c9..670a235202 100644
--- a/apps/menu.c
+++ b/apps/menu.c
@@ -28,6 +28,7 @@
28#include "config.h" 28#include "config.h"
29#include "system.h" 29#include "system.h"
30 30
31#include "appevents.h"
31#include "lcd.h" 32#include "lcd.h"
32#include "font.h" 33#include "font.h"
33#include "file.h" 34#include "file.h"
@@ -364,7 +365,7 @@ int do_menu(const struct menu_item_ex *start_menu, int *start_selected,
364 365
365 /* if hide_theme is true, assume parent has been fixed before passed into 366 /* if hide_theme is true, assume parent has been fixed before passed into
366 * this function, e.g. with viewport_set_defaults(parent, screen) */ 367 * this function, e.g. with viewport_set_defaults(parent, screen) */
367 init_menu_lists(menu, &lists, selected, true, parent); 368 init_menu_lists(menu, &lists, selected, true, parent);
368 vps = *(lists.parent); 369 vps = *(lists.parent);
369 in_stringlist = ((menu->flags&MENU_TYPE_MASK) == MT_RETURN_ID); 370 in_stringlist = ((menu->flags&MENU_TYPE_MASK) == MT_RETURN_ID);
370 /* load the callback, and only reload it if menu changes */ 371 /* load the callback, and only reload it if menu changes */
@@ -604,6 +605,7 @@ int do_menu(const struct menu_item_ex *start_menu, int *start_selected,
604 case MT_SETTING_W_TEXT: 605 case MT_SETTING_W_TEXT:
605 { 606 {
606 do_setting_from_menu(temp, vps); 607 do_setting_from_menu(temp, vps);
608 send_event(GUI_EVENT_ACTIONUPDATE, (void*)1); /* force a redraw */
607 break; 609 break;
608 } 610 }
609 case MT_RETURN_ID: 611 case MT_RETURN_ID: