#ifndef FRAMEOBJ_H #define FRAMEOBJ_H #include "mapobj.h" /*! \brief This class adds a frame to a MapObj. */ class FrameObj:public MapObj { public: /*! \brief Supported frame types */ enum FrameType {NoFrame,Rectangle,RoundedRectangle,Ellipse,Cloud}; FrameObj(QGraphicsItem *parent); ~FrameObj(); void init(); void clear(); void move (double x,double y); // move to absolute Position void moveBy (double x,double y);// move to relative Position void positionBBox(); void calcBBoxSize(); void setRect (const QRectF &); // set dimensions void setPadding(const int &); int getPadding(); qreal getTotalPadding(); // padding + borderwidth + xsize (e.g. cloud) qreal getXPadding(); void setBorderWidth (const int &); int getBorderWidth (); FrameType getFrameType (); FrameType getFrameType (const QString &); QString getFrameTypeName (); void setFrameType (const FrameType &); void setFrameType (const QString &); void setPenColor (QColor); QColor getPenColor (); void setBrushColor (QColor); QColor getBrushColor (); void setFrameIncludeChildren(bool); bool getFrameIncludeChildren(); void repaint(); void setZValue (double z); void setVisibility(bool); QString saveToDir (); private: FrameType type; //!< Frame type QGraphicsRectItem * rectFrame; QGraphicsEllipseItem * ellipseFrame; QGraphicsPathItem *pathFrame; int padding; // distance text - frame int borderWidth; qreal xsize; //! Extra size caused e.g. by cloud geometry QColor penColor; QColor brushColor; bool includeChildren; }; #endif