insilmaril@0: #ifndef MAPOBJ_H insilmaril@0: #define MAPOBJ_H insilmaril@0: insilmaril@0: #include insilmaril@0: #include insilmaril@0: insilmaril@0: #include "misc.h" insilmaril@0: insilmaril@0: using namespace std; insilmaril@0: insilmaril@0: #define Z_BBOX 0 insilmaril@129: #define Z_XLINK 10 insilmaril@0: #define Z_LINK 20 insilmaril@0: #define Z_FRAME 50 insilmaril@0: #define Z_SELBOX 60 insilmaril@0: #define Z_ICON 80 insilmaril@0: #define Z_TEXT 100 insilmaril@0: insilmaril@0: class MapObj:public xmlObj { insilmaril@0: public: insilmaril@0: MapObj (); insilmaril@0: MapObj (QCanvas*); insilmaril@0: MapObj (MapObj*); insilmaril@0: virtual ~MapObj (); insilmaril@0: virtual void init (); insilmaril@0: virtual void copy (MapObj*); insilmaril@0: virtual QCanvas* getCanvas(); insilmaril@0: virtual int x(); insilmaril@0: virtual int y(); insilmaril@0: virtual int width(); insilmaril@0: virtual int height(); insilmaril@129: 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@175: 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@175: virtual void positionBBox()=0; insilmaril@175: virtual void calcBBoxSize()=0; insilmaril@0: protected: insilmaril@0: QCanvas* canvas; insilmaril@0: QRect bbox; // bounding box of MO itself insilmaril@175: 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