#ifndef __EditWin_h #define __EditWin_h #pragma interface #include struct Browser: MainWin { enum { EDIT_REFORM = EDIT_REV + 1, EDIT_SEARCH, EDIT_AGAIN, EDIT_WORDWRAP }; Browser(); ~Browser(); void key(int); void cmd(int); void setphys(const Rect &); virtual CHTYPE operator()(int row,int col) const = 0; // inspect virtual void getyx(int &, int &) const = 0; // get point virtual void move(int row, int col) = 0; // move point virtual void sync(); // update window frame virtual void print() { } virtual void search(const char *) { } void move(Dir); // move in a direction protected: String pat; char desc[40]; private: Browser(const Browser &); Browser&operator=(const Browser &); }; struct EditWin: virtual Browser { EditWin(); ~EditWin(); void key(int); void cmd(int); virtual void addch(char) = 0; // replace virtual void insch(char) = 0; // insert virtual void delch() = 0; // delete virtual void insertln(int) = 0; virtual void deleteln(int) = 0; virtual void sync(); // update frame virtual void clrtoeol(); void linemove(Dir); void linedel(); // undraw line under cursor static class Menu &editMenu(); protected: char linemode; static const unsigned char graphics[48]; private: EditWin(const EditWin &); EditWin&operator=(const EditWin &); int linebits() const; // line drawing bits under cursor Dir last_dir; }; #endif