insilmaril@760: #ifndef MAPITEM_H insilmaril@760: #define MAPITEM_H insilmaril@760: insilmaril@760: #include insilmaril@760: insilmaril@762: #include "xmlobj.h" insilmaril@762: insilmaril@760: class LinkableMapObj; insilmaril@760: insilmaril@760: /*! /brief MapItem is used to store information of MapObj and inherited insilmaril@760: classes. insilmaril@760: insilmaril@762: This is done even while no QGraphicsView is availabe. This is useful insilmaril@762: if e.g. on a small device like a cellphone te full map is not used, insilmaril@762: but just a treeview instead. insilmaril@760: */ insilmaril@760: insilmaril@762: class MapItem: public XMLObj insilmaril@760: { insilmaril@760: protected: insilmaril@760: enum PositionMode {Unused,Absolute,Relative}; insilmaril@760: QPointF pos; insilmaril@760: PositionMode posMode; insilmaril@760: insilmaril@760: public: insilmaril@760: MapItem(); insilmaril@760: insilmaril@760: /*! Used to save relative position while map is not in QGraphicsView */ insilmaril@760: virtual void setRelPos(const QPointF&); insilmaril@760: insilmaril@760: /*! Used to save absolute position while map is not in QGraphicsView */ insilmaril@760: virtual void setAbsPos(const QPointF&); insilmaril@760: insilmaril@760: protected: insilmaril@760: LinkableMapObj *lmo; insilmaril@760: public: insilmaril@760: /*! Returns pointer to related LinkableMapObj in QGraphicsView */ insilmaril@760: virtual LinkableMapObj* getLMO(); insilmaril@760: insilmaril@760: /*! Set pointer to related LinkableMapObj in QGraphicsView */ insilmaril@760: virtual void setLMO (LinkableMapObj*); insilmaril@760: insilmaril@760: /*! Initialize LinkableMapObj with data in MapItem */ insilmaril@760: virtual void initLMO(); insilmaril@762: insilmaril@762: /*! Return data as attributes for saving in XML */ insilmaril@762: virtual QString getAttr(); insilmaril@760: }; insilmaril@760: insilmaril@760: insilmaril@760: #endif