From Martin Beckett, added mouse wheel support

This commit is contained in:
Robert Osfield
2009-04-08 10:32:19 +00:00
parent 6238a31d5c
commit fd5f5a71c2

View File

@@ -69,7 +69,7 @@ class AdapterWidget : public QGLWidget
virtual void mousePressEvent( QMouseEvent* event );
virtual void mouseReleaseEvent( QMouseEvent* event );
virtual void mouseMoveEvent( QMouseEvent* event );
virtual void wheelEvent(QWheelEvent *event);
osg::ref_ptr<osgViewer::GraphicsWindowEmbedded> _gw;
};
@@ -88,6 +88,7 @@ AdapterWidget::AdapterWidget( QWidget * parent, const char * name, const QGLWidg
#endif
}
void AdapterWidget::resizeGL( int width, int height )
{
_gw->getEventQueue()->windowResize(0, 0, width, height );
@@ -145,6 +146,11 @@ void AdapterWidget::mouseMoveEvent( QMouseEvent* event )
_gw->getEventQueue()->mouseMotion(event->x(), event->y());
}
void AdapterWidget::wheelEvent(QWheelEvent *event)
{
_gw->getEventQueue()->mouseScroll((event->delta()>0) ?
osgGA::GUIEventAdapter::SCROLL_UP : osgGA::GUIEventAdapter::SCROLL_DOWN);
}
class ViewerQT : public osgViewer::Viewer, public AdapterWidget
{
@@ -264,6 +270,7 @@ int mainAdapterWidget(QApplication& a, osg::ArgumentParser& arguments)
viewerWindow->setCameraManipulator(new osgGA::TrackballManipulator);
viewerWindow->setSceneData(loadedModel.get());
viewerWindow->addEventHandler(new osgViewer::StatsHandler);
viewerWindow->show();
}