/*
*****************************************************************
*
* class : CTaenzer
* description :
* author : Markus@Oenning.de
* revision : $Revision$
* date: $Date$
*
*****************************************************************
*/
#ifndef CTAENZER_H
#define CTAENZER_H
#include <QGraphicsItem>
#include <QGraphicsScene>
#include <QObject>
#include <QPainter>
#include <QPen>
#include <QTimer>
#include <QPointF>
#include <QColor>
#include <QKeyEvent>
#include <QPropertyAnimation>
class CTaenzer : public QObject, public QGraphicsItem
{
Q_OBJECT
Q_INTERFACES(QGraphicsItem)
Q_PROPERTY(QPointF pos READ pos WRITE setPos)
protected: //TODO set protected
QPointF m_posBuffer;
qreal m_raster; // 0,1,2,3,4,5
qint32 m_width;
qint32 m_pxPerMeter;
qreal m_flaechenBreite;
qreal m_flaechenLaenge;
QRectF m_boundingRect;
public:
CTaenzer();
~CTaenzer();
QRectF boundingRect() const;
void paint(QPainter *f_painter, const QStyleOptionGraphicsItem *option,
QWidget *widget);
void keyPressEvent ( QKeyEvent * f_event );
void switchNumberName();
void mouseMoveEvent ( QGraphicsSceneMouseEvent * event );
void setAni (QPointF startPos, QPointF endPos, qint32 duration );
void setPos2( QPointF f_point);
void setPos2( qreal f_x, qreal f_y);
QPointF getPosMeter();
void setPosMeter(QPointF f_posMeter);
QPropertyAnimation *m_animation;
qreal m_posXMeter;//<<
qreal m_posYMeter;//<<
qint32 m_radius;//<<
qint32 m_nummer; //<<
bool m_showCords;//<<
QString m_name;//<<
QColor m_color;//<<
qint8 m_byteNumberName;//<< // 0= show nothing, 1=show Name, 2=show Number, 3=show both
// get methods for member
// m_animation
QPointF get_posBuffer() {return m_posBuffer;};
qreal get_raster() {return m_raster;};
qint32 get_width() {return m_width;};
qint32 get_pxPerMeter() {return m_pxPerMeter;};
qreal get_flaechenBreite() {return m_flaechenBreite;};
qreal get_flaechenLaenge() {return m_flaechenLaenge;};
QRectF get_boundingRect() {return m_boundingRect;};
qreal get_posXMeter() {return m_posXMeter;};
qreal get_posYMeter() {return m_posYMeter;};
qint32 get_radius() {return m_radius;};
qint32 get_nummer() {return m_nummer;};
bool get_showCords() {return m_showCords;};
QString get_name() {return m_name;};
QColor get_color() {return m_color;};
qint8 get_byteNumberName() {return m_byteNumberName;};
// set methods for member
// m_animation
void set_posBuffer(QPointF f_posBuffer) { m_posBuffer = f_posBuffer;};
void set_raster(qreal f_raster) { m_raster = f_raster;};
void set_width(qint32 f_width) { m_width = f_width;};
void set_pxPerMeter(qint32 f_pxPerMeter) { m_pxPerMeter = f_pxPerMeter;};
void set_flaechenBreite(qreal f_flaecheBreite) { m_flaechenBreite = f_flaecheBreite;};
void set_flaechenLaenge(qreal f_flaecheLaenge) { m_flaechenLaenge = f_flaecheLaenge;};
void set_boundingRect(QRectF f_boundingRect) { m_boundingRect = f_boundingRect;};
void set_posXMeter(qreal f_posXMeter) { m_posXMeter = f_posXMeter;};
void set_posYMeter(qreal f_posYMeter) { m_posYMeter = f_posYMeter;};
void set_radius(qint32 f_radius) { m_radius = f_radius;};
void set_nummer(qint32 f_nummer) { m_nummer = f_nummer;};
void set_showCords(bool f_showCords) { m_showCords = f_showCords;};
void set_name(QString f_name) { m_name = f_name;};
void set_color(QColor f_color) { m_color = f_color;};
void set_byteNumberName(qint8 f_byteNumberName) { m_byteNumberName = f_byteNumberName;};
private slots:
};
inline QDataStream& operator<<(QDataStream& out, const CTaenzer& f_taenzer)
{
out << f_taenzer.m_nummer;
out << f_taenzer.m_name;
out << f_taenzer.m_posXMeter;
out << f_taenzer.m_posYMeter;
out << f_taenzer.m_showCords;
out << f_taenzer.m_radius;
out << f_taenzer.m_color;
out << f_taenzer.m_byteNumberName;
return out;
}
inline QDataStream& operator>>(QDataStream& in, CTaenzer& f_taenzer)
{
in >> f_taenzer.m_nummer;
in >> f_taenzer.m_name;
in >> f_taenzer.m_posXMeter;
in >> f_taenzer.m_posYMeter;
in >> f_taenzer.m_showCords;
in >> f_taenzer.m_radius;
in >> f_taenzer.m_color;
in >> f_taenzer.m_byteNumberName;
return in;
}
#endif // CTAENZER_H