replaced untyped hash with a typed one; 64 bit fixes (don't cast pointers to long...)

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@22123 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Vadim Zeitlin
2003-07-19 21:06:59 +00:00
parent 46674ada08
commit ee4b272189
6 changed files with 227 additions and 169 deletions

View File

@@ -25,6 +25,7 @@
#include "wx/textctrl.h"
#include "wx/dynarray.h"
#include "wx/treebase.h"
#include "wx/hashmap.h"
#ifdef __GNUWIN32__
// Cygwin windows.h defines these identifiers
@@ -32,19 +33,11 @@
#undef GetNextSibling
#endif // Cygwin
// the type for "untyped" data
typedef long wxDataType;
// fwd decl
class WXDLLEXPORT wxImageList;
class WXDLLEXPORT wxDragImage;
struct WXDLLEXPORT wxTreeViewItem;
// a callback function used for sorting tree items, it should return -1 if the
// first item precedes the second, +1 if the second precedes the first or 0 if
// they're equivalent
class wxTreeItemData;
// NB: all the following flags are for compatbility only and will be removed in the
// next versions
@@ -57,13 +50,18 @@ enum
wxTREE_EXPAND_TOGGLE
};
// flags for deprecated InsertItem() variant
// flags for deprecated InsertItem() variant (their values are the same as of
// TVI_FIRST and TVI_LAST)
#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
// ----------------------------------------------------------------------------
class WXDLLEXPORT wxTreeCtrl : public wxControl
{
public:
@@ -241,9 +239,11 @@ public:
// the same!
// get the first child of this item
wxTreeItemId GetFirstChild(const wxTreeItemId& item, long& _cookie) const;
wxTreeItemId GetFirstChild(const wxTreeItemId& item,
wxTreeItemIdValue& cookie) const;
// get the next child
wxTreeItemId GetNextChild(const wxTreeItemId& item, long& _cookie) const;
wxTreeItemId GetNextChild(const wxTreeItemId& item,
wxTreeItemIdValue& cookie) const;
// get the last child of this item - this method doesn't use cookies
wxTreeItemId GetLastChild(const wxTreeItemId& item) const;
@@ -371,34 +371,38 @@ public:
// 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
// code (the comments indicate why these methods are now useless and how to
// replace them)
// use Expand, Collapse, CollapseAndReset or Toggle
void ExpandItem(const wxTreeItemId& item, int action);
wxDEPRECATED( void ExpandItem(const wxTreeItemId& item, int action) );
// use AddRoot, PrependItem or AppendItem
wxTreeItemId InsertItem(const wxTreeItemId& parent,
wxDEPRECATED( wxTreeItemId InsertItem(const wxTreeItemId& parent,
const wxString& text,
int image = -1, int selImage = -1,
long insertAfter = wxTREE_INSERT_LAST);
long insertAfter = wxTREE_INSERT_LAST) );
// use Set/GetImageList and Set/GetStateImageList
wxImageList *GetImageList(int) const
{ return GetImageList(); }
void SetImageList(wxImageList *imageList, int)
{ SetImageList(imageList); }
wxImageList *GetImageList(int) const { return GetImageList(); }
void SetImageList(wxImageList *imageList, int) { SetImageList(imageList); }
// use Set/GetItemImage directly
// get the selected item image
int GetItemSelectedImage(const wxTreeItemId& item) const
{ return GetItemImage(item, wxTreeItemIcon_Selected); }
// set the selected item image
void SetItemSelectedImage(const wxTreeItemId& item, int image)
{ SetItemImage(item, image, wxTreeItemIcon_Selected); }
// use the versions taking wxTreeItemIdValue cookies
wxDEPRECATED( wxTreeItemId GetFirstChild(const wxTreeItemId& item,
long& cookie) const );
wxDEPRECATED( wxTreeItemId GetNextChild(const wxTreeItemId& item,
long& cookie) const );
#endif // WXWIN_COMPATIBILITY_2_4
// implementation
// --------------
@@ -463,8 +467,8 @@ private:
bool IsDataIndirect(wxTreeItemData *data) const
{ return data && data->GetId().m_pItem == 0; }
// the hash storing the items attributes (indexed by items ids)
wxHashTable m_attrs;
// the hash storing the items attributes (indexed by item ids)
wxMapTreeAttr m_attrs;
// TRUE if the hash above is not empty
bool m_hasAnyAttr;
@@ -476,7 +480,7 @@ private:
void* m_pVirtualRoot;
// the starting item for selection with Shift
WXHTREEITEM m_htSelStart;
wxTreeItemId m_htSelStart;
friend class wxTreeItemIndirectData;
friend class wxTreeSortHelper;