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 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67
|
/* $Id: cursesscreen.H,v 1.3 2007/07/30 02:47:52 mrsam Exp $
**
** Copyright 2002, Double Precision Inc.
**
** See COPYING for distribution information.
*/
#ifndef cursesscreen_H
#define cursesscreen_H
#include "../curses/curses_config.h"
#include "cursescontainer.H"
#if HAVE_NCURSESW_CURSES_H
#include <ncursesw/curses.h>
#else
#include <curses.h>
#endif
//
// A libcurses implementation. A CursesScreen object is typically the
// root object of the Curses hierarchy. The constructor initializes libcurses,
// the destructor cleans it up.
//
class CursesScreen : public CursesContainer {
int save_w, save_h; // Fix some libcurses.a resizing bugs.
mbstate_t inputstate;
int inputcounter;
bool underline_hack;
public:
CursesScreen();
~CursesScreen();
// Calculate max size.
int getWidth() const;
int getHeight() const;
void flush();
void draw();
bool writeText(const char *text, int row, int col,
const Curses::CursesAttr &attr) const;
bool writeText(const wchar_t *text, int row, int col,
const Curses::CursesAttr &attr) const;
int getTextLength(const char *text) const;
int getTextLength(const wchar_t *text) const;
// Return keyboard input. Returns Key::nokey() if no keyboard input
// isavailable.
Key getKey();
void beepError();
private:
Key doGetKey();
public:
void resized();
};
#endif
|