Archived
1
Fork 0
This repository has been archived on 2025-04-12. You can view files and clone it, but cannot push or open issues or pull requests.
graphite/editor/include/inspector.h
2024-01-03 16:05:02 -05:00

49 lines
No EOL
1,015 B
C++

#pragma once
#include <typeindex>
#include <map>
#include <QFrame>
#include <QVBoxLayout>
#include <QScrollArea>
#include <component.hpp>
#include "inspectors/inspectorbase.h"
class Component;
class Asset;
class Inspector : public QFrame
{
Q_OBJECT
public:
explicit Inspector(QWidget* parent = nullptr);
~Inspector();
QFrame* GetInspector(std::type_index, Component* component);
QFrame* GetInspectorAsset(Asset* asset);
template<class Object, class Inspector>
void Register()
{
m_inspectors.emplace(typeid(Object), new Inspector(nullptr));
}
public slots:
void Rebuild(bool override = false);
private:
int m_lastEntitySelected = 0;
QLabel* m_label;
QVBoxLayout* m_masterlayout;
QFrame* m_itemsContainer;
QScrollArea* m_scrollArea;
QGridLayout* m_layout2;
QMenu* m_addComponentMenu;
QPushButton* m_addComponentButton;
std::vector<QFrame*> m_inspectorFrames;
std::map<std::type_index, InspectorBase*> m_inspectors;
};