Skip to content
screen.hh 710 B
Newer Older
Seblu's avatar
Seblu committed
#ifndef SCREEN_HH
# define SCREEN_HH_

# include <ncurses.h>

Seblu's avatar
Seblu committed
#define CMD_BUFFER_SIZE 512

Seblu's avatar
Seblu committed
class Screen {
public:
  Screen();
  void init();
  void run();

Seblu's avatar
Seblu committed
friend Screen &operator<< (Screen &, const string &s);
friend Screen &operator<< (Screen &, int i);

private:
  void draw_cmd();
  void add_char(char c, char *string, ssize_t offset, size_t len);
  void del_char(char *string, ssize_t offset, size_t len);
  void sigwinch(int);

Seblu's avatar
Seblu committed
private:
  WINDOW *msg_;
Seblu's avatar
Seblu committed

  // cmd window
Seblu's avatar
Seblu committed
  WINDOW *cmd_;
Seblu's avatar
Seblu committed
  char cmd_buffer_[CMD_BUFFER_SIZE];
  char cmd_history_buffer_[CMD_BUFFER_SIZE];
  ssize_t cmd_buf_off_;
  ssize_t cmd_buf_win_off_;
  size_t cmd_buf_win_size_;
  size_t cmd_history_off_;
Seblu's avatar
Seblu committed
extern Screen S;

Seblu's avatar
Seblu committed
#endif