From 15b2eefd6b7bbea7b253d2526b0cb445af348f5e Mon Sep 17 00:00:00 2001 From: Zakk Roberts Date: Sun, 2 Apr 2006 10:41:16 +0000 Subject: Updated quickscreens, now they look better than before while still retaining the ability to scroll - this is about as good as it gets until viewports are implemented. Also enabled the quickscreen for iPods. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@9421 a1c6a512-1295-4272-9138-f99709370657 --- apps/gui/gwps.c | 5 +++-- apps/gui/gwps.h | 5 +++-- apps/gui/quickscreen.c | 61 +++++++++++++++++++++++++++++++++++++------------- apps/gui/quickscreen.h | 18 ++++++++++----- apps/screens.c | 17 +++++++++++++- apps/tree.h | 1 + 6 files changed, 81 insertions(+), 26 deletions(-) diff --git a/apps/gui/gwps.c b/apps/gui/gwps.c index 5c68ac40b0..a43f2e41fd 100644 --- a/apps/gui/gwps.c +++ b/apps/gui/gwps.c @@ -569,8 +569,9 @@ long gui_wps_show(void) break; #endif -#if (CONFIG_KEYPAD == RECORDER_PAD) || (CONFIG_KEYPAD == IRIVER_H100_PAD) \ - || (CONFIG_KEYPAD == IRIVER_H300_PAD) +#if (CONFIG_KEYPAD == RECORDER_PAD) || (CONFIG_KEYPAD == IRIVER_H100_PAD) ||\ + (CONFIG_KEYPAD == IRIVER_H300_PAD) || (CONFIG_KEYPAD == IPOD_3G_PAD) ||\ + (CONFIG_KEYPAD == IPOD_4G_PAD) /* play settings */ case WPS_QUICK: #ifdef WPS_RC_QUICK diff --git a/apps/gui/gwps.h b/apps/gui/gwps.h index 377fc590c8..e02eb0b66c 100644 --- a/apps/gui/gwps.h +++ b/apps/gui/gwps.h @@ -194,6 +194,7 @@ #define WPS_BROWSE_PRE BUTTON_SELECT #define WPS_EXIT (BUTTON_PLAY | BUTTON_REPEAT) #define WPS_CONTEXT (BUTTON_SELECT | BUTTON_REPEAT) +#define WPS_QUICK (BUTTON_MENU | BUTTON_REPEAT) #elif CONFIG_KEYPAD == IRIVER_IFP7XX_PAD @@ -342,7 +343,7 @@ struct wps_data int curr_subline[WPS_MAX_LINES]; int progress_height; int progress_start; - int progress_end; + int progress_end; bool wps_loaded; bool peak_meter_enabled; #ifdef HAVE_LCD_COLOR @@ -381,7 +382,7 @@ struct wps_state void wps_state_init(void); /* change the ff/rew-status - if ff_rew = true then we are in skipping mode + if ff_rew = true then we are in skipping mode else we are in normal mode */ void wps_state_update_ff_rew(bool ff_rew); diff --git a/apps/gui/quickscreen.c b/apps/gui/quickscreen.c index 570907195b..0cee6fd927 100644 --- a/apps/gui/quickscreen.c +++ b/apps/gui/quickscreen.c @@ -45,44 +45,69 @@ void gui_quickscreen_init(struct gui_quickscreen * qs, void gui_quickscreen_draw(struct gui_quickscreen * qs, struct screen * display) { - char buffer[30]; + char buffer[30], line_text[40]; const unsigned char *option; const unsigned char *title; const unsigned char *left_right_title; - char line_text[40]; + int w; + bool statusbar = global_settings.statusbar; #ifdef HAS_BUTTONBAR display->has_buttonbar=false; #endif gui_textarea_clear(display); display->setfont(FONT_SYSFIXED); left_right_title=(unsigned char *)qs->left_right_title; + /* Displays the icons */ - display->mono_bitmap(bitmap_icons_7x8[Icon_FastBackward], 1, 8, 7, 8); - display->mono_bitmap(bitmap_icons_7x8[Icon_DownArrow], 1, 24, 7, 8); - display->mono_bitmap(bitmap_icons_7x8[Icon_FastForward], 1, 40, 7, 8); /* Displays the first line of text */ option=(unsigned char *)option_select_get_text(qs->left_option, buffer, sizeof buffer); title=(unsigned char *)qs->left_option->title; snprintf(line_text, sizeof(line_text), "%s %s", title, left_right_title); - display->puts_scroll(0, 0+!(global_settings.statusbar), line_text); - display->puts_scroll(3, 1+!(global_settings.statusbar), option); + display->puts_scroll(2, !statusbar, line_text); + display->puts_scroll(2, 1+!statusbar, option); + display->mono_bitmap(bitmap_icons_7x8[Icon_FastBackward], 1, 8, 7, 8); /* Displays the second line of text */ - option=(unsigned char *)option_select_get_text(qs->bottom_option, buffer, - sizeof buffer); - title=(unsigned char *)qs->bottom_option->title; - display->puts_scroll(0, 2+!(global_settings.statusbar), title); - display->puts_scroll(3, 3+!(global_settings.statusbar), option); - - /* Displays the third line of text */ option=(unsigned char *)option_select_get_text(qs->right_option, buffer, sizeof buffer); title=(unsigned char *)qs->right_option->title; snprintf(line_text, sizeof(line_text), "%s %s", title, left_right_title); - display->puts_scroll(0, 4+!(global_settings.statusbar), line_text); - display->puts_scroll(3, 5+!(global_settings.statusbar), option); + display->getstringsize(line_text, &w, NULL); + if(w > LCD_WIDTH-8) + { + display->puts_scroll(2, 2+!statusbar, line_text); + display->mono_bitmap(bitmap_icons_7x8[Icon_FastForward], 1, 24, 7, 8); + } + else + { + display->putsxy(LCD_WIDTH-w-12, 24, line_text); + display->mono_bitmap(bitmap_icons_7x8[Icon_FastForward], LCD_WIDTH-8, 24, 7, 8); + } + display->getstringsize(option, &w, NULL); + if(w > LCD_WIDTH) + display->puts_scroll(0, 3+!statusbar, option); + else + display->putsxy(LCD_WIDTH-w-12, 32, option); + + /* Displays the third line of text */ + option=(unsigned char *)option_select_get_text(qs->bottom_option, buffer, + sizeof buffer); + title=(unsigned char *)qs->bottom_option->title; + + display->getstringsize(title, &w, NULL); + if(w > LCD_WIDTH) + display->puts_scroll(0, 4+!statusbar, line_text); + else + display->putsxy(LCD_WIDTH/2-w/2, 40, title); + + display->getstringsize(option, &w, NULL); + if(w > LCD_WIDTH) + display->puts_scroll(0, 5+!statusbar, option); + else + display->putsxy(LCD_WIDTH/2-w/2, 48, option); + display->mono_bitmap(bitmap_icons_7x8[Icon_DownArrow], LCD_WIDTH/2-4, 56, 7, 8); gui_textarea_update(display); display->setfont(FONT_UI); @@ -127,14 +152,18 @@ bool gui_quickscreen_do_button(struct gui_quickscreen * qs, int button) option_select_next(qs->right_option); return(true); +#ifdef QUICKSCREEN_BOTTOM_INV case QUICKSCREEN_BOTTOM_INV : case QUICKSCREEN_BOTTOM_INV | BUTTON_REPEAT : +#endif #ifdef QUICKSCREEN_RC_BOTTOM_INV case QUICKSCREEN_RC_BOTTOM_INV : case QUICKSCREEN_RC_BOTTOM_INV | BUTTON_REPEAT : #endif +#if defined(QUICKSCREEN_RC_BOTTOM_INV) || defined(QUICKSCREEN_BOTTOM_INV) option_select_prev(qs->bottom_option); return(true); +#endif } return(false); } diff --git a/apps/gui/quickscreen.h b/apps/gui/quickscreen.h index fdbe4db386..e6e04c94ae 100644 --- a/apps/gui/quickscreen.h +++ b/apps/gui/quickscreen.h @@ -19,7 +19,8 @@ #include "button.h" #include "config.h" #if (CONFIG_KEYPAD == RECORDER_PAD) || (CONFIG_KEYPAD == IRIVER_H100_PAD) ||\ - (CONFIG_KEYPAD == IRIVER_H300_PAD) + (CONFIG_KEYPAD == IRIVER_H300_PAD) || (CONFIG_KEYPAD == IPOD_4G_PAD) ||\ + (CONFIG_KEYPAD == IPOD_3G_PAD) #ifndef _GUI_QUICKSCREEN_H_ #define _GUI_QUICKSCREEN_H_ @@ -30,14 +31,21 @@ #include "screen_access.h" #define QUICKSCREEN_LEFT BUTTON_LEFT -#define QUICKSCREEN_BOTTOM BUTTON_DOWN -#define QUICKSCREEN_BOTTOM_INV BUTTON_UP #define QUICKSCREEN_RIGHT BUTTON_RIGHT +#if (CONFIG_KEYPAD == IRIVER_H100_PAD) || (CONFIG_KEYPAD == IRIVER_H300_PAD) ||\ + (CONFIG_KEYPAD == RECORDER_PAD) +#define QUICKSCREEN_BOTTOM BUTTON_DOWN +#define QUICKSCREEN_BOTTOM_INV BUTTON_UP +#elif (CONFIG_KEYPAD == IPOD_4G_PAD) || (CONFIG_KEYPAD == IPOD_3G_PAD) +#define QUICKSCREEN_BOTTOM BUTTON_PLAY +#define QUICKSCREEN_QUIT BUTTON_MENU +#define QUICKSCREEN_QUIT2 BUTTON_SELECT +#endif #if (CONFIG_KEYPAD == IRIVER_H100_PAD) || (CONFIG_KEYPAD == IRIVER_H300_PAD) -#define QUICKSCREEN_QUIT BUTTON_MODE -#define QUICKSCREEN_QUIT2 BUTTON_OFF +#define QUICKSCREEN_QUIT BUTTON_MODE +#define QUICKSCREEN_QUIT2 BUTTON_OFF #define QUICKSCREEN_RC_QUIT BUTTON_RC_MODE #ifdef CONFIG_REMOTE_KEYPAD #define QUICKSCREEN_RC_LEFT BUTTON_RC_REW diff --git a/apps/screens.c b/apps/screens.c index 69ccbc035f..4da56776aa 100644 --- a/apps/screens.c +++ b/apps/screens.c @@ -461,7 +461,8 @@ bool pitch_screen(void) #endif #if (CONFIG_KEYPAD == RECORDER_PAD) || (CONFIG_KEYPAD == IRIVER_H100_PAD) ||\ - (CONFIG_KEYPAD == IRIVER_H300_PAD) + (CONFIG_KEYPAD == IRIVER_H300_PAD) || (CONFIG_KEYPAD == IPOD_4G_PAD) ||\ + (CONFIG_KEYPAD == IPOD_3G_PAD) #define bool_to_int(b)\ b?1:0 #define int_to_bool(i)\ @@ -480,6 +481,12 @@ bool quick_screen_quick(int button_enter) struct option_select left_option; struct option_select bottom_option; struct option_select right_option; + int old_x_margin, old_y_margin; + + old_x_margin = lcd_getxmargin(); + old_y_margin = lcd_getymargin(); + lcd_setmargins(0, 0); + static const struct opt_items left_items[] = { [0]={ STR(LANG_OFF) }, [1]={ STR(LANG_ON) } @@ -541,6 +548,7 @@ bool quick_screen_quick(int button_enter) } settings_save(); } + lcd_setmargins(old_x_margin, old_y_margin); return(res); } @@ -563,6 +571,12 @@ bool quick_screen_f3(int button_enter) struct option_select left_option; struct option_select bottom_option; struct option_select right_option; + int old_x_margin, old_y_margin; + + old_x_margin = lcd_getxmargin(); + old_y_margin = lcd_getymargin(); + lcd_setmargins(0, 0); + static const struct opt_items onoff_items[] = { [0]={ STR(LANG_OFF) }, [1]={ STR(LANG_ON) } @@ -594,6 +608,7 @@ bool quick_screen_f3(int button_enter) res=gui_syncquickscreen_run(&qs, button_enter); if(!res) settings_save(); + lcd_setmargins(old_x_margin, old_y_margin); return(res); } #endif /* BUTTON_F3 */ diff --git a/apps/tree.h b/apps/tree.h index 6f91f7fcd1..c632ccdb52 100644 --- a/apps/tree.h +++ b/apps/tree.h @@ -129,6 +129,7 @@ #define TREE_WPS (BUTTON_PLAY | BUTTON_REL) #define TREE_WPS_PRE BUTTON_PLAY #define TREE_CONTEXT (BUTTON_SELECT | BUTTON_REPEAT) +#define TREE_QUICK (BUTTON_MENU | BUTTON_REPEAT) #elif CONFIG_KEYPAD == IRIVER_IFP7XX_PAD -- cgit v1.2.3