1. fixed typo ('&' instead of '|') in wxNotebook
2. changed wxTC_MULTILINE to be equal to wxNB_MULTILINE and != 0 3. much more efficient selection handling in virtual wxListCtrl, we can now select 1000000 items without problems 4. kbd/mouse selection (ctrl/shift handling) fixed in wxListCtrl 5. added wxSortedArray::IndexForInsert() and AddAt(), remove Remove(size_t), use RemoveAt() instead git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@10889 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
		@@ -122,6 +122,8 @@ protected:
 | 
			
		||||
  int Index(long lItem, bool bFromEnd = FALSE) const;
 | 
			
		||||
    /// search for an item using binary search in a sorted array
 | 
			
		||||
  int Index(long lItem, CMPFUNC fnCompare) const;
 | 
			
		||||
    /// search for a place to insert the element into a sorted array
 | 
			
		||||
  size_t IndexForInsert(long lItem, CMPFUNC fnCompare) const;
 | 
			
		||||
    /// add new element at the end
 | 
			
		||||
  void Add(long lItem);
 | 
			
		||||
    /// add item assuming the array is sorted with fnCompare function
 | 
			
		||||
@@ -199,7 +201,6 @@ public:                                                             \
 | 
			
		||||
  void Insert(T Item, size_t uiIndex)                               \
 | 
			
		||||
    { wxBaseArray::Insert((long)Item, uiIndex) ; }                  \
 | 
			
		||||
                                                                    \
 | 
			
		||||
  void Remove(size_t uiIndex) { RemoveAt(uiIndex); }                \
 | 
			
		||||
  void RemoveAt(size_t uiIndex) { wxBaseArray::RemoveAt(uiIndex); } \
 | 
			
		||||
  void Remove(T Item)                                               \
 | 
			
		||||
    { int iIndex = Index(Item);                                     \
 | 
			
		||||
@@ -221,6 +222,10 @@ public:                                                             \
 | 
			
		||||
//  3) it has no Sort() method because it's always sorted
 | 
			
		||||
//  4) Index() method is much faster (the sorted arrays use binary search
 | 
			
		||||
//     instead of linear one), but Add() is slower.
 | 
			
		||||
//  5) there is no Insert() method because you can't insert an item into the
 | 
			
		||||
//     given position in a sorted array but there is IndexForInsert()/AddAt()
 | 
			
		||||
//     pair which may be used to optimize a common operation of "insert only if
 | 
			
		||||
//     not found"
 | 
			
		||||
//
 | 
			
		||||
// Summary: use this class when the speed of Index() function is important, use
 | 
			
		||||
// the normal arrays otherwise.
 | 
			
		||||
@@ -259,10 +264,16 @@ public:                                                             \
 | 
			
		||||
  int Index(T Item) const                                           \
 | 
			
		||||
    { return wxBaseArray::Index((long)Item, (CMPFUNC)m_fnCompare); }\
 | 
			
		||||
                                                                    \
 | 
			
		||||
  size_t IndexForInsert(T Item) const                               \
 | 
			
		||||
    { return wxBaseArray::IndexForInsert((long)Item,                \
 | 
			
		||||
                                         (CMPFUNC)m_fnCompare); }   \
 | 
			
		||||
                                                                    \
 | 
			
		||||
  void AddAt(T item, size_t index)                                  \
 | 
			
		||||
    { wxBaseArray::Insert((long)item, index); }                     \
 | 
			
		||||
                                                                    \
 | 
			
		||||
  void Add(T Item)                                                  \
 | 
			
		||||
    { wxBaseArray::Add((long)Item, (CMPFUNC)m_fnCompare); }         \
 | 
			
		||||
                                                                    \
 | 
			
		||||
  void Remove(size_t uiIndex) { RemoveAt(uiIndex); }                \
 | 
			
		||||
  void RemoveAt(size_t uiIndex) { wxBaseArray::RemoveAt(uiIndex); } \
 | 
			
		||||
  void Remove(T Item)                                               \
 | 
			
		||||
    { int iIndex = Index(Item);                                     \
 | 
			
		||||
@@ -311,7 +322,6 @@ public:                                                             \
 | 
			
		||||
  T*   Detach(size_t uiIndex)                                       \
 | 
			
		||||
    { T* p = (T*)wxBaseArray::Item(uiIndex);                        \
 | 
			
		||||
      wxBaseArray::RemoveAt(uiIndex); return p; }                   \
 | 
			
		||||
  void Remove(size_t uiIndex) { RemoveAt(uiIndex); }                \
 | 
			
		||||
  void RemoveAt(size_t uiIndex);                                    \
 | 
			
		||||
                                                                    \
 | 
			
		||||
  void Sort(CMPFUNC##T fCmp) { wxBaseArray::Sort((CMPFUNC)fCmp); }  \
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user