1
0
Fork 0
forked from len0rd/rockbox

Patch #1316533 by Alexander Spyridakis: All characters on one virtual keyboard page for targets with large LCD.

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@7597 a1c6a512-1295-4272-9138-f99709370657
This commit is contained in:
Jens Arnold 2005-10-08 07:12:28 +00:00
parent a0b439c169
commit 13fcd68285

View file

@ -31,16 +31,25 @@
#include "settings.h" #include "settings.h"
#include "misc.h" #include "misc.h"
#define KEYBOARD_MARGIN 3
#if (LCD_WIDTH >= 160) && (LCD_HEIGHT >= 96)
#define KEYBOARD_LINES 8
#define KEYBOARD_PAGES 1
#else
#define KEYBOARD_LINES 4 #define KEYBOARD_LINES 4
#define KEYBOARD_PAGES 3 #define KEYBOARD_PAGES 3
#define KEYBOARD_MARGIN 3
#endif
#if (CONFIG_KEYPAD == IRIVER_H100_PAD) || \ #if (CONFIG_KEYPAD == IRIVER_H100_PAD) || \
(CONFIG_KEYPAD == IRIVER_H300_PAD) (CONFIG_KEYPAD == IRIVER_H300_PAD)
#define KBD_CURSOR_RIGHT (BUTTON_ON | BUTTON_RIGHT) #define KBD_CURSOR_RIGHT (BUTTON_ON | BUTTON_RIGHT)
#define KBD_CURSOR_LEFT (BUTTON_ON | BUTTON_LEFT) #define KBD_CURSOR_LEFT (BUTTON_ON | BUTTON_LEFT)
#define KBD_SELECT BUTTON_SELECT #define KBD_SELECT BUTTON_SELECT
#define KBD_PAGE_FLIP BUTTON_MODE #define KBD_PAGE_FLIP BUTTON_MODE /* unused */
#define KBD_DONE_PRE BUTTON_ON #define KBD_DONE_PRE BUTTON_ON
#define KBD_DONE (BUTTON_ON | BUTTON_REL) #define KBD_DONE (BUTTON_ON | BUTTON_REL)
#define KBD_ABORT BUTTON_OFF #define KBD_ABORT BUTTON_OFF
@ -74,6 +83,19 @@
#endif #endif
#if KEYBOARD_PAGES == 1
static const char * const kbdpages[KEYBOARD_PAGES][KEYBOARD_LINES] = {
{ "ABCDEFG abcdefg !?\" @#$%+'",
"HIJKLMN hijklmn 789 &_()-`",
"OPQRSTU opqrstu 456 §|{}/<",
"VWXYZ., vwxyz.,0123 ~=[]*>",
"ÀÁÂÃÄÅÆ ÌÍÎÏ ÈÉÊË ¢£¤¥¦§©®",
"àáâãäåæ ìíîï èéêë «»°ºª¹²³",
"ÓÒÔÕÖØ ÇÐÞÝß ÙÚÛÜ ¯±×÷¡¿µ·",
"òóôõöø çðþýÿ ùúûü ¼½¾¬¶¨ " },
};
#else
static const char * const kbdpages[KEYBOARD_PAGES][KEYBOARD_LINES] = { static const char * const kbdpages[KEYBOARD_PAGES][KEYBOARD_LINES] = {
{ "ABCDEFG !?\" @#$%+'", { "ABCDEFG !?\" @#$%+'",
"HIJKLMN 789 &_()-`", "HIJKLMN 789 &_()-`",
@ -91,6 +113,8 @@ static const char * const kbdpages[KEYBOARD_PAGES][KEYBOARD_LINES] = {
"òóôõöø çðþýÿ ùúûü" }, "òóôõöø çðþýÿ ùúûü" },
}; };
#endif
/* helper function to spell a char if voice UI is enabled */ /* helper function to spell a char if voice UI is enabled */
static void kbd_spellchar(char c) static void kbd_spellchar(char c)
{ {
@ -106,8 +130,9 @@ static void kbd_spellchar(char c)
int kbd_input(char* text, int buflen) int kbd_input(char* text, int buflen)
{ {
bool done = false; bool done = false;
#if KEYBOARD_PAGES > 1
int page = 0; int page = 0;
#endif
int font_w = 0, font_h = 0, i; int font_w = 0, font_h = 0, i;
int x = 0, y = 0; int x = 0, y = 0;
int main_x, main_y, max_chars; int main_x, main_y, max_chars;
@ -207,7 +232,7 @@ int kbd_input(char* text, int buflen)
return -1; return -1;
break; break;
#ifdef KBD_PAGE_FLIP #if defined(KBD_PAGE_FLIP) && KEYBOARD_PAGES > 1
case KBD_PAGE_FLIP: case KBD_PAGE_FLIP:
if (++page == KEYBOARD_PAGES) if (++page == KEYBOARD_PAGES)
page = 0; page = 0;
@ -235,7 +260,8 @@ int kbd_input(char* text, int buflen)
else else
{ {
x = 0; x = 0;
#ifndef KBD_PAGE_FLIP /* no dedicated flip key - flip page on wrap */ #if !defined(KBD_PAGE_FLIP) && KEYBOARD_PAGES > 1
/* no dedicated flip key - flip page on wrap */
if (++page == KEYBOARD_PAGES) if (++page == KEYBOARD_PAGES)
page = 0; page = 0;
line = kbdpages[page]; line = kbdpages[page];
@ -263,7 +289,8 @@ int kbd_input(char* text, int buflen)
x--; x--;
else else
{ {
#ifndef KBD_PAGE_FLIP /* no dedicated flip key - flip page on wrap */ #if !defined(KBD_PAGE_FLIP) && KEYBOARD_PAGES > 1
/* no dedicated flip key - flip page on wrap */
if (--page < 0) if (--page < 0)
page = (KEYBOARD_PAGES-1); page = (KEYBOARD_PAGES-1);
line = kbdpages[page]; line = kbdpages[page];