///////////////////////////////////////////////////////////////////////////// // // GEMform // // A GEMform interacts with the user through a GEM form (or dialog). // // This file is Copyright 1992,1993 by Warwick W. Allison. // This file is part of the gem++ library. // You are free to copy and modify these sources, provided you acknowledge // the origin by retaining this notice, and adhere to the conditions // described in the file COPYING.LIB. // ///////////////////////////////////////////////////////////////////////////// #ifndef GEMf_h #define GEMf_h #include #include #include class GEMrawobject; class GEMobject; class GEMrsc; class GEMevent; class GEMform { public: GEMform(const GEMrsc& in, int RSCindex); GEMform(const GEMform&); virtual ~GEMform(); int Do(); // Centred virtual int Do(int x, int y); bool Zooms(bool b); virtual void RedrawObject(int RSCindex); virtual void RedrawObject(int RSCindex,int Cx,int Cy,int Cw,int Ch); // Clipped int Parent(int RSCindex) const; // See GEMrawobject for conversion function to GEMobject* GEMrawobject& operator[](int RSCindex) const { return Obj[RSCindex]; } virtual void AlignObject(int RSCindex, int xmult=8, int ymult=1); int Map(int Do(GEMrawobject*, int), bool skiphidden=TRUE, int RSCfrom=0, int RSCto=-1); virtual GEMfeedback DoItem(int item, const GEMevent& e); private: int myindex; protected: bool ZoomOn; GEMrawobject *Obj; virtual int FormDo(); int xoffset,yoffset,xmult,ymult; }; inline bool GEMform::Zooms(bool b) { bool t=b; ZoomOn=b; return t; } #endif