Snake/back-end/guiobject.h

78 lines
1.6 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>
2018-10-08 21:10:07 +03:00
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-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-10-11 18:09:35 +03:00
2018-10-08 21:10:07 +03:00
protected:
2018-10-11 18:09:35 +03:00
int m_guiId;
double m_angle;
QString m_texture;
2018-11-14 23:15:36 +03:00
QString m_color;
2018-11-25 03:24:41 +03:00
double m_x;
double m_y;
double m_w;
double m_h;
2018-10-11 00:04:52 +03:00
void setTexture(const QString &texture);
public:
2018-10-08 21:10:07 +03:00
GuiObject(QObject *ptr = nullptr);
2018-10-11 18:09:35 +03:00
double angle() const;
QString texture() const;
2018-10-08 21:10:07 +03:00
2018-10-11 18:09:35 +03:00
void render();
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-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-10-08 21:10:07 +03:00
#endif // GUIOBJECT_H