insilmaril@847: #ifndef LINK_H insilmaril@847: #define LINK_H insilmaril@847: insilmaril@847: #include insilmaril@847: insilmaril@847: #include "xmlobj.h" insilmaril@847: insilmaril@847: class QPointF; insilmaril@847: class QGraphicsScene; insilmaril@847: class QString; insilmaril@847: insilmaril@847: class BranchItem; insilmaril@847: class LinkableMapObj; insilmaril@847: class VymModel; insilmaril@847: class XLinkItem; insilmaril@847: class XLinkObj; insilmaril@847: insilmaril@847: insilmaril@847: class Link:public XMLObj insilmaril@847: { insilmaril@847: public: insilmaril@847: enum XLinkState {undefinedXLink,initXLink,activeXLink,deleteXLink}; insilmaril@847: insilmaril@847: Link (VymModel *m); insilmaril@847: virtual ~Link(); insilmaril@847: virtual void init (); insilmaril@847: void setBeginBranch (BranchItem*); insilmaril@847: BranchItem* getBeginBranch(); insilmaril@847: void setEndBranch (BranchItem*); insilmaril@847: void setEndPoint(QPointF); insilmaril@847: BranchItem* getEndBranch(); insilmaril@847: void setBeginLinkItem (XLinkItem*); insilmaril@847: XLinkItem* getBeginLinkItem(); insilmaril@847: void setEndLinkItem (XLinkItem*); insilmaril@847: XLinkItem* getEndLinkItem (); insilmaril@847: void setColor(QColor); insilmaril@847: QColor getColor(); insilmaril@847: void setWidth (int); insilmaril@847: int getWidth (); insilmaril@847: bool activate (); insilmaril@847: void deactivate (); insilmaril@847: void removeXLinkItem (XLinkItem *xli); insilmaril@847: void updateLink(); insilmaril@847: QString saveToDir (); insilmaril@847: XLinkObj* getXLinkObj(); insilmaril@847: XLinkObj* createMapObj(QGraphicsScene *scene); insilmaril@847: insilmaril@847: private: insilmaril@847: XLinkState xLinkState; // init during drawing or active insilmaril@847: QColor color; insilmaril@847: int width; insilmaril@847: insilmaril@847: XLinkObj *xlo; insilmaril@847: VymModel *model; insilmaril@847: insilmaril@847: BranchItem *beginBranch; insilmaril@847: BranchItem *endBranch; insilmaril@847: XLinkItem *beginLinkItem; insilmaril@847: XLinkItem *endLinkItem; insilmaril@847: }; insilmaril@847: insilmaril@847: insilmaril@847: #endif insilmaril@847: