Third (final??) attemp at a new Virtual Keyboard (#75)

* Atari Console keys

Added: Help, Start, Select, Option and Reset keys.

* Atari TAB, RETURN and SPACE keys

* Return?

* Start, Option, Help and Emulator Menu buttons

* Help key on Pad

Added Atari Help key to joypad mapping.

* First try to new keyboard

* Shit on VKBD

* Control key handle

* Shift text UPPER when pressed

* Atari 8bit font

* Virtual Keyboard keys with Control

* Minor error

* 1st attemp to new vkbd layout

Virtual Keyoboard recreated. Added atari font, Ctrl and Shift funcionality.
Console buttons on second page.

* % and null character display on VKBD

* Revert "% and null character display on VKBD"

This reverts commit f4eb848f26.

* Displaying % and heart on VKBD - maybe...

* Set max key description lenght to 3

* Always display only 3 characters of key desc.

* Schift & Control status on VKBD

* Second page of VKBD

New second page.
New layout, atari cursor keys and F1-F4 now working.

* Minor mistake :)

* Correct atari F1-F4 handling

* Oooops... minor error

* Better keys handling

* Better Shift & Control indicators

* Much better Shift and Control colors :)

* Disable joystick input if Virtual Keyboard active

Only for testing

* Revert "Disable joystick input if Virtual Keyboard active"

This reverts commit 8b942c29e0.

* One page VKBD layout

Atari keyboard fits in one page!

* Atari del/Bk Sp properly handling

* VKBD opacity

Only for testing

* Keys names opacity

Test only

* Still testing VKBD opacity

* minor error

Still testing opacity

* Added VKbd opacity witch switch.

* Oppps...
This commit is contained in:
Pecusx
2021-05-29 09:37:42 +02:00
committed by GitHub
parent 86c87b543f
commit c39dc2ab03
8 changed files with 559 additions and 426 deletions
+147 -120
View File
@@ -4,142 +4,169 @@
typedef struct {
char norml[NLETT];
char shift[NLETT];
char ctrl[NLETT];
int val;
} Mvk;
// I left 2 pages of Virtual Keyboard allowed to work, but everything now fits on one.
Mvk MVk[NPLGN*NLIGN*2]={
{ "ESC" ,"ESC" ,RETROK_ESCAPE },//0
{ " 1" ," !" , RETROK_1 },//0
{ " 2" ," \"" ,RETROK_2 },
{ " 3" ," #" ,RETROK_3 },
{ " 4" ," $" ,RETROK_4 },
{ " 5" ," %" ,RETROK_5 },
{ " 6" ," &" ,RETROK_6 },
{ " 7" ," \'" ,RETROK_7 },
{ " 8" ," (" ,RETROK_8 },
{ " 9" ," )" ,RETROK_9 },
{ " 0" ," _" ,RETROK_0 },
{ " ^" ,"Pnd" ,0x30 },
{ "HLP", "HLP", "HLP", RETROK_F6}, // page 1, line 1
{ "STA", "STA", "STA", RETROK_F4},
{ "SEL", "SEL", "SEL", RETROK_F3},
{ "OPT", "OPT", "OPT", RETROK_F2},
{ "RES", "RES", "RES", RETROK_F5},
{ " F1", " F1", " F1", RETROK_F7},
{ " F2", " F2", " F2", RETROK_F8},
{ " F3", " F3", " F3", RETROK_F9},
{ " F4", " F4", " F4", RETROK_F10},
{ "Clr", "Clr", "Clr", RETROK_HOME},
{ "Ins", "Ins", "Ins", RETROK_INSERT},
{ "Bsp", "Del", "Del", RETROK_BACKSPACE},
{ " q" ," Q" ,RETROK_q}, //10+2
{ " w" ," W" ,RETROK_w},
{ " e" ," E" ,RETROK_e},
{ " r" ," R" ,RETROK_r},
{ " t" ," T" ,RETROK_t},
{ " y" ," Y" ,RETROK_y},
{ " u" ," U" ,RETROK_u},
{ " i" ," I" ,RETROK_i},
{ " o" ," O" ,RETROK_o},
{ " p" ," P" ,RETROK_p},
{ " @" ," |" ,RETROK_QUOTEDBL},
{ " [" ," [" ,RETROK_LEFTBRACKET},
{ "Esc", "Esc", "Esc", RETROK_ESCAPE}, // page 1, line 2
{ " 1 ", " ! ", " \xb1 " , RETROK_1},
{ " 2 ", " \" ", " \xb2 ", RETROK_2},
{ " 3 ", " # ", " \xb3 ", RETROK_3},
{ " 4 ", " $ ", " \xb4 ", RETROK_4},
{ " 5 ", " %% ", " \xb5 ", RETROK_5},
{ " 6 ", " & ", " \xb6 ", RETROK_6},
{ " 7 ", " \' ", " \xb7 ", RETROK_7},
{ " 8 ", " @ ", " \xb8 ", RETROK_8},
{ " 9 ", " ( ", " \xb9 ", RETROK_9},
{ " 0 ", " ) ", " \xb0 ", RETROK_0},
{ "Brk", "Brk", "Brk", RETROK_PAUSE},
{ " a" ," A" ,RETROK_a}, //20+4
{ " s" ," S" ,RETROK_s},
{ " d" ," D" ,RETROK_d},
{ " f" ," F" ,RETROK_f},
{ " g" ," G" ,RETROK_g},
{ " h" ," H" ,RETROK_h},
{ " j" ," J" ,RETROK_j},
{ " k" ," K" ,RETROK_k},
{ " l" ," L" ,RETROK_l},
{ " :" ," *" ,RETROK_COLON},
{ " ;" ," +" ,RETROK_SEMICOLON},
{ " ]" ," ]" ,RETROK_RIGHTBRACKET},
{ "Tab", "Tab", "Tab", RETROK_TAB}, // page 1, line 3
{ " q ", " Q ", "Q \x11", RETROK_q},
{ " w ", " W ", "W \x17", RETROK_w},
{ " e ", " E ", "E \x05", RETROK_e},
{ " r ", " R ", "R \x12", RETROK_r},
{ " t ", " T ", "T \x14", RETROK_t},
{ " y ", " Y ", "Y \x19", RETROK_y},
{ " u ", " U ", "U \x15", RETROK_u},
{ " i ", " I ", "I \x09", RETROK_i},
{ " o ", " O ", "O \x0f", RETROK_o},
{ " p ", " P ", "P \x10", RETROK_p},
{ "Ret", "Ret", "Ret", RETROK_RETURN},
{ " z" ," Z" ,RETROK_z},//30+6
{ " x" ," X" ,RETROK_x},
{ " c" ," C" ,RETROK_c},
{ " v" ," V" ,RETROK_v},
{ " b" ," B" ,RETROK_b},
{ " n" ," N" ,RETROK_n},
{ " m"," M" ,RETROK_m},
{ " ,"," <" ,RETROK_COMMA},
{ " ."," >" ,RETROK_PERIOD},
{ " /" ," ?" ,RETROK_SLASH},
{ " \\"," \\" ,RETROK_BACKSLASH},
{ "SHFT" ,"SHFT" ,0x25},
{ "Ctl", "Ctl", "Ctl", RETROK_LCTRL}, // page 1, line 4
{ " a ", " A ", "A \x01", RETROK_a},
{ " s ", " S ", "S \x13", RETROK_s},
{ " d ", " D ", "D \x04", RETROK_d},
{ " f ", " F ", "F \x06", RETROK_f},
{ " g ", " G ", "G \x07", RETROK_g},
{ " h ", " H ", "H \x08", RETROK_h},
{ " j ", " J ", "J \x0a", RETROK_j},
{ " k ", " K ", "K \x0b", RETROK_k},
{ " l ", " L ", "L \x0c", RETROK_l},
{ " ; ", " : ", "; \x7b", RETROK_SEMICOLON},
{ "Cap", "Cap", "Cap", RETROK_CAPSLOCK},
{ "PG2","PG2" ,-2}, //40+8
{ "TAB","TAB" ,0x54},
{ "CPSL" ,"CPSL" ,0x86},
{ "RET" ,"RET" ,0x22},
{ "DEL" ,"DEL" ,0x97},
{ "CTRL" ,"CTRL" ,0x27},
{ "CLR" ,"CLR" , 0x20},
{ "Spc" ,"Spc",0x57},
{ "= " ,"= " ,RETROK_EQUALS},
{ " *" ," *", RETROK_ASTERISK},
{ "# " ,"# " ,RETROK_HASH},
{ "Ent" ,"Ent",0x06},
{ "Shf", "Shf", "Shf", RETROK_LSHIFT}, // page 1, line 5
{ " z ", " Z ", "Z \x1a", RETROK_z},
{ " x ", " X ", "X \x18", RETROK_x},
{ " c ", " C ", "C \x03", RETROK_c},
{ " v ", " V ", "V \x16", RETROK_v},
{ " b ", " B ", "B \x02", RETROK_b},
{ " n ", " N ", "N \x0e", RETROK_n},
{ " m ", " M ", "M \x0d", RETROK_m},
{ " , ", " [ ", ", \x00", RETROK_COMMA},
{ " . ", " ] ", ". \x60", RETROK_PERIOD},
{ " \x9c ", " \x9c ", " \x9c ", RETROK_UP},
{ "Inv", "Inv", "Inv", RETROK_LSUPER},
{ "OPC", "OPC", "OPC", -5}, // page 1, line 6
{ "Spc", "Spc", "Spc", RETROK_SPACE},
{ " + ", " \\ ", " \x1e ", RETROK_PLUS},
{ " _ ", " - ", " \x1c ", RETROK_UNDERSCORE},
{ " = ", " | ", " \x1d ", RETROK_EQUALS},
{ " * ", " ^ ", " \x1f ", RETROK_ASTERISK},
{ " / ", " ? ", " / ", RETROK_SLASH},
{ " < ", " < ", " < ", RETROK_LESS},
{ " > ", " > ", " > ", RETROK_GREATER},
{ " \x9e ", " \x9e ", " \x9e ", RETROK_LEFT},
{ " \x9d ", " \x9d ", " \x9d ", RETROK_DOWN},
{ " \x9f ", " \x9f ", " \x9f ", RETROK_RIGHT},
{ "ESC" ,"ESC" ,RETROK_ESCAPE },//50+1°
{ " 1" ," !" , RETROK_1 },//0
{ " 2" ," \"" ,RETROK_2 },
{ " 3" ," #" ,RETROK_3 },
{ " 4" ," $" ,RETROK_4 },
{ " 5" ," %" ,RETROK_5 },
{ " 6" ," &" ,RETROK_6 },
{ " 7" ," \'" ,RETROK_7 },
{ " 8" ," (" ,RETROK_8 },
{ " 9" ," )" ,RETROK_9 },
{ " 0" ," _" ,RETROK_0 },
{ " ^" ,"Pnd" ,0x30 },
{ "Esc", "Esc", "Esc", RETROK_ESCAPE}, // page 2, line 1
{ "HLP", "HLP", "HLP", RETROK_F6},
{ "STA", "STA", "STA", RETROK_F4},
{ "SEL", "SEL", "SEL", RETROK_F3},
{ "OPT", "OPT", "OPT", RETROK_F2},
{ "RES", "RES", "RES", RETROK_F5},
{ " F1", " F1", " F1", RETROK_F7},
{ " F2", " F2", " F2", RETROK_F8},
{ " F3", " F3", " F3", RETROK_F9},
{ " F4", " F4", " F4", RETROK_F10},
{ "GUI", "GUI", "GUI", RETROK_F1},
{ "Brk", "Brk", "Brk", RETROK_PAUSE},
{ " F7" ," F7" ,RETROK_F7}, //60+12
{ " F8" ," F8" ,RETROK_F8},
{ " F9" ," F9" ,RETROK_F9},
{ " F0" ," F0" ,RETROK_F10},
{ " t" ," T" ,0x63},
{ " /\\" ," /\\" ,0x00},
{ " u" ," U" ,0x52},
{ " i" ," I" ,0x43},
{ " o" ," O" ,0x42},
{ " p" ," P" ,0x33},
{ " @" ," |" ,0x32},
{ " [" ," [" ,0x21},
{ "Esc", "Esc", "Esc", RETROK_ESCAPE}, // page 2, line 2
{ "HLP", "HLP", "HLP", RETROK_F6},
{ "STA", "STA", "STA", RETROK_F4},
{ "SEL", "SEL", "SEL", RETROK_F3},
{ "OPT", "OPT", "OPT", RETROK_F2},
{ "RES", "RES", "RES", RETROK_F5},
{ " F1", " F1", " F1", RETROK_F7},
{ " F2", " F2", " F2", RETROK_F8},
{ " F3", " F3", " F3", RETROK_F9},
{ " F4", " F4", " F4", RETROK_F10},
{ "GUI", "GUI", "GUI", RETROK_F1},
{ "Brk", "Brk", "Brk", RETROK_PAUSE},
{ " F4" ," F4" ,RETROK_F4}, //70+14
{ " F5" ," F5" ,RETROK_F5},
{ " F6" ," F6" ,RETROK_F6},
{ " ." ," ." ,0x07},
{ " <-" ," <-" ,0x10},
{ "COPY" ,"COPY" ,0x11},
{ " ->" ," ->" ,0x01},
{ " r" ," R" ,RETROK_r},
{ " p" ," P" ,RETROK_p},
{ "= " ,"= " ,RETROK_EQUALS},
{ " *" ," *", RETROK_ASTERISK},
{ "# " ,"# " ,RETROK_HASH},
{ "Tab", "Tab", "Tab", RETROK_TAB}, // page 2, line 3
{ " q ", " Q ", "Q \x11", RETROK_q},
{ " w ", " W ", "W \x17", RETROK_w},
{ " e ", " E ", "E \x05", RETROK_e},
{ " r ", " R ", "R \x12", RETROK_r},
{ " \x9c ", " \x9c ", " \x9c ", RETROK_UP},
{ " y ", " Y ", "Y \x19", RETROK_y},
{ " u ", " U ", "U \x15", RETROK_u},
{ " i ", " I ", "I \x09", RETROK_i},
{ " o ", " O ", "O \x0f", RETROK_o},
{ " p ", " P ", "P \x10", RETROK_p},
{ "Ret", "Ret", "Ret", RETROK_RETURN},
{ " F1" ," F1" ,RETROK_F1},//80+16
{ " F2" ," F2" ,RETROK_F2},
{ " F3" ," F3" ,RETROK_F3},
{ "Ent" ,"Ent" ,0x06},
{ " b" ," B" ,0x66},
{ " \\/" ," \\/" ,0x02},
{ " m"," M" ,0x46},
{ " ,"," <" ,0x47},
{ " ."," >" ,0x37},
{ "TAPE" ,"TAPE" ,-8},
{ "EXIT","EXIT" ,-6},
{ "SNA" ,"SNA" ,-7},
{ "Ctl", "Ctl", "Ctl", RETROK_LCTRL}, // page 2, line 4
{ " a ", " A ", "A \x01", RETROK_a},
{ " s ", " S ", "S \x13", RETROK_s},
{ " d ", " D ", "D \x04", RETROK_d},
{ " \x9e ", " \x9e ", " \x9e ", RETROK_LEFT},
{ "Ret", "Ret", "Ret", RETROK_RETURN},
{ " \x9f ", " \x9f ", " \x9f ", RETROK_RIGHT},
{ " j ", " J ", "J \x0a", RETROK_j},
{ " k ", " K ", "K \x0b", RETROK_k},
{ " l ", " L ", "L \x0c", RETROK_l},
{ " ; ", " : ", "; \x7b", RETROK_SEMICOLON},
{ "Cap", "Cap", "Cap", RETROK_CAPSLOCK},
{ "Shf", "Shf", "Shf", RETROK_LSHIFT}, // page 2, line 5
{ " z ", " Z ", "Z \x1a", RETROK_z},
{ " x ", " X ", "X \x18", RETROK_x},
{ " c ", " C ", "C \x03", RETROK_c},
{ " v ", " V ", "V \x16", RETROK_v},
{ " \x9d ", " \x9d ", " \x9d ", RETROK_DOWN},
{ " n ", " N ", "N \x0e", RETROK_n},
{ " m ", " M ", "M \x0d", RETROK_m},
{ " , ", " [ ", ", \x00", RETROK_COMMA},
{ " . ", " ] ", ". \x60", RETROK_PERIOD},
{ " / ", " ? ", " / ", RETROK_SLASH},
{ "Inv", "Inv", "Inv", RETROK_LSUPER},
{ "PG1","PG1" ,-2},//90+18
{ "DSK","DSK" ,-5},
{ "GUI","GUI" ,-13},
{ "COL" ,"COL",-3},
{ "CTRL" ,"CTRL" ,0x27},
{ "SPC" ,"SPC" ,0x57},
{ "SHFT" ,"SHFT" ,0x25},
{ "ESC","ESC",0x82},
{ "CLR" ,"CLR",0x20},
{ "DEL" ,"DEL",0x97},
{ "Ent" ,"Ent",0x22},
{ "KBD" ,"KBD",-4},
{ "PG1", "PG1", "PG1", -2}, // page 2, line 6
{ "Spc", "Spc", "Spc", RETROK_SPACE},
{ "Del", "Del", "Del", RETROK_DELETE},
{ "Clr", "Clr", "Clr", RETROK_HOME},
{ "Ins", "Ins", "Ins", RETROK_INSERT},
{ " + ", " \\ ", " \x1e ", RETROK_PLUS},
{ " _ ", " - ", " \x1c ", RETROK_UNDERSCORE},
{ " = ", " | ", " \x1d ", RETROK_EQUALS},
{ " * ", " ^ ", " \x1f ", RETROK_ASTERISK},
{ " < ", " < ", " < ", RETROK_LESS},
{ " > ", " > ", " > ", RETROK_GREATER},
{ "PG1", "PG1", "PG1", -2},
} ;