mirror of
https://github.com/QuasarApp/Snake.git
synced 2025-04-26 01:34:40 +00:00
92 lines
2.1 KiB
C++
92 lines
2.1 KiB
C++
#ifndef GUIOBJECT_H
|
|
#define GUIOBJECT_H
|
|
|
|
#include "baseclass.h"
|
|
#include "QObject"
|
|
|
|
#include <QRectF>
|
|
|
|
class GuiObject:public QObject, public BaseClass
|
|
{
|
|
Q_OBJECT
|
|
// @todo: add color
|
|
Q_PROPERTY(QString color READ color WRITE setColor NOTIFY colorChanged)
|
|
Q_PROPERTY(double angle READ angle NOTIFY angleChanged)
|
|
Q_PROPERTY(QString texture READ texture NOTIFY textureChanged)
|
|
Q_PROPERTY(int guiId READ guiId NOTIFY guiIdChanged)
|
|
Q_PROPERTY(QString viewTemplate READ viewTemplate NOTIFY viewTemplateChanged)
|
|
Q_PROPERTY(int radius READ radius WRITE setRadius NOTIFY radiusChanged)
|
|
|
|
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)
|
|
|
|
private:
|
|
void generateId();
|
|
QString m_viewTemplate;
|
|
|
|
protected:
|
|
int m_guiId = -1;
|
|
double m_angle = 0;
|
|
QString m_texture = "";
|
|
QString m_color = "";
|
|
int m_radius = 0;
|
|
|
|
double m_x = 0;
|
|
double m_y = 0;
|
|
double m_w = 0;
|
|
double m_h = 0;
|
|
|
|
void setTexture(const QString &texture);
|
|
|
|
|
|
public:
|
|
GuiObject(const QString& viewTempalte = "GraphicItem", QObject *ptr = nullptr);
|
|
|
|
double angle() const;
|
|
QString texture() const;
|
|
|
|
void render() override;
|
|
|
|
QRectF rect() const;
|
|
virtual void setAngle(double angle);
|
|
int guiId() const;
|
|
|
|
QString color() const;
|
|
|
|
void setColor(QString color);
|
|
|
|
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);
|
|
|
|
virtual void reset();
|
|
int radius() const;
|
|
QString viewTemplate() const;
|
|
|
|
public slots:
|
|
|
|
void setRadius(int radius);
|
|
|
|
signals:
|
|
void angleChanged(double angle);
|
|
void textureChanged(QString texture);
|
|
void guiIdChanged(int guiId);
|
|
void colorChanged(QString color);
|
|
void xChanged(double x);
|
|
void yChanged(double y);
|
|
void wChanged(double w);
|
|
void hChanged(double h);
|
|
void radiusChanged(int radius);
|
|
void viewTemplateChanged(QString viewTemplate);
|
|
};
|
|
|
|
#endif // GUIOBJECT_H
|