Misc touch keyboard tweaks

- Enable tab key
    - Allow nonactionable keys to be tapped when in configuration mode
    - Add font mini visual for spacebar
This commit is contained in:
Aaron Culliney 2015-08-10 20:15:48 -07:00
parent 03d27dd2b2
commit 77e96ba1ec
4 changed files with 28 additions and 10 deletions

View File

@ -307,8 +307,8 @@ const unsigned char interface_glyphs[256] =
0x1c, 0x24, 0x04, 0x3e, 0x22, 0x22, 0x2a, 0x3e,
/* : 0x10 ----------------------- reverse return arrow */
0x01, 0x01, 0x01, 0x11, 0x31, 0x7f, 0x30, 0x10,
/* : 0x11 */
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
/* : 0x11 ----------------------- mini-spacebar visual */
0x00, 0x00, 0x00, 0x00, 0x00, 0x22, 0x3e, 0x00,
/* : 0x12 ----------------------- glyph_joystick */
0x08, 0x08, 0x08, 0x77, 0x08, 0x08, 0x08, 0x00,
/* : 0x13 ----------------------- glyph_ctrl */

View File

@ -1173,7 +1173,7 @@
#......
#......
#......
=interface_glyphs,32
= interface_glyphs,32
: 0x00 ----------------------- menu borders
.......
.......
@ -1327,14 +1327,14 @@
#######
....##.
....#..
: 0x11
.......
.......
: 0x11 ----------------------- mini-spacebar visual
.......
.......
.......
.......
.......
.#...#.
.#####.
.......
: 0x12 ----------------------- glyph_joystick
...#...

View File

@ -58,7 +58,7 @@ static char kbdTemplateUCase[KBD_TEMPLATE_ROWS][KBD_TEMPLATE_COLS+1] = {
"QWERTYUIOP",
"ASDFG@HJKL",
" ZXCVBNM @",
" spa. @@",
"@@ spa. @@",
};
static char kbdTemplateLCase[KBD_TEMPLATE_ROWS][KBD_TEMPLATE_COLS+1] = {
@ -67,7 +67,7 @@ static char kbdTemplateLCase[KBD_TEMPLATE_ROWS][KBD_TEMPLATE_COLS+1] = {
"qwertyuiop",
"asdfg@hjkl",
" zxcvbnm @",
" SPA. @@",
"@@ SPA. @@",
};
static char kbdTemplateAlt[KBD_TEMPLATE_ROWS][KBD_TEMPLATE_COLS+1] = {
@ -315,8 +315,8 @@ static inline int64_t _tap_key_at_point(float x, float y) {
break;
case ICONTEXT_NONACTIONABLE:
key = -1;
handled = false;
scancode = 0;
handled = joydriver_isCalibrating()/* || keydriver_isCalibrating()*/;
break;
case ICONTEXT_CTRL:
@ -371,6 +371,11 @@ static inline int64_t _tap_key_at_point(float x, float y) {
_toggle_arrows();
break;
case ICONTEXT_GOTO:
isASCII = true;
key = '\t';
break;
case ICONTEXT_LEFTSPACE:
case ICONTEXT_MIDSPACE:
case ICONTEXT_RIGHTSPACE:
@ -393,6 +398,9 @@ static inline int64_t _tap_key_at_point(float x, float y) {
} else {
c_keys_handle_input(key, /*pressed:*/true, /*ASCII:*/true);
}
if (key == ' ' && (joydriver_isCalibrating()/* || keydriver_isCalibrating()*/)) {
key = ICONTEXT_SPACE_VISUAL;
}
} else if (isCTRL) {
c_keys_handle_input(scancode, /*pressed:*/kbd.ctrlPressed, /*ASCII:*/false);
} else if (scancode != -1) {
@ -504,6 +512,9 @@ static void _setup_touchkbd_hud(GLModel *parent) {
kbdTemplateUCase[_ROWOFF+3][2] = ICONTEXT_NONACTIONABLE;
kbdTemplateLCase[_ROWOFF+3][2] = ICONTEXT_NONACTIONABLE;
kbdTemplateUCase[_ROWOFF+3][0] = ICONTEXT_GOTO;
kbdTemplateLCase[_ROWOFF+3][0] = ICONTEXT_GOTO;
kbdTemplateUCase[_ROWOFF+3][3] = ICONTEXT_LEFTSPACE;
kbdTemplateLCase[_ROWOFF+3][3] = ICONTEXT_LEFTSPACE;
kbdTemplateAlt [_ROWOFF+3][3] = ICONTEXT_LEFTSPACE;
@ -601,6 +612,9 @@ static void gltouchkbd_render(void) {
if (!isEnabled) {
return;
}
if (!ownsScreen) {
return;
}
float alpha = _get_keyboard_visibility();

View File

@ -203,6 +203,7 @@ uint8_t floating_bus_hibit(const bool hibit);
#define ICONTEXT_DISK_LR (ICONTEXT_BEGIN+0x0E)
#define ICONTEXT_UNLOCK (ICONTEXT_BEGIN+0x0F)
#define ICONTEXT_GOTO (ICONTEXT_BEGIN+0x10)
#define ICONTEXT_SPACE_VISUAL (ICONTEXT_BEGIN+0x11)
#define ICONTEXT_MENU_SPROUT (MOUSETEXT_BEGIN+0x1B)
#define ICONTEXT_MENU_TOUCHJOY (ICONTEXT_BEGIN+0x12)
@ -222,6 +223,9 @@ uint8_t floating_bus_hibit(const bool hibit);
#define ICONTEXT_RETURN_R (ICONTEXT_KBD_BEGIN+0x0B)
#define ICONTEXT_NONACTIONABLE (ICONTEXT_KBD_BEGIN+0x0C)
#define ICONTEXT_LEFT_TAB (ICONTEXT_KBD_BEGIN+0x..)
#define ICONTEXT_RIGHT_TAB (ICONTEXT_KBD_BEGIN+0x..)
#define COLOR_BLACK 0
#define COLOR_DARK_RED 35