refactor: use of GuiManager

This commit is contained in:
2021-12-19 11:56:41 +01:00
parent 174d144d26
commit 409268b604
5 changed files with 21 additions and 26 deletions

View File

@@ -10,15 +10,17 @@ namespace gui {
class GuiManager {
private:
std::vector<std::shared_ptr<GuiWidget>> m_Widgets;
std::vector<std::unique_ptr<GuiWidget>> m_Widgets;
public:
GuiManager(){}
void renderWidgets() {
for (auto widget : m_Widgets) {
for (auto& widget : m_Widgets) {
widget->render();
}
}
void addWidgets(const std::shared_ptr<GuiWidget>& widget) {
void addWidget(std::unique_ptr<GuiWidget>&& widget) {
m_Widgets.push_back(std::move(widget));
}
};

View File

@@ -9,6 +9,8 @@
#include <memory>
#include "render/gui/GuiManager.h"
struct SDL_Window;
typedef void* SDL_GLContext;
@@ -20,15 +22,6 @@ class Client;
} // namespace client
namespace gui {
class MainMenu;
class GameMenu;
class FrameMenu;
class UpdateMenu;
} // namespace gui
namespace render {
class Renderer;
@@ -38,11 +31,8 @@ private:
SDL_Window* m_Window;
SDL_GLContext m_GlContext;
td::render::Renderer* m_Renderer;
td::gui::GuiManager m_GuiManager;
std::unique_ptr<td::client::Client> m_Client;
std::unique_ptr<td::gui::MainMenu> m_MainMenu;
std::unique_ptr<td::gui::GameMenu> m_GameMenu;
std::unique_ptr<td::gui::FrameMenu> m_FrameMenu;
std::unique_ptr<td::gui::UpdateMenu> m_UpdateMenu;
public:
TowerGui(SDL_Window* wndow, SDL_GLContext glContext, td::render::Renderer* renderer);
~TowerGui();