Shkyera Engine
Easy to use, game engine for Python
Loading...
Searching...
No Matches
PropertiesWidget.hpp
Go to the documentation of this file.
1
8#pragma once
9
10#include <ECS/Registry.hpp>
11#include <UI/ComponentUI.hpp>
12#include <UI/Widget.hpp>
13
14namespace shkyera {
15
22class PropertiesWidget : public Widget {
23 public:
24 using Widget::Widget;
25
26 PropertiesWidget(std::shared_ptr<Registry> registry);
27 PropertiesWidget(std::shared_ptr<Registry> registry, const std::string& title);
28
32 void draw() override;
33
34 protected:
35 virtual void updateComponents();
36 virtual void drawNewComponentMenu();
37 void setupComponentsUI();
38
39 std::shared_ptr<Registry> _registry;
40 std::optional<Entity> _selectedEntity;
41
42 private:
44
45 std::vector<std::unique_ptr<ComponentUI>> _componentsUi;
46};
47
49 public:
50 CameraPropertiesWidget(std::shared_ptr<Registry> registry);
51
52 protected:
53 void updateComponents() override;
54 void drawNewComponentMenu() override;
55};
56
58 public:
59 EnvironmentPropertiesWidget(std::shared_ptr<Registry> registry);
60
61 protected:
62 void updateComponents() override;
63 void drawNewComponentMenu() override;
64};
65
66} // namespace shkyera
Definition PropertiesWidget.hpp:48
void drawNewComponentMenu() override
Definition PropertiesWidget.cpp:228
void updateComponents() override
Definition PropertiesWidget.cpp:218
Definition PropertiesWidget.hpp:57
void updateComponents() override
Definition PropertiesWidget.cpp:236
void drawNewComponentMenu() override
Definition PropertiesWidget.cpp:244
A user interface widget for managing game object properties.
Definition PropertiesWidget.hpp:22
void draw() override
Implementation of the abstract draw method to render the properties widget.
Definition PropertiesWidget.cpp:55
void drawExistingComponents()
Definition PropertiesWidget.cpp:80
virtual void drawNewComponentMenu()
Definition PropertiesWidget.cpp:185
std::vector< std::unique_ptr< ComponentUI > > _componentsUi
Definition PropertiesWidget.hpp:45
std::optional< Entity > _selectedEntity
Definition PropertiesWidget.hpp:40
virtual void updateComponents()
Definition PropertiesWidget.cpp:43
void setupComponentsUI()
Definition PropertiesWidget.cpp:86
std::shared_ptr< Registry > _registry
Definition PropertiesWidget.hpp:39
An abstract base class representing a GUI widget.
Definition Widget.hpp:23
Widget(std::string name)
Constructor to create a widget with a specified name.
Definition Widget.cpp:5
Definition Asset.hpp:6
Definition Clock.hpp:9