home *** CD-ROM | disk | FTP | other *** search
/ Boldly Go Collection / version40.iso / TS / 17A / DRWIN101.ZIP / TBUTIL.HPP < prev    next >
C/C++ Source or Header  |  1991-07-17  |  4KB  |  85 lines

  1. #ifndef __TBUTIL_H
  2. #define __TBUTIL_H
  3.  
  4. //
  5. //    Text buffer functions, suitable for windowing integration
  6. //
  7.  
  8. #include <conio.h>                     //include colors from tc++ conio.h
  9.  
  10.  
  11. #ifndef BYTE
  12.   #define BYTE unsigned char
  13. #endif
  14.  
  15. #ifndef WORD
  16.   #define WORD unsigned int
  17. #endif
  18.  
  19. #define ATTR(f,b)      (((b)<<4)+(f))  //attribute calculator
  20.  
  21. #define MIN_ROWS       1               //must have at least 1 row
  22. #define MIN_COLS       1               //must have at least 1 column
  23. #define MAX_ROWS       48              //up to 48 rows
  24. #define MAX_COLS       78              //up to 78 columns
  25.  
  26. #define DEF_ATT        ATTR(LIGHTGRAY,BLACK)  //use normal colors
  27. #define DEF_FIL        ' '             //default fill character, space
  28. #define MAX_NAM        0x20            //maximum length of window name w/NUL
  29.  
  30. #define CLR_ALL        (0)             //clear entire buffer/row
  31. #define CLR_BEG        (-1)            //clear from beginning of buffer/row
  32. #define CLR_END        (+1)            //clear to end of buffer/row
  33.  
  34.  
  35. typedef struct Wf_struct {
  36.   WORD wrap:1;                         //wrapping at end of line
  37.   WORD scroll:1;                       //scrolling at bottom of window
  38. } Wflag;
  39.  
  40.  
  41. class TBuf {
  42. protected:
  43.   int   rows;                          //current number of rows
  44.   int   cols;                          //current number of columns
  45.   int   row;                           //current cursor row
  46.   int   col;                           //current cursor column
  47.   BYTE  att;                           //attribute for character writes
  48.   char  fil;                           //fill character
  49.   char  nam[MAX_NAM];                  //name of window
  50.   Wflag fl;                            //flags for window
  51.   WORD* txt;                           //pointer to data
  52. public:
  53.   TBuf(void);                          //default constructor
  54.   TBuf(int rs,int cs);                 //open with size
  55.   TBuf(int rs,int cs,BYTE a);          //size, attributes
  56.   ~TBuf(void);                         //destructor, releases memory
  57.   int   Rows(void) { return rows; }    //rows in buffer
  58.   int   Cols(void) { return cols; }    //columns in buffer
  59.   BYTE  Attr(void) { return att; }     //gets attribute setting
  60.   void  Attr(BYTE a) { att=a; }        //sets attribute
  61.   char  Fill(void) { return fil; }     //gets fill character
  62.   void  Fill(char f) { fil=f; }        //sets fill character
  63.   char* Name(void) { return nam; }     //gets name of window
  64.   void  Name(char *s);                 //sets name of window
  65.   WORD* TextBuffer(void) { return txt; }   //gets pointer to text buffer
  66.   void  Pos(int r,int c);              //sets cursor posiiton
  67.   WORD  Pos(void) { return (WORD)(col<<8)+row; }   //returns position
  68.   int   Row(void) { return row; }      //cursor's row
  69.   int   Col(void) { return col; }      //cursor's column
  70.   void  Clr(int dir=CLR_ALL);          //clears text buffer
  71.   void  ClrRow(int dir=CLR_ALL);       //clear row
  72.   void  IncCol(void);                  //increments column, checks wrap
  73.   void  IncRow(void);                  //increments row, checks scroll
  74.   void  ScrollUp(int n);               //scroll up n lines (use -n for down)
  75.   void  Put(char c);                   //puts character to the window
  76.   void  Put(char *s);                  //puts string to the window
  77.   void  Put(char *s,int n);            //puts string of n chars
  78.   void  Printf(char *fmt,...);         //formatted print to window
  79.   TBuf& operator<<(char c) { Put(c); return *this; }
  80.   TBuf& operator<<(char *s) { Put(s); return *this; }
  81. };   //TBuf class
  82.  
  83.  
  84. #endif                                 //if file not already included
  85.