insilmaril@0: #ifndef BRANCHOBJ_H insilmaril@0: #define BRANCHOBJ_H insilmaril@0: insilmaril@0: #include "floatimageobj.h" insilmaril@0: #include "linkablemapobj.h" insilmaril@0: #include "ornamentedobj.h" insilmaril@95: #include "xlinkobj.h" insilmaril@390: insilmaril@462: /*! \brief A branch visible in the map */ insilmaril@411: insilmaril@0: ///////////////////////////////////////////////////////////////////////////// insilmaril@0: class BranchObj:public OrnamentedObj { insilmaril@0: public: insilmaril@462: /*! New branches will get use same color for heading as parent */ insilmaril@462: enum BranchModification {NewBranch, MovedBranch}; insilmaril@462: insilmaril@790: BranchObj (QGraphicsScene*,TreeItem *ti=NULL); insilmaril@0: ~BranchObj (); insilmaril@0: virtual void init (); insilmaril@0: virtual void copy (BranchObj*); insilmaril@0: void clear(); insilmaril@749: insilmaril@408: virtual void setParObjTmp (LinkableMapObj*,QPointF,int);// Only for moving Obj around insilmaril@0: virtual void unsetParObjTmp(); // reuse original ParObj insilmaril@0: insilmaril@0: virtual void setVisibility(bool,int); // set visibility insilmaril@0: virtual void setVisibility(bool); // set vis. for w insilmaril@0: virtual void setLinkColor(); // set the color of link insilmaril@0: insilmaril@753: virtual void updateContentSize(); insilmaril@334: virtual void positionContents(); insilmaril@0: virtual void move (double x,double y); insilmaril@408: virtual void move (QPointF); insilmaril@0: virtual void moveBy (double x,double y); insilmaril@408: virtual void moveBy (QPointF); insilmaril@0: virtual void positionBBox(); insilmaril@0: virtual void calcBBoxSize(); insilmaril@223: virtual void setDockPos(); insilmaril@754: insilmaril@767: virtual void updateData(); //! Update represantatio of heading, flags, etc. insilmaril@749: insilmaril@755: public: insilmaril@822: virtual void setDefAttr (BranchModification, bool keepFrame=false); // set default attributes (frame, font, size, ...) insilmaril@760: insilmaril@721: virtual void alignRelativeTo(const QPointF, bool alignSelf=false ); insilmaril@0: virtual void reposition(); insilmaril@382: virtual void unsetAllRepositionRequests(); insilmaril@0: insilmaril@721: virtual QRectF getBBoxSizeWithChildren(); // return size of BBox including children insilmaril@793: virtual ConvexPolygon getBoundingPolygon(); insilmaril@721: virtual void calcBBoxSizeWithChildren(); // calc size of BBox including children recursivly insilmaril@0: insilmaril@688: virtual void setAnimation(const AnimPoint &ap); insilmaril@688: virtual bool animate(); insilmaril@0: insilmaril@0: protected: insilmaril@406: QList xlink; // xlinks to other branches insilmaril@688: insilmaril@688: AnimPoint anim; insilmaril@0: }; insilmaril@0: insilmaril@0: insilmaril@0: #endif insilmaril@0: