branchobj.h
author insilmaril
Mon, 28 Feb 2005 16:22:29 +0000
changeset 91 855c486b9360
parent 89 9db3eaa21237
child 94 6783e13bb05d
permissions -rw-r--r--
created vym_de.ts
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@83
     7
#include "linkobj.h"
insilmaril@0
     8
insilmaril@0
     9
class BranchObjPtrList : public QPtrList<BranchObj>
insilmaril@0
    10
{
insilmaril@0
    11
	virtual int compareItems (QPtrCollection::Item i, QPtrCollection::Item j);
insilmaril@0
    12
};
insilmaril@0
    13
insilmaril@0
    14
/////////////////////////////////////////////////////////////////////////////
insilmaril@0
    15
class BranchObj:public OrnamentedObj {
insilmaril@0
    16
public:
insilmaril@0
    17
    BranchObj ();
insilmaril@0
    18
    BranchObj (QCanvas*);
insilmaril@0
    19
    BranchObj (QCanvas*, LinkableMapObj* parent);
insilmaril@0
    20
    ~BranchObj ();
insilmaril@0
    21
	bool operator< ( const BranchObj & );
insilmaril@0
    22
	bool operator== ( const BranchObj & );
insilmaril@0
    23
    virtual void init ();
insilmaril@0
    24
    virtual void copy (BranchObj*);
insilmaril@0
    25
    void clear();
insilmaril@0
    26
	virtual int getNum();				// return number of this in parent
insilmaril@0
    27
	virtual int getNum(BranchObj*);		// return number of this in parent
insilmaril@0
    28
	virtual int getFloatImageNum(FloatImageObj*);		
insilmaril@0
    29
	virtual int countBranches();		
insilmaril@0
    30
	virtual int countFloatImages();		
insilmaril@89
    31
	virtual int countLinks();		
insilmaril@0
    32
    virtual void setParObjTmp (LinkableMapObj*,QPoint,int);// Only for moving Obj around
insilmaril@0
    33
	virtual void unsetParObjTmp();			// reuse original ParObj
insilmaril@0
    34
insilmaril@0
    35
	virtual void unScroll();				
insilmaril@0
    36
	virtual void toggleScroll();			// scroll or unscroll
insilmaril@0
    37
	virtual bool isScrolled();				// returns scroll state
insilmaril@0
    38
	virtual bool hasScrolledParent(BranchObj*);	// true, if any of the parents is scrolled
insilmaril@0
    39
	virtual void tmpUnscroll();				// unscroll scrolled parents temporary e.g. during "find" process
insilmaril@0
    40
	virtual void resetTmpUnscroll();		// scroll all tmp scrolled parents again e.g. when unselecting
insilmaril@0
    41
insilmaril@0
    42
	virtual void setVisibility(bool,int);	// set visibility
insilmaril@0
    43
    virtual void setVisibility(bool);	    // set vis. for w
insilmaril@0
    44
	virtual void setLinkColor();			// set the color of link
insilmaril@0
    45
	virtual void setColor(QColor,bool);		// set the color of heading
insilmaril@0
    46
insilmaril@0
    47
insilmaril@0
    48
	BranchObj* first ();				// set Iterator to first LMO
insilmaril@0
    49
	BranchObj* next ();					// find next LMO after given one
insilmaril@0
    50
	BranchObj* getLastIterator();		// to interrupt and resume next iteration
insilmaril@0
    51
	void setLastIterator (BranchObj*);	// needed by next() 
insilmaril@0
    52
insilmaril@0
    53
    virtual void move (double x,double y);
insilmaril@0
    54
    virtual void move (QPoint);
insilmaril@0
    55
    virtual void moveBy (double x,double y);
insilmaril@0
    56
    virtual void moveBy (QPoint);
insilmaril@0
    57
    virtual void positionBBox();
insilmaril@0
    58
    virtual void calcBBoxSize();
insilmaril@0
    59
    virtual LinkableMapObj* findMapObj(QPoint,LinkableMapObj*);	// find MapObj 
insilmaril@0
    60
    virtual void setHeading (QString);
insilmaril@0
    61
    virtual void setURL (QString);
insilmaril@0
    62
    virtual QString getURL ();
insilmaril@0
    63
    virtual void setVymLink (QString);
insilmaril@0
    64
    virtual QString getVymLink ();
insilmaril@0
    65
	virtual QString saveToDir (const QString&,const QString&, const QPoint&);// Save data recursivly to tempdir
insilmaril@83
    66
	virtual void addLink (LinkObj*);
insilmaril@83
    67
	virtual void removeLink (LinkObj*);
insilmaril@83
    68
	virtual void deleteLink (LinkObj*);
insilmaril@83
    69
	virtual int countLink ();
insilmaril@89
    70
	virtual BranchObj* linkTargetAt (int);
insilmaril@0
    71
	virtual LinkableMapObj* addFloatImage();
insilmaril@0
    72
	virtual LinkableMapObj* addFloatImage(FloatImageObj*);
insilmaril@0
    73
	virtual void removeFloatImage(FloatImageObj*);
insilmaril@0
    74
    virtual FloatImageObj* getFirstFloatImage();
insilmaril@0
    75
    virtual FloatImageObj* getLastFloatImage();
insilmaril@0
    76
	virtual FloatImageObj* getFloatImageNum(const uint &);
insilmaril@0
    77
protected:	
insilmaril@0
    78
	virtual void savePosInAngle();			// write pos in angle for resorting			
insilmaril@0
    79
public:	
insilmaril@0
    80
    virtual BranchObj* addBranch();
insilmaril@0
    81
    virtual BranchObj* addBranch(BranchObj*);		// makes deep copy of BranchObj
insilmaril@83
    82
    virtual BranchObj* addBranchPtr(BranchObj*);	// just adds pointer
insilmaril@0
    83
    virtual BranchObj* insertBranch(int);
insilmaril@0
    84
    virtual BranchObj* insertBranch(BranchObj*,int);
insilmaril@83
    85
    virtual BranchObj* insertBranchPtr (BranchObj*,int);
insilmaril@0
    86
    virtual void removeBranch(BranchObj*);  
insilmaril@83
    87
    virtual void removeBranchPtr (BranchObj*);  
insilmaril@0
    88
    virtual void setLastSelectedBranch(BranchObj*);
insilmaril@0
    89
    virtual BranchObj* getLastSelectedBranch();
insilmaril@0
    90
    virtual BranchObj* getFirstBranch();
insilmaril@0
    91
    virtual BranchObj* getLastBranch();
insilmaril@0
    92
	virtual BranchObj* getBranchNum(const uint &);
insilmaril@0
    93
    virtual BranchObj* moveBranchUp(BranchObj*);
insilmaril@0
    94
    virtual BranchObj* moveBranchDown(BranchObj*);
insilmaril@83
    95
    virtual BranchObj* moveBranchTo (BranchObj*, int);
insilmaril@0
    96
    virtual void alignRelativeTo(const QPoint );
insilmaril@0
    97
	virtual void reposition();
insilmaril@0
    98
insilmaril@0
    99
	virtual QRect getTotalBBox();			// return BBox including childs			
insilmaril@0
   100
	virtual QRect getBBoxSizeWithChilds();	// return size of BBox including childs  
insilmaril@0
   101
	virtual void calcBBoxSizeWithChilds();	// calc size of  BBox including childs recursivly
insilmaril@0
   102
insilmaril@0
   103
    virtual void select();
insilmaril@0
   104
    virtual void unselect();
insilmaril@0
   105
	virtual QString getSelectString();
insilmaril@0
   106
insilmaril@0
   107
protected:
insilmaril@0
   108
	static BranchObj* itLast;		// iterator for first(), next()
insilmaril@0
   109
    BranchObjPtrList branch;		// all child branches
insilmaril@0
   110
	QPtrList<FloatImageObj> floatimage;	// child images
insilmaril@83
   111
	QPtrList<LinkObj> link;			// links to other branches
insilmaril@0
   112
public:	
insilmaril@0
   113
	float angle;					// used in mainbranch to reorder mainbranches
insilmaril@0
   114
protected:	
insilmaril@0
   115
    int lastSelectedBranch;			// for going deeper into tree
insilmaril@0
   116
	bool scrolled;					// true if all childs are scrolled and thus invisible
insilmaril@0
   117
	bool tmpUnscrolled;				// can only be true (temporary) for a scrolled subtree
insilmaril@0
   118
	QString url;					// url to external doc
insilmaril@0
   119
	QString vymLink;				// path to another map
insilmaril@0
   120
};
insilmaril@0
   121
insilmaril@0
   122
insilmaril@0
   123
#endif
insilmaril@0
   124