File: cursesmainscreen.C

package info (click to toggle)
cone 0.75-1
  • links: PTS, VCS
  • area: main
  • in suites: lenny
  • size: 31,040 kB
  • ctags: 13,930
  • sloc: ansic: 90,648; cpp: 79,781; sh: 18,355; perl: 3,218; makefile: 1,611; yacc: 289; sed: 16
file content (83 lines) | stat: -rw-r--r-- 1,481 bytes parent folder | download | duplicates (2)
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);
}