2018-09-30 16:26:06 +03:00
|
|
|
#ifndef GUIOBJECT_H
|
|
|
|
#define GUIOBJECT_H
|
|
|
|
|
2018-10-08 21:10:07 +03:00
|
|
|
#include "baseclass.h"
|
|
|
|
#include "QObject"
|
2018-09-30 16:26:06 +03:00
|
|
|
|
2018-10-11 18:09:35 +03:00
|
|
|
#include <QRectF>
|
|
|
|
|
2019-07-30 01:00:00 +03:00
|
|
|
class GuiObject:public QObject, public BaseClass
|
2018-09-30 16:26:06 +03:00
|
|
|
{
|
2018-10-08 21:10:07 +03:00
|
|
|
Q_OBJECT
|
2018-11-14 23:15:36 +03:00
|
|
|
// @todo: add color
|
|
|
|
Q_PROPERTY(QString color READ color WRITE setColor NOTIFY colorChanged)
|
2018-10-11 18:09:35 +03:00
|
|
|
Q_PROPERTY(double angle READ angle NOTIFY angleChanged)
|
|
|
|
Q_PROPERTY(QString texture READ texture NOTIFY textureChanged)
|
|
|
|
Q_PROPERTY(int guiId READ guiId NOTIFY guiIdChanged)
|
2018-12-01 21:06:40 +03:00
|
|
|
Q_PROPERTY(QString viewTemplate READ viewTemplate NOTIFY viewTemplateChanged)
|
|
|
|
Q_PROPERTY(int radius READ radius WRITE setRadius NOTIFY radiusChanged)
|
2018-10-11 18:09:35 +03:00
|
|
|
|
2018-11-25 03:24:41 +03:00
|
|
|
Q_PROPERTY(double x READ x NOTIFY xChanged)
|
|
|
|
Q_PROPERTY(double y READ y NOTIFY yChanged)
|
|
|
|
Q_PROPERTY(double w READ w NOTIFY wChanged)
|
|
|
|
Q_PROPERTY(double h READ h NOTIFY hChanged)
|
|
|
|
|
2018-10-11 00:04:52 +03:00
|
|
|
private:
|
|
|
|
void generateId();
|
2018-12-01 21:06:40 +03:00
|
|
|
QString m_viewTemplate;
|
2018-10-11 18:09:35 +03:00
|
|
|
|
2018-10-08 21:10:07 +03:00
|
|
|
protected:
|
2018-12-01 21:06:40 +03:00
|
|
|
int m_guiId = -1;
|
|
|
|
double m_angle = 0;
|
|
|
|
QString m_texture = "";
|
|
|
|
QString m_color = "";
|
|
|
|
int m_radius = 0;
|
2018-11-25 03:24:41 +03:00
|
|
|
|
2018-12-01 21:06:40 +03:00
|
|
|
double m_x = 0;
|
|
|
|
double m_y = 0;
|
|
|
|
double m_w = 0;
|
|
|
|
double m_h = 0;
|
2018-10-11 00:04:52 +03:00
|
|
|
|
|
|
|
void setTexture(const QString &texture);
|
2018-11-04 16:11:55 +03:00
|
|
|
|
|
|
|
|
2018-09-30 16:26:06 +03:00
|
|
|
public:
|
2018-12-01 21:06:40 +03:00
|
|
|
GuiObject(const QString& viewTempalte = "GraphicItem", QObject *ptr = nullptr);
|
2018-10-08 21:10:07 +03:00
|
|
|
|
2018-10-11 18:09:35 +03:00
|
|
|
double angle() const;
|
|
|
|
QString texture() const;
|
2018-10-08 21:10:07 +03:00
|
|
|
|
2018-11-25 18:10:08 +03:00
|
|
|
void render() override;
|
2018-10-08 21:10:07 +03:00
|
|
|
|
2018-10-11 18:09:35 +03:00
|
|
|
QRectF rect() const;
|
2018-11-16 20:01:47 +03:00
|
|
|
virtual void setAngle(double angle);
|
2018-10-11 18:09:35 +03:00
|
|
|
int guiId() const;
|
2018-10-11 00:04:52 +03:00
|
|
|
|
2018-11-14 23:15:36 +03:00
|
|
|
QString color() const;
|
|
|
|
|
|
|
|
void setColor(QString color);
|
|
|
|
|
2018-11-25 03:24:41 +03:00
|
|
|
double x() const;
|
|
|
|
double y() const;
|
|
|
|
double w() const;
|
|
|
|
double h() const;
|
|
|
|
|
|
|
|
void setX(double x);
|
|
|
|
void setY(double y);
|
|
|
|
void setW(double w);
|
|
|
|
void setH(double h);
|
|
|
|
|
2018-11-25 18:10:08 +03:00
|
|
|
virtual void reset();
|
2018-12-01 21:06:40 +03:00
|
|
|
int radius() const;
|
|
|
|
QString viewTemplate() const;
|
|
|
|
|
|
|
|
public slots:
|
|
|
|
|
|
|
|
void setRadius(int radius);
|
2018-11-25 18:10:08 +03:00
|
|
|
|
2018-10-11 18:09:35 +03:00
|
|
|
signals:
|
|
|
|
void angleChanged(double angle);
|
|
|
|
void textureChanged(QString texture);
|
|
|
|
void guiIdChanged(int guiId);
|
2018-11-14 23:15:36 +03:00
|
|
|
void colorChanged(QString color);
|
2018-11-25 03:24:41 +03:00
|
|
|
void xChanged(double x);
|
|
|
|
void yChanged(double y);
|
|
|
|
void wChanged(double w);
|
|
|
|
void hChanged(double h);
|
2018-12-01 21:06:40 +03:00
|
|
|
void radiusChanged(int radius);
|
|
|
|
void viewTemplateChanged(QString viewTemplate);
|
2018-09-30 16:26:06 +03:00
|
|
|
};
|
|
|
|
|
2018-10-08 21:10:07 +03:00
|
|
|
#endif // GUIOBJECT_H
|