Listing 6 (window.h)

#ifndef _WINCLASSDEF
#define _WINCLASSDEF

#include <stddef.h>
#include <conio.h>
#include "region.h"


// The basic window class
extern class win : public region
       {
protected:

       static win *topwin;  // Class variable holds top window
       static win *lastwin; // Last window

// Cursor location when window isn't on top
       int oldx;
       int oldy;

// Default screen color
       unsigned int color;

// Pointer to next window on stack
       win *next;    // Pointer to next window
       win *prev;              // Previous window

       int margin;  // Margins support borders on the windows

// Private method to register top window
       void settop(void);

public:
// Methods:
// Constructor:
       win(int x0=1,int y0=1,int x1=80,int y1=25,
          unsigned int clr=7,int mar=0);

// Destructor. This is virtual to support boxwindows, etc.
       virtual ~win();

// Force window to top of stack
       void maketop();
       };

// Windows with borders
extern class boxwin : public win
       {
public:
       boxwin(int x0=2,int y0=2,int x1=79,int y1=24,
             unsigned int clr=7,int boxt=0);
       };

// General purpose box drawing routine
void draw_box(int type,int x0,int y0,int x1,int y1);

#endif

/* End of File */