summaryrefslogtreecommitdiff
path: root/Source/Kernel/VTManager/SimpleVT.class.h
blob: 9c5657e649b70ac3e7459c8c4b1f154a0fba4cd0 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
#ifndef DEF_SIMPLEVT_CLASS_H
#define DEF_SIMPLEVT_CLASS_H

#include <VTManager/VirtualTerminal.proto.h>

namespace VT {
	void redrawScreen();
}

class SimpleVT : public VirtualTerminal {
	friend void VT::redrawScreen();

	protected:
	vtchr* m_buff;
	u32int m_rows, m_cols;
	u8int m_color;

	u32int m_maprow, m_mapcol;
	bool m_mapped, m_hideCursor;
	
	u32int m_csrlin, m_csrcol;

	virtual void updateCursor();
	virtual void clear();
	virtual void redraw();
	virtual void scroll();	//Scrolls 1 line

	public:
	SimpleVT(u32int rows, u32int cols, u8int fgcolor = 7, u8int bgcolor = 0);
	virtual ~SimpleVT();

	virtual void putChar(u32int row, u32int col, WChar c);

	virtual void handleEscape(mvt_esc_cmd_t cmd);

	bool isBoxed() { return true; }
	u8int height() { return m_rows; }
	u8int width() { return m_cols; }
	u8int csrlin() { return m_csrlin; }
	u8int csrcol() { return m_csrcol; }

	void map(s32int row = -1, s32int col = -1);
	void unmap();

	void put(WChar c, bool updatecsr = true);

	virtual void hexDump(u8int* ptr, u32int sz, bool addnl = false); //Ignore parameter addnl
};

#endif