#ifndef QWWIDGETDIALOGUEMANAGER_H
#define QWWIDGETDIALOGUEMANAGER_H

#include "qw_abstractdialoguemanager.h"

class QWWidgetDialogue;
class QQuickWidget;

class QWWidgetDialogueManager final : public QWAbstractDialogueManager
{
    Q_OBJECT
    Q_DISABLE_COPY_MOVE(QWWidgetDialogueManager)
private:
    std::shared_ptr<QWWidgetDialogue> widget_dialogue;
    QQuickWidget *quick_view;

public:
    explicit QWWidgetDialogueManager(QWScene *scene = nullptr);
    virtual ~QWWidgetDialogueManager() override;

    virtual void activateDialogue(const std::shared_ptr<QWAbstractGameDialogue> &dialogue) override;

public slots:
    virtual void onClicked(MouseButton mouse_button) override;
    void onDestroyingWidget();
};

#endif // QWWIDGETDIALOGUEMANAGER_H