X-Git-Url: https://git.sven.stormbind.net/?a=blobdiff_plain;f=src%2Fxlink.h;fp=src%2Fxlink.h;h=66f0fb5888237785df6299df8240933dd3fb02a6;hb=d483bd8e6523c23c6f1d8908a2e0611c2bc9ff4f;hp=0000000000000000000000000000000000000000;hpb=7dfa3fe589d1722d49681f42cdb0bf1e6efb5223;p=sven%2Fvym.git diff --git a/src/xlink.h b/src/xlink.h new file mode 100644 index 0000000..66f0fb5 --- /dev/null +++ b/src/xlink.h @@ -0,0 +1,70 @@ +#ifndef LINK_H +#define LINK_H + +#include +#include + +#include "xmlobj.h" + +class QPointF; +class QGraphicsScene; +class QString; + +class BranchItem; +class MapObj; +class LinkableMapObj; +class VymModel; +class XLinkItem; +class XLinkObj; + +class Link : public XMLObj { + public: + enum XLinkState { undefinedXLink, initXLink, activeXLink, deleteXLink }; + enum LinkType { Linear, Bezier }; + + Link(VymModel *m); + virtual ~Link(); + virtual void init(); + VymModel *getModel(); + void setBeginBranch(BranchItem *); + BranchItem *getBeginBranch(); + void setEndBranch(BranchItem *); + void setEndPoint(QPointF); + BranchItem *getEndBranch(); + void setBeginLinkItem(XLinkItem *); + XLinkItem *getBeginLinkItem(); + void setEndLinkItem(XLinkItem *); + XLinkItem *getEndLinkItem(); + XLinkItem *getOtherEnd(XLinkItem *); + void setPen(const QPen &p); + QPen getPen(); + void setLinkType(const QString &s); + void setStyleBegin(const QString &s); + QString getStyleBeginString(); + void setStyleEnd(const QString &s); + QString getStyleEndString(); + bool activate(); + void deactivate(); + XLinkState getState(); + void removeXLinkItem(XLinkItem *xli); + void updateLink(); + QString saveToDir(); + XLinkObj *getXLinkObj(); + XLinkObj *createMapObj(); + MapObj *getMO(); + + private: + XLinkState xLinkState; // init during drawing or active + LinkType type; + QPen pen; + + XLinkObj *xlo; + VymModel *model; + + BranchItem *beginBranch; + BranchItem *endBranch; + XLinkItem *beginLinkItem; + XLinkItem *endLinkItem; +}; + +#endif