diff options
-rw-r--r-- | apps/gui/bitmap/list.c | 3 | ||||
-rw-r--r-- | apps/gui/list.c | 8 | ||||
-rw-r--r-- | apps/gui/skin_engine/skin_parser.c | 2 | ||||
-rw-r--r-- | apps/gui/skin_engine/skin_tokens.c | 8 | ||||
-rw-r--r-- | apps/gui/skin_engine/skin_tokens.h | 2 | ||||
-rw-r--r-- | apps/gui/statusbar-skinned.c | 20 | ||||
-rw-r--r-- | apps/gui/statusbar-skinned.h | 2 | ||||
-rw-r--r-- | apps/gui/viewport.c | 1 | ||||
-rw-r--r-- | apps/menu.c | 4 |
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 | ||
404 | void gui_synclist_set_nb_items(struct gui_synclist * lists, int nb_items) | 411 | void 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 */ |
45 | static int update_delay = DEFAULT_UPDATE_DELAY; | 46 | static int update_delay = DEFAULT_UPDATE_DELAY; |
46 | 47 | ||
48 | bool 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 | ||
48 | void sb_skin_data_load(enum screen_type screen, const char *buf, bool isfile) | 68 | void 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 | ||
34 | void sb_skin_data_load(enum screen_type screen, const char *buf, bool isfile); | 35 | void 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); | |||
39 | void sb_skin_update(enum screen_type screen, bool force); | 40 | void sb_skin_update(enum screen_type screen, bool force); |
40 | 41 | ||
41 | void sb_skin_set_update_delay(int delay); | 42 | void sb_skin_set_update_delay(int delay); |
43 | bool 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) |
44 | char* sb_get_backdrop(enum screen_type screen); | 46 | char* 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: |