Added support for GUIEventAdapter::setHandled

This commit is contained in:
Robert Osfield
2007-01-24 12:28:18 +00:00
parent a01cade782
commit fd6f5c87b8
3 changed files with 17 additions and 33 deletions

View File

@@ -1024,18 +1024,16 @@ void CompositeViewer::eventTraversal()
{
osgGA::GUIEventAdapter* event = itr->get();
bool handled = false;
if (view->getCameraManipulator())
{
view->getCameraManipulator()->handle( *event, *view);
if (view->getCameraManipulator()->handle( *event, *view)) event->setHandled(true);
}
for(View::EventHandlers::iterator hitr = view->getEventHandlers().begin();
hitr != view->getEventHandlers().end() && !handled;
hitr != view->getEventHandlers().end();
++hitr)
{
handled = (*hitr)->handle( *event, *view, 0, 0);
if ((*hitr)->handle( *event, *view, 0, 0)) event->setHandled(true);
}
}
}
@@ -1056,14 +1054,10 @@ void CompositeViewer::eventTraversal()
{
osgGA::GUIEventAdapter* event = itr->get();
bool handled = false;
_eventVisitor->reset();
_eventVisitor->addEvent( event );
view->getSceneData()->accept(*_eventVisitor);
if (_eventVisitor->getEventHandled()) handled = true;
}
}
}

View File

@@ -162,29 +162,26 @@ void SimpleViewer::eventTraversal()
{
osgGA::GUIEventAdapter* event = itr->get();
bool handled = false;
if (_cameraManipulator.valid())
{
if (_cameraManipulator->handle( *event, *this )) event->setHandled(true);
}
for(EventHandlers::iterator hitr = _eventHandlers.begin();
hitr != _eventHandlers.end();
++hitr)
{
if ((*hitr)->handle( *event, *this, 0, 0)) event->setHandled(true);
}
if (_eventVisitor.valid() && getSceneData())
{
_eventVisitor->reset();
_eventVisitor->addEvent( event );
getSceneData()->accept(*_eventVisitor);
if (_eventVisitor->getEventHandled()) handled = true;
}
if (_cameraManipulator.valid())
{
_cameraManipulator->handle( *event, *this );
}
for(EventHandlers::iterator hitr = _eventHandlers.begin();
hitr != _eventHandlers.end() && !handled;
++hitr)
{
handled = (*hitr)->handle( *event, *this, 0, 0);
}
}
}

View File

@@ -1075,18 +1075,16 @@ void Viewer::eventTraversal()
{
osgGA::GUIEventAdapter* event = itr->get();
bool handled = false;
if (_cameraManipulator.valid())
{
_cameraManipulator->handle( *event, *this);
if (_cameraManipulator->handle( *event, *this)) event->setHandled(true);
}
for(EventHandlers::iterator hitr = _eventHandlers.begin();
hitr != _eventHandlers.end() && !handled;
hitr != _eventHandlers.end();
++hitr)
{
handled = (*hitr)->handle( *event, *this, 0, 0);
if ((*hitr)->handle( *event, *this, 0, 0)) event->setHandled(true);
}
}
@@ -1101,18 +1099,13 @@ void Viewer::eventTraversal()
{
osgGA::GUIEventAdapter* event = itr->get();
bool handled = false;
_eventVisitor->reset();
_eventVisitor->addEvent( event );
getSceneData()->accept(*_eventVisitor);
if (_eventVisitor->getEventHandled()) handled = true;
}
}
if (getStats())
{