insilmaril@0: #ifndef MAPOBJ_H insilmaril@0: #define MAPOBJ_H insilmaril@0: insilmaril@2: #include insilmaril@0: #include insilmaril@0: insilmaril@0: #include "misc.h" insilmaril@0: insilmaril@0: using namespace std; insilmaril@0: insilmaril@2: #define Z_BBOX 0 insilmaril@2: #define Z_XLINK 10 insilmaril@2: #define Z_LINK 20 insilmaril@2: #define Z_FRAME 50 insilmaril@2: #define Z_SELBOX 60 insilmaril@2: #define Z_FLOATIMG 65 insilmaril@2: #define Z_ICON 80 insilmaril@2: #define Z_TEXT 100 insilmaril@0: insilmaril@0: class MapObj:public xmlObj { insilmaril@0: public: insilmaril@0: MapObj (); insilmaril@2: MapObj (Q3Canvas*); insilmaril@0: MapObj (MapObj*); insilmaril@0: virtual ~MapObj (); insilmaril@0: virtual void init (); insilmaril@0: virtual void copy (MapObj*); insilmaril@2: virtual Q3Canvas* getCanvas(); insilmaril@0: virtual int x(); insilmaril@0: virtual int y(); insilmaril@0: virtual int width(); insilmaril@0: virtual int height(); insilmaril@2: virtual QPoint getAbsPos(); insilmaril@2: virtual QString getPos(); // Return position as string (x,y) insilmaril@0: virtual void move (double x,double y); // move to absolute Position insilmaril@0: virtual void moveBy (double x,double y); // move to relative Position insilmaril@2: virtual bool inBox(const QPoint&); // Check if Point is within clickbox insilmaril@0: virtual QRect getBBox(); // returns bounding box insilmaril@0: virtual QRect addBBox(QRect,QRect); // returns bbox which includes both boxes insilmaril@0: virtual QSize getSize(); // returns size of bounding box insilmaril@0: virtual bool isVisibleObj(); insilmaril@0: virtual void setVisibility(bool); insilmaril@0: virtual void positionBBox()=0; insilmaril@0: virtual void calcBBoxSize()=0; insilmaril@2: protected: insilmaril@2: Q3Canvas* canvas; insilmaril@2: QRect bbox; // bounding box of MO itself insilmaril@2: QRect clickBox; // area where mouseclicks are found insilmaril@0: QPoint absPos; // Position on canvas insilmaril@0: bool visible; insilmaril@0: }; insilmaril@0: insilmaril@0: #endif