#pragma once // Copyright (C) YelloSoft #define CHARM_VERSION "0.0.1" extern int pos_x; extern int pos_y; int get_width(void); int get_height(void); void cursor_off(void); void cursor_on(void); void echo_off(void); void echo_on(void); void raw_on(void); void raw_off(void); void blocking_off(void); void blocking_on(void); int get_x(void); int get_y(void); void move_cursor(int x, int y); void blot_char(char c); void blot_string(const char *s); void hcenter_string(const char *s); void vcenter_string(const char *s); void clear_screen(void); void handle_signal(int signal); void start_charm(void); void end_charm(void); typedef enum { KEY_BACKSPACE, KEY_TAB, KEY_NEWLINE, KEY_SPACE, KEY_EXCLAMATION, KEY_DOUBLE_QUOTE, KEY_HASH, KEY_DOLLAR, KEY_PERCENT, KEY_AMPERSAND, KEY_SINGLE_QUOTE, KEY_LEFT_PAREN, KEY_RIGHT_PAREN, KEY_ASTERISK, KEY_PLUS, KEY_COMMA, KEY_MINUS, KEY_PERIOD, KEY_SLASH, KEY_0, KEY_1, KEY_2, KEY_3, KEY_4, KEY_5, KEY_6, KEY_7, KEY_8, KEY_9, KEY_COLON, KEY_SEMICOLON, KEY_LESS_THAN, KEY_EQUALS, KEY_GREATER_THAN, KEY_QUESTION, KEY_AT, KEY_CAPITAL_A, KEY_CAPITAL_B, KEY_CAPITAL_C, KEY_CAPITAL_D, KEY_CAPITAL_E, KEY_CAPITAL_F, KEY_CAPITAL_G, KEY_CAPITAL_H, KEY_CAPITAL_I, KEY_CAPITAL_J, KEY_CAPITAL_K, KEY_CAPITAL_L, KEY_CAPITAL_M, KEY_CAPITAL_N, KEY_CAPITAL_O, KEY_CAPITAL_P, KEY_CAPITAL_Q, KEY_CAPITAL_R, KEY_CAPITAL_S, KEY_CAPITAL_T, KEY_CAPITAL_U, KEY_CAPITAL_V, KEY_CAPITAL_W, KEY_CAPITAL_X, KEY_CAPITAL_Y, KEY_CAPITAL_Z, KEY_LEFT_BRACKET, KEY_BACKSLASH, KEY_RIGHT_BRACKET, KEY_CARET, KEY_UNDERSCORE, KEY_BACKTICK, KEY_A, KEY_B, KEY_C, KEY_D, KEY_E, KEY_F, KEY_G, KEY_H, KEY_I, KEY_J, KEY_K, KEY_L, KEY_M, KEY_N, KEY_O, KEY_P, KEY_Q, KEY_R, KEY_S, KEY_T, KEY_U, KEY_V, KEY_W, KEY_X, KEY_Y, KEY_Z, KEY_LEFT_BRACE, KEY_PIPE, KEY_RIGHT_BRACE, KEY_TILDE, KEY_UP, KEY_DOWN, KEY_RIGHT, KEY_LEFT, KEY_ESCAPE, KEY_UNKNOWN } key; key parse_key(char *buf); key get_key(void);