branchobj.h
author insilmaril
Thu, 03 Sep 2009 08:52:00 +0000
changeset 790 133e2ed6b9c5
parent 785 5987f9f15bac
child 792 7d67be709091
permissions -rw-r--r--
More work on xLinks
insilmaril@0
     1
#ifndef BRANCHOBJ_H
insilmaril@0
     2
#define BRANCHOBJ_H
insilmaril@0
     3
insilmaril@0
     4
#include "floatimageobj.h"
insilmaril@0
     5
#include "linkablemapobj.h"
insilmaril@0
     6
#include "ornamentedobj.h"
insilmaril@95
     7
#include "xlinkobj.h"
insilmaril@390
     8
insilmaril@0
     9
insilmaril@462
    10
bool isAbove(BranchObj*,BranchObj*);
insilmaril@146
    11
insilmaril@462
    12
/*! \brief A branch visible in the map */
insilmaril@411
    13
insilmaril@0
    14
/////////////////////////////////////////////////////////////////////////////
insilmaril@0
    15
class BranchObj:public OrnamentedObj {
insilmaril@0
    16
public:
insilmaril@462
    17
	/*! New branches will get use same color for heading as parent */
insilmaril@462
    18
	enum BranchModification {NewBranch, MovedBranch};
insilmaril@462
    19
insilmaril@790
    20
    BranchObj (QGraphicsScene*,TreeItem *ti=NULL);
insilmaril@0
    21
    ~BranchObj ();
insilmaril@0
    22
	bool operator< ( const BranchObj & );
insilmaril@0
    23
	bool operator== ( const BranchObj & );
insilmaril@0
    24
    virtual void init ();
insilmaril@0
    25
    virtual void copy (BranchObj*);
insilmaril@0
    26
    void clear();
insilmaril@749
    27
insilmaril@408
    28
    virtual void setParObjTmp (LinkableMapObj*,QPointF,int);// Only for moving Obj around
insilmaril@0
    29
	virtual void unsetParObjTmp();			// reuse original ParObj
insilmaril@0
    30
insilmaril@0
    31
	virtual void setVisibility(bool,int);	// set visibility
insilmaril@0
    32
    virtual void setVisibility(bool);	    // set vis. for w
insilmaril@0
    33
	virtual void setLinkColor();			// set the color of link
insilmaril@0
    34
insilmaril@753
    35
	virtual void updateContentSize();
insilmaril@334
    36
	virtual void positionContents();
insilmaril@0
    37
    virtual void move (double x,double y);
insilmaril@408
    38
    virtual void move (QPointF);
insilmaril@0
    39
    virtual void moveBy (double x,double y);
insilmaril@408
    40
    virtual void moveBy (QPointF);
insilmaril@0
    41
    virtual void positionBBox();
insilmaril@0
    42
    virtual void calcBBoxSize();
insilmaril@223
    43
	virtual void setDockPos();
insilmaril@754
    44
    
insilmaril@767
    45
    virtual void updateData();	//! Update represantatio of heading, flags, etc.
insilmaril@749
    46
insilmaril@0
    47
protected:	
insilmaril@146
    48
	virtual void savePosInAngle();					// write pos in angle for resorting			
insilmaril@755
    49
public:	
insilmaril@146
    50
	virtual void setDefAttr (BranchModification);	// set default attributes (font, size, ...)
insilmaril@760
    51
insilmaril@604
    52
    virtual void sortChildren();
insilmaril@721
    53
    virtual void alignRelativeTo(const QPointF, bool alignSelf=false );
insilmaril@0
    54
	virtual void reposition();
insilmaril@382
    55
	virtual void unsetAllRepositionRequests();
insilmaril@0
    56
insilmaril@661
    57
	virtual QPolygonF shape();				//!< Returns arbitrary bounding polygon
insilmaril@721
    58
	virtual QRectF getTotalBBox();			// return BBox including children			
insilmaril@721
    59
	virtual QRectF getBBoxSizeWithChildren();	// return size of BBox including children  
insilmaril@721
    60
	virtual void calcBBoxSizeWithChildren();	// calc size of  BBox including children recursivly
insilmaril@0
    61
insilmaril@0
    62
	virtual QString getSelectString();
insilmaril@688
    63
	virtual void setAnimation(const AnimPoint &ap);
insilmaril@688
    64
	virtual bool animate();
insilmaril@0
    65
insilmaril@0
    66
protected:
insilmaril@406
    67
	QList<XLinkObj*> xlink;			// xlinks to other branches
insilmaril@688
    68
insilmaril@688
    69
	AnimPoint anim;
insilmaril@688
    70
insilmaril@0
    71
public:	
insilmaril@0
    72
	float angle;					// used in mainbranch to reorder mainbranches
insilmaril@0
    73
};
insilmaril@0
    74
insilmaril@0
    75
insilmaril@0
    76
#endif
insilmaril@0
    77