#pragma once

#include <Window.h>
#include <UIMLView.h>

#include "NetworkAPIProcessor.h"

class UIMLDialog : public Framework::Window,
                   public NetworkAPIProcessor
{
private:
    Framework::UIMLView* view;
    Framework::Text name;
    std::function<void(UIMLDialog* self)> onClose;

public:
    UIMLDialog(
        Framework::Text uiml, std::function<void(UIMLDialog* self)> onClose);
    ~UIMLDialog();
    void api(char* message) override;
    const Framework::Text& getName() const;
    void updateUIML(const char *uiml);
    void close();
};