added and documented wxWindow::RemoveEventHandler()

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@13805 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Vadim Zeitlin
2002-01-25 16:01:15 +00:00
parent 4ccae30a4d
commit 2e36d5cf81
3 changed files with 65 additions and 0 deletions

View File

@@ -633,6 +633,41 @@ wxEvtHandler *wxWindowBase::PopEventHandler(bool deleteHandler)
return handlerA;
}
bool wxWindowBase::RemoveEventHandler(wxEvtHandler *handler)
{
wxCHECK_MSG( handler, FALSE, _T("RemoveEventHandler(NULL) called") );
wxEvtHandler *handlerPrev = NULL,
*handlerCur = GetEventHandler();
while ( handlerCur )
{
wxEvtHandler *handlerNext = handlerCur->GetNextHandler();
if ( handlerCur == handler )
{
if ( handlerPrev )
{
handlerPrev->SetNextHandler(handlerNext);
}
else
{
SetEventHandler(handlerNext);
}
handler->SetNextHandler(NULL);
return TRUE;
}
handlerPrev = handlerCur;
handlerCur = handlerNext;
}
wxFAIL_MSG( _T("where has the event handler gone?") );
return FALSE;
}
// ----------------------------------------------------------------------------
// cursors, fonts &c
// ----------------------------------------------------------------------------