#ifndef VIEWPORTPANE_H #define VIEWPORTPANE_H #include #include #include namespace uLib { class Object; namespace Qt { class PropertyEditor; } } class QSplitter; class QVBoxLayout; class QLabel; class ViewportPane : public QWidget { Q_OBJECT public: explicit ViewportPane(QWidget* parent = nullptr); virtual ~ViewportPane(); void addVtkViewport(); void addRootCanvas(); QWidget* currentViewport() const { return m_viewport; } /** @brief Update the display properties for the given object. */ void setObject(uLib::Object* obj); private slots: void onCloseRequested(); void showContextMenu(const QPoint& pos); void toggleDisplayPanel(); private: void AttemptSplit(Qt::Orientation orientation); void setViewport(QWidget* viewport, const QString& title); QVBoxLayout* m_layout; QWidget* m_titleBar; QLabel* m_titleLabel; QSplitter* m_areaSplitter; QWidget* m_viewport; // Display Properties Overlay QFrame* m_displayPanel; uLib::Qt::PropertyEditor* m_displayEditor; QPushButton* m_toggleBtn; }; #endif // VIEWPORTPANE_H