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