]> git.saurik.com Git - wxWidgets.git/blobdiff - src/os2/treectrl.cpp
Don't crash when laying out wxGridBagSizer with only hidden elements.
[wxWidgets.git] / src / os2 / treectrl.cpp
index b043d61c7c32a008a492b67a6b0855d07ef9e856..37db6a6322900a2ca07b6c5ee6801e148832e00a 100644 (file)
@@ -1,10 +1,9 @@
 /////////////////////////////////////////////////////////////////////////////
-// Name:        src/msw/treectrl.cpp
+// Name:        src/os2/treectrl.cpp
 // Purpose:     wxTreeCtrl
 // Author:      Julian Smart
 // Modified by: Vadim Zeitlin to be less MSW-specific on 10.10.98
 // Created:     1997
-// RCS-ID:      $Id$
 // Copyright:   (c) Julian Smart
 // Licence:     wxWindows licence
 /////////////////////////////////////////////////////////////////////////////
 // headers
 // ----------------------------------------------------------------------------
 
-#ifdef __GNUG__
-    #pragma implementation "treectrl.h"
-#endif
-
 // For compilers that support precompilation, includes "wx.h".
 #include "wx/wxprec.h"
 
 
 #if wxUSE_TREECTRL
 
+#include "wx/treectrl.h"
+
+#ifndef WX_PRECOMP
+    #include "wx/dynarray.h"
+    #include "wx/log.h"
+    #include "wx/app.h"
+    #include "wx/settings.h"
+#endif
+
 #include "wx/os2/private.h"
 
-#include "wx/app.h"
-#include "wx/log.h"
-#include "wx/dynarray.h"
 #include "wx/imaglist.h"
-#include "wx/settings.h"
-#include "wx/os2/treectrl.h"
 
 // a macro to hide the ugliness of nested casts
 #define HITEM(item)     (HTREEITEM)(WXHTREEITEM)(item)
@@ -80,11 +79,7 @@ public:
     wxTreeItemInternalData() {}
     ~wxTreeItemInternalData()
     {
-        if(m_pAttr)
-        {
-            delete m_pAttr;
-            m_pAttr = NULL;
-        }
+        wxDELETE(m_pAttr);
     }
 
     wxTreeItemAttr*                 m_pAttr;
@@ -182,7 +177,7 @@ private:
                  );
 
     const wxTreeCtrl*               m_pTree;
-    DECLARE_NO_COPY_CLASS(wxTreeTraversal)
+    wxDECLARE_NO_COPY_CLASS(wxTreeTraversal);
 }; // end of CLASS wxTreeTraversal
 
 //
@@ -210,7 +205,7 @@ public:
         {
             return true;
         }
-        PMYRECORD                   pRecord = FindOS2TreeRecordByID( GetTree()->GetHWND()
+        PMYRECORD                   pRecord = FindOS2TreeRecordByID( (HWND)GetTree()->GetHWND()
                                                                     ,rItem.m_pItem
                                                                    );
         if (pRecord->m_vRecord.flRecordAttr & CRA_SELECTED)
@@ -258,8 +253,6 @@ private:
 // wxWin macros
 // ----------------------------------------------------------------------------
 
-IMPLEMENT_DYNAMIC_CLASS(wxTreeCtrl, wxControl)
-
 // ----------------------------------------------------------------------------
 // constants
 // ----------------------------------------------------------------------------
@@ -287,8 +280,8 @@ static /* const */ wxEventType gs_expandEvents[IDX_WHAT_MAX][IDX_HOW_MAX];
    but logically it's a const table with the following entries:
 =
 {
-    { wxEVT_COMMAND_TREE_ITEM_COLLAPSED, wxEVT_COMMAND_TREE_ITEM_COLLAPSING },
-    { wxEVT_COMMAND_TREE_ITEM_EXPANDED,  wxEVT_COMMAND_TREE_ITEM_EXPANDING  }
+    { wxEVT_TREE_ITEM_COLLAPSED, wxEVT_TREE_ITEM_COLLAPSING },
+    { wxEVT_TREE_ITEM_EXPANDED,  wxEVT_TREE_ITEM_EXPANDING  }
 };
 */
 
@@ -355,10 +348,10 @@ void wxTreeCtrl::Init ()
     // Initialize the global array of events now as it can't be done statically
     // with the wxEVT_XXX values being allocated during run-time only
     //
-    gs_expandEvents[IDX_COLLAPSE][IDX_DONE]  = wxEVT_COMMAND_TREE_ITEM_COLLAPSED;
-    gs_expandEvents[IDX_COLLAPSE][IDX_DOING] = wxEVT_COMMAND_TREE_ITEM_COLLAPSING;
-    gs_expandEvents[IDX_EXPAND][IDX_DONE]    = wxEVT_COMMAND_TREE_ITEM_EXPANDED;
-    gs_expandEvents[IDX_EXPAND][IDX_DOING]   = wxEVT_COMMAND_TREE_ITEM_EXPANDING;
+    gs_expandEvents[IDX_COLLAPSE][IDX_DONE]  = wxEVT_TREE_ITEM_COLLAPSED;
+    gs_expandEvents[IDX_COLLAPSE][IDX_DOING] = wxEVT_TREE_ITEM_COLLAPSING;
+    gs_expandEvents[IDX_EXPAND][IDX_DONE]    = wxEVT_TREE_ITEM_EXPANDED;
+    gs_expandEvents[IDX_EXPAND][IDX_DOING]   = wxEVT_TREE_ITEM_EXPANDING;
 } // end of wxTreeCtrl::Init
 
 bool wxTreeCtrl::Create (
@@ -496,16 +489,17 @@ void wxTreeCtrl::DoSetItem (
     }
 } // end of wxTreeCtrl::DoSetItem
 
-size_t wxTreeCtrl::GetCount () const
+unsigned int wxTreeCtrl::GetCount () const
 {
-    CNRINFO                         vCnrInfo;
+    CNRINFO  vCnrInfo;
 
     ::WinSendMsg( GetHWND()
                  ,CM_QUERYCNRINFO
                  ,MPFROMP(&vCnrInfo)
                  ,(MPARAM)(USHORT)sizeof(CNRINFO)
                 );
-    return (size_t)vCnrInfo.cRecords;
+
+    return (unsigned int)vCnrInfo.cRecords;
 } // end of wxTreeCtrl::GetCount
 
 unsigned int wxTreeCtrl::GetIndent () const
@@ -544,30 +538,6 @@ wxImageList* wxTreeCtrl::GetImageList () const
     return m_pImageListNormal;
 } // end of wxTreeCtrl::GetImageList
 
-#if WXWIN_COMPATIBILITY_2_4
-
-wxImageList* wxTreeCtrl::GetImageList(int nVal) const
-{
-    return GetImageList();
-}
-
-void wxTreeCtrl::SetImageList(wxImageList* pImageList, int nVal)
-{
-    SetImageList(pImageList);
-}
-
-int wxTreeCtrl::GetItemSelectedImage(const wxTreeItemId& rItem) const
-{
-    return GetItemImage(rItem, wxTreeItemIcon_Selected);
-}
-
-void wxTreeCtrl::SetItemSelectedImage(const wxTreeItemId& rItem, int nImage)
-{
-    SetItemImage(rItem, nImage, wxTreeItemIcon_Selected);
-}
-
-#endif // WXWIN_COMPATIBILITY_2_4
-
 wxImageList* wxTreeCtrl::GetStateImageList () const
 {
     return m_pImageListNormal;
@@ -1092,7 +1062,7 @@ bool wxTreeCtrl::IsVisible (
     vWxRectContainer.SetTop(vRectContainer.yTop);
     vWxRectContainer.SetRight(vRectContainer.xRight);
     vWxRectContainer.SetBottom(vRectContainer.yBottom);
-    return (vWxRectContainer.Inside(wxPoint(vWxRectRecord.x, vWxRectRecord.y)));
+    return (vWxRectContainer.Contains(wxPoint(vWxRectRecord.x, vWxRectRecord.y)));
 } // end of wxTreeCtrl::IsVisible
 
 bool wxTreeCtrl::ItemHasChildren (
@@ -1502,28 +1472,6 @@ wxTreeItemId wxTreeCtrl::DoInsertItem (
     return wxTreeItemId((long)pRecord->m_ulItemId);
 }
 
-#if WXWIN_COMPATIBILITY_2_4
-
-// for compatibility only
-wxTreeItemId wxTreeCtrl::InsertItem (
-  const wxTreeItemId&               rParent
-, const wxString&                   rsText
-, int                               nImage
-, int                               nSelImage
-, long                              lInsertAfter
-)
-{
-    return DoInsertItem( rParent
-                        ,wxTreeItemId(lInsertAfter)
-                        ,rsText
-                        ,nImage
-                        ,nSelImage
-                        ,NULL
-                       );
-} // end of wxTreeCtrl::InsertItem
-
-#endif // WXWIN_COMPATIBILITY_2_4
-
 wxTreeItemId wxTreeCtrl::AddRoot (
   const wxString&                   rsText
 , int                               nImage
@@ -1636,7 +1584,7 @@ void wxTreeCtrl::Delete (
         delete (wxTreeItemAttr *)m_vAttrs.Delete((long)rItem.m_pItem);
     }
     vEvent.SetEventType(vEventType);
-    GetEventHandler()->ProcessEvent(vEvent);
+    HandleWindowEvent(vEvent);
 } // end of wxTreeCtrl::Delete
 
 // delete all children (but don't delete the item itself)
@@ -1764,20 +1712,6 @@ void wxTreeCtrl::Toggle (
             );
 } // end of wxTreeCtrl::Toggle
 
-#if WXWIN_COMPATIBILITY_2_4
-
-void wxTreeCtrl::ExpandItem (
-  const wxTreeItemId&               rItem
-, int                               nAction
-)
-{
-    DoExpand( rItem
-             ,nAction
-            );
-} // end of wxTreeCtrl::ExpandItem
-
-#endif // WXWIN_COMPATIBILITY_2_4
-
 void wxTreeCtrl::Unselect ()
 {
     wxASSERT_MSG( !(m_windowStyle & wxTR_MULTIPLE),
@@ -2015,7 +1949,7 @@ bool wxTreeCtrl::OS2Command (
 {
     if (uCmd == CN_ENDEDIT)
     {
-        wxCommandEvent              vEvent( wxEVT_COMMAND_TEXT_UPDATED
+        wxCommandEvent              vEvent( wxEVT_TEXT
                                            ,wId
                                           );
 
@@ -2067,7 +2001,7 @@ MRESULT wxTreeCtrl::OS2WindowProc (
                     {
                         PMYRECORD       pRecord = (PMYRECORD)pDragInit->pRecord;
 
-                        vEventType = wxEVT_COMMAND_TREE_BEGIN_DRAG;
+                        vEventType = wxEVT_TREE_BEGIN_DRAG;
                         vEvent.m_item        = pRecord->m_ulItemId;
                         vEvent.m_pointDrag.x = pDragInit->x;
                         vEvent.m_pointDrag.y = pDragInit->y;
@@ -2080,7 +2014,7 @@ MRESULT wxTreeCtrl::OS2WindowProc (
                     {
                         PMYRECORD       pRecord = (PMYRECORD)pEditData->pRecord;
 
-                        vEventType = wxEVT_COMMAND_TREE_BEGIN_LABEL_EDIT;
+                        vEventType = wxEVT_TREE_BEGIN_LABEL_EDIT;
                         vEvent.m_item = pRecord->m_ulItemId;
                         vEvent.m_label = pRecord->m_vRecord.pszTree;
                         vEvent.m_editCancelled = false;
@@ -2093,7 +2027,7 @@ MRESULT wxTreeCtrl::OS2WindowProc (
                     {
                         PMYRECORD       pRecord = (PMYRECORD)pEditData->pRecord;
 
-                        vEventType = wxEVT_COMMAND_TREE_END_LABEL_EDIT;
+                        vEventType = wxEVT_TREE_END_LABEL_EDIT;
                         vEvent.m_item = pRecord->m_ulItemId;
                         vEvent.m_label = pRecord->m_vRecord.pszTree;
                         if (pRecord->m_vRecord.pszTree == NULL)
@@ -2117,7 +2051,7 @@ MRESULT wxTreeCtrl::OS2WindowProc (
                     break;
             }
             vEvent.SetEventType(vEventType);
-            bProcessed = GetEventHandler()->ProcessEvent(vEvent);
+            bProcessed = HandleWindowEvent(vEvent);
             break;
     }
     if (!bProcessed)
@@ -2128,13 +2062,4 @@ MRESULT wxTreeCtrl::OS2WindowProc (
     return mRc;
 } // end of wxTreeCtrl::OS2WindowProc
 
-#if WXWIN_COMPATIBILITY_2_2
-
-wxTreeItemId wxTreeCtrl::GetParent(const wxTreeItemId& item) const
-{
-    return GetItemParent( item );
-}
-
-#endif  // WXWIN_COMPATIBILITY_2_2
-
 #endif // wxUSE_TREECTRL