// 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_PAGEBLOCK_OBJECT
#define LQTG_TYPE_PAGEBLOCK_OBJECT

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

#include <QPointer>
#include "richtextobject.h"
#include "chatobject.h"
#include "pageblockobject.h"

class LIBQTELEGRAMSHARED_EXPORT PageBlockObject : public TelegramTypeQObject
{
    Q_OBJECT
    Q_ENUMS(PageBlockClassType)
    Q_PROPERTY(bool allowScrolling READ allowScrolling WRITE setAllowScrolling NOTIFY allowScrollingChanged)
    Q_PROPERTY(qint64 audioId READ audioId WRITE setAudioId NOTIFY audioIdChanged)
    Q_PROPERTY(QString authorString READ authorString WRITE setAuthorString NOTIFY authorStringChanged)
    Q_PROPERTY(RichTextObject* authorRichText READ authorRichText WRITE setAuthorRichText NOTIFY authorRichTextChanged)
    Q_PROPERTY(qint64 authorPhotoId READ authorPhotoId WRITE setAuthorPhotoId NOTIFY authorPhotoIdChanged)
    Q_PROPERTY(bool autoplay READ autoplay WRITE setAutoplay NOTIFY autoplayChanged)
    Q_PROPERTY(QList<PageBlock> blocks READ blocks WRITE setBlocks NOTIFY blocksChanged)
    Q_PROPERTY(RichTextObject* caption READ caption WRITE setCaption NOTIFY captionChanged)
    Q_PROPERTY(ChatObject* channel READ channel WRITE setChannel NOTIFY channelChanged)
    Q_PROPERTY(PageBlockObject* cover READ cover WRITE setCover NOTIFY coverChanged)
    Q_PROPERTY(qint32 date READ date WRITE setDate NOTIFY dateChanged)
    Q_PROPERTY(qint32 flags READ flags WRITE setFlags NOTIFY flagsChanged)
    Q_PROPERTY(bool fullWidth READ fullWidth WRITE setFullWidth NOTIFY fullWidthChanged)
    Q_PROPERTY(qint32 h READ h WRITE setH NOTIFY hChanged)
    Q_PROPERTY(QString html READ html WRITE setHtml NOTIFY htmlChanged)
    Q_PROPERTY(QList<PageBlock> itemsVectorPageBlock READ itemsVectorPageBlock WRITE setItemsVectorPageBlock NOTIFY itemsVectorPageBlockChanged)
    Q_PROPERTY(QList<RichText> itemsVectorRichText READ itemsVectorRichText WRITE setItemsVectorRichText NOTIFY itemsVectorRichTextChanged)
    Q_PROPERTY(QString language READ language WRITE setLanguage NOTIFY languageChanged)
    Q_PROPERTY(bool loop READ loop WRITE setLoop NOTIFY loopChanged)
    Q_PROPERTY(QString name READ name WRITE setName NOTIFY nameChanged)
    Q_PROPERTY(bool ordered READ ordered WRITE setOrdered NOTIFY orderedChanged)
    Q_PROPERTY(qint64 photoId READ photoId WRITE setPhotoId NOTIFY photoIdChanged)
    Q_PROPERTY(qint64 posterPhotoId READ posterPhotoId WRITE setPosterPhotoId NOTIFY posterPhotoIdChanged)
    Q_PROPERTY(qint32 publishedDate READ publishedDate WRITE setPublishedDate NOTIFY publishedDateChanged)
    Q_PROPERTY(RichTextObject* text READ text WRITE setText NOTIFY textChanged)
    Q_PROPERTY(QString url READ url WRITE setUrl NOTIFY urlChanged)
    Q_PROPERTY(qint64 videoId READ videoId WRITE setVideoId NOTIFY videoIdChanged)
    Q_PROPERTY(qint32 w READ w WRITE setW NOTIFY wChanged)
    Q_PROPERTY(qint64 webpageId READ webpageId WRITE setWebpageId NOTIFY webpageIdChanged)
    Q_PROPERTY(PageBlock core READ core WRITE setCore NOTIFY coreChanged)
    Q_PROPERTY(quint32 classType READ classType WRITE setClassType NOTIFY classTypeChanged)

public:
    enum PageBlockClassType {
        TypePageBlockUnsupported,
        TypePageBlockTitle,
        TypePageBlockSubtitle,
        TypePageBlockAuthorDate,
        TypePageBlockHeader,
        TypePageBlockSubheader,
        TypePageBlockParagraph,
        TypePageBlockPreformatted,
        TypePageBlockFooter,
        TypePageBlockDivider,
        TypePageBlockAnchor,
        TypePageBlockList,
        TypePageBlockBlockquote,
        TypePageBlockPullquote,
        TypePageBlockPhoto,
        TypePageBlockVideo,
        TypePageBlockCover,
        TypePageBlockEmbed,
        TypePageBlockEmbedPost,
        TypePageBlockCollage,
        TypePageBlockSlideshow,
        TypePageBlockChannel,
        TypePageBlockAudio
    };

    PageBlockObject(const PageBlock &core, QObject *parent = 0);
    PageBlockObject(QObject *parent = 0);
    virtual ~PageBlockObject();

    void setAllowScrolling(bool allowScrolling);
    bool allowScrolling() const;

    void setAudioId(qint64 audioId);
    qint64 audioId() const;

    void setAuthorString(const QString &authorString);
    QString authorString() const;

    void setAuthorRichText(RichTextObject* authorRichText);
    RichTextObject* authorRichText() const;

    void setAuthorPhotoId(qint64 authorPhotoId);
    qint64 authorPhotoId() const;

    void setAutoplay(bool autoplay);
    bool autoplay() const;

    void setBlocks(const QList<PageBlock> &blocks);
    QList<PageBlock> blocks() const;

    void setCaption(RichTextObject* caption);
    RichTextObject* caption() const;

    void setChannel(ChatObject* channel);
    ChatObject* channel() const;

    void setCover(PageBlockObject* cover);
    PageBlockObject* cover() const;

    void setDate(qint32 date);
    qint32 date() const;

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

    void setFullWidth(bool fullWidth);
    bool fullWidth() const;

    void setH(qint32 h);
    qint32 h() const;

    void setHtml(const QString &html);
    QString html() const;

    void setItemsVectorPageBlock(const QList<PageBlock> &itemsVectorPageBlock);
    QList<PageBlock> itemsVectorPageBlock() const;

    void setItemsVectorRichText(const QList<RichText> &itemsVectorRichText);
    QList<RichText> itemsVectorRichText() const;

    void setLanguage(const QString &language);
    QString language() const;

    void setLoop(bool loop);
    bool loop() const;

    void setName(const QString &name);
    QString name() const;

    void setOrdered(bool ordered);
    bool ordered() const;

    void setPhotoId(qint64 photoId);
    qint64 photoId() const;

    void setPosterPhotoId(qint64 posterPhotoId);
    qint64 posterPhotoId() const;

    void setPublishedDate(qint32 publishedDate);
    qint32 publishedDate() const;

    void setText(RichTextObject* text);
    RichTextObject* text() const;

    void setUrl(const QString &url);
    QString url() const;

    void setVideoId(qint64 videoId);
    qint64 videoId() const;

    void setW(qint32 w);
    qint32 w() const;

    void setWebpageId(qint64 webpageId);
    qint64 webpageId() const;

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

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

    PageBlockObject &operator =(const PageBlock &b);
    bool operator ==(const PageBlock &b) const;

Q_SIGNALS:
    void coreChanged();
    void classTypeChanged();
    void allowScrollingChanged();
    void audioIdChanged();
    void authorStringChanged();
    void authorRichTextChanged();
    void authorPhotoIdChanged();
    void autoplayChanged();
    void blocksChanged();
    void captionChanged();
    void channelChanged();
    void coverChanged();
    void dateChanged();
    void flagsChanged();
    void fullWidthChanged();
    void hChanged();
    void htmlChanged();
    void itemsVectorPageBlockChanged();
    void itemsVectorRichTextChanged();
    void languageChanged();
    void loopChanged();
    void nameChanged();
    void orderedChanged();
    void photoIdChanged();
    void posterPhotoIdChanged();
    void publishedDateChanged();
    void textChanged();
    void urlChanged();
    void videoIdChanged();
    void wChanged();
    void webpageIdChanged();

private Q_SLOTS:
    void coreAuthorRichTextChanged();
    void coreCaptionChanged();
    void coreChannelChanged();
    void coreCoverChanged();
    void coreTextChanged();

private:
    QPointer<RichTextObject> m_authorRichText;
    QPointer<RichTextObject> m_caption;
    QPointer<ChatObject> m_channel;
    QPointer<PageBlockObject> m_cover;
    QPointer<RichTextObject> m_text;
    PageBlock m_core;
};

#endif // LQTG_TYPE_PAGEBLOCK_OBJECT
