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 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83
|
/* $Id: cursesmainscreen.C,v 1.1 2003/05/27 14:09:07 mrsam Exp $
**
** Copyright 2002, Double Precision Inc.
**
** See COPYING for distribution information.
*/
#include "curses_config.h"
#include "cursesmainscreen.H"
CursesMainScreen::CursesMainScreen(CursesContainer *parent,
Curses *titleBarArg,
Curses *statusBarArg)
: CursesVScroll(parent), titleBar(titleBarArg),
statusBar(statusBarArg), lockcnt(0)
{
setRow(titleBar->getHeight());
}
CursesMainScreen::~CursesMainScreen()
{
}
int CursesMainScreen::getWidth() const
{
return getParent()->getWidth();
}
int CursesMainScreen::getHeight() const
{
int h=getParent()->getHeight();
int hh=titleBar->getHeight() + statusBar->getHeight();
return (hh < h ? h-hh:0);
}
CursesMainScreen::Lock::Lock(CursesMainScreen *p, bool noupdateArg)
: screen(p), noupdate(noupdateArg)
{
if (p)
++p->lockcnt;
}
CursesMainScreen::Lock::~Lock()
{
if (!screen.isDestroyed())
{
if (--screen->lockcnt == 0 && !noupdate)
{
screen->erase();
screen->draw();
}
}
}
bool CursesMainScreen::writeText(const char *text, int row, int col,
const CursesAttr &attr) const
{
char dummy=0;
if (lockcnt > 0)
text= &dummy;
return CursesVScroll::writeText(text, row, col, attr);
}
bool CursesMainScreen::writeText(const wchar_t *text, int row, int col,
const CursesAttr &attr) const
{
wchar_t dummy=0;
if (lockcnt > 0)
text= &dummy;
return CursesVScroll::writeText(text, row, col, attr);
}
|