]> git.saurik.com Git - wxWidgets.git/blobdiff - src/generic/treebkg.cpp
prevent memory leak
[wxWidgets.git] / src / generic / treebkg.cpp
index c82869767b3ccf21b2b4b46595070ea00d439d69..6ea625f17c0ea021ada6397523c6ec35a6d2d58d 100644 (file)
 IMPLEMENT_DYNAMIC_CLASS(wxTreebook, wxBookCtrlBase)
 IMPLEMENT_DYNAMIC_CLASS(wxTreebookEvent, wxNotifyEvent)
 
-#if !WXWIN_COMPATIBILITY_EVENT_TYPES
 const wxEventType wxEVT_COMMAND_TREEBOOK_PAGE_CHANGING = wxNewEventType();
 const wxEventType wxEVT_COMMAND_TREEBOOK_PAGE_CHANGED = wxNewEventType();
 const wxEventType wxEVT_COMMAND_TREEBOOK_NODE_COLLAPSED = wxNewEventType();
 const wxEventType wxEVT_COMMAND_TREEBOOK_NODE_EXPANDED = wxNewEventType();
-#endif
-const int wxID_TREEBOOKTREEVIEW = wxWindow::NewControlId();
 
 BEGIN_EVENT_TABLE(wxTreebook, wxBookCtrlBase)
-    EVT_TREE_SEL_CHANGED   (wxID_TREEBOOKTREEVIEW, wxTreebook::OnTreeSelectionChange)
-    EVT_TREE_ITEM_EXPANDED (wxID_TREEBOOKTREEVIEW, wxTreebook::OnTreeNodeExpandedCollapsed)
-    EVT_TREE_ITEM_COLLAPSED(wxID_TREEBOOKTREEVIEW, wxTreebook::OnTreeNodeExpandedCollapsed)
-
-    WX_EVENT_TABLE_CONTROL_CONTAINER(wxTreebook)
+    EVT_TREE_SEL_CHANGED   (wxID_ANY, wxTreebook::OnTreeSelectionChange)
+    EVT_TREE_ITEM_EXPANDED (wxID_ANY, wxTreebook::OnTreeNodeExpandedCollapsed)
+    EVT_TREE_ITEM_COLLAPSED(wxID_ANY, wxTreebook::OnTreeNodeExpandedCollapsed)
 END_EVENT_TABLE()
 
 // ============================================================================
 // wxTreebook implementation
 // ============================================================================
 
-WX_DELEGATE_TO_CONTROL_CONTAINER(wxTreebook, wxControl)
-
 // ----------------------------------------------------------------------------
 // wxTreebook creation
 // ----------------------------------------------------------------------------
 
 void wxTreebook::Init()
 {
-    m_container.SetContainerWindow(this);
-
     m_selection =
     m_actualSelection = wxNOT_FOUND;
 }
@@ -108,7 +99,7 @@ wxTreebook::Create(wxWindow *parent,
     m_bookctrl = new wxTreeCtrl
                  (
                     this,
-                    wxID_TREEBOOKTREEVIEW,
+                    wxID_ANY,
                     wxDefaultPosition,
                     wxDefaultSize,
 #ifndef __WXMSW__
@@ -691,6 +682,12 @@ void wxTreebook::AssignImageList(wxImageList *imageList)
 
 void wxTreebook::OnTreeSelectionChange(wxTreeEvent& event)
 {
+    if ( event.GetEventObject() != m_bookctrl )
+    {
+        event.Skip();
+        return;
+    }
+
     wxTreeItemId newId = event.GetItem();
 
     if ( (m_selection == wxNOT_FOUND &&
@@ -710,6 +707,12 @@ void wxTreebook::OnTreeSelectionChange(wxTreeEvent& event)
 
 void wxTreebook::OnTreeNodeExpandedCollapsed(wxTreeEvent & event)
 {
+    if ( event.GetEventObject() != m_bookctrl )
+    {
+        event.Skip();
+        return;
+    }
+
     wxTreeItemId nodeId = event.GetItem();
     if ( !nodeId.IsOk() || nodeId == GetTreeCtrl()->GetRootItem() )
         return;