diff options
Diffstat (limited to 'modules/TUI/module.jai')
| -rw-r--r-- | modules/TUI/module.jai | 388 |
1 files changed, 5 insertions, 383 deletions
diff --git a/modules/TUI/module.jai b/modules/TUI/module.jai index 11b5247..d93e4ff 100644 --- a/modules/TUI/module.jai +++ b/modules/TUI/module.jai @@ -1,4 +1,3 @@ -// TODO Move TUI into ./modules/TUI so we can stop calling --import_dir on compile. #if OS == { case .LINUX; #load "unix.jai"; @@ -13,7 +12,7 @@ #import "Basic"; #import "String"; #import "Thread"; -#import "Hash_Table"; +#load "key_map.jai"; // Special Graphics Characters Drawings :: struct { @@ -238,387 +237,6 @@ Keys :: struct #type_info_none { F12 : Key : #run to_key("#f12"); } -key_map: Table(string, Key); - -setup_key_map :: () { - /* - This table was created/tested using the following terminals: - - konsole - - kitty - - xterm - - linux console - - To signal modifier keys, a letter is appended after a + (plus sign): - "#f1" -> F1 - "#f1+$" -> F1+Shift - "#f1+a" -> F1+Alt - "#f1+A" -> F1+Shift+Alt - "#f1+c" -> F1+Ctrl - "#f1+C" -> F1+Shift+Ctrl - "#f1+w" -> F1+Alt+Ctrl - "#f1+W" -> F1+Shift+Alt+Ctrl - "#f1+s" -> F1+Super - "#f1+S" -> F1+Shift+Super - "#f1+x" -> F1+Alt+Super - "#f1+X" -> F1+Shift+Alt+Super - "#f1+y" -> F1+Ctrl+Super - "#f1+Y" -> F1+Shift+Ctrl+Super - "#f1+z" -> F1+Alt+Ctrl+Super - "#f1+Z" -> F1+Shift+Alt+Ctrl+Super - */ - - // Up - table_set(*key_map, "\e[A", to_key("#up")); - table_set(*key_map, "\e[1;1A", to_key("#up+m")); - table_set(*key_map, "\e[1;2A", to_key("#up+s")); - table_set(*key_map, "\e[1;3A", to_key("#up+a")); - table_set(*key_map, "\e[1;4A", to_key("#up+A")); - table_set(*key_map, "\e[1;5A", to_key("#up+c")); - table_set(*key_map, "\e[1;6A", to_key("#up+C")); - table_set(*key_map, "\e[1;7A", to_key("#up+x")); - table_set(*key_map, "\e[1;8A", to_key("#up+X")); - // Up - kitty - table_set(*key_map, "\e[1;9A", to_key("#up+m")); - - // Down - table_set(*key_map, "\e[B", to_key("#down")); - table_set(*key_map, "\e[1;1B", to_key("#down+m")); - table_set(*key_map, "\e[1;2B", to_key("#down+s")); - table_set(*key_map, "\e[1;3B", to_key("#down+a")); - table_set(*key_map, "\e[1;4B", to_key("#down+A")); - table_set(*key_map, "\e[1;5B", to_key("#down+c")); - table_set(*key_map, "\e[1;6B", to_key("#down+C")); - table_set(*key_map, "\e[1;7B", to_key("#down+x")); - table_set(*key_map, "\e[1;8B", to_key("#down+X")); - // Down - kitty - table_set(*key_map, "\e[1;9B", to_key("#down+m")); - - // Right - table_set(*key_map, "\e[C", to_key("#right")); - table_set(*key_map, "\e[1;1C", to_key("#right+m")); - table_set(*key_map, "\e[1;2C", to_key("#right+s")); - table_set(*key_map, "\e[1;3C", to_key("#right+a")); - table_set(*key_map, "\e[1;4C", to_key("#right+A")); - table_set(*key_map, "\e[1;5C", to_key("#right+c")); - table_set(*key_map, "\e[1;6C", to_key("#right+C")); - table_set(*key_map, "\e[1;7C", to_key("#right+x")); - table_set(*key_map, "\e[1;8C", to_key("#right+X")); - // Right - kitty - table_set(*key_map, "\e[1;9C", to_key("#right+m")); - - // Left - table_set(*key_map, "\e[D", to_key("#left")); - table_set(*key_map, "\e[1;1D", to_key("#left+m")); - table_set(*key_map, "\e[1;2D", to_key("#left+s")); - table_set(*key_map, "\e[1;3D", to_key("#left+a")); - table_set(*key_map, "\e[1;4D", to_key("#left+A")); - table_set(*key_map, "\e[1;5D", to_key("#left+c")); - table_set(*key_map, "\e[1;6D", to_key("#left+C")); - table_set(*key_map, "\e[1;7D", to_key("#left+x")); - table_set(*key_map, "\e[1;8D", to_key("#left+X")); - // Left - kitty - table_set(*key_map, "\e[1;9D", to_key("#left+m")); - - // Home - table_set(*key_map, "\e[H", to_key("#home")); - table_set(*key_map, "\e[1~", to_key("#home")); - table_set(*key_map, "\e[1;1H", to_key("#home+m")); - table_set(*key_map, "\e[1;2H", to_key("#home+s")); - table_set(*key_map, "\e[1;3H", to_key("#home+a")); - table_set(*key_map, "\e[1;4H", to_key("#home+A")); - table_set(*key_map, "\e[1;5H", to_key("#home+c")); - table_set(*key_map, "\e[1;6H", to_key("#home+C")); - table_set(*key_map, "\e[1;7H", to_key("#home+x")); - table_set(*key_map, "\e[1;8H", to_key("#home+X")); - // Home - kitty - table_set(*key_map, "\e[1;9H", to_key("#home+m")); - - // End - table_set(*key_map, "\e[F", to_key("#end")); - table_set(*key_map, "\e[4~", to_key("#end")); - table_set(*key_map, "\e[1;1F", to_key("#end+m")); - table_set(*key_map, "\e[1;2F", to_key("#end+s")); - table_set(*key_map, "\e[1;3F", to_key("#end+a")); - table_set(*key_map, "\e[1;4F", to_key("#end+A")); - table_set(*key_map, "\e[1;5F", to_key("#end+c")); - table_set(*key_map, "\e[1;6F", to_key("#end+C")); - table_set(*key_map, "\e[1;7F", to_key("#end+x")); - table_set(*key_map, "\e[1;8F", to_key("#end+X")); - // End - kitty - table_set(*key_map, "\e[1;9F", to_key("#end+m")); - - // Insert - table_set(*key_map, "\e[2~", to_key("#ins")); - table_set(*key_map, "\e[2;1~", to_key("#ins+m")); - table_set(*key_map, "\e[2;2~", to_key("#ins+s")); - table_set(*key_map, "\e[2;3~", to_key("#ins+a")); - table_set(*key_map, "\e[2;4~", to_key("#ins+A")); - table_set(*key_map, "\e[2;5~", to_key("#ins+c")); - table_set(*key_map, "\e[2;6~", to_key("#ins+C")); - table_set(*key_map, "\e[2;7~", to_key("#ins+x")); - table_set(*key_map, "\e[2;8~", to_key("#ins+X")); - // Insert - kitty - table_set(*key_map, "\e[2;9~", to_key("#ins+m")); - - // Delete - table_set(*key_map, "\e[3~", to_key("#del")); - table_set(*key_map, "\e[3;1~", to_key("#del+m")); - table_set(*key_map, "\e[3;2~", to_key("#del+s")); - table_set(*key_map, "\e[3;3~", to_key("#del+a")); - table_set(*key_map, "\e[3;4~", to_key("#del+A")); - table_set(*key_map, "\e[3;5~", to_key("#del+c")); - table_set(*key_map, "\e[3;6~", to_key("#del+C")); - table_set(*key_map, "\e[3;7~", to_key("#del+x")); - table_set(*key_map, "\e[3;8~", to_key("#del+X")); - // Delete - kitty - table_set(*key_map, "\e[3;9~", to_key("#del+m")); - - // Page Up - table_set(*key_map, "\e[5~", to_key("#pup")); - table_set(*key_map, "\e[5;1~", to_key("#pup+m")); - table_set(*key_map, "\e[5;2~", to_key("#pup+s")); - table_set(*key_map, "\e[5;3~", to_key("#pup+a")); - table_set(*key_map, "\e[5;4~", to_key("#pup+A")); - table_set(*key_map, "\e[5;5~", to_key("#pup+c")); - table_set(*key_map, "\e[5;6~", to_key("#pup+C")); - table_set(*key_map, "\e[5;7~", to_key("#pup+x")); - table_set(*key_map, "\e[5;8~", to_key("#pup+X")); - // Page Up - kitty - table_set(*key_map, "\e[5;9~", to_key("#pup+m")); - - // Page Down - table_set(*key_map, "\e[6~", to_key("#pdown")); - table_set(*key_map, "\e[6;1~", to_key("#pdown+m")); - table_set(*key_map, "\e[6;2~", to_key("#pdown+s")); - table_set(*key_map, "\e[6;3~", to_key("#pdown+a")); - table_set(*key_map, "\e[6;4~", to_key("#pdown+A")); - table_set(*key_map, "\e[6;5~", to_key("#pdown+c")); - table_set(*key_map, "\e[6;6~", to_key("#pdown+C")); - table_set(*key_map, "\e[6;7~", to_key("#pdown+x")); - table_set(*key_map, "\e[6;8~", to_key("#pdown+X")); - // Page Down - kitty - table_set(*key_map, "\e[6;9~", to_key("#pdown+m")); - - // F1 - table_set(*key_map, "\eOP", to_key("#f1")); - table_set(*key_map, "\eO1P", to_key("#f1+m")); - table_set(*key_map, "\eO2P", to_key("#f1+s")); - table_set(*key_map, "\eO3P", to_key("#f1+a")); - table_set(*key_map, "\eO4P", to_key("#f1+A")); - table_set(*key_map, "\eO5P", to_key("#f1+c")); - table_set(*key_map, "\eO6P", to_key("#f1+C")); - table_set(*key_map, "\eO7P", to_key("#f1+x")); - table_set(*key_map, "\eO8P", to_key("#f1+X")); - // F1 - xterm - table_set(*key_map, "\e[1;2P", to_key("#f1+s")); - table_set(*key_map, "\e[1;3P", to_key("#f1+a")); - table_set(*key_map, "\e[1;4P", to_key("#f1+A")); - table_set(*key_map, "\e[1;5P", to_key("#f1+c")); - table_set(*key_map, "\e[1;6P", to_key("#f1+C")); - table_set(*key_map, "\e[1;7P", to_key("#f1+x")); - table_set(*key_map, "\e[1;8P", to_key("#f1+X")); - // F1 - kitty - table_set(*key_map, "\e[1;9P", to_key("#f1+m")); - // F1 - linux console - table_set(*key_map, "\e[[A", to_key("#f1")); - table_set(*key_map, "\e[25~", to_key("#f1+s")); - - // F2 - table_set(*key_map, "\eOQ", to_key("#f2")); - table_set(*key_map, "\eO1Q", to_key("#f2+m")); - table_set(*key_map, "\eO2Q", to_key("#f2+s")); - table_set(*key_map, "\eO3Q", to_key("#f2+a")); - table_set(*key_map, "\eO4Q", to_key("#f2+A")); - table_set(*key_map, "\eO5Q", to_key("#f2+c")); - table_set(*key_map, "\eO6Q", to_key("#f2+C")); - table_set(*key_map, "\eO7Q", to_key("#f2+x")); - table_set(*key_map, "\eO8Q", to_key("#f2+X")); - // F2 - xterm - table_set(*key_map, "\e[1;2Q", to_key("#f2+s")); - table_set(*key_map, "\e[1;3Q", to_key("#f2+a")); - table_set(*key_map, "\e[1;4Q", to_key("#f2+A")); - table_set(*key_map, "\e[1;5Q", to_key("#f2+c")); - table_set(*key_map, "\e[1;6Q", to_key("#f2+C")); - table_set(*key_map, "\e[1;7Q", to_key("#f2+x")); - table_set(*key_map, "\e[1;8Q", to_key("#f2+X")); - // F2 - kitty - table_set(*key_map, "\e[1;9Q", to_key("#f2+m")); - // F2 - linux console - table_set(*key_map, "\e[[B", to_key("#f2")); - table_set(*key_map, "\e[26~", to_key("#f2+s")); - - // F3 - table_set(*key_map, "\eOR", to_key("#f3")); - table_set(*key_map, "\eO1R", to_key("#f3+m")); - table_set(*key_map, "\eO2R", to_key("#f3+s")); - table_set(*key_map, "\eO3R", to_key("#f3+a")); - table_set(*key_map, "\eO4R", to_key("#f3+A")); - table_set(*key_map, "\eO5R", to_key("#f3+c")); - table_set(*key_map, "\eO6R", to_key("#f3+C")); - table_set(*key_map, "\eO7R", to_key("#f3+x")); - table_set(*key_map, "\eO8R", to_key("#f3+X")); - // F3 - xterm - table_set(*key_map, "\e[1;2R", to_key("#f3+s")); - table_set(*key_map, "\e[1;3R", to_key("#f3+a")); - table_set(*key_map, "\e[1;4R", to_key("#f3+A")); - table_set(*key_map, "\e[1;5R", to_key("#f3+c")); - table_set(*key_map, "\e[1;6R", to_key("#f3+C")); - table_set(*key_map, "\e[1;7R", to_key("#f3+x")); - table_set(*key_map, "\e[1;8R", to_key("#f3+X")); - // F3 - kitty - table_set(*key_map, "\e[1;9R", to_key("#f3+m")); - // F3 - linux console - table_set(*key_map, "\e[[C", to_key("#f3")); - table_set(*key_map, "\e[28~", to_key("#f3+s")); - - // F4 - table_set(*key_map, "\eOS", to_key("#f4")); - table_set(*key_map, "\eO1S", to_key("#f4+m")); - table_set(*key_map, "\eO2S", to_key("#f4+s")); - table_set(*key_map, "\eO3S", to_key("#f4+a")); - table_set(*key_map, "\eO4S", to_key("#f4+A")); - table_set(*key_map, "\eO5S", to_key("#f4+c")); - table_set(*key_map, "\eO6S", to_key("#f4+C")); - table_set(*key_map, "\eO7S", to_key("#f4+x")); - table_set(*key_map, "\eO8S", to_key("#f4+X")); - // F4 - xterm - table_set(*key_map, "\e[1;2S", to_key("#f4+s")); - table_set(*key_map, "\e[1;3S", to_key("#f4+a")); - table_set(*key_map, "\e[1;4S", to_key("#f4+A")); - table_set(*key_map, "\e[1;5S", to_key("#f4+c")); - table_set(*key_map, "\e[1;6S", to_key("#f4+C")); - table_set(*key_map, "\e[1;7S", to_key("#f4+x")); - table_set(*key_map, "\e[1;8S", to_key("#f4+X")); - // F4 - kitty - table_set(*key_map, "\e[1;9S", to_key("#f4+m")); - // F4 - linux console - table_set(*key_map, "\e[[D", to_key("#f4")); - table_set(*key_map, "\e[29~", to_key("#f4+s")); - - // F5 - table_set(*key_map, "\e[15~", to_key("#f5")); - table_set(*key_map, "\e[15;1~", to_key("#f5+m")); - table_set(*key_map, "\e[15;2~", to_key("#f5+s")); - table_set(*key_map, "\e[15;3~", to_key("#f5+a")); - table_set(*key_map, "\e[15;4~", to_key("#f5+A")); - table_set(*key_map, "\e[15;5~", to_key("#f5+c")); - table_set(*key_map, "\e[15;6~", to_key("#f5+C")); - table_set(*key_map, "\e[15;7~", to_key("#f5+x")); - table_set(*key_map, "\e[15;8~", to_key("#f5+X")); - // F5 - kitty - table_set(*key_map, "\e[15;9~", to_key("#f5+m")); - // F5 - linux console - table_set(*key_map, "\e[[E", to_key("#f5")); - table_set(*key_map, "\e[31~", to_key("#f5+s")); - - // F6 - table_set(*key_map, "\e[17~", to_key("#f6")); - table_set(*key_map, "\e[17;1~", to_key("#f6+m")); - table_set(*key_map, "\e[17;2~", to_key("#f6+s")); - table_set(*key_map, "\e[17;3~", to_key("#f6+a")); - table_set(*key_map, "\e[17;4~", to_key("#f6+A")); - table_set(*key_map, "\e[17;5~", to_key("#f6+c")); - table_set(*key_map, "\e[17;6~", to_key("#f6+C")); - table_set(*key_map, "\e[17;7~", to_key("#f6+x")); - table_set(*key_map, "\e[17;8~", to_key("#f6+X")); - // F6 - kitty - table_set(*key_map, "\e[17;9~", to_key("#f6+m")); - // F6 - linux console - table_set(*key_map, "\e[32~", to_key("#f6+s")); - - // F7 - table_set(*key_map, "\e[18~", to_key("#f7")); - -TODO FINISH THIS... WIP - - // table_set(*key_map, "\e[18;1~", to_key("#f7+m")); - table_set(*key_map, "\e[18;2~", to_key("#f7+s")); // #f7+^ - table_set(*key_map, "\e[18;3~", to_key("#f7+a")); // #f7+a - table_set(*key_map, "\e[18;4~", to_key("#f7+A")); // #f7+A - table_set(*key_map, "\e[18;5~", to_key("#f7+c")); // #f7+s - table_set(*key_map, "\e[18;6~", to_key("#f7+C")); - table_set(*key_map, "\e[18;7~", to_key("#f7+x")); // x - table_set(*key_map, "\e[18;8~", to_key("#f7+X")); // X - // F7 - kitty - // table_set(*key_map, "\e[18;9~", to_key("#f7+m")); // m - // table_set(*key_map, "\e[18;10~",to_key("#f7+M")); // M - // table_set(*key_map, "\e[18;11~",to_key("#f7+ma")); // ma -> y - // table_set(*key_map, "\e[18;12~",to_key("#f7+mA")); // MA -> Y - // table_set(*key_map, "\e[18;13~",to_key("#f7+mc")); // mc -> z - // table_set(*key_map, "\e[18;14~",to_key("#f7+mC")); // MC -> Z - // table_set(*key_map, "\e[18;15~",to_key("#f7+mx")); // mac-> w - // table_set(*key_map, "\e[18;16~",to_key("#f7+mX")); // MAC-> W - // F7 - linux console - table_set(*key_map, "\e[33~", to_key("#f7+s")); - - // F8 - table_set(*key_map, "\e[19~", to_key("#f8")); - table_set(*key_map, "\e[19;1~", to_key("#f8+m")); - table_set(*key_map, "\e[19;2~", to_key("#f8+s")); - table_set(*key_map, "\e[19;3~", to_key("#f8+a")); - table_set(*key_map, "\e[19;4~", to_key("#f8+A")); - table_set(*key_map, "\e[19;5~", to_key("#f8+c")); - table_set(*key_map, "\e[19;6~", to_key("#f8+C")); - table_set(*key_map, "\e[19;7~", to_key("#f8+x")); - table_set(*key_map, "\e[19;8~", to_key("#f8+X")); - // F8 - kitty - table_set(*key_map, "\e[19;9~", to_key("#f8+m")); - // F8 - linux console - table_set(*key_map, "\e[34~", to_key("#f8+s")); - - // F9 - table_set(*key_map, "\e[20~", to_key("#f9")); - table_set(*key_map, "\e[20;1~", to_key("#f9+m")); - table_set(*key_map, "\e[20;2~", to_key("#f9+s")); - table_set(*key_map, "\e[20;3~", to_key("#f9+a")); - table_set(*key_map, "\e[20;4~", to_key("#f9+A")); - table_set(*key_map, "\e[20;5~", to_key("#f9+c")); - table_set(*key_map, "\e[20;6~", to_key("#f9+C")); - table_set(*key_map, "\e[20;7~", to_key("#f9+x")); - table_set(*key_map, "\e[20;8~", to_key("#f9+X")); - // F9 - kitty - table_set(*key_map, "\e[20;9~", to_key("#f9+m")); - - // F10 - table_set(*key_map, "\e[21~", to_key("#f10")); - table_set(*key_map, "\e[21;1~", to_key("#f10+m")); - table_set(*key_map, "\e[21;2~", to_key("#f10+s")); - table_set(*key_map, "\e[21;3~", to_key("#f10+a")); - table_set(*key_map, "\e[21;4~", to_key("#f10+A")); - table_set(*key_map, "\e[21;5~", to_key("#f10+c")); - table_set(*key_map, "\e[21;6~", to_key("#f10+C")); - table_set(*key_map, "\e[21;7~", to_key("#f10+x")); - table_set(*key_map, "\e[21;8~", to_key("#f10+X")); - // F10 - kitty - table_set(*key_map, "\e[21;9~", to_key("#f10+m")); - - // F11 - table_set(*key_map, "\e[23~", to_key("#f11")); - table_set(*key_map, "\e[23;1~", to_key("#f11+m")); - table_set(*key_map, "\e[23;2~", to_key("#f11+s")); - table_set(*key_map, "\e[23;3~", to_key("#f11+a")); - table_set(*key_map, "\e[23;4~", to_key("#f11+A")); - table_set(*key_map, "\e[23;5~", to_key("#f11+c")); - table_set(*key_map, "\e[23;6~", to_key("#f11+C")); - table_set(*key_map, "\e[23;7~", to_key("#f11+x")); - table_set(*key_map, "\e[23;8~", to_key("#f11+X")); - // F11 - kitty - table_set(*key_map, "\e[23;9~", to_key("#f11+m")); - - // F12 - table_set(*key_map, "\e[24~", to_key("#f12")); - table_set(*key_map, "\e[24;1~", to_key("#f12+m")); - table_set(*key_map, "\e[24;2~", to_key("#f12+s")); - table_set(*key_map, "\e[24;3~", to_key("#f12+a")); - table_set(*key_map, "\e[24;4~", to_key("#f12+A")); - table_set(*key_map, "\e[24;5~", to_key("#f12+c")); - table_set(*key_map, "\e[24;6~", to_key("#f12+C")); - table_set(*key_map, "\e[24;7~", to_key("#f12+x")); - table_set(*key_map, "\e[24;8~", to_key("#f12+X")); - // F12 - kitty - table_set(*key_map, "\e[24;9~", to_key("#f12+m")); -} - initialized := false; //input_buffer : [64] u8; // TODO FIXME Input buffer is too small!!! @@ -728,6 +346,10 @@ get_key :: (timeout_milliseconds: s32 = -1) -> Key { advance(*input_string, to_parse.count); return key; } + TODO If failed to parse... lets return a single char... but it's not working! + else { + to_parse.count = 1; + } } advance(*input_string, to_parse.count); |
