// * this is for making emacs happy: -*-Mode: C++;-*-
/****************************************************************************
- * Copyright (c) 1998 Free Software Foundation, Inc. *
+ * Copyright (c) 1998-2005,2007 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
* copy of this software and associated documentation files (the *
****************************************************************************/
/****************************************************************************
- * Author: Juergen Pfeifer <Juergen.Pfeifer@T-Online.de> 1997 *
+ * Author: Juergen Pfeifer, 1997 *
****************************************************************************/
-#include "cursesapp.h"
#include "internal.h"
+#include "cursesapp.h"
-MODULE_ID("$Id: cursesapp.cc,v 1.2 1998/02/11 12:13:41 tom Exp $")
+MODULE_ID("$Id: cursesapp.cc,v 1.14 2007/01/27 20:16:42 tom Exp $")
void
-NCursesApplication::init(bool bColors) {
+NCursesApplication::init(bool bColors)
+{
if (bColors)
NCursesWindow::useColors();
-
- if (Root_Window->colors() > 1) {
+
+ if (Root_Window->colors() > 1) {
b_Colors = TRUE;
Root_Window->setcolor(1);
Root_Window->setpalette(COLOR_YELLOW,COLOR_BLUE);
NCursesWindow* NCursesApplication::titleWindow = 0;
NCursesApplication::SLK_Link* NCursesApplication::slk_stack = 0;
-NCursesApplication::~NCursesApplication() {
+NCursesApplication::~NCursesApplication()
+{
Soft_Label_Key_Set* S;
delete titleWindow;
+ titleWindow = 0;
+
while( (S=top()) ) {
pop();
delete S;
}
+
delete Root_Window;
+ Root_Window = 0;
+
::endwin();
}
-int NCursesApplication::rinit(NCursesWindow& w) {
+int NCursesApplication::rinit(NCursesWindow& w)
+{
titleWindow = &w;
return OK;
}
-void NCursesApplication::push(Soft_Label_Key_Set& S) {
+void NCursesApplication::push(Soft_Label_Key_Set& S)
+{
SLK_Link* L = new SLK_Link;
- assert(L);
+ assert(L != 0);
L->prev = slk_stack;
L->SLKs = &S;
slk_stack = L;
S.show();
}
-bool NCursesApplication::pop() {
+bool NCursesApplication::pop()
+{
if (slk_stack) {
SLK_Link* L = slk_stack;
slk_stack = slk_stack->prev;
return (slk_stack ? FALSE : TRUE);
}
-Soft_Label_Key_Set* NCursesApplication::top() const {
+Soft_Label_Key_Set* NCursesApplication::top() const
+{
if (slk_stack)
return slk_stack->SLKs;
else
- return (Soft_Label_Key_Set*)0;
+ return static_cast<Soft_Label_Key_Set*>(0);
}
-int NCursesApplication::operator()(void) {
+int NCursesApplication::operator()(void)
+{
bool bColors = b_Colors;
- Soft_Label_Key_Set* S;
+ Soft_Label_Key_Set* S = 0;
int ts = titlesize();
if (ts>0)
NCursesWindow::ripoffline(ts,rinit);
Soft_Label_Key_Set::Label_Layout fmt = useSLKs();
- if (fmt!=Soft_Label_Key_Set::None) {
+ if (fmt!=Soft_Label_Key_Set::None) {
S = new Soft_Label_Key_Set(fmt);
- assert(S);
+ assert(S != 0);
init_labels(*S);
}
return run();
}
-NCursesApplication::NCursesApplication(bool bColors) {
- b_Colors = bColors;
+NCursesApplication::NCursesApplication(bool bColors)
+ : b_Colors(bColors),
+ Root_Window(NULL)
+{
if (theApp)
THROW(new NCursesException("Application object already created."));
else