1
1
#pragma once
2
- #include < Events/UIComponentEvent.h>
3
2
#include < ImguiLayer.h>
4
3
#include < ZEngine/Core/IRenderable.h>
5
4
#include < ZEngine/Core/IUpdatable.h>
6
5
#include < ZEngine/Helpers/IntrusivePtr.h>
7
6
#include < string>
8
- #include < vector>
9
7
10
8
namespace Tetragrama ::Layers
11
9
{
@@ -14,33 +12,17 @@ namespace Tetragrama::Layers
14
12
15
13
namespace Tetragrama ::Components
16
14
{
17
- class UIComponent : public ZEngine ::Core::IRenderable, public ZEngine::Core::IUpdatable, public ZEngine::Helpers::RefCounted
15
+ struct UIComponent : public ZEngine ::Core::IRenderable, public ZEngine::Core::IUpdatable, public ZEngine::Helpers::RefCounted
18
16
{
19
-
20
- public:
21
17
UIComponent () = default ;
22
- UIComponent (std::string_view name, bool visibility, bool can_be_closed);
23
- UIComponent (const ZEngine::Helpers::Ref<Tetragrama::Layers::ImguiLayer>& layer, std::string_view name, bool visibility, bool can_be_closed);
24
- virtual ~UIComponent () = default ;
25
-
26
- void SetName (std::string_view name);
27
- void SetVisibility (bool visibility);
28
-
29
- std::string_view GetName () const ;
30
- bool GetVisibility () const ;
31
-
32
- void SetParentLayer (const ZEngine::Helpers::Ref<Tetragrama::Layers::ImguiLayer>& layer);
33
- void SetParentUI (const ZEngine::Helpers::Ref<UIComponent>& item);
34
-
35
- bool HasParentLayer () const ;
36
- bool HasParentUI () const ;
37
-
38
- protected:
39
- bool m_visibility{false };
40
- bool m_can_be_closed{false };
41
- bool m_is_allowed_to_render{true };
42
- std::string m_name;
43
- ZEngine::Helpers::WeakRef<Tetragrama::Layers::ImguiLayer> m_parent_layer;
44
- ZEngine::Helpers::WeakRef<UIComponent> m_parent_ui;
18
+ UIComponent (std::string_view name, bool visibility, bool can_be_closed) : Name(name.data()), IsVisible(visibility), CanBeClosed(can_be_closed) {}
19
+ virtual ~UIComponent () = default ;
20
+
21
+ bool IsVisible = true ;
22
+ bool CanBeClosed = false ;
23
+ uint32_t ChildrenCount = 0 ;
24
+ Tetragrama::Layers::ImguiLayer* ParentLayer = nullptr ;
25
+ std::string Name = " " ;
26
+ std::vector<UIComponent*> Children = {};
45
27
};
46
28
} // namespace Tetragrama::Components
0 commit comments