#ifndef __MAINWIN_H #define __MAINWIN_H #pragma interface #include #include struct MainWin: virtual Controller, FramedWin, Zoomable { enum { EDIT_INSLINE = 100, EDIT_DELLINE, EDIT_MARKBLK, EDIT_PASTE, EDIT_GRAPH, EDIT_FWD, EDIT_REV, FILE_PRINT=50 }; MainWin(); ~MainWin(); virtual bool queryOk(); virtual void load(const String &) = 0; virtual void save(); void key(int); void getfocus(); void losefocus(); void setphys(const Rect &r) { FrameWin::setphys(r); } virtual void saveAs(const String &) = 0; virtual const String &getname() const { return name; } protected: String name; char modified; private: MainWin(const MainWin &); MainWin&operator=(const MainWin &); }; struct MDIFrame: bmsApp { enum { FILE_NEW=EXIT+1,FILE_OPEN,FILE_SAVE,FILE_SAVEAS, HELP, DEBUG, WINDOW_NEXT, WINDOW_PREV,WINDOW_ZOOM,WINDOW_CLOSE,WINDOW_SIZE, WINDOW_LIST }; MDIFrame(); void cmd(int); void key(int); void open(const String &); virtual void addwin(MainWin *); virtual void delwin(ChildWin *); virtual void position(Window *w,int lines,int cols); MainWin *pickList(); bool closeAll(); virtual MainWin *fileNew() { return 0; } ~MDIFrame(); MainWin *active; private: MDIFrame(const MDIFrame &); MDIFrame& operator=(const MDIFrame &); Array win; int cur; protected: int rows; }; #endif