insilmaril@95: #ifndef XLINKOBJ_H insilmaril@95: #define XLINKOBJ_H insilmaril@95: insilmaril@790: #include "mapobj.h" insilmaril@847: #include "xlink.h" insilmaril@95: insilmaril@621: class BranchObj; insilmaril@790: class BranchItem; insilmaril@95: insilmaril@478: /*! \brief xlinks are used to draw arbitrary connections between branches (BranchObj) in the map. */ insilmaril@478: insilmaril@95: ///////////////////////////////////////////////////////////////////////////// insilmaril@95: class XLinkObj:public MapObj { insilmaril@95: public: insilmaril@847: XLinkObj (QGraphicsScene* scene, Link* l ); insilmaril@791: virtual ~XLinkObj (); insilmaril@95: virtual void init (); insilmaril@790: virtual void setEnd (QPointF); insilmaril@95: void updateXLink(); insilmaril@95: void positionBBox(); insilmaril@95: void calcBBoxSize(); insilmaril@95: void setVisibility (bool); insilmaril@95: void setVisibility (); insilmaril@95: insilmaril@95: private: insilmaril@95: static int arrowSize; insilmaril@408: QPen pen; insilmaril@408: QGraphicsLineItem *line; insilmaril@408: QGraphicsPolygonItem *poly; insilmaril@408: QPointF beginPos; insilmaril@408: QPointF endPos; insilmaril@790: insilmaril@790: BranchItem *visBranch; // the "visible" part of a partially scrolled li insilmaril@847: Link *link; insilmaril@95: }; insilmaril@95: insilmaril@95: #endif