2020-02-25 00:44:40 +01:00
|
|
|
#pragma once
|
|
|
|
|
#include "MinimalEngine.h"
|
|
|
|
|
namespace Seele {
|
2020-03-02 19:07:49 +01:00
|
|
|
|
|
|
|
|
// A window is divided into 5 sections, using a border layout
|
|
|
|
|
// +--------------TOP------------------+
|
|
|
|
|
// | |
|
|
|
|
|
// L R
|
|
|
|
|
// E I
|
|
|
|
|
// F CENTER G
|
|
|
|
|
// T H
|
|
|
|
|
// | T
|
|
|
|
|
// +-------------BOTTOM----------------+
|
|
|
|
|
// In every section, there can be any number
|
|
|
|
|
// of views, when there are multiple, they stack to tabs
|
|
|
|
|
struct Section
|
2020-02-25 00:44:40 +01:00
|
|
|
{
|
|
|
|
|
};
|
2020-03-02 19:07:49 +01:00
|
|
|
DECLARE_REF(Section)
|
|
|
|
|
|
2020-02-25 00:44:40 +01:00
|
|
|
class Window
|
|
|
|
|
{
|
|
|
|
|
public:
|
|
|
|
|
Window(const WindowCreateInfo& createInfo);
|
|
|
|
|
~Window();
|
|
|
|
|
private:
|
2020-03-02 19:07:49 +01:00
|
|
|
void* windowHandle;
|
2020-02-25 00:44:40 +01:00
|
|
|
Section top;
|
|
|
|
|
Section bot;
|
|
|
|
|
Section left;
|
|
|
|
|
Section right;
|
|
|
|
|
Section center;
|
|
|
|
|
uint32 width;
|
|
|
|
|
uint32 height;
|
2020-03-02 19:07:49 +01:00
|
|
|
Graphics* graphics;
|
2020-02-25 00:44:40 +01:00
|
|
|
};
|
2020-03-02 19:07:49 +01:00
|
|
|
DECLARE_REF(Window)
|
2020-02-25 00:44:40 +01:00
|
|
|
}
|