#ifndef MAINPANEL_H #define MAINPANEL_H #include class QSplitter; class ViewportPane; class ContextPanel; class PropertiesPanel; namespace uLib { class ObjectsContext; namespace Vtk { class vtkObjectsContext; } } class MainPanel : public QWidget { Q_OBJECT public: explicit MainPanel(QWidget* parent = nullptr); virtual ~MainPanel(); void setContext(uLib::ObjectsContext* context); ViewportPane* getFirstPane() const { return m_firstPane; } private slots: void onOpen(); void onSave(); void onSaveAs(); void onExit(); void onDarkTheme(); void onBrightTheme(); void onCreateObject(const std::string& className); private: QSplitter* m_rootSplitter; ViewportPane* m_firstPane; ContextPanel* m_contextPanel; uLib::ObjectsContext* m_context; uLib::Vtk::vtkObjectsContext* m_mainVtkContext; }; #endif // MAINPANEL_H