#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