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:
parent
a0b439c169
commit
13fcd68285
1 changed files with 36 additions and 9 deletions
|
|
@ -31,16 +31,25 @@
|
|||
#include "settings.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_PAGES 3
|
||||
#define KEYBOARD_MARGIN 3
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
#if (CONFIG_KEYPAD == IRIVER_H100_PAD) || \
|
||||
(CONFIG_KEYPAD == IRIVER_H300_PAD)
|
||||
#define KBD_CURSOR_RIGHT (BUTTON_ON | BUTTON_RIGHT)
|
||||
#define KBD_CURSOR_LEFT (BUTTON_ON | BUTTON_LEFT)
|
||||
#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 (BUTTON_ON | BUTTON_REL)
|
||||
#define KBD_ABORT BUTTON_OFF
|
||||
|
|
@ -74,6 +83,19 @@
|
|||
|
||||
#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] = {
|
||||
{ "ABCDEFG !?\" @#$%+'",
|
||||
"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 */
|
||||
static void kbd_spellchar(char c)
|
||||
{
|
||||
|
|
@ -106,8 +130,9 @@ static void kbd_spellchar(char c)
|
|||
int kbd_input(char* text, int buflen)
|
||||
{
|
||||
bool done = false;
|
||||
#if KEYBOARD_PAGES > 1
|
||||
int page = 0;
|
||||
|
||||
#endif
|
||||
int font_w = 0, font_h = 0, i;
|
||||
int x = 0, y = 0;
|
||||
int main_x, main_y, max_chars;
|
||||
|
|
@ -207,7 +232,7 @@ int kbd_input(char* text, int buflen)
|
|||
return -1;
|
||||
break;
|
||||
|
||||
#ifdef KBD_PAGE_FLIP
|
||||
#if defined(KBD_PAGE_FLIP) && KEYBOARD_PAGES > 1
|
||||
case KBD_PAGE_FLIP:
|
||||
if (++page == KEYBOARD_PAGES)
|
||||
page = 0;
|
||||
|
|
@ -235,7 +260,8 @@ int kbd_input(char* text, int buflen)
|
|||
else
|
||||
{
|
||||
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)
|
||||
page = 0;
|
||||
line = kbdpages[page];
|
||||
|
|
@ -263,7 +289,8 @@ int kbd_input(char* text, int buflen)
|
|||
x--;
|
||||
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)
|
||||
page = (KEYBOARD_PAGES-1);
|
||||
line = kbdpages[page];
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue