#ifndef __NT_SCREEN_H__
#define __NT_SCREEN_H__

#include "NTGlobals.h"
#include "NTEvent.h"

#ifdef WIN32
#include <curses.h>
#else
#include <ncurses.h>
#endif

namespace NTCurses {

class NTScreen {
public:
	NTScreen();
	virtual ~NTScreen();
	virtual int GetImmedChar( void );
	virtual int GetChar( void );
	virtual NTMouseEvent GetMouseEvent( void );
	virtual void ProgrammaticIdle( void );
	virtual void Idle( void );
	void SetDirty( bool val = true );
	unsigned int GetWidth( void );
	unsigned int GetHeight( void );
	void ShowCursor( bool show );
	void SetCursorState( bool show );
	bool GetCursorState( void );

protected:
	int TranslateChar( int ch );
	bool bDirty;
	bool bShowCursor;
	WINDOW *wGlobal;
	unsigned int uWidth;
	unsigned int uHeight;
	mmask_t oldmousemask;

private:
};

NTScreen *NTGetGlobalScreen( void );
void NTSetGlobalScreen( NTScreen *val );

}

#endif
