add: Simple widget system

This commit is contained in:
Simon Hardt
2022-03-06 03:04:32 +01:00
parent e1e410561c
commit 243bf41e90
14 changed files with 430 additions and 8 deletions

View File

@@ -0,0 +1,36 @@
#pragma once
#include "display/IDisplay.hpp"
#include "render/RenderTarget.hpp"
#include "widgets/Widget.hpp"
#include <chrono>
#include <memory>
using namespace std::chrono_literals;
namespace frame
{
class ScreenManager
{
std::unique_ptr<display::IDisplay> mDisplay;
render::RenderTarget mRenderTarget;
widgets::Widget::shared_ptr mRoot;
std::chrono::duration<double> mUpdateInterval = 0.5s;
bool mIsRunning = true;
public:
ScreenManager(std::unique_ptr<display::IDisplay> pDisplay);
void Update();
void Render();
void MainLoop();
void setRoot(widgets::Widget::shared_ptr widget);
};
} // namespace frame