#pragma once

#include <GLFW/glfw3.h>

namespace veng {
class Window {
 public:
  Window(gsl::czstring name, glm::ivec2 size);
  ~Window();

  glm::ivec2 GetWindowSize() const;
  glm::ivec2 GetFramebufferSize() const;
  bool ShouldClose() const;
  GLFWwindow* GetHandle() const;

  GLFWkeyfun SetKeyCallback(GLFWkeyfun key_callback);

  bool TryMoveToMonitor(std::uint16_t monitor_number);

 private:
  GLFWwindow* window_;
};
}  // namespace veng
