b15f/driver/ui/view.h

46 lines
899 B
C
Raw Normal View History

2019-04-04 11:19:11 +00:00
#ifndef VIEW_H
#define VIEW_H
#include <iostream>
#include <cmath>
#include <vector>
#include <functional>
#include <ncurses.h> // sudo apt-get install libncurses5-dev
#include <sys/ioctl.h>
#include <unistd.h>
2019-04-04 14:16:28 +00:00
#include <signal.h>
2019-05-09 12:47:47 +00:00
#include "../drv/b15f.h"
2019-04-04 14:16:28 +00:00
extern std::string ERR_MSG;
2019-04-05 12:33:15 +00:00
typedef std::function<void(int)> call_t;
2019-04-04 11:19:11 +00:00
class View
{
public:
View(void);
2019-04-05 12:33:15 +00:00
virtual ~View(void);
2019-04-04 11:19:11 +00:00
static void setWinContext(WINDOW* win);
static WINDOW* getWinContext(void);
2019-04-05 06:33:31 +00:00
static std::vector<std::string> str_split(const std::string& str, const std::string delim);
2019-04-04 11:19:11 +00:00
2019-04-05 06:33:31 +00:00
virtual void setTitle(std::string title);
2019-04-04 11:19:11 +00:00
virtual void repaint(void);
virtual void draw(void) = 0;
2019-04-05 12:33:15 +00:00
virtual call_t keypress(int& key) = 0;
2019-04-04 11:19:11 +00:00
protected:
int width, height;
int start_x = 0, start_y = 0;
std::string title;
2019-04-05 12:33:15 +00:00
std::vector<call_t> calls;
2019-04-04 11:19:11 +00:00
static WINDOW* win;
2019-04-05 06:33:31 +00:00
constexpr static int KEY_ENT = 10;
2019-04-04 11:19:11 +00:00
};
#endif // VIEW_H