#pragma once

#include "try_engine/try_engine.hpp"
#include "rrr/content/content.hpp"

namespace rrr::layers::gui
{
  class dialogs : public try_engine::layer
  {
    BASE_TYPE_DEFINE();

    public:
      CONSTRUCT_IMPL(dialogs);

    public:
      BASE_OVERIDE_IMPL();

    public:
      SET_EVENT_MANAGER_IMPL();

      void set_content(content* c) { };

    private:
      FLAGS_STRUCT_DEFINED();

      bool show = false;
      event_manager* em;

      float width = 0.f;
      float height = 0.f;
      file current_file;
      bool shift = false;
      std::string title;

      bool delete_dialog = false;
      bool create_dialog = false;
      bool rename_dialog = false;
      bool help_dialog = false;

    private:
      void resize();
      void cancel();

      void draw_delete_dialog();
      void draw_create_dialog();
      void draw_rename_dialog();
      void draw_help_dialog();

      void create_file();
      void rename();
      void pressed(system_event& e);
      void released(system_event& e);
  };
}


