insilmaril@0: #ifndef MAPOBJ_H insilmaril@0: #define MAPOBJ_H insilmaril@0: insilmaril@408: #include insilmaril@408: #include insilmaril@0: insilmaril@616: #include "xmlobj.h" insilmaril@0: insilmaril@772: #define Z_BBOX 0 insilmaril@772: #define Z_XLINK 10 insilmaril@772: #define Z_LINK 20 insilmaril@772: #define Z_FRAME 50 insilmaril@772: #define Z_SELBOX 60 insilmaril@772: #define Z_FLOATIMG 65 insilmaril@772: #define Z_ICON 80 insilmaril@772: #define Z_TEXT 100 insilmaril@772: #define Z_LINEEDIT 110 insilmaril@0: insilmaril@792: class ConvexPolygon; insilmaril@790: insilmaril@790: class TreeItem; insilmaril@790: insilmaril@474: /*! \brief Base class for all objects visible on a map insilmaril@474: */ insilmaril@474: insilmaril@616: class MapObj:public XMLObj { insilmaril@0: public: insilmaril@0: MapObj (); insilmaril@790: MapObj (QGraphicsScene *scene,TreeItem *ti=NULL); insilmaril@0: MapObj (MapObj*); insilmaril@0: virtual ~MapObj (); insilmaril@0: virtual void init (); insilmaril@0: virtual void copy (MapObj*); insilmaril@790: insilmaril@790: virtual void setTreeItem(TreeItem *); insilmaril@790: virtual TreeItem* getTreeItem() const; insilmaril@790: insilmaril@408: virtual QGraphicsScene* getScene(); insilmaril@408: virtual qreal x(); insilmaril@408: virtual qreal y(); insilmaril@408: virtual qreal width(); insilmaril@408: virtual qreal height(); insilmaril@408: virtual QPointF getAbsPos(); insilmaril@792: virtual QString getPos(); //! Return position as string (x,y) insilmaril@792: virtual void move (double x,double y); //! move to absolute Position insilmaril@408: virtual void move (QPointF p); insilmaril@792: virtual void moveBy (double x,double y); //! move to relative Position insilmaril@792: virtual QRectF getBBox(); //! returns bounding box insilmaril@792: virtual ConvexPolygon getBoundingPolygon(); //! return bounding convex polygon insilmaril@792: virtual QRectF getClickBox(); //! returns box to click insilmaril@754: virtual bool isInClickBox (const QPointF &p); //! Checks if p is in clickBox insilmaril@792: virtual QSizeF 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@408: QGraphicsScene* scene; insilmaril@792: QRectF bbox; // bounding box of MO itself insilmaril@792: QRectF clickBox; // area where mouseclicks are found insilmaril@792: QPointF absPos; // Position on canvas insilmaril@0: bool visible; insilmaril@790: insilmaril@792: TreeItem *treeItem; //! Crossrefence to treemodel insilmaril@790: insilmaril@794: QGraphicsPolygonItem *pi; //FIXME-3 testing only insilmaril@0: }; insilmaril@0: insilmaril@0: #endif