4 #include "floatimageobj.h"
5 #include "linkablemapobj.h"
6 #include "ornamentedobj.h"
9 class BranchObjPtrList : public QPtrList<BranchObj>
11 virtual int compareItems (QPtrCollection::Item i, QPtrCollection::Item j);
14 /////////////////////////////////////////////////////////////////////////////
15 class BranchObj:public OrnamentedObj {
19 BranchObj (QCanvas*, LinkableMapObj* parent);
21 bool operator< ( const BranchObj & );
22 bool operator== ( const BranchObj & );
24 virtual void copy (BranchObj*);
26 virtual int getNum(); // return number of this in parent
27 virtual int getNum(BranchObj*); // return number of this in parent
28 virtual int getFloatImageNum(FloatImageObj*);
29 virtual int countBranches();
30 virtual int countFloatImages();
31 virtual int countXLinks();
32 virtual void setParObjTmp (LinkableMapObj*,QPoint,int);// Only for moving Obj around
33 virtual void unsetParObjTmp(); // reuse original ParObj
35 virtual void unScroll();
36 virtual void toggleScroll(); // scroll or unscroll
37 virtual bool isScrolled(); // returns scroll state
38 virtual bool hasScrolledParent(BranchObj*); // true, if any of the parents is scrolled
39 virtual void tmpUnscroll(); // unscroll scrolled parents temporary e.g. during "find" process
40 virtual void resetTmpUnscroll(); // scroll all tmp scrolled parents again e.g. when unselecting
42 virtual void setVisibility(bool,int); // set visibility
43 virtual void setVisibility(bool); // set vis. for w
44 virtual void setLinkColor(); // set the color of link
45 virtual void setColor(QColor,bool); // set the color of heading
48 BranchObj* first (); // set Iterator to first LMO
49 BranchObj* next (); // find next LMO after given one
50 BranchObj* getLastIterator(); // to interrupt and resume next iteration
51 void setLastIterator (BranchObj*); // needed by next()
53 virtual void move (double x,double y);
54 virtual void move (QPoint);
55 virtual void moveBy (double x,double y);
56 virtual void moveBy (QPoint);
57 virtual void positionBBox();
58 virtual void calcBBoxSize();
59 virtual LinkableMapObj* findMapObj(QPoint,LinkableMapObj*); // find MapObj
60 virtual void setHeading (QString);
61 virtual void setURL (QString);
62 virtual QString getURL ();
63 virtual void setVymLink (QString);
64 virtual QString getVymLink ();
65 virtual QString saveToDir (const QString&,const QString&, const QPoint&);// Save data recursivly to tempdir
66 virtual void addXLink (XLinkObj*);
67 virtual void removeXLinkRef (XLinkObj*); // Remove ref in list
68 virtual void deleteXLink (XLinkObj*); // remove references and delete XLinkObj
69 virtual void deleteXLinkAt (int); // remove references and delete XLinkObj
70 virtual int countXLink ();
71 virtual BranchObj* XLinkTargetAt (int);
72 virtual LinkableMapObj* addFloatImage();
73 virtual LinkableMapObj* addFloatImage(FloatImageObj*);
74 virtual void removeFloatImage(FloatImageObj*);
75 virtual FloatImageObj* getFirstFloatImage();
76 virtual FloatImageObj* getLastFloatImage();
77 virtual FloatImageObj* getFloatImageNum(const uint &);
79 virtual void savePosInAngle(); // write pos in angle for resorting
81 virtual BranchObj* addBranch();
82 virtual BranchObj* addBranch(BranchObj*); // makes deep copy of BranchObj
83 virtual BranchObj* addBranchPtr(BranchObj*); // just adds pointer
84 virtual BranchObj* insertBranch(int);
85 virtual BranchObj* insertBranch(BranchObj*,int);
86 virtual BranchObj* insertBranchPtr (BranchObj*,int);
87 virtual void removeBranch(BranchObj*);
88 virtual void removeBranchPtr (BranchObj*);
89 virtual void setLastSelectedBranch(BranchObj*);
90 virtual BranchObj* getLastSelectedBranch();
91 virtual BranchObj* getFirstBranch();
92 virtual BranchObj* getLastBranch();
93 virtual BranchObj* getBranchNum(const uint &);
94 virtual BranchObj* moveBranchUp(BranchObj*);
95 virtual BranchObj* moveBranchDown(BranchObj*);
96 virtual BranchObj* moveBranchTo (BranchObj*, int);
97 virtual void alignRelativeTo(const QPoint );
98 virtual void reposition();
100 virtual QRect getTotalBBox(); // return BBox including childs
101 virtual QRect getBBoxSizeWithChilds(); // return size of BBox including childs
102 virtual void calcBBoxSizeWithChilds(); // calc size of BBox including childs recursivly
104 virtual void select();
105 virtual void unselect();
106 virtual QString getSelectString();
109 static BranchObj* itLast; // iterator for first(), next()
110 BranchObjPtrList branch; // all child branches
111 QPtrList<FloatImageObj> floatimage; // child images
112 QPtrList<XLinkObj> xlink; // xlinks to other branches
114 float angle; // used in mainbranch to reorder mainbranches
116 int lastSelectedBranch; // for going deeper into tree
117 bool scrolled; // true if all childs are scrolled and thus invisible
118 bool tmpUnscrolled; // can only be true (temporary) for a scrolled subtree
119 QString url; // url to external doc
120 QString vymLink; // path to another map