]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/os2/treectrl.h
handle fatal exceptions in the other threads (based on patch 1459813 by Carl-Friedric...
[wxWidgets.git] / include / wx / os2 / treectrl.h
index b22498f60ee776b0d424fd78386147a1886ae2a7..453829965f38b3e2a980e96a910239e022fd992a 100644 (file)
@@ -6,7 +6,7 @@
 // Created:     01/23/03
 // RCS-ID:      $Id$
 // Copyright:   (c) David Webster
-// Licence:     wxWindows license
+// Licence:     wxWindows licence
 /////////////////////////////////////////////////////////////////////////////
 
 #ifndef _WX_TREECTRL_H_
 // headers
 // ----------------------------------------------------------------------------
 
-#ifdef __GNUG__
-    #pragma interface "treectrl.h"
-#endif
-
 #if wxUSE_TREECTRL
 
 #include "wx/textctrl.h"
 #include "wx/dynarray.h"
 #include "wx/treebase.h"
+#include "wx/hashmap.h"
 
 // the type for "untyped" data
 typedef long wxDataType;
@@ -39,18 +36,14 @@ struct WXDLLEXPORT wxTreeViewItem;
 // they're equivalent
 class wxTreeItemData;
 
-// flags for deprecated `Expand(int action)'
-enum
-{
-    wxTREE_EXPAND_EXPAND,
-    wxTREE_EXPAND_COLLAPSE,
-    wxTREE_EXPAND_COLLAPSE_RESET,
-    wxTREE_EXPAND_TOGGLE
-};
+#if WXWIN_COMPATIBILITY_2_6
+    // flags for deprecated InsertItem() variant
+    #define wxTREE_INSERT_FIRST 0xFFFF0001
+    #define wxTREE_INSERT_LAST  0xFFFF0002
+#endif
 
-// flags for deprecated InsertItem() variant
-#define wxTREE_INSERT_FIRST 0xFFFF0001
-#define wxTREE_INSERT_LAST  0xFFFF0002
+// hash storing attributes for our items
+WX_DECLARE_EXPORTED_VOIDPTR_HASH_MAP(wxTreeItemAttr *, wxMapTreeAttr);
 
 // ----------------------------------------------------------------------------
 // wxTreeCtrl
@@ -63,7 +56,7 @@ public:
     wxTreeCtrl() { Init(); }
 
     wxTreeCtrl( wxWindow*          pParent
-               ,wxWindowID         vId = -1
+               ,wxWindowID         vId = wxID_ANY
                ,const wxPoint&     rPos = wxDefaultPosition
                ,const wxSize&      rSize = wxDefaultSize
                ,long               lStyle = wxTR_HAS_BUTTONS | wxTR_LINES_AT_ROOT
@@ -83,7 +76,7 @@ public:
     virtual ~wxTreeCtrl();
 
     bool Create( wxWindow*          pParent
-                ,wxWindowID         vId = -1
+                ,wxWindowID         vId = wxID_ANY
                 ,const wxPoint&     rPos = wxDefaultPosition
                 ,const wxSize&      rSize = wxDefaultSize
                 ,long               lStyle = wxTR_HAS_BUTTONS | wxTR_LINES_AT_ROOT
@@ -99,7 +92,7 @@ public:
     //
     // Get the total number of items in the control
     //
-    size_t GetCount(void) const;
+    virtual unsigned int GetCount(void) const;
 
     //
     // Indent is the number of pixels the children are indented relative to
@@ -197,21 +190,21 @@ public:
     // usage and loading time.
     //
     void SetItemHasChildren( const wxTreeItemId& rItem
-                            ,bool                bHas = TRUE
+                            ,bool                bHas = true
                            );
 
     //
     // The item will be shown in bold
     //
     void SetItemBold( const wxTreeItemId& rItem
-                     ,bool                bBold = TRUE
+                     ,bool                bBold = true
                     );
 
     //
     // The item will be shown with a drop highlight
     //
     void SetItemDropHighlight( const wxTreeItemId& rItem
-                              ,bool                bHighlight = TRUE
+                              ,bool                bHighlight = true
                              );
 
     //
@@ -250,11 +243,11 @@ public:
     //
 
     //
-    // If 'recursively' is FALSE, only immediate children count, otherwise
+    // If 'bRecursively' is false, only immediate children count, otherwise
     // the returned number is the number of all items in this branch
     //
     size_t GetChildrenCount( const wxTreeItemId& rItem
-                            ,bool                bRecursively = TRUE
+                            ,bool                bRecursively = true
                            ) const;
 
     //
@@ -282,37 +275,19 @@ public:
     //
     wxTreeItemId GetItemParent(const wxTreeItemId& rItem) const;
 
-#if WXWIN_COMPATIBILITY_2_2
-    // deprecated:  Use GetItemParent instead.
-    wxTreeItemId GetParent(const wxTreeItemId& rItem) const
-       { return GetItemParent(rItem); }
-
-       // Expose the base class method hidden by the one above.
-    wxWindow* GetParent(void) const { return wxControl::GetParent(); }
-#endif  // WXWIN_COMPATIBILITY_2_2
-
-    //
-    // For this enumeration function you must pass in a "cookie" parameter
-    // which is opaque for the application but is necessary for the library
-    // to make these functions reentrant (i.e. allow more than one
-    // enumeration on one and the same object simultaneously). Of course,
-    // the "cookie" passed to GetFirstChild() and GetNextChild() should be
-    // the same!
-    //
-
-    //
-    // Get the first child of this item
-    //
-    wxTreeItemId GetFirstChild( const wxTreeItemId& rItem
-                               ,long&               rCookie
-                              ) const;
+        // for this enumeration function you must pass in a "cookie" parameter
+        // which is opaque for the application but is necessary for the library
+        // to make these functions reentrant (i.e. allow more than one
+        // enumeration on one and the same object simultaneously). Of course,
+        // the "cookie" passed to GetFirstChild() and GetNextChild() should be
+        // the same!
 
-    //
-    // Get the next child
-    //
-    wxTreeItemId GetNextChild( const wxTreeItemId& rItem
-                              ,long&               rCookie
-                             ) const;
+        // get the first child of this item
+    wxTreeItemId GetFirstChild(const wxTreeItemId& item,
+                               wxTreeItemIdValue& cookie) const;
+        // get the next child
+    wxTreeItemId GetNextChild(const wxTreeItemId& item,
+                              wxTreeItemIdValue& cookie) const;
 
     //
     // Get the last child of this item - this method doesn't use cookies
@@ -479,7 +454,7 @@ public:
     // End editing and accept or discard the changes to item label
     //
     void EndEditLabel( const wxTreeItemId& rItem
-                      ,bool                bDiscardChanges = FALSE
+                      ,bool                bDiscardChanges = false
                      );
 
     //
@@ -528,15 +503,16 @@ public:
     //
     bool GetBoundingRect( const wxTreeItemId& rItem
                          ,wxRect&             rRect
-                         ,bool                bTextOnly = FALSE
+                         ,bool                bTextOnly = false
                         ) const;
 
     //
     // Deprecated
     // ----------
-    //
+
+#if WXWIN_COMPATIBILITY_2_4
     // These methods are deprecated and will be removed in future versions of
-    // wxWindows, they're here for compatibility only, don't use them in new
+    // wxWidgets, they're here for compatibility only, don't use them in new
     // code (the comments indicate why these methods are now useless and how to
     // replace them)
     //
@@ -544,35 +520,55 @@ public:
     //
     // Use Expand, Collapse, CollapseAndReset or Toggle
     //
-    void ExpandItem( const wxTreeItemId& rItem
-                    ,int                 nAction
-                   );
+    wxDEPRECATED( void ExpandItem( const wxTreeItemId& rItem
+                                  ,int                 nAction
+                                 ) );
 
     //
     // Use AddRoot, PrependItem or AppendItem
     //
-    wxTreeItemId InsertItem( const wxTreeItemId& pParent
-                            ,const wxString&     rsText
-                            ,int                 nImage = -1
-                            ,int                 nSelImage = -1
-                            ,long                lInsertAfter = wxTREE_INSERT_LAST
-                           );
+    wxDEPRECATED( wxTreeItemId InsertItem( const wxTreeItemId& pParent
+                                          ,const wxString&     rsText
+                                          ,int                 nImage = -1
+                                          ,int                 nSelImage = -1
+                                          ,long                lInsertAfter = wxTREE_INSERT_LAST
+                                         ) );
 
     //
     // Use Set/GetImageList and Set/GetStateImageList
     //
-    wxImageList* GetImageList(int nVal) const
-        { return GetImageList(); }
-    void SetImageList(wxImageList* pImageList, int nVal)
-        { SetImageList(pImageList); }
+    wxDEPRECATED( wxImageList* GetImageList(int nVal) const );
+    wxDEPRECATED( void SetImageList(wxImageList* pImageList, int nVal) );
 
     //
     // Use Set/GetItemImage directly
     //
-    int GetItemSelectedImage(const wxTreeItemId& rItem) const
-        { return GetItemImage(rItem, wxTreeItemIcon_Selected); }
-    void SetItemSelectedImage(const wxTreeItemId& rItem, int nImage)
-        { SetItemImage(rItem, nImage, wxTreeItemIcon_Selected); }
+    wxDEPRECATED( int GetItemSelectedImage(const wxTreeItemId& rItem) const );
+    wxDEPRECATED( void SetItemSelectedImage(const wxTreeItemId& rItem, int nImage) );
+
+    //
+    // For this enumeration function you must pass in a "cookie" parameter
+    // which is opaque for the application but is necessary for the library
+    // to make these functions reentrant (i.e. allow more than one
+    // enumeration on one and the same object simultaneously). Of course,
+    // the "cookie" passed to GetFirstChild() and GetNextChild() should be
+    // the same!
+    //
+
+    //
+    // Get the first child of this item
+    //
+    wxDEPRECATED( wxTreeItemId GetFirstChild( const wxTreeItemId& rItem
+                                             ,long&               rCookie
+                                            ) const );
+
+    //
+    // Get the next child
+    //
+    wxDEPRECATED( wxTreeItemId GetNextChild( const wxTreeItemId& rItem
+                                            ,long&               rCookie
+                                           ) const );
+#endif // WXWIN_COMPATIBILITY_2_4
 
     //
     // Implementation
@@ -599,7 +595,7 @@ public:
     //
     bool IsItemChecked(const wxTreeItemId& rItem) const;
     void SetItemCheck( const wxTreeItemId& rItem
-                      ,bool                bCheck = TRUE
+                      ,bool                bCheck = true
                      );
 
 protected:
@@ -670,10 +666,10 @@ private:
     //
     // The hash storing the items attributes (indexed by items ids)
     //
-    wxHashTable                     m_vAttrs;
+    wxMapTreeAttr                   m_vAttrs;
 
     //
-    // TRUE if the hash above is not empty
+    // true if the hash above is not empty
     //
     bool                            m_bHasAnyAttr;