home *** CD-ROM | disk | FTP | other *** search
/ Boldly Go Collection / version40.iso / TS / 17A / DRWIN101.ZIP / WNDUTIL.HPP < prev    next >
C/C++ Source or Header  |  1991-10-08  |  2KB  |  55 lines

  1. #ifndef __WNDUTIL_HPP
  2. #define __WNDUTIL_HPP
  3.  
  4. #include "textscr.hpp"                 //text screen utilities
  5. #include "tbutil.hpp"                  //text buffer utilities
  6.  
  7.  
  8. extern TextScreen tscr;                //create a single text screen
  9.  
  10. typedef enum { BASE_WINDOW } BASE_WINDOW_INITIATOR;
  11.  
  12.  
  13.  
  14. class Wind : public TBuf {
  15. private:
  16.   int srow;                            //row offset into screen of buffer
  17.   int scol;                            //column offset into screen
  18.   char update;                         //update flag
  19.   BYTE border_att;                     //border attributes
  20.   int  border_lines;                   //number of lines in border
  21. public:
  22.   Wind(void);                          //default constructor
  23.   Wind(int r0,int c0,int r1,int c1,char *cfg=NULL,...);  //coords+config
  24.   Wind(BASE_WINDOW_INITIATOR bwi);     //initializes the base window, wbase
  25.  
  26.   void Config(char* cfg);              //sets values with config string
  27.   void Configf(char *cfg,...);         //does printf, then configures
  28.   void Update(void);                   //write buffer to screen
  29.   void NoUpdate(void) { update=0; }    //don't force updates
  30.   void ShowBorder(int lines=1);        //put border on screen
  31.  
  32.   BYTE BorderAttr(void) { return border_att; }
  33.   void BorderAttr(BYTE a) { border_att=a; if (update) Update(); }
  34.   int  BorderLines(void) { return border_lines; }
  35.   void BorderLines(int lines) { border_lines=lines; }
  36.  
  37. //TBuf virtuals...
  38.   void  Name(char *s)           { TBuf::Name(s);     if (update) Update(); }
  39.   void  Pos(int r,int c)        { TBuf::Pos(r,c);    if (update) Update(); }
  40.   void  Clr(int dir=CLR_ALL)    { TBuf::Clr(dir);    if (update) Update(); }
  41.   void  ClrRow(int dir=CLR_ALL) { TBuf::ClrRow(dir); if (update) Update(); }
  42.   void  IncCol(void)            { TBuf::IncRow();    if (update) Update(); }
  43.   void  IncRow(void)            { TBuf::IncCol();    if (update) Update(); }
  44.   void  ScrollUp(int n)         { TBuf::ScrollUp(n); if (update) Update(); }
  45.   void  Put(char c)             { TBuf::Put(c);      if (update) Update(); }
  46.   void  Put(char *s)            { TBuf::Put(s);      if (update) Update(); }
  47.   void  Put(char *s,int n)      { TBuf::Put(s,n);    if (update) Update(); }
  48.   void  Printf(char *fmt,...);
  49.   Wind& operator<<(char c)  { Put(c); return *this; }
  50.   Wind& operator<<(char *s) { Put(s); return *this; }
  51. };   //Wind class def
  52.  
  53.  
  54. #endif
  55.