insilmaril@95: #ifndef XLINKOBJ_H insilmaril@95: #define XLINKOBJ_H insilmaril@95: insilmaril@95: #include "linkablemapobj.h" insilmaril@95: insilmaril@95: enum XLinkState {undefinedXLink,initXLink,activeXLink,deleteXLink}; insilmaril@95: insilmaril@95: ///////////////////////////////////////////////////////////////////////////// insilmaril@95: class XLinkObj:public MapObj { insilmaril@95: public: insilmaril@95: XLinkObj (); insilmaril@95: XLinkObj (QCanvas*); insilmaril@95: ~XLinkObj (); insilmaril@95: virtual void init (); insilmaril@95: virtual void copy (XLinkObj*); insilmaril@95: void setBegin (BranchObj*); insilmaril@299: BranchObj* getBegin(); insilmaril@95: void setEnd (BranchObj*); insilmaril@95: void setEnd (QPoint); insilmaril@299: BranchObj* getEnd(); insilmaril@95: void setColor(QColor); insilmaril@97: QColor getColor(); insilmaril@97: void setWidth (int); insilmaril@97: int getWidth (); insilmaril@95: bool activate (); // Sets pointers in branchObjects insilmaril@95: void deactivate(); // removes those pointers insilmaril@95: bool isUsed(); // true, if at least on branch uses it insilmaril@95: void updateXLink(); insilmaril@95: BranchObj* otherBranch (BranchObj*); insilmaril@95: void positionBBox(); insilmaril@95: void calcBBoxSize(); insilmaril@95: void setVisibility (bool); insilmaril@95: void setVisibility (); insilmaril@95: QString saveToDir (); insilmaril@95: insilmaril@95: private: insilmaril@95: static int arrowSize; insilmaril@97: QColor color; insilmaril@97: int width; insilmaril@95: QCanvasLine *line; insilmaril@95: QCanvasPolygon *poly; insilmaril@95: BranchObj *beginBranch; insilmaril@95: BranchObj *endBranch; insilmaril@95: BranchObj *visBranch; // the "visible" part of a partially scrolled link insilmaril@95: XLinkState xLinkState; // init during drawing or active insilmaril@95: QPoint beginPos; insilmaril@95: QPoint endPos; insilmaril@95: }; insilmaril@95: insilmaril@95: #endif