Shkyera Engine
Easy to use, game engine for Python
PropertiesWidget.hpp
Go to the documentation of this file.
1 
8 #pragma once
9 
10 #include "game/GameObject.hpp"
11 #include "renderer/Renderer.hpp"
12 #include "ui/UIComponent.hpp"
13 #include "ui/Widget.hpp"
14 
15 namespace shkyera {
16 
23 class PropertiesWidget : public Widget {
24  public:
25  using Widget::Widget;
26 
30  virtual void draw() override;
31 
37  static void setObject(std::shared_ptr<GameObject> object);
38 
39  void setRenderer(std::shared_ptr<Renderer> renderer);
40 
41  private:
45  void drawNewComponentMenu();
46 
47  std::shared_ptr<Renderer> _renderer;
48 
49  static std::shared_ptr<GameObject> _object;
50  static std::vector<std::shared_ptr<UIComponent>> _components;
51 };
52 
53 } // namespace shkyera
Contains the declaration of the GameObject class, representing a game object in the system.
Contains the declaration of the UIComponent class, a base class for user interface of objects' compon...
Contains the declaration of the Widget class, an abstract base class for GUI widgets.
A user interface widget for managing game object properties.
Definition: PropertiesWidget.hpp:23
static std::vector< std::shared_ptr< UIComponent > > _components
Components associated with the game object.
Definition: PropertiesWidget.hpp:50
virtual void draw() override
Implementation of the abstract draw method to render the properties widget.
Definition: PropertiesWidget.cpp:13
void drawNewComponentMenu()
Draw a menu for adding new components to the game object.
Definition: PropertiesWidget.cpp:48
static std::shared_ptr< GameObject > _object
A shared pointer to the associated game object.
Definition: PropertiesWidget.hpp:49
std::shared_ptr< Renderer > _renderer
Definition: PropertiesWidget.hpp:47
static void setObject(std::shared_ptr< GameObject > object)
Set the game object whose properties to display and manage.
Definition: PropertiesWidget.cpp:43
void setRenderer(std::shared_ptr< Renderer > renderer)
Definition: PropertiesWidget.cpp:41
An abstract base class representing a GUI widget.
Definition: Widget.hpp:21
Widget(std::string name)
Constructor to create a widget with a specified name.
Definition: Widget.cpp:5
Definition: Entity.cpp:3