92 lines
2.1 KiB
C
Raw Normal View History

#ifndef GUIOBJECT_H
#define GUIOBJECT_H
2018-10-08 21:10:07 +03:00
#include "baseclass.h"
#include "QObject"
2018-10-11 18:09:35 +03:00
#include <QRectF>
class GuiObject:public QObject, public BaseClass
{
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);
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-10-08 21:10:07 +03:00
#endif // GUIOBJECT_H