mapobj.h
author insilmaril
Thu, 18 Mar 2010 11:46:52 +0000
changeset 839 fbb927bbdda3
parent 794 d922fb6ea482
permissions -rw-r--r--
Version bump to 1.13.1 due to first release of 1.13.0 to openSUSE buildservice
insilmaril@0
     1
#ifndef MAPOBJ_H
insilmaril@0
     2
#define MAPOBJ_H
insilmaril@0
     3
insilmaril@408
     4
#include <QGraphicsScene>
insilmaril@408
     5
#include <QGraphicsItem>
insilmaril@0
     6
insilmaril@616
     7
#include "xmlobj.h"
insilmaril@0
     8
insilmaril@772
     9
#define Z_BBOX       0
insilmaril@772
    10
#define Z_XLINK     10
insilmaril@772
    11
#define Z_LINK      20
insilmaril@772
    12
#define Z_FRAME     50
insilmaril@772
    13
#define Z_SELBOX    60
insilmaril@772
    14
#define Z_FLOATIMG  65
insilmaril@772
    15
#define Z_ICON      80
insilmaril@772
    16
#define Z_TEXT     100
insilmaril@772
    17
#define Z_LINEEDIT 110
insilmaril@0
    18
insilmaril@792
    19
class ConvexPolygon;
insilmaril@790
    20
insilmaril@790
    21
class TreeItem;
insilmaril@790
    22
insilmaril@474
    23
/*! \brief Base class for all objects visible on a map
insilmaril@474
    24
*/
insilmaril@474
    25
insilmaril@616
    26
class MapObj:public XMLObj {
insilmaril@0
    27
public:
insilmaril@0
    28
    MapObj ();
insilmaril@790
    29
    MapObj (QGraphicsScene *scene,TreeItem *ti=NULL);
insilmaril@0
    30
    MapObj (MapObj*);
insilmaril@0
    31
    virtual ~MapObj ();
insilmaril@0
    32
    virtual void init ();
insilmaril@0
    33
    virtual void copy (MapObj*);
insilmaril@790
    34
insilmaril@790
    35
	virtual void setTreeItem(TreeItem *);
insilmaril@790
    36
	virtual TreeItem* getTreeItem() const;
insilmaril@790
    37
insilmaril@408
    38
	virtual QGraphicsScene* getScene();
insilmaril@408
    39
    virtual qreal x();
insilmaril@408
    40
    virtual qreal y();
insilmaril@408
    41
	virtual qreal width();
insilmaril@408
    42
	virtual qreal height();
insilmaril@408
    43
	virtual QPointF getAbsPos();
insilmaril@792
    44
	virtual QString getPos();					//! Return position as string (x,y)
insilmaril@792
    45
    virtual void move (double x,double y);      //! move to absolute Position
insilmaril@408
    46
    virtual void move (QPointF p);
insilmaril@792
    47
    virtual void moveBy (double x,double y);    //! move to relative Position
insilmaril@792
    48
    virtual QRectF getBBox();					//! returns bounding box
insilmaril@792
    49
    virtual ConvexPolygon getBoundingPolygon();	//! return bounding convex polygon
insilmaril@792
    50
    virtual QRectF getClickBox();				//! returns box to click
insilmaril@754
    51
	virtual bool isInClickBox (const QPointF &p);	//! Checks if p is in clickBox
insilmaril@792
    52
    virtual QSizeF getSize();					//! returns size of bounding box
insilmaril@0
    53
    virtual bool isVisibleObj();
insilmaril@0
    54
    virtual void setVisibility(bool);
insilmaril@175
    55
    virtual void positionBBox()=0;       
insilmaril@175
    56
	virtual void calcBBoxSize()=0;
insilmaril@0
    57
protected:  
insilmaril@408
    58
    QGraphicsScene* scene;
insilmaril@792
    59
    QRectF bbox;					// bounding box of MO itself
insilmaril@792
    60
	QRectF clickBox;				// area where mouseclicks are found
insilmaril@792
    61
    QPointF absPos;				    // Position on canvas
insilmaril@0
    62
    bool visible;
insilmaril@790
    63
insilmaril@792
    64
	TreeItem *treeItem;				//! Crossrefence to treemodel
insilmaril@790
    65
insilmaril@794
    66
	QGraphicsPolygonItem *pi;	//FIXME-3 testing only
insilmaril@0
    67
};
insilmaril@0
    68
insilmaril@0
    69
#endif