home *** CD-ROM | disk | FTP | other *** search
- /*
- PAGE.HPP
- Copyright (c) Les Hancock 1990
- */
-
- #ifndef PAGE_HPP
- #define PAGE_HPP
-
- class page
- {
- header *hdr_ptr; // address of page header, or 0 if none
- char *bufptr;
- line next_line;
- unsigned int rows:6; // can't exceed 63
- unsigned int cols:8; // can't exceed 127
- unsigned int current_row:7; // current row (can be twice rows)
- unsigned int page_full:1; // 0 if not full, else 1
- unsigned int tab_size:5; // allow max of 31 spaces for tab expansion
- unsigned int end_of_input:1; // 0 if not done, else 1
- unsigned int gutter:3; // up to 7 spaces for mid-page gutter
- yesno insert(char *your_buf); // returns yes if page filled, else no
- void new_page();
- public:
- page(parms& parms, const char *file_name);
- ~page() { delete bufptr; }
- friend istream& operator>>(istream&, page&);
- friend ostream& operator<<(ostream&, page&);
- yesno eof(void) { return end_of_input ? yes : no; }
- yesno eof(yesno flag){end_of_input = (flag == yes) ? 1 : 0; return flag;}
- yesno full(void) { return page_full ? yes : no; }
- yesno full(yesno flag) { page_full = (flag == yes) ? 1 : 0; return flag;}
- };
-
- #endif
-