Initial commit
Half-baked state. Most of the UI is mostly done, but the integration with Grist (or any other data provider) is still missing.
This commit is contained in:
337
addons/onscreenkeyboard/keylist.gd
Normal file
337
addons/onscreenkeyboard/keylist.gd
Normal file
@@ -0,0 +1,337 @@
|
||||
extends Node
|
||||
|
||||
|
||||
# ##########
|
||||
# map strings from keyboard layout to godot global defined keys
|
||||
# https://docs.godotengine.org/en/stable/classes/class_@globalscope.html
|
||||
# Keys that are not available in the global scope of godot are represented by their decimal ASCII code
|
||||
# ADD NEW KEY:
|
||||
# extract new decimal ASCII codes from here: https://www.ascii-code.com/ISO-8859-1
|
||||
# create entry with new name and reuse this name in your keyboard layout .json
|
||||
# ##########
|
||||
|
||||
var key_list = {
|
||||
"Escape":KEY_ESCAPE,
|
||||
"Tab":KEY_TAB,
|
||||
#"Shift-Tab":16777219,
|
||||
"Backspace":KEY_BACKSPACE,
|
||||
"Return":KEY_ENTER,
|
||||
"Enter":KEY_KP_ENTER,
|
||||
"Insert":KEY_INSERT,
|
||||
"Delete":KEY_DELETE,
|
||||
"Pause":KEY_PAUSE,
|
||||
"Printscreen":KEY_PRINT,
|
||||
"SystemRequest":KEY_SYSREQ,
|
||||
"Clear":KEY_CLEAR,
|
||||
"Home":KEY_HOME,
|
||||
"End":KEY_END,
|
||||
"LeftArrow":KEY_LEFT,
|
||||
"UpArrow":KEY_UP,
|
||||
"RightArrow":KEY_RIGHT,
|
||||
"DownArrow":KEY_DOWN,
|
||||
"Pageup":KEY_PAGEUP,
|
||||
"Pagedown":KEY_PAGEDOWN,
|
||||
"Shift":KEY_SHIFT,
|
||||
"Control":KEY_CTRL,
|
||||
"Meta":KEY_META,
|
||||
"Alt":KEY_ALT,
|
||||
"Capslock":KEY_CAPSLOCK,
|
||||
"Numlock":KEY_NUMLOCK,
|
||||
"Scrolllock":KEY_SCROLLLOCK,
|
||||
"F1":KEY_F1,
|
||||
"F2":KEY_F2,
|
||||
"F3":KEY_F3,
|
||||
"F4":KEY_F4,
|
||||
"F5":KEY_F5,
|
||||
"F6":KEY_F6,
|
||||
"F7":KEY_F7,
|
||||
"F8":KEY_F8,
|
||||
"F9":KEY_F9,
|
||||
"F10":KEY_F10,
|
||||
"F11":KEY_F11,
|
||||
"F12":KEY_F12,
|
||||
"F13":KEY_F13,
|
||||
"F14":KEY_F14,
|
||||
"F15":KEY_F15,
|
||||
"F16":KEY_F16,
|
||||
"MultiplyonNumpad":KEY_KP_MULTIPLY,
|
||||
"DivideonNumpad":KEY_KP_DIVIDE,
|
||||
"SubtractonNumpad":KEY_KP_SUBTRACT,
|
||||
"PeriodonNumpad":KEY_KP_PERIOD,
|
||||
"AddonNumpad":KEY_KP_ADD,
|
||||
"Number0onNumpad":KEY_KP_0,
|
||||
"Number1onNumpad":KEY_KP_1,
|
||||
"Number2onNumpad":KEY_KP_2,
|
||||
"Number3onNumpad":KEY_KP_3,
|
||||
"Number4onNumpad":KEY_KP_4,
|
||||
"Number5onNumpad":KEY_KP_5,
|
||||
"Number6onNumpad":KEY_KP_6,
|
||||
"Number7onNumpad":KEY_KP_7,
|
||||
"Number8onNumpad":KEY_KP_8,
|
||||
"Number9onNumpad":KEY_KP_9,
|
||||
#"LeftSuper(Windows)":16777260,
|
||||
#"RightSuper(Windows)":16777261,
|
||||
"Contextmenu":KEY_MENU,
|
||||
"LeftHyper":KEY_HYPER,
|
||||
"RightHyper":KEY_HYPER,
|
||||
"Help":KEY_HELP,
|
||||
#"LeftDirection":16777266,
|
||||
#"RightDirection":16777267,
|
||||
"Back":KEY_BACK,
|
||||
"Forward":KEY_FORWARD,
|
||||
"Stop":KEY_STOP,
|
||||
"Refresh":KEY_REFRESH,
|
||||
"Volumedown":KEY_VOLUMEDOWN,
|
||||
"Mutevolume":KEY_VOLUMEMUTE,
|
||||
"Volumeup":KEY_VOLUMEUP,
|
||||
#"BassBoost":16777287,
|
||||
#"BassUp":16777288,
|
||||
#"BassDown":16777289,
|
||||
#"TrebleUp":16777290,
|
||||
#"TrebleDown":16777291,
|
||||
"Mediaplay":KEY_MEDIAPLAY,
|
||||
"Mediastop":KEY_MEDIASTOP,
|
||||
"Previoussong":KEY_MEDIAPREVIOUS,
|
||||
"Nextsong":KEY_MEDIANEXT,
|
||||
"Mediarecord":KEY_MEDIARECORD,
|
||||
"Homepage":KEY_HOMEPAGE,
|
||||
"Favorites":KEY_FAVORITES,
|
||||
"Search":KEY_SEARCH,
|
||||
"Standby":KEY_STANDBY,
|
||||
"OpenURL/LaunchBrowser":KEY_OPENURL,
|
||||
"LaunchMail":KEY_LAUNCHMAIL,
|
||||
"LaunchMedia":KEY_LAUNCHMEDIA,
|
||||
"LaunchShortcut0":KEY_LAUNCH0,
|
||||
"LaunchShortcut1":KEY_LAUNCH1,
|
||||
"LaunchShortcut2":KEY_LAUNCH2,
|
||||
"LaunchShortcut3":KEY_LAUNCH3,
|
||||
"LaunchShortcut4":KEY_LAUNCH4,
|
||||
"LaunchShortcut5":KEY_LAUNCH5,
|
||||
"LaunchShortcut6":KEY_LAUNCH6,
|
||||
"LaunchShortcut7":KEY_LAUNCH7,
|
||||
"LaunchShortcut8":KEY_LAUNCH8,
|
||||
"LaunchShortcut9":KEY_LAUNCH9,
|
||||
"LaunchShortcutA":KEY_LAUNCHA,
|
||||
"LaunchShortcutB":KEY_LAUNCHB,
|
||||
"LaunchShortcutC":KEY_LAUNCHC,
|
||||
"LaunchShortcutD":KEY_LAUNCHD,
|
||||
"LaunchShortcutE":KEY_LAUNCHE,
|
||||
"LaunchShortcutF":KEY_LAUNCHF,
|
||||
"Unknown":KEY_UNKNOWN,
|
||||
"Space":KEY_SPACE,
|
||||
"!":KEY_EXCLAM,
|
||||
"\"":KEY_QUOTEDBL,
|
||||
"#":KEY_NUMBERSIGN,
|
||||
"$":KEY_DOLLAR,
|
||||
"%":KEY_PERCENT,
|
||||
"&":KEY_AMPERSAND,
|
||||
"'":KEY_APOSTROPHE,
|
||||
"(":KEY_PARENLEFT,
|
||||
")":KEY_PARENRIGHT,
|
||||
"*":KEY_ASTERISK,
|
||||
"+":KEY_PLUS,
|
||||
",":KEY_COMMA,
|
||||
"-":KEY_MINUS,
|
||||
".":KEY_PERIOD,
|
||||
"/":KEY_SLASH,
|
||||
"0":KEY_0,
|
||||
"1":KEY_1,
|
||||
"2":KEY_2,
|
||||
"3":KEY_3,
|
||||
"4":KEY_4,
|
||||
"5":KEY_5,
|
||||
"6":KEY_6,
|
||||
"7":KEY_7,
|
||||
"8":KEY_8,
|
||||
"9":KEY_9,
|
||||
":":KEY_COLON,
|
||||
";":KEY_SEMICOLON,
|
||||
"<":KEY_LESS,
|
||||
"=":KEY_EQUAL,
|
||||
">":KEY_GREATER,
|
||||
"?":KEY_QUESTION,
|
||||
"@":KEY_AT,
|
||||
"A":KEY_A,
|
||||
"B":KEY_B,
|
||||
"C":KEY_C,
|
||||
"D":KEY_D,
|
||||
"E":KEY_E,
|
||||
"F":KEY_F,
|
||||
"G":KEY_G,
|
||||
"H":KEY_H,
|
||||
"I":KEY_I,
|
||||
"J":KEY_J,
|
||||
"K":KEY_K,
|
||||
"L":KEY_L,
|
||||
"M":KEY_M,
|
||||
"N":KEY_N,
|
||||
"O":KEY_O,
|
||||
"P":KEY_P,
|
||||
"Q":KEY_Q,
|
||||
"R":KEY_R,
|
||||
"S":KEY_S,
|
||||
"T":KEY_T,
|
||||
"U":KEY_U,
|
||||
"V":KEY_V,
|
||||
"W":KEY_W,
|
||||
"X":KEY_X,
|
||||
"Y":KEY_Y,
|
||||
"Z":KEY_Z,
|
||||
"[":KEY_BRACKETLEFT,
|
||||
"\\":KEY_BACKSLASH,
|
||||
"]":KEY_BRACKETRIGHT,
|
||||
"^":KEY_ASCIICIRCUM,
|
||||
"_":KEY_UNDERSCORE,
|
||||
"LeftQuote":KEY_QUOTELEFT,
|
||||
"{":KEY_BRACELEFT,
|
||||
"|":KEY_BAR,
|
||||
"}":KEY_BRACERIGHT,
|
||||
"~":KEY_ASCIITILDE,
|
||||
#"NoBreakSpace":160,
|
||||
#"ExcalmDown":161,
|
||||
#"¢":162,
|
||||
#"Sterling":163,
|
||||
#"Currency":164,
|
||||
"Yen":KEY_YEN,
|
||||
#"¦":166,
|
||||
"§":KEY_SECTION,
|
||||
"¨":168,
|
||||
"©":169,
|
||||
"Feminine":170,
|
||||
"«":171,
|
||||
"»":172,
|
||||
"‐":173,
|
||||
"®":174,
|
||||
"Macron":175,
|
||||
"°":176,
|
||||
"±":177,
|
||||
"²":178,
|
||||
"³":179,
|
||||
"´":180,
|
||||
"µ":181,
|
||||
"Paragraph":182,
|
||||
"·":183,
|
||||
"¬":184,
|
||||
"¹":185,
|
||||
"♂":186,
|
||||
"GuillemotRight":187,
|
||||
"¼":188,
|
||||
"½":189,
|
||||
"¾":190,
|
||||
"¿":191,
|
||||
"à":192,
|
||||
"á":193,
|
||||
"â":194,
|
||||
"ã":195,
|
||||
"ä":196,
|
||||
"å":197,
|
||||
"æ":198,
|
||||
"ç":199,
|
||||
"è":200,
|
||||
"é":201,
|
||||
"ê":202,
|
||||
"ë":203,
|
||||
"ì":204,
|
||||
"í":205,
|
||||
"î":206,
|
||||
"Idiaeresis":207,
|
||||
"ð":208,
|
||||
"ñ":209,
|
||||
"ò":210,
|
||||
"ó":211,
|
||||
"ô":212,
|
||||
"õ":213,
|
||||
"ö":214,
|
||||
"×":215,
|
||||
"ø":216,
|
||||
"ù":217,
|
||||
"ú":218,
|
||||
"û":219,
|
||||
"ü":220,
|
||||
"ý":221,
|
||||
"þ":222,
|
||||
"ß":223,
|
||||
"÷":247,
|
||||
"ÿ":255,
|
||||
}
|
||||
|
||||
# ##########
|
||||
# lowercase characters are represented by an offset of +=32 from the original "uppercase" code
|
||||
# this list defines all lowercase-valid characters
|
||||
# ##########
|
||||
|
||||
var key_array_lowercase = [
|
||||
"A",
|
||||
"B",
|
||||
"C",
|
||||
"D",
|
||||
"E",
|
||||
"F",
|
||||
"G",
|
||||
"H",
|
||||
"I",
|
||||
"J",
|
||||
"K",
|
||||
"L",
|
||||
"M",
|
||||
"N",
|
||||
"O",
|
||||
"P",
|
||||
"Q",
|
||||
"R",
|
||||
"S",
|
||||
"T",
|
||||
"U",
|
||||
"V",
|
||||
"W",
|
||||
"X",
|
||||
"Y",
|
||||
"Z",
|
||||
"à",
|
||||
"á",
|
||||
"â",
|
||||
"ã",
|
||||
"ä",
|
||||
"å",
|
||||
"æ",
|
||||
"ç",
|
||||
"è",
|
||||
"é",
|
||||
"ê",
|
||||
"ë",
|
||||
"ì",
|
||||
"í",
|
||||
"î",
|
||||
"ð",
|
||||
"ñ",
|
||||
"ò",
|
||||
"ó",
|
||||
"ô",
|
||||
"õ",
|
||||
"ö",
|
||||
"ø",
|
||||
"ù",
|
||||
"ú",
|
||||
"û",
|
||||
"ü",
|
||||
"ý",
|
||||
"ÿ"
|
||||
]
|
||||
|
||||
|
||||
func has_lowercase(name):
|
||||
for key in key_array_lowercase:
|
||||
if key == name:
|
||||
return true
|
||||
return false
|
||||
|
||||
|
||||
func get_key_from_string(name, debug=false):
|
||||
if key_list.has(str(name)):
|
||||
if debug:
|
||||
print("Scancode OK:"+name)
|
||||
return key_list.get(str(name))
|
||||
else:
|
||||
if debug:
|
||||
print("Scancode Key not found:"+ name)
|
||||
return 0
|
||||
Reference in New Issue
Block a user