// This file generated by libqtelegram-code-generator.
// You can download it from: https://github.com/Aseman-Land/libqtelegram-code-generator
// DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN

#ifndef LQTG_TYPE_REPLYMARKUP_OBJECT
#define LQTG_TYPE_REPLYMARKUP_OBJECT

#include "telegramtypeqobject.h"
#include "telegram/types/replymarkup.h"

#include <QPointer>

class LIBQTELEGRAMSHARED_EXPORT ReplyMarkupObject : public TelegramTypeQObject
{
    Q_OBJECT
    Q_ENUMS(ReplyMarkupClassType)
    Q_PROPERTY(qint32 flags READ flags WRITE setFlags NOTIFY flagsChanged)
    Q_PROPERTY(bool resize READ resize WRITE setResize NOTIFY resizeChanged)
    Q_PROPERTY(QList<KeyboardButtonRow> rows READ rows WRITE setRows NOTIFY rowsChanged)
    Q_PROPERTY(bool selective READ selective WRITE setSelective NOTIFY selectiveChanged)
    Q_PROPERTY(bool singleUse READ singleUse WRITE setSingleUse NOTIFY singleUseChanged)
    Q_PROPERTY(ReplyMarkup core READ core WRITE setCore NOTIFY coreChanged)
    Q_PROPERTY(quint32 classType READ classType WRITE setClassType NOTIFY classTypeChanged)

public:
    enum ReplyMarkupClassType {
        TypeReplyKeyboardHide,
        TypeReplyKeyboardForceReply,
        TypeReplyKeyboardMarkup,
        TypeReplyInlineMarkup
    };

    ReplyMarkupObject(const ReplyMarkup &core, QObject *parent = 0);
    ReplyMarkupObject(QObject *parent = 0);
    virtual ~ReplyMarkupObject();

    void setFlags(qint32 flags);
    qint32 flags() const;

    void setResize(bool resize);
    bool resize() const;

    void setRows(const QList<KeyboardButtonRow> &rows);
    QList<KeyboardButtonRow> rows() const;

    void setSelective(bool selective);
    bool selective() const;

    void setSingleUse(bool singleUse);
    bool singleUse() const;

    void setClassType(quint32 classType);
    quint32 classType() const;

    void setCore(const ReplyMarkup &core);
    ReplyMarkup core() const;

    ReplyMarkupObject &operator =(const ReplyMarkup &b);
    bool operator ==(const ReplyMarkup &b) const;

Q_SIGNALS:
    void coreChanged();
    void classTypeChanged();
    void flagsChanged();
    void resizeChanged();
    void rowsChanged();
    void selectiveChanged();
    void singleUseChanged();

private Q_SLOTS:

private:
    ReplyMarkup m_core;
};

#endif // LQTG_TYPE_REPLYMARKUP_OBJECT
