Program Listing for File Window.hpp
↰ Return to documentation for file (engine/include/Cacao/Window.hpp
)
#pragma once
#include "DllHelper.hpp"
#include <memory>
#include <string>
#include "glm/vec2.hpp"
namespace Cacao {
class CACAO_API Window {
public:
static Window& Get();
Window(const Window&) = delete;
Window(Window&&) = delete;
Window& operator=(const Window&) = delete;
Window& operator=(Window&&) = delete;
enum class Mode {
Windowed,
Borderless,
Fullscreen
};
//======================= WINDOW CONTROL =======================
void Open(const std::string& title, glm::uvec2 size, bool visible, Mode mode);
void Close();
void HandleOSEvents();
//======================= PROPERTY SETTERS =======================
void Show();
void Hide();
void SetTitle(const std::string& newTitle);
void Resize(const glm::uvec2& newSize);
void SetMode(Mode newMode);
//======================= PROPERTY GETTERS =======================
bool IsOpen() const;
bool IsVisible() const;
bool IsMinimized() const;
const std::string GetTitle() const;
const glm::uvec2 GetSize() const;
const glm::uvec2 GetContentAreaSize() const;
Mode GetMode() const;
class Impl;
private:
std::unique_ptr<Impl> impl;
friend class ImplAccessor;
Window();
~Window();
};
}