43 lines
792 B
C++
43 lines
792 B
C++
#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>
|
|
|
|
class View
|
|
{
|
|
public:
|
|
View(void);
|
|
|
|
static void setWinContext(WINDOW* win);
|
|
static WINDOW* getWinContext(void);
|
|
|
|
virtual void addCall(std::function<void(int)> call);
|
|
|
|
void setSize(int width, int height);
|
|
void setTitle(std::string title);
|
|
|
|
virtual void repaint(void);
|
|
|
|
virtual void draw(void) = 0;
|
|
virtual std::function<void(int)> keypress(int& key) = 0;
|
|
|
|
|
|
protected:
|
|
int width, height;
|
|
int start_x = 0, start_y = 0;
|
|
std::string title;
|
|
std::vector<std::function<void(int)>> calls;
|
|
|
|
constexpr static int KEY_ENT = 10;
|
|
|
|
static WINDOW* win;
|
|
};
|
|
|
|
#endif // VIEW_H
|