Files
uLib/app/gcompose/src/ViewportPane.h
AndreaRigoni f5c1e317e8 algorithm def
2026-03-27 02:29:56 +00:00

53 lines
1.1 KiB
C++

#ifndef VIEWPORTPANE_H
#define VIEWPORTPANE_H
#include <QWidget>
#include <QFrame>
#include <QPushButton>
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