|
@@ -0,0 +1,85 @@
|
|
|
+#ifndef CORE_TERMINAL_H
|
|
|
+#define CORE_TERMINAL_H
|
|
|
+
|
|
|
+#include "core/Vector.h"
|
|
|
+
|
|
|
+#define ESC "\33["
|
|
|
+#define TERMINAL_RESET ESC "0m"
|
|
|
+#define TERMINAL_BOLD ESC "1m"
|
|
|
+
|
|
|
+#define TERMINAL_BLACK ESC "30m"
|
|
|
+#define TERMINAL_RED ESC "31m"
|
|
|
+#define TERMINAL_GREEN ESC "32m"
|
|
|
+#define TERMINAL_YELLOW ESC "33m"
|
|
|
+#define TERMINAL_BLUE ESC "34m"
|
|
|
+#define TERMINAL_MAGENTA ESC "35m"
|
|
|
+#define TERMINAL_CYAN ESC "36m"
|
|
|
+#define TERMINAL_WHITE ESC "37m"
|
|
|
+#define TERMINAL_BRIGHT_BLACK ESC "90m"
|
|
|
+#define TERMINAL_BRIGHT_RED ESC "91m"
|
|
|
+#define TERMINAL_BRIGHT_GREEN ESC "92m"
|
|
|
+#define TERMINAL_BRIGHT_YELLOW ESC "93m"
|
|
|
+#define TERMINAL_BRIGHT_BLUE ESC "94m"
|
|
|
+#define TERMINAL_BRIGHT_MAGENTA ESC "95m"
|
|
|
+#define TERMINAL_BRIGHT_CYAN ESC "96m"
|
|
|
+#define TERMINAL_BRIGHT_WHITE ESC "97m"
|
|
|
+
|
|
|
+#define TERMINAL_FG_BLACK TERMINAL_BLACK
|
|
|
+#define TERMINAL_FG_RED TERMINAL_RED
|
|
|
+#define TERMINAL_FG_GREEN TERMINAL_GREEN
|
|
|
+#define TERMINAL_FG_YELLOW TERMINAL_YELLOW
|
|
|
+#define TERMINAL_FG_BLUE TERMINAL_BLUE
|
|
|
+#define TERMINAL_FG_MAGENTA TERMINAL_MAGENTA
|
|
|
+#define TERMINAL_FG_CYAN TERMINAL_CYAN
|
|
|
+#define TERMINAL_FG_WHITE TERMINAL_WHITE
|
|
|
+#define TERMINAL_FG_BRIGHT_BLACK TERMINAL_BRIGHT_BLACK
|
|
|
+#define TERMINAL_FG_BRIGHT_RED TERMINAL_BRIGHT_RED
|
|
|
+#define TERMINAL_FG_BRIGHT_GREEN TERMINAL_BRIGHT_GREEN
|
|
|
+#define TERMINAL_FG_BRIGHT_YELLOW TERMINAL_BRIGHT_YELLOW
|
|
|
+#define TERMINAL_FG_BRIGHT_BLUE TERMINAL_BRIGHT_BLUE
|
|
|
+#define TERMINAL_FG_BRIGHT_MAGENTA TERMINAL_BRIGHT_MAGENTA
|
|
|
+#define TERMINAL_FG_BRIGHT_CYAN TERMINAL_BRIGHT_CYAN
|
|
|
+#define TERMINAL_FG_BRIGHT_WHITE TERMINAL_BRIGHT_WHITE
|
|
|
+
|
|
|
+#define TERMINAL_BG_BLACK ESC "40m"
|
|
|
+#define TERMINAL_BG_RED ESC "41m"
|
|
|
+#define TERMINAL_BG_GREEN ESC "42m"
|
|
|
+#define TERMINAL_BG_YELLOW ESC "43m"
|
|
|
+#define TERMINAL_BG_BLUE ESC "44m"
|
|
|
+#define TERMINAL_BG_MAGENTA ESC "45m"
|
|
|
+#define TERMINAL_BG_CYAN ESC "46m"
|
|
|
+#define TERMINAL_BG_WHITE ESC "47m"
|
|
|
+#define TERMINAL_BG_BRIGHT_BLACK ESC "100m"
|
|
|
+#define TERMINAL_BG_BRIGHT_RED ESC "101m"
|
|
|
+#define TERMINAL_BG_BRIGHT_GREEN ESC "102m"
|
|
|
+#define TERMINAL_BG_BRIGHT_YELLOW ESC "103m"
|
|
|
+#define TERMINAL_BG_BRIGHT_BLUE ESC "104m"
|
|
|
+#define TERMINAL_BG_BRIGHT_MAGENTA ESC "105m"
|
|
|
+#define TERMINAL_BG_BRIGHT_CYAN ESC "106m"
|
|
|
+#define TERMINAL_BG_BRIGHT_WHITE ESC "107m"
|
|
|
+
|
|
|
+#define TERMINAL_KEY_UNKNOWN 0x1'0000'0000lu
|
|
|
+#define TERMINAL_KEY_ARROW_LEFT 0x2'0000'0000lu
|
|
|
+#define TERMINAL_KEY_ARROW_RIGHT 0x3'0000'0000lu
|
|
|
+#define TERMINAL_KEY_ARROW_UP 0x4'0000'0000lu
|
|
|
+#define TERMINAL_KEY_ARROW_DOWN 0x5'0000'0000lu
|
|
|
+#define TERMINAL_KEY_ARROW_DELETE 0x6'0000'0000lu
|
|
|
+
|
|
|
+void enterAlternativeTerminal();
|
|
|
+void leaveAlternativeTerminal();
|
|
|
+IntVector2 getTerminalSize();
|
|
|
+void clearTerminal();
|
|
|
+
|
|
|
+void hideCursor();
|
|
|
+void showCursor();
|
|
|
+void resetCursor();
|
|
|
+void moveCursorLeft(int i);
|
|
|
+void moveCursorRight(int i);
|
|
|
+void moveCursorUp(int i);
|
|
|
+void moveCursorDown(int i);
|
|
|
+
|
|
|
+bool enterRawTerminal();
|
|
|
+bool leaveRawTerminal();
|
|
|
+u64 getRawChar();
|
|
|
+
|
|
|
+#endif
|