#ifndef _QDESIGNVIEWWIDGET_H_ #define _QDESIGNVIEWWIDGET_H_ #include "gui/QGLViewerWidget.h" namespace projection { class ProjectionModel; class Channel; enum DESIGN_VIEWMODE { DESIGN_VIEWMODE_PERSPECTIVE, DESIGN_VIEWMODE_CENTER, DESIGN_VIEWMODE_TOP, DESIGN_VIEWMODE_SIDE, DESIGN_VIEWMODE_FRONT }; enum DESIGN_OPMODE { DESIGN_OPMODE_PROJECTOR, DESIGN_OPMODE_VIEW }; enum DESIGN_TRANSMODE { DESIGN_TRANSMODE_LOCAL, DESIGN_TRANSMODE_WORLD }; class QDesignViewWidget : public QGLViewerWidget { Q_OBJECT public: QDesignViewWidget(QWidget* pParent=0, const QGLWidget* pSharedWidget=0, Qt::WFlags flags=0); virtual ~QDesignViewWidget(); void setModel(ProjectionModel* pModel); void setViewMode(DESIGN_VIEWMODE viewMode); DESIGN_VIEWMODE getViewMode() const; void setOpMode(DESIGN_OPMODE opMode); DESIGN_OPMODE getOpMode() const; void setTransMode(DESIGN_TRANSMODE transMode); DESIGN_TRANSMODE getTransMode() const; void setInfoVisible(bool bVisible); bool isInfoVisible() const; void setFont(QFont font); QFont getFont() const; virtual void keyReleaseEvent(QKeyEvent* pEvent); void processChannelKeyEvent(Channel* pChannel, QKeyEvent* pEvent); virtual void initFromDOMElement(const QDomElement& element); virtual QDomElement domElement(QDomDocument& doc) const; signals: void infoVisibilityChanged(bool bVisible); protected: virtual void init(); virtual void draw(); protected: bool m_bInfoVisible; DESIGN_VIEWMODE m_viewMode; DESIGN_OPMODE m_opMode; DESIGN_TRANSMODE m_transMode; QFont m_infoFont; ProjectionModel* m_pModel; }; }; // projection #endif // _QDESIGNVIEWWIDGET_H_