4 #include "floatimageobj.h"
5 #include "linkablemapobj.h"
6 #include "ornamentedobj.h"
9 bool isAbove(BranchObj*,BranchObj*);
11 /*! \brief A branch visible in the map */
13 /////////////////////////////////////////////////////////////////////////////
14 class BranchObj:public OrnamentedObj {
16 /*! New branches will get use same color for heading as parent */
17 enum BranchModification {NewBranch, MovedBranch};
19 BranchObj (QGraphicsScene*,TreeItem *ti=NULL);
21 bool operator< ( const BranchObj & );
22 bool operator== ( const BranchObj & );
24 virtual void copy (BranchObj*);
27 virtual void setParObjTmp (LinkableMapObj*,QPointF,int);// Only for moving Obj around
28 virtual void unsetParObjTmp(); // reuse original ParObj
30 virtual void setVisibility(bool,int); // set visibility
31 virtual void setVisibility(bool); // set vis. for w
32 virtual void setLinkColor(); // set the color of link
34 virtual void updateContentSize();
35 virtual void positionContents();
36 virtual void move (double x,double y);
37 virtual void move (QPointF);
38 virtual void moveBy (double x,double y);
39 virtual void moveBy (QPointF);
40 virtual void positionBBox();
41 virtual void calcBBoxSize();
42 virtual void setDockPos();
44 virtual void updateData(); //! Update represantatio of heading, flags, etc.
47 virtual void savePosInAngle(); // write pos in angle for resorting
49 virtual void setDefAttr (BranchModification); // set default attributes (font, size, ...)
51 virtual void alignRelativeTo(const QPointF, bool alignSelf=false );
52 virtual void reposition();
53 virtual void unsetAllRepositionRequests();
55 virtual QRectF getTotalBBox(); // return BBox including children
56 virtual QRectF getBBoxSizeWithChildren(); // return size of BBox including children
57 virtual ConvexPolygon getBoundingPolygon();
58 virtual void calcBBoxSizeWithChildren(); // calc size of BBox including children recursivly
60 virtual QString getSelectString();
61 virtual void setAnimation(const AnimPoint &ap);
62 virtual bool animate();
65 QList<XLinkObj*> xlink; // xlinks to other branches
70 float angle; // used in mainbranch to reorder mainbranches