#ifndef _Frame_h #define _Frame_h #ifdef __GNUC__ #pragma interface #endif #include class Frame: public Window { Frame(const Frame &); Frame &operator=(const Frame &); Window *client; public: enum { SINGLE, DOUBLE, THICK }; const char *title; const char *desc; CHTYPE attr; /* color of frame */ char type; /* type of frame */ void draw(const Rect &); void setphys(const Rect &); void set(const Rect &); void set(const char *t = 0,const char *d = 0,CHTYPE a = A_NORMAL); void settype(char t) { type = t; redraw(); } Frame(const char *t,const char *d,CHTYPE a = A_NORMAL); }; // a FramedWin creates and keeps track of its frame class FrameWin: virtual public Window { FrameWin(const FrameWin &); FrameWin&operator=(const FrameWin &); protected: Frame *frame; public: FrameWin(const char *title,const char *subtitle = 0); FrameWin(Frame *f = 0) { frame = f; } const char *getTitle() const { return frame ? frame->title : ""; } void setTitle(const char *t) { if (frame) frame->set(t); } void setphys(const Rect &); void top(); void hide(); void bury(); void setframe(Frame *f = 0); ~FrameWin(); }; struct FramedWin: public FrameWin, public ChildWin { FramedWin(const char *title,const char *subtitle = 0); void setphys(const Rect &); void top(); void hide(); void bury(); private: FramedWin(const FramedWin &); FramedWin&operator=(const FramedWin &); }; class PromptLine: virtual public Window { PromptLine(const PromptLine &); PromptLine&operator=(const PromptLine &); const char **list; CHTYPE cur; short row; public: PromptLine(const char **txt); void draw(const Rect &r); void setpos(Point); }; struct TextWindow: PromptLine, FramedWin { TextWindow(const char **txt,const char *title = 0); private: TextWindow(const TextWindow &); TextWindow&operator=(const TextWindow &); }; int expandtabs(const char *in,char *out,int len); class ErrMsg: public TextWindow { ErrMsg(const ErrMsg &); ErrMsg&operator=(const ErrMsg &); char buf[80]; const char *msg[2]; public: ErrMsg(short r,short c,const char *title,const char *m,...); void key(int); ~ErrMsg(); }; class Banner: public TextWindow { Banner(const Banner &); Banner&operator=(const Banner &); const char *ban[2]; public: Banner(int,const char *,const char *); }; #endif