void wxSTEditorTreeCtrl::OnWindowDestroy( wxWindowDestroyEvent& event ) { event.Skip(); // Clear the notebook since it's being deleted if (event.GetEventObject() == m_steNotebook) { SetSTENotebook(NULL); return; } wxLongToLongHashMap::iterator it; // Else this is a page in the notebook it = m_windowToSTETreeItemDataMap.find((long)event.GetEventObject()); if (it != m_windowToSTETreeItemDataMap.end()) { wxSTETreeItemData* oldData = (wxSTETreeItemData*)it->second; DeleteItem(oldData->m_id, true, -1, GetRootItem()); m_windowToSTETreeItemDataMap.erase(it); } // Remove the wxEVT_DESTROY tracker for notebook pages it = m_windowDestroyMap.find((long)event.GetEventObject()); if (it != m_windowDestroyMap.end()) { m_windowDestroyMap.erase(it); } }
void wxLuaWinDestroyCallback::OnAllDestroyEvents(wxWindowDestroyEvent& event) { // Central handler for events, forward to the specific instance wxLuaWinDestroyCallback *theCallback = (wxLuaWinDestroyCallback *)event.m_callbackUserData; if (theCallback && (((wxWindow*)event.GetEventObject()) == theCallback->m_window)) { theCallback->OnDestroy(event); } else event.Skip(); }