From 58dff17b8ef920e0d57673523849132398170c35 Mon Sep 17 00:00:00 2001 From: Björn Stenberg Date: Wed, 15 Jan 2003 13:48:54 +0000 Subject: Keyboard fixes. ON now means Done on both recorder and player. Navigation keys repeat. Recorder keyboard uses system font. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@3092 a1c6a512-1295-4272-9138-f99709370657 --- apps/player/keyboard.c | 84 ++++++++++++++++-------------- apps/recorder/keyboard.c | 130 +++++++++++++++++++++++++---------------------- 2 files changed, 114 insertions(+), 100 deletions(-) (limited to 'apps') diff --git a/apps/player/keyboard.c b/apps/player/keyboard.c index be0e43b8a9..ec40ddf57c 100644 --- a/apps/player/keyboard.c +++ b/apps/player/keyboard.c @@ -53,9 +53,13 @@ int kbd_input(char* text, int buflen) lcd_clear_display(); /* draw chars */ - for (i=0; i < 11; i++) - lcd_putc(i, 1, line[i+x]); - + for (i=0; i < 11; i++) { + if (line[i+x]) + lcd_putc(i, 1, line[i+x]); + else + break; + } + /* write out the text */ if (len <= 11) { /* if we have enough room */ @@ -70,47 +74,49 @@ int kbd_input(char* text, int buflen) switch ( button_get(true) ) { - case BUTTON_MENU: - /* Page */ - if (++page == KEYBOARD_PAGES) - page = 0; - line = kbd_setupkeys(page); - linelen = strlen(line); - break; + case BUTTON_MENU: + /* shift */ + if (++page == KEYBOARD_PAGES) + page = 0; + line = kbd_setupkeys(page); + linelen = strlen(line); + break; - case BUTTON_RIGHT: - if (x < linelen - 1) - x++; - else - x = 0; - break; + case BUTTON_RIGHT: + case BUTTON_RIGHT | BUTTON_REPEAT: + if (x < linelen - 1) + x++; + else + x = 0; + break; - case BUTTON_LEFT: - if (x) - x--; - else - x = linelen - 1; - break; + case BUTTON_LEFT: + case BUTTON_LEFT | BUTTON_REPEAT: + if (x) + x--; + else + x = linelen - 1; + break; - case BUTTON_STOP: - /* backspace */ - if (len) - text[len-1] = 0; - break; + case BUTTON_STOP: + /* backspace */ + if (len) + text[len-1] = 0; + break; - case BUTTON_ON: - /* F2 accepts what was entered and continues */ - done = true; - break; + case BUTTON_ON: + /* ON accepts what was entered and continues */ + done = true; + break; - case BUTTON_PLAY: - /* PLAY inserts the selected char */ - if (lenmaxwidth; font_h = font->height; @@ -131,7 +132,7 @@ int kbd_input(char* text, int buflen) /* draw the status bar */ kbd_draw_statusbar_button(0, "Shift", status_y1, font_w); - kbd_draw_statusbar_button(1, "Done", status_y1, font_w); + kbd_draw_statusbar_button(1, "Cancl", status_y1, font_w); kbd_draw_statusbar_button(2, "Del", status_y1, font_w); /* highlight the key that has focus */ @@ -140,67 +141,74 @@ int kbd_input(char* text, int buflen) switch ( button_get(true) ) { - case BUTTON_OFF: - /* abort */ - return -1; - break; - - case BUTTON_F1: - /* Page */ - if (++page == KEYBOARD_PAGES) - page = 0; - kbd_setupkeys(line, page); - break; - - case BUTTON_RIGHT: - if (x < (int)strlen(line[y]) - 1) - x++; - else - x = 0; - break; - - case BUTTON_LEFT: - if (x) - x--; - else - x = strlen(line[y]) - 1; - break; - - case BUTTON_DOWN: - if (y < KEYBOARD_LINES - 1) - y++; - else - y=0; - break; - - case BUTTON_UP: - if (y) - y--; - else - y = KEYBOARD_LINES - 1; - break; - - case BUTTON_F3: - /* backspace */ - if (len) - text[len-1] = 0; - break; - - case BUTTON_F2: - /* F2 accepts what was entered and continues */ - done = true; - break; - - case BUTTON_PLAY: - /* PLAY inserts the selected char */ - if (len