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:
Vadim Zeitlin
2001-07-07 22:42:35 +00:00
parent dfdd617b4b
commit b54e41c529
17 changed files with 672 additions and 384 deletions

View File

@@ -1244,14 +1244,6 @@ enum wxBorder
#define wxSP_FULLSASH 0x0400
#define wxSP_3D (wxSP_3DBORDER | wxSP_3DSASH)
/*
* wxTabCtrl flags
*/
#define wxTC_MULTILINE 0x0000
#define wxTC_RIGHTJUSTIFY 0x0010
#define wxTC_FIXEDWIDTH 0x0020
#define wxTC_OWNERDRAW 0x0040
/*
* wxNotebook flags
*/
@@ -1262,6 +1254,14 @@ enum wxBorder
#define wxNB_BOTTOM 0x0080
#define wxNB_MULTILINE 0x0100
/*
* wxTabCtrl flags
*/
#define wxTC_RIGHTJUSTIFY 0x0010
#define wxTC_FIXEDWIDTH 0x0020
#define wxTC_OWNERDRAW 0x0040
#define wxTC_MULTILINE wxNB_MULTILINE
/*
* wxStatusBar95 flags
*/

View File

@@ -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); } \

View File

@@ -17,7 +17,7 @@
#include "wx/defs.h"
#include "wx/object.h"
#include "wx/generic/imaglist.h"
#include "wx/imaglist.h"
#include "wx/control.h"
#include "wx/timer.h"
#include "wx/textctrl.h"

View File

@@ -1,26 +1,10 @@
#ifndef _WX_IMAGLIST_H_BASE_
#define _WX_IMAGLIST_H_BASE_
#if defined(__WXUNIVERSAL__)
#include "wx/generic/imaglist.h"
#elif defined(__WXMSW__)
#if defined(__WIN16__)
#include "wx/generic/imaglist.h"
#if defined(__WIN32__) && !defined(__WXUNIVERSAL__)
#include "wx/msw/imaglist.h"
#else
#include "wx/msw/imaglist.h"
#endif
#elif defined(__WXMOTIF__)
#include "wx/generic/imaglist.h"
#elif defined(__WXGTK__)
#include "wx/generic/imaglist.h"
#elif defined(__WXQT__)
#include "wx/generic/imaglist.h"
#elif defined(__WXMAC__)
#include "wx/generic/imaglist.h"
#elif defined(__WXPM__)
#include "wx/generic/imaglist.h"
#elif defined(__WXSTUBS__)
#include "wx/generic/imaglist.h"
#include "wx/generic/imaglist.h"
#endif
#endif

View File

@@ -37,8 +37,6 @@ typedef int (wxCALLBACK *wxListCtrlCompare)(long item1, long item2, long sortDat
#define wxLC_SMALL_ICON 0x0008
#define wxLC_LIST 0x0010
#define wxLC_REPORT 0x0020
#define wxLC_MODE_MASK \
(wxLC_ICON | wxLC_SMALL_ICON | wxLC_LIST | wxLC_REPORT)
#define wxLC_ALIGN_TOP 0x0040
#define wxLC_ALIGN_LEFT 0x0080
@@ -280,25 +278,9 @@ private:
// include the wxListCtrl class declaration
// ----------------------------------------------------------------------------
#if defined(__WXUNIVERSAL__)
#include "wx/generic/listctrl.h"
#elif defined(__WXMSW__)
#ifdef __WIN16__
#include "wx/generic/listctrl.h"
#else
#include "wx/msw/listctrl.h"
#endif
#elif defined(__WXMOTIF__)
#include "wx/generic/listctrl.h"
#elif defined(__WXGTK__)
#include "wx/generic/listctrl.h"
#elif defined(__WXQT__)
#include "wx/generic/listctrl.h"
#elif defined(__WXMAC__)
#include "wx/generic/listctrl.h"
#elif defined(__WXPM__)
#include "wx/generic/listctrl.h"
#elif defined(__WXSTUBS__)
#if 0 // defined(__WIN32__) && !defined(__WXUNIVERSAL__)
#include "wx/msw/listctrl.h"
#else
#include "wx/generic/listctrl.h"
#endif

View File

@@ -131,7 +131,7 @@ public:
wxTextFileType type = typeDefault)
{ m_aLines.Insert(str, n); m_aTypes.Insert(type, n); }
// delete one line
void RemoveLine(size_t n) { m_aLines.Remove(n); m_aTypes.Remove(n); }
void RemoveLine(size_t n) { m_aLines.RemoveAt(n); m_aTypes.RemoveAt(n); }
// change the file on disk (default argument means "don't change type")
// possibly in another format