nsnake
Classic snake game for the terminal
Public Types | Public Member Functions | Public Attributes | Protected Attributes | List of all members
Window Class Reference

A segment of the terminal screen (2D char matrix). More...

#include <Window.hpp>

Public Types

enum  BorderType { BORDER_NONE, BORDER_REGULAR, BORDER_FANCY }
 
enum  WindowTitlePosition { TOP_LEFT, TOP_RIGHT, BOTTOM_LEFT, BOTTOM_RIGHT }
 

Public Member Functions

 Window (int x, int y, int w, int h)
 
 Window (Window *parent, int x, int y, int width, int height)
 
virtual void resize (int w, int h)
 
bool isValid ()
 
void print (std::string str, int x, int y, ColorPair pair=0)
 Shows text #str at #x #y on the window with color #pair. More...
 
void print (std::vector< std::string > lines, int x, int y, ColorPair pair=0)
 Shows multiple text lines #lines at #x #y on the window with color #pair. More...
 
void printChar (int c, int x, int y, ColorPair pair=0)
 Shows #c at #x #y with color #pair. More...
 
void setBackground (chtype ch, ColorPair pair)
 
void refresh ()
 
void clear ()
 
int getW () const
 
int getH () const
 
int getX () const
 
int getY () const
 
void borders (BorderType type)
 
void horizontalLine (int x, int y, int c, int width, ColorPair pair)
 
void setTitle (std::string title, WindowTitlePosition position=Window::TOP_LEFT)
 Sets a text that will appear at the top of the Window. More...
 

Public Attributes

WINDOW * win
 Ncurses' internal data structure. More...
 

Protected Attributes

bool error
 Tells if we've got some initialization error.
 
int x
 
int y
 
int width
 
int height
 
BorderType borderType
 
std::string topLeftTitle
 
std::string topRightTitle
 
std::string bottomLeftTitle
 
std::string bottomRightTitle
 

Detailed Description

A segment of the terminal screen (2D char matrix).

Definition at line 16 of file Window.hpp.

Member Function Documentation

void Window::print ( std::string  str,
int  x,
int  y,
ColorPair  pair = 0 
)

Shows text #str at #x #y on the window with color #pair.

Note
It defaults to white text on black background.

Definition at line 94 of file Window.cpp.

void Window::print ( std::vector< std::string >  lines,
int  x,
int  y,
ColorPair  pair = 0 
)

Shows multiple text lines #lines at #x #y on the window with color #pair.

Note
It also defaults to white text on black background.
Use it together with Utils::String::split:
window.print(Utils::String::split("multiple\nlines", '\n'),
            x, y, color_pair);

Definition at line 100 of file Window.cpp.

void Window::printChar ( int  c,
int  x,
int  y,
ColorPair  pair = 0 
)

Shows #c at #x #y with color #pair.

Note
It also defaults to white text on black background.

Definition at line 105 of file Window.cpp.

void Window::setTitle ( std::string  title,
WindowTitlePosition  position = Window::TOP_LEFT 
)

Sets a text that will appear at the top of the Window.

By default it's shown on top of the borders, with a highlighted color tone.

Definition at line 214 of file Window.cpp.

Member Data Documentation

WINDOW* Window::win

Ncurses' internal data structure.

IT'S PUBLIC BECAUSE SOMETIMES I NEED TO CALL DIRECT NCURSES CALLS - FIX THIS

Definition at line 85 of file Window.hpp.


The documentation for this class was generated from the following files: