sdlterm/src/sdlterm.h
changeset 51 dce7325109c1
parent 50 c5b8b9d2da95
child 52 50a1857557da
--- a/sdlterm/src/sdlterm.h	Sat Jan 05 18:44:56 2013 +0100
+++ b/sdlterm/src/sdlterm.h	Sat Jan 05 18:56:45 2013 +0100
@@ -7,34 +7,34 @@
 
 enum class Style: Uint16
 {
-	BOLD      = 1 << 0,  // bold font
-	UNDERLINE = 1 << 1,  // underline text
-	STANDOUT  = 1 << 2,  // inverse bg/fg
-	BLINK     = 1 << 3,  // blinking
+    BOLD      = 1 << 0,  // bold font
+    UNDERLINE = 1 << 1,  // underline text
+    STANDOUT  = 1 << 2,  // inverse bg/fg
+    BLINK     = 1 << 3,  // blinking
 };
 
 
 class ColorMap
 {
 private:
-	Uint8 _map[16][3] = {
-		{0,0,0},		// 0 - black
-        {23,23,178},	// 1 - blue
+    Uint8 _map[16][3] = {
+        {0,0,0},        // 0 - black
+        {23,23,178},    // 1 - blue
         {23,178,23},    // 2 - green
         {23,178,178},   // 3 - cyan
-        {178,23,23},	// 4 - red
-        {178,23,178},	// 5 - magenta
-        {178,103,23},	// 6 - brown
-        {178,178,178},	// 7 - light gray
-        {104,104,104},	// 8 - gray
-        {84,84,255},	// 9 - light blue
-        {84,255,84},	// 10 - light green
-        {84,255,255},	// 11 - light cyan
-        {255,84,84},	// 12 - light red
-        {255,84,255},	// 13 - light magenta
+        {178,23,23},    // 4 - red
+        {178,23,178},   // 5 - magenta
+        {178,103,23},   // 6 - brown
+        {178,178,178},  // 7 - light gray
+        {104,104,104},  // 8 - gray
+        {84,84,255},    // 9 - light blue
+        {84,255,84},    // 10 - light green
+        {84,255,255},   // 11 - light cyan
+        {255,84,84},    // 12 - light red
+        {255,84,255},   // 13 - light magenta
         {255,255,84},   // 14 - yellow
         {255,255,255},  // 15 - white
-	};
+    };
 
 public:
     void index_to_rgb(int index, SDL_Color &color);
@@ -44,141 +44,142 @@
 class GlyphCache
 {
 public:
-	SDL_Surface *lookup_glyph(Uint16 ch);
-	void put_glyph(Uint16 ch, SDL_Surface *srf);
-	void flush();
+    SDL_Surface *lookup_glyph(Uint16 ch);
+    void put_glyph(Uint16 ch, SDL_Surface *srf);
+    void flush();
 
 private:
-	std::map<Uint16, SDL_Surface*> _glyph_map;
+    std::map<Uint16, SDL_Surface*> _glyph_map;
 };
 
 
 class GlyphRenderer
 {
 public:
-	GlyphRenderer();
-	~GlyphRenderer();
+    GlyphRenderer();
+    ~GlyphRenderer();
 
-	void open_font(const char *fname_regular, const char *fname_bold, int ptsize);
-	void close_font();
+    void open_font(const char *fname_regular, const char *fname_bold, int ptsize);
+    void close_font();
 
-	// do not free surface returned!
-	SDL_Surface *render_cell(Uint16 ch, Uint16 attr);
+    // do not free surface returned!
+    SDL_Surface *render_cell(Uint16 ch, Uint16 attr);
 
-	int get_cell_width() { return _cell_width; };
-	int get_cell_height() { return _cell_height; };
+    int get_cell_width() { return _cell_width; };
+    int get_cell_height() { return _cell_height; };
 
 private:
-	TTF_Font *_font_regular;
-	TTF_Font *_font_bold;
-	int _cell_width;
-	int _cell_height;
-	GlyphCache _cache;
-	ColorMap _colormap;
+    TTF_Font *_font_regular;
+    TTF_Font *_font_bold;
+    int _cell_width;
+    int _cell_height;
+    GlyphCache _cache;
+    ColorMap _colormap;
 };
 
 
 struct TerminalCell
 {
-	Uint16 ch;
-	Uint16 attr;
-	bool operator !=(const TerminalCell &rhs) const { return ch != rhs.ch || attr != rhs.attr; };
+    Uint16 ch;
+    Uint16 attr;
+    bool operator !=(const TerminalCell &rhs) const { return ch != rhs.ch || attr != rhs.attr; };
 };
 
 
 class TerminalScreen
 {
 public:
-	TerminalScreen():
-		_screen_surface(NULL), _cells_front(0), _cells_back(0), _render(),
-		_pixel_width(0), _pixel_height(0) {};
-	~TerminalScreen() {};
+    TerminalScreen():
+        _screen_surface(NULL), _cells_front(0), _cells_back(0), _render(),
+        _pixel_width(0), _pixel_height(0), _width(0), _height(0),
+        _cell_width(0), _cell_height(0) {};
+    ~TerminalScreen() {};
 
-	void select_font(const char *fname_regular, const char *fname_bold, int ptsize);
-	void resize(int pxwidth, int pxheight);
+    void select_font(const char *fname_regular, const char *fname_bold, int ptsize);
+    void resize(int pxwidth, int pxheight);
 
-	void erase();
-	void putch(int x, int y, Uint16 ch, Uint16 attr);
-	void commit();
+    void erase();
+    void putch(int x, int y, Uint16 ch, Uint16 attr);
+    void commit();
 
-	int get_width() { return _width; };
-	int get_height() { return _height; };
-	int get_cell_width() { return _cell_width; };
-	int get_cell_height() { return _cell_height; };
+    int get_width() { return _width; };
+    int get_height() { return _height; };
+    int get_cell_width() { return _cell_width; };
+    int get_cell_height() { return _cell_height; };
 
 private:
-	SDL_Surface *_screen_surface;
-	std::vector<TerminalCell> _cells_front;
-	std::vector<TerminalCell> _cells_back;
-	GlyphRenderer _render;
+    SDL_Surface *_screen_surface;
+    std::vector<TerminalCell> _cells_front;
+    std::vector<TerminalCell> _cells_back;
+    GlyphRenderer _render;
 
-	int _pixel_width;  // terminal window width in pixels
-	int _pixel_height;
-	int _width;  // width in characters
-	int _height; // height in characters
-	int _cell_width;  // character cell width in pixels
-	int _cell_height;
+    int _pixel_width;  // terminal window width in pixels
+    int _pixel_height;
+    int _width;  // width in characters
+    int _height; // height in characters
+    int _cell_width;  // character cell width in pixels
+    int _cell_height;
 
-	void _reset_cells();
+    void _reset_cells();
 };
 
 
 struct Event
 {
-	enum { QUIT, RESIZE, KEYPRESS, MOUSEDOWN, MOUSEUP, MOUSEMOVE, MOUSEWHEEL };
-	int type;
+    enum { QUIT, RESIZE, KEYPRESS, MOUSEDOWN, MOUSEUP, MOUSEMOVE, MOUSEWHEEL };
+    int type;
 
-	union
-	{
-		struct
-		{
-			char keyname[10];
-			Uint16 unicode;
-		} key;
-		struct
-		{
-			int x, y;
-			int button;
-		} mouse;
-	};
+    union
+    {
+        struct
+        {
+            char keyname[10];
+            Uint16 unicode;
+        } key;
+        struct
+        {
+            int x, y;
+            int button;
+        } mouse;
+    };
 };
 
 
 class Terminal
 {
 public:
-	Terminal();
-	~Terminal();
+    Terminal();
+    ~Terminal();
 
-	void select_font(const char *fname_regular, const char *fname_bold, int ptsize)
-		{ _screen.select_font(fname_regular, fname_bold, ptsize); };
-	void resize(int pxwidth, int pxheight) { _screen.resize(pxwidth, pxheight); };
+    void select_font(const char *fname_regular, const char *fname_bold, int ptsize)
+        { _screen.select_font(fname_regular, fname_bold, ptsize); };
+    void resize(int pxwidth, int pxheight) { _screen.resize(pxwidth, pxheight); };
 
-	void erase() { _screen.erase(); };
-	void putch(int x, int y, Uint16 ch) { _screen.putch(x, y, ch, _attr); };
-	void commit() { _screen.commit(); };
+    void erase() { _screen.erase(); };
+    void putch(int x, int y, Uint16 ch) { _screen.putch(x, y, ch, _attr); };
+    void commit() { _screen.commit(); };
 
-	Uint16 prepare_attr(Uint8 fg, Uint8 bg, Uint8 style) { return fg | bg << 4 | style << 8; };
-	void set_attr(Uint16 value) { _attr = value; };
+    Uint16 prepare_attr(Uint8 fg, Uint8 bg, Uint8 style) { return fg | bg << 4 | style << 8; };
+    void set_attr(Uint16 value) { _attr = value; };
 
-	void set_cursor(int x, int y) { _cursor_x = x; _cursor_y = y; };
-	void show_cursor(bool visible) { _cursor_visible = visible; };
+    void set_cursor(int x, int y) { _cursor_x = x; _cursor_y = y; };
+    void show_cursor(bool visible) { _cursor_visible = visible; };
 
-	void get_next_event(Event &event);
+    void get_next_event(Event &event);
 
-	int get_width() { return _screen.get_width(); };
-	int get_height() { return _screen.get_height(); };
+    int get_width() { return _screen.get_width(); };
+    int get_height() { return _screen.get_height(); };
 
 private:
-	TerminalScreen _screen;
-	Uint16 _attr;
-	int _cursor_x;
-	int _cursor_y;
-	bool _cursor_visible;
+    TerminalScreen _screen;
+    Uint16 _attr;
+    int _cursor_x;
+    int _cursor_y;
+    bool _cursor_visible;
 
-	int _mousemove_last_x;
-	int _mousemove_last_y;
+    int _mousemove_last_x;
+    int _mousemove_last_y;
 
-	const char *_translate_keyname(SDLKey sym);
+    const char *_translate_keyname(SDLKey sym);
 };