insilmaril@86: #ifndef LINKOBJ_H insilmaril@86: #define LINKOBJ_H insilmaril@86: insilmaril@86: #include "linkablemapobj.h" insilmaril@86: insilmaril@86: enum LinkState {undefinedLink,initLink,activeLink,deleteLink}; insilmaril@86: insilmaril@86: ///////////////////////////////////////////////////////////////////////////// insilmaril@86: class LinkObj:public MapObj { insilmaril@86: public: insilmaril@86: LinkObj (); insilmaril@86: LinkObj (QCanvas*); insilmaril@86: ~LinkObj (); insilmaril@86: virtual void init (); insilmaril@86: virtual void copy (LinkObj*); insilmaril@86: void setBegin (BranchObj*); insilmaril@86: void setEnd (BranchObj*); insilmaril@86: void setEnd (QPoint); insilmaril@86: bool activate (); // Sets pointers in branchObjects insilmaril@86: void deactivate(); // removes those pointers insilmaril@86: bool isUsed(); // true, if at least on branch uses it insilmaril@86: void updateLink(); insilmaril@86: void positionBBox(); insilmaril@86: void calcBBoxSize(); insilmaril@86: void setVisibility (bool); insilmaril@86: insilmaril@86: private: insilmaril@86: QCanvasLine *line; insilmaril@86: BranchObj *beginBranch; insilmaril@86: BranchObj *endBranch; insilmaril@86: LinkState linkState; // init during drawing or active insilmaril@86: QPoint beginPos; insilmaril@86: QPoint endPos; insilmaril@86: }; insilmaril@86: insilmaril@86: #endif