Some more tests and mouse events for wxCanvas.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8327 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Robert Roebling
2000-09-11 12:52:39 +00:00
parent 98e8d44a9e
commit 872f1044c8
2 changed files with 68 additions and 31 deletions

View File

@@ -1296,7 +1296,9 @@ void wxCanvas::OnMouse(wxMouseEvent &event)
child_event.m_shiftDown = event.m_shiftDown;
child_event.m_altDown = event.m_altDown;
child_event.m_metaDown = event.m_metaDown;
m_captureMouse->ProcessEvent( child_event );
return;
}
else
{
@@ -1334,6 +1336,7 @@ void wxCanvas::OnMouse(wxMouseEvent &event)
child_event.SetEventType( wxEVT_MOTION );
child_event.SetEventObject( obj );
}
obj->ProcessEvent( child_event );
return;
}
@@ -1357,6 +1360,46 @@ void wxCanvas::OnMouse(wxMouseEvent &event)
return;
}
}
else
{
if (m_captureMouse) //no matter what go to this one
{
wxMouseEvent child_event( event.GetEventType() );
child_event.SetEventObject(m_captureMouse);
child_event.m_x = x - m_captureMouse->GetX();
child_event.m_y = y - m_captureMouse->GetY();
child_event.m_leftDown = event.m_leftDown;
child_event.m_rightDown = event.m_rightDown;
child_event.m_middleDown = event.m_middleDown;
child_event.m_controlDown = event.m_controlDown;
child_event.m_shiftDown = event.m_shiftDown;
child_event.m_altDown = event.m_altDown;
child_event.m_metaDown = event.m_metaDown;
m_captureMouse->ProcessEvent( child_event );
}
else
{
wxCanvasObject *obj = m_root->IsHitObject(x,y,0);
if (obj && !obj->IsControl())
{
wxMouseEvent child_event( event.GetEventType() );
child_event.SetEventObject( obj );
child_event.m_x = x - obj->GetX();
child_event.m_y = y - obj->GetY();
child_event.m_leftDown = event.m_leftDown;
child_event.m_rightDown = event.m_rightDown;
child_event.m_middleDown = event.m_middleDown;
child_event.m_controlDown = event.m_controlDown;
child_event.m_shiftDown = event.m_shiftDown;
child_event.m_altDown = event.m_altDown;
child_event.m_metaDown = event.m_metaDown;
obj->ProcessEvent( child_event );
return;
}
}
}
event.Skip();
}