#ifndef BRANCHOBJ_H #define BRANCHOBJ_H #include "floatimageobj.h" #include "linkablemapobj.h" #include "ornamentedobj.h" #include "xlinkobj.h" /*! \brief A branch visible in the map */ ///////////////////////////////////////////////////////////////////////////// class BranchObj:public OrnamentedObj { public: /*! New branches will get use same color for heading as parent */ enum BranchModification {NewBranch, MovedBranch}; BranchObj (QGraphicsItem *parent=NULL,TreeItem *ti=NULL); ~BranchObj (); virtual void init (); virtual void copy (BranchObj*); void clear(); virtual void setParObjTmp (LinkableMapObj*,QPointF,int);// Only for moving Obj around virtual void unsetParObjTmp(); // reuse original ParObj virtual void setVisibility(bool,int); // set visibility virtual void setVisibility(bool); // set vis. for w virtual void setLinkColor(); // set the color of link virtual void positionContents(); virtual void move (double x,double y); virtual void move (QPointF); virtual void moveBy (double x,double y); virtual void moveBy (QPointF); virtual void positionBBox(); virtual void calcBBoxSize(); virtual void setDockPos(); virtual void updateData(); //! Update represantatio of heading, flags, etc. public: virtual void setDefAttr (BranchModification, bool keepFrame=false); // set default attributes (frame, font, size, ...) virtual void alignRelativeTo(const QPointF, bool alignSelf=false ); virtual void reposition(); virtual void unsetAllRepositionRequests(); virtual QRectF getTotalBBox(); // return size of BBox including children virtual ConvexPolygon getBoundingPolygon(); virtual void calcBBoxSizeWithChildren(); // calc size of BBox including children recursivly virtual void setAnimation(const AnimPoint &ap); virtual void stopAnimation(); virtual bool animate(); protected: AnimPoint anim; }; #endif