home *** CD-ROM | disk | FTP | other *** search
/ Programmer 7500 / MAX_PROGRAMMERS.iso / PROGRAMS / UTILS / LASER / DJPRNT.ZIP / PAGE.HPP < prev    next >
Encoding:
C/C++ Source or Header  |  1990-02-10  |  1.3 KB  |  35 lines

  1. /*
  2.     PAGE.HPP
  3.     Copyright (c) Les Hancock 1990
  4. */
  5.  
  6. #ifndef PAGE_HPP
  7. #define PAGE_HPP
  8.  
  9. class page
  10. {
  11.     header *hdr_ptr;                  // address of page header, or 0 if none
  12.     char *bufptr;
  13.     line next_line;
  14.     unsigned int rows:6;                                   // can't exceed 63
  15.     unsigned int cols:8;                                  // can't exceed 127
  16.     unsigned int current_row:7;            // current row (can be twice rows)
  17.     unsigned int page_full:1;                        // 0 if not full, else 1
  18.     unsigned int tab_size:5;         // allow max of 31 spaces for tab expansion
  19.     unsigned int end_of_input:1;                       // 0 if not done, else 1
  20.     unsigned int gutter:3;               // up to 7 spaces for mid-page gutter
  21.     yesno insert(char *your_buf);      // returns yes if page filled, else no
  22.     void new_page();
  23. public:
  24.     page(parms& parms, const char *file_name);
  25.     ~page() { delete bufptr; }
  26.     friend istream& operator>>(istream&, page&);
  27.     friend ostream& operator<<(ostream&, page&);
  28.     yesno eof(void) { return end_of_input ? yes : no; }
  29.     yesno eof(yesno flag){end_of_input = (flag == yes) ? 1 : 0; return flag;}
  30.     yesno full(void) { return page_full ? yes : no; }
  31.     yesno full(yesno flag) { page_full = (flag == yes) ? 1 : 0; return flag;}
  32. };
  33.  
  34. #endif
  35.