#include <catch2/catch_test_macros.hpp>
#include <fmt/core.h>
#include "constants.hpp"
#include "guecs.hpp"
#include "textures.hpp"
#include <fmt/xchar.h>

using namespace guecs;

TEST_CASE("prototype one gui", "[ecs-gui]") {
  guecs::UI gui;
  textures::init();

  gui.position(0, 0, 1000, 500);
  gui.layout("[test1|test2|test3][test4|_|test5]");

  for(auto& [name, cell] : gui.cells()) {
    auto& world = gui.world();
    auto button = gui.entity(name);
    world.set<lel::Cell>(button, cell);
    world.set<Rectangle>(button, {});
    world.set<Clickable>(button, {});
    world.set<Textual>(button, {L"whatever"});
  }

  gui.init();

  // at this point it's mostly ready but I'd need to render it to a window real quick
  sf::RenderWindow window;
  window.setSize({SCREEN_WIDTH, SCREEN_HEIGHT});
  gui.render(window);
  window.display();
}