Пример #1
0
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);
    }
}
Пример #2
0
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();
}