branchobj.h
author insilmaril
Wed, 25 Nov 2009 10:58:21 +0000
changeset 807 f9f7922989d8
parent 796 cf634bbf9e04
child 817 b486ffd0fa11
permissions -rw-r--r--
Added demos/vym-contribute.vym, fixes for selecting items
     1 #ifndef BRANCHOBJ_H
     2 #define BRANCHOBJ_H
     3 
     4 #include "floatimageobj.h"
     5 #include "linkablemapobj.h"
     6 #include "ornamentedobj.h"
     7 #include "xlinkobj.h"
     8 
     9 bool isAbove(BranchObj*,BranchObj*);
    10 
    11 /*! \brief A branch visible in the map */
    12 
    13 /////////////////////////////////////////////////////////////////////////////
    14 class BranchObj:public OrnamentedObj {
    15 public:
    16 	/*! New branches will get use same color for heading as parent */
    17 	enum BranchModification {NewBranch, MovedBranch};
    18 
    19     BranchObj (QGraphicsScene*,TreeItem *ti=NULL);
    20     ~BranchObj ();
    21 	bool operator< ( const BranchObj & );
    22 	bool operator== ( const BranchObj & );
    23     virtual void init ();
    24     virtual void copy (BranchObj*);
    25     void clear();
    26 
    27     virtual void setParObjTmp (LinkableMapObj*,QPointF,int);// Only for moving Obj around
    28 	virtual void unsetParObjTmp();			// reuse original ParObj
    29 
    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
    33 
    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();
    43     
    44     virtual void updateData();	//! Update represantatio of heading, flags, etc.
    45 
    46 protected:	
    47 	virtual void savePosInAngle();					// write pos in angle for resorting			
    48 public:	
    49 	virtual void setDefAttr (BranchModification);	// set default attributes (font, size, ...)
    50 
    51     virtual void alignRelativeTo(const QPointF, bool alignSelf=false );
    52 	virtual void reposition();
    53 	virtual void unsetAllRepositionRequests();
    54 
    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
    59 
    60 	virtual QString getSelectString();
    61 	virtual void setAnimation(const AnimPoint &ap);
    62 	virtual bool animate();
    63 
    64 protected:
    65 	QList<XLinkObj*> xlink;			// xlinks to other branches
    66 
    67 	AnimPoint anim;
    68 
    69 public:	
    70 	float angle;					// used in mainbranch to reorder mainbranches
    71 };
    72 
    73 
    74 #endif
    75