packages feed

hscharm-0.0.1: charm/lib/charm.h

#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);