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:
@@ -1244,14 +1244,6 @@ enum wxBorder
|
|||||||
#define wxSP_FULLSASH 0x0400
|
#define wxSP_FULLSASH 0x0400
|
||||||
#define wxSP_3D (wxSP_3DBORDER | wxSP_3DSASH)
|
#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
|
* wxNotebook flags
|
||||||
*/
|
*/
|
||||||
@@ -1262,6 +1254,14 @@ enum wxBorder
|
|||||||
#define wxNB_BOTTOM 0x0080
|
#define wxNB_BOTTOM 0x0080
|
||||||
#define wxNB_MULTILINE 0x0100
|
#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
|
* wxStatusBar95 flags
|
||||||
*/
|
*/
|
||||||
|
@@ -122,6 +122,8 @@ protected:
|
|||||||
int Index(long lItem, bool bFromEnd = FALSE) const;
|
int Index(long lItem, bool bFromEnd = FALSE) const;
|
||||||
/// search for an item using binary search in a sorted array
|
/// search for an item using binary search in a sorted array
|
||||||
int Index(long lItem, CMPFUNC fnCompare) const;
|
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
|
/// add new element at the end
|
||||||
void Add(long lItem);
|
void Add(long lItem);
|
||||||
/// add item assuming the array is sorted with fnCompare function
|
/// add item assuming the array is sorted with fnCompare function
|
||||||
@@ -199,7 +201,6 @@ public: \
|
|||||||
void Insert(T Item, size_t uiIndex) \
|
void Insert(T Item, size_t uiIndex) \
|
||||||
{ wxBaseArray::Insert((long)Item, uiIndex) ; } \
|
{ wxBaseArray::Insert((long)Item, uiIndex) ; } \
|
||||||
\
|
\
|
||||||
void Remove(size_t uiIndex) { RemoveAt(uiIndex); } \
|
|
||||||
void RemoveAt(size_t uiIndex) { wxBaseArray::RemoveAt(uiIndex); } \
|
void RemoveAt(size_t uiIndex) { wxBaseArray::RemoveAt(uiIndex); } \
|
||||||
void Remove(T Item) \
|
void Remove(T Item) \
|
||||||
{ int iIndex = Index(Item); \
|
{ int iIndex = Index(Item); \
|
||||||
@@ -221,6 +222,10 @@ public: \
|
|||||||
// 3) it has no Sort() method because it's always sorted
|
// 3) it has no Sort() method because it's always sorted
|
||||||
// 4) Index() method is much faster (the sorted arrays use binary search
|
// 4) Index() method is much faster (the sorted arrays use binary search
|
||||||
// instead of linear one), but Add() is slower.
|
// 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
|
// Summary: use this class when the speed of Index() function is important, use
|
||||||
// the normal arrays otherwise.
|
// the normal arrays otherwise.
|
||||||
@@ -259,10 +264,16 @@ public: \
|
|||||||
int Index(T Item) const \
|
int Index(T Item) const \
|
||||||
{ return wxBaseArray::Index((long)Item, (CMPFUNC)m_fnCompare); }\
|
{ 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) \
|
void Add(T Item) \
|
||||||
{ wxBaseArray::Add((long)Item, (CMPFUNC)m_fnCompare); } \
|
{ wxBaseArray::Add((long)Item, (CMPFUNC)m_fnCompare); } \
|
||||||
\
|
\
|
||||||
void Remove(size_t uiIndex) { RemoveAt(uiIndex); } \
|
|
||||||
void RemoveAt(size_t uiIndex) { wxBaseArray::RemoveAt(uiIndex); } \
|
void RemoveAt(size_t uiIndex) { wxBaseArray::RemoveAt(uiIndex); } \
|
||||||
void Remove(T Item) \
|
void Remove(T Item) \
|
||||||
{ int iIndex = Index(Item); \
|
{ int iIndex = Index(Item); \
|
||||||
@@ -311,7 +322,6 @@ public: \
|
|||||||
T* Detach(size_t uiIndex) \
|
T* Detach(size_t uiIndex) \
|
||||||
{ T* p = (T*)wxBaseArray::Item(uiIndex); \
|
{ T* p = (T*)wxBaseArray::Item(uiIndex); \
|
||||||
wxBaseArray::RemoveAt(uiIndex); return p; } \
|
wxBaseArray::RemoveAt(uiIndex); return p; } \
|
||||||
void Remove(size_t uiIndex) { RemoveAt(uiIndex); } \
|
|
||||||
void RemoveAt(size_t uiIndex); \
|
void RemoveAt(size_t uiIndex); \
|
||||||
\
|
\
|
||||||
void Sort(CMPFUNC##T fCmp) { wxBaseArray::Sort((CMPFUNC)fCmp); } \
|
void Sort(CMPFUNC##T fCmp) { wxBaseArray::Sort((CMPFUNC)fCmp); } \
|
||||||
|
@@ -17,7 +17,7 @@
|
|||||||
|
|
||||||
#include "wx/defs.h"
|
#include "wx/defs.h"
|
||||||
#include "wx/object.h"
|
#include "wx/object.h"
|
||||||
#include "wx/generic/imaglist.h"
|
#include "wx/imaglist.h"
|
||||||
#include "wx/control.h"
|
#include "wx/control.h"
|
||||||
#include "wx/timer.h"
|
#include "wx/timer.h"
|
||||||
#include "wx/textctrl.h"
|
#include "wx/textctrl.h"
|
||||||
|
@@ -1,26 +1,10 @@
|
|||||||
#ifndef _WX_IMAGLIST_H_BASE_
|
#ifndef _WX_IMAGLIST_H_BASE_
|
||||||
#define _WX_IMAGLIST_H_BASE_
|
#define _WX_IMAGLIST_H_BASE_
|
||||||
|
|
||||||
#if defined(__WXUNIVERSAL__)
|
#if defined(__WIN32__) && !defined(__WXUNIVERSAL__)
|
||||||
#include "wx/generic/imaglist.h"
|
#include "wx/msw/imaglist.h"
|
||||||
#elif defined(__WXMSW__)
|
|
||||||
#if defined(__WIN16__)
|
|
||||||
#include "wx/generic/imaglist.h"
|
|
||||||
#else
|
#else
|
||||||
#include "wx/msw/imaglist.h"
|
#include "wx/generic/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"
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
@@ -37,8 +37,6 @@ typedef int (wxCALLBACK *wxListCtrlCompare)(long item1, long item2, long sortDat
|
|||||||
#define wxLC_SMALL_ICON 0x0008
|
#define wxLC_SMALL_ICON 0x0008
|
||||||
#define wxLC_LIST 0x0010
|
#define wxLC_LIST 0x0010
|
||||||
#define wxLC_REPORT 0x0020
|
#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_TOP 0x0040
|
||||||
#define wxLC_ALIGN_LEFT 0x0080
|
#define wxLC_ALIGN_LEFT 0x0080
|
||||||
@@ -280,25 +278,9 @@ private:
|
|||||||
// include the wxListCtrl class declaration
|
// include the wxListCtrl class declaration
|
||||||
// ----------------------------------------------------------------------------
|
// ----------------------------------------------------------------------------
|
||||||
|
|
||||||
#if defined(__WXUNIVERSAL__)
|
#if 0 // defined(__WIN32__) && !defined(__WXUNIVERSAL__)
|
||||||
#include "wx/generic/listctrl.h"
|
|
||||||
#elif defined(__WXMSW__)
|
|
||||||
#ifdef __WIN16__
|
|
||||||
#include "wx/generic/listctrl.h"
|
|
||||||
#else
|
|
||||||
#include "wx/msw/listctrl.h"
|
#include "wx/msw/listctrl.h"
|
||||||
#endif
|
#else
|
||||||
#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__)
|
|
||||||
#include "wx/generic/listctrl.h"
|
#include "wx/generic/listctrl.h"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@@ -131,7 +131,7 @@ public:
|
|||||||
wxTextFileType type = typeDefault)
|
wxTextFileType type = typeDefault)
|
||||||
{ m_aLines.Insert(str, n); m_aTypes.Insert(type, n); }
|
{ m_aLines.Insert(str, n); m_aTypes.Insert(type, n); }
|
||||||
// delete one line
|
// 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")
|
// change the file on disk (default argument means "don't change type")
|
||||||
// possibly in another format
|
// possibly in another format
|
||||||
|
@@ -71,6 +71,7 @@ BEGIN_EVENT_TABLE(MyFrame, wxFrame)
|
|||||||
EVT_MENU(LIST_SET_BG_COL, MyFrame::OnSetBgColour)
|
EVT_MENU(LIST_SET_BG_COL, MyFrame::OnSetBgColour)
|
||||||
EVT_MENU(LIST_TOGGLE_MULTI_SEL, MyFrame::OnToggleMultiSel)
|
EVT_MENU(LIST_TOGGLE_MULTI_SEL, MyFrame::OnToggleMultiSel)
|
||||||
EVT_MENU(LIST_SHOW_COL_INFO, MyFrame::OnShowColInfo)
|
EVT_MENU(LIST_SHOW_COL_INFO, MyFrame::OnShowColInfo)
|
||||||
|
EVT_MENU(LIST_SHOW_SEL_INFO, MyFrame::OnShowSelInfo)
|
||||||
|
|
||||||
EVT_UPDATE_UI(LIST_SHOW_COL_INFO, MyFrame::OnUpdateShowColInfo)
|
EVT_UPDATE_UI(LIST_SHOW_COL_INFO, MyFrame::OnUpdateShowColInfo)
|
||||||
END_EVENT_TABLE()
|
END_EVENT_TABLE()
|
||||||
@@ -181,7 +182,9 @@ MyFrame::MyFrame(const wxChar *title, int x, int y, int w, int h)
|
|||||||
menuList->Append(LIST_TOGGLE_FIRST, _T("&Toggle first item\tCtrl-T"));
|
menuList->Append(LIST_TOGGLE_FIRST, _T("&Toggle first item\tCtrl-T"));
|
||||||
menuList->Append(LIST_DESELECT_ALL, _T("&Deselect All\tCtrl-D"));
|
menuList->Append(LIST_DESELECT_ALL, _T("&Deselect All\tCtrl-D"));
|
||||||
menuList->Append(LIST_SELECT_ALL, _T("S&elect All\tCtrl-A"));
|
menuList->Append(LIST_SELECT_ALL, _T("S&elect All\tCtrl-A"));
|
||||||
|
menuList->AppendSeparator();
|
||||||
menuList->Append(LIST_SHOW_COL_INFO, _T("Show &column info\tCtrl-C"));
|
menuList->Append(LIST_SHOW_COL_INFO, _T("Show &column info\tCtrl-C"));
|
||||||
|
menuList->Append(LIST_SHOW_SEL_INFO, _T("Show &selected items\tCtrl-S"));
|
||||||
menuList->AppendSeparator();
|
menuList->AppendSeparator();
|
||||||
menuList->Append(LIST_SORT, _T("&Sort\tCtrl-S"));
|
menuList->Append(LIST_SORT, _T("&Sort\tCtrl-S"));
|
||||||
menuList->AppendSeparator();
|
menuList->AppendSeparator();
|
||||||
@@ -459,6 +462,32 @@ void MyFrame::OnSort(wxCommandEvent& WXUNUSED(event))
|
|||||||
sw.Time()));
|
sw.Time()));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void MyFrame::OnShowSelInfo(wxCommandEvent& event)
|
||||||
|
{
|
||||||
|
int selCount = m_listCtrl->GetSelectedItemCount();
|
||||||
|
wxLogMessage(_T("%d items selected:"), selCount);
|
||||||
|
|
||||||
|
// don't show too many items
|
||||||
|
size_t shownCount = 0;
|
||||||
|
|
||||||
|
long item = m_listCtrl->GetNextItem(-1, wxLIST_NEXT_ALL,
|
||||||
|
wxLIST_STATE_SELECTED);
|
||||||
|
while ( item != -1 )
|
||||||
|
{
|
||||||
|
wxLogMessage(_T("\t%ld (%s)"),
|
||||||
|
item, m_listCtrl->GetItemText(item).c_str());
|
||||||
|
|
||||||
|
if ( ++shownCount > 10 )
|
||||||
|
{
|
||||||
|
wxLogMessage(_T("\t... more selected items snipped..."));
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
item = m_listCtrl->GetNextItem(item, wxLIST_NEXT_ALL,
|
||||||
|
wxLIST_STATE_SELECTED);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void MyFrame::OnShowColInfo(wxCommandEvent& event)
|
void MyFrame::OnShowColInfo(wxCommandEvent& event)
|
||||||
{
|
{
|
||||||
int count = m_listCtrl->GetColumnCount();
|
int count = m_listCtrl->GetColumnCount();
|
||||||
|
@@ -84,6 +84,7 @@ public:
|
|||||||
void OnSetBgColour(wxCommandEvent& event);
|
void OnSetBgColour(wxCommandEvent& event);
|
||||||
void OnToggleMultiSel(wxCommandEvent& event);
|
void OnToggleMultiSel(wxCommandEvent& event);
|
||||||
void OnShowColInfo(wxCommandEvent& event);
|
void OnShowColInfo(wxCommandEvent& event);
|
||||||
|
void OnShowSelInfo(wxCommandEvent& event);
|
||||||
|
|
||||||
void OnUpdateShowColInfo(wxUpdateUIEvent& event);
|
void OnUpdateShowColInfo(wxUpdateUIEvent& event);
|
||||||
|
|
||||||
@@ -131,6 +132,7 @@ enum
|
|||||||
LIST_TOGGLE_MULTI_SEL,
|
LIST_TOGGLE_MULTI_SEL,
|
||||||
LIST_TOGGLE_FIRST,
|
LIST_TOGGLE_FIRST,
|
||||||
LIST_SHOW_COL_INFO,
|
LIST_SHOW_COL_INFO,
|
||||||
|
LIST_SHOW_SEL_INFO,
|
||||||
|
|
||||||
LIST_CTRL = 1000
|
LIST_CTRL = 1000
|
||||||
};
|
};
|
||||||
|
@@ -182,37 +182,8 @@ int wxBaseArray::Index(long lItem, bool bFromEnd) const
|
|||||||
return wxNOT_FOUND;
|
return wxNOT_FOUND;
|
||||||
}
|
}
|
||||||
|
|
||||||
// search for an item in a sorted array (binary search)
|
// search for a place to insert an item into a sorted array (binary search)
|
||||||
int wxBaseArray::Index(long lItem, CMPFUNC fnCompare) const
|
size_t wxBaseArray::IndexForInsert(long lItem, CMPFUNC fnCompare) const
|
||||||
{
|
|
||||||
size_t i,
|
|
||||||
lo = 0,
|
|
||||||
hi = m_nCount;
|
|
||||||
int res;
|
|
||||||
|
|
||||||
while ( lo < hi ) {
|
|
||||||
i = (lo + hi)/2;
|
|
||||||
|
|
||||||
res = (*fnCompare)((const void *)lItem, (const void *)m_pItems[i]);
|
|
||||||
if ( res < 0 )
|
|
||||||
hi = i;
|
|
||||||
else if ( res > 0 )
|
|
||||||
lo = i + 1;
|
|
||||||
else
|
|
||||||
return i;
|
|
||||||
}
|
|
||||||
|
|
||||||
return wxNOT_FOUND;
|
|
||||||
}
|
|
||||||
// add item at the end
|
|
||||||
void wxBaseArray::Add(long lItem)
|
|
||||||
{
|
|
||||||
Grow();
|
|
||||||
m_pItems[m_nCount++] = lItem;
|
|
||||||
}
|
|
||||||
|
|
||||||
// add item assuming the array is sorted with fnCompare function
|
|
||||||
void wxBaseArray::Add(long lItem, CMPFUNC fnCompare)
|
|
||||||
{
|
{
|
||||||
size_t i,
|
size_t i,
|
||||||
lo = 0,
|
lo = 0,
|
||||||
@@ -228,14 +199,33 @@ void wxBaseArray::Add(long lItem, CMPFUNC fnCompare)
|
|||||||
else if ( res > 0 )
|
else if ( res > 0 )
|
||||||
lo = i + 1;
|
lo = i + 1;
|
||||||
else {
|
else {
|
||||||
lo = hi = i;
|
lo = i;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
wxASSERT( lo == hi ); // I hope I got binary search right :-)
|
return lo;
|
||||||
|
}
|
||||||
|
|
||||||
Insert(lItem, lo);
|
// search for an item in a sorted array (binary search)
|
||||||
|
int wxBaseArray::Index(long lItem, CMPFUNC fnCompare) const
|
||||||
|
{
|
||||||
|
size_t n = IndexForInsert(lItem, fnCompare);
|
||||||
|
|
||||||
|
return n < m_nCount && m_pItems[n] == lItem ? n : wxNOT_FOUND;
|
||||||
|
}
|
||||||
|
|
||||||
|
// add item at the end
|
||||||
|
void wxBaseArray::Add(long lItem)
|
||||||
|
{
|
||||||
|
Grow();
|
||||||
|
m_pItems[m_nCount++] = lItem;
|
||||||
|
}
|
||||||
|
|
||||||
|
// add item assuming the array is sorted with fnCompare function
|
||||||
|
void wxBaseArray::Add(long lItem, CMPFUNC fnCompare)
|
||||||
|
{
|
||||||
|
Insert(lItem, IndexForInsert(lItem, fnCompare));
|
||||||
}
|
}
|
||||||
|
|
||||||
// add item at the given position
|
// add item at the given position
|
||||||
|
@@ -120,7 +120,7 @@ wxNotebookPage *wxNotebookBase::DoRemovePage(int nPage)
|
|||||||
_T("invalid page index in wxNotebookBase::DoRemovePage()") );
|
_T("invalid page index in wxNotebookBase::DoRemovePage()") );
|
||||||
|
|
||||||
wxNotebookPage *pageRemoved = m_pages[nPage];
|
wxNotebookPage *pageRemoved = m_pages[nPage];
|
||||||
m_pages.Remove(nPage);
|
m_pages.RemoveAt(nPage);
|
||||||
|
|
||||||
return pageRemoved;
|
return pageRemoved;
|
||||||
}
|
}
|
||||||
|
@@ -3022,7 +3022,7 @@ bool wxGridStringTable::DeleteRows( size_t pos, size_t numRows )
|
|||||||
{
|
{
|
||||||
for ( n = 0; n < numRows; n++ )
|
for ( n = 0; n < numRows; n++ )
|
||||||
{
|
{
|
||||||
m_data.Remove( pos );
|
m_data.RemoveAt( pos );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if ( GetView() )
|
if ( GetView() )
|
||||||
|
File diff suppressed because it is too large
Load Diff
@@ -315,7 +315,7 @@ bool wxHtmlWindow::LoadPage(const wxString& location)
|
|||||||
{
|
{
|
||||||
m_HistoryPos++;
|
m_HistoryPos++;
|
||||||
for (int i = 0; i < c; i++)
|
for (int i = 0; i < c; i++)
|
||||||
m_History->Remove(m_HistoryPos);
|
m_History->RemoveAt(m_HistoryPos);
|
||||||
m_History->Add(new wxHtmlHistoryItem(m_OpenedPage, m_OpenedAnchor));
|
m_History->Add(new wxHtmlHistoryItem(m_OpenedPage, m_OpenedAnchor));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -296,7 +296,7 @@ void wxCheckListBox::Delete(int N)
|
|||||||
// free memory
|
// free memory
|
||||||
delete m_aItems[N];
|
delete m_aItems[N];
|
||||||
|
|
||||||
m_aItems.Remove(N);
|
m_aItems.RemoveAt(N);
|
||||||
}
|
}
|
||||||
|
|
||||||
void wxCheckListBox::InsertItems(int nItems, const wxString items[], int pos)
|
void wxCheckListBox::InsertItems(int nItems, const wxString items[], int pos)
|
||||||
|
@@ -237,7 +237,7 @@ wxPaintDC::~wxPaintDC()
|
|||||||
{
|
{
|
||||||
::EndPaint(GetHwndOf(m_canvas), &g_paintStruct);
|
::EndPaint(GetHwndOf(m_canvas), &g_paintStruct);
|
||||||
|
|
||||||
ms_cache.Remove(index);
|
ms_cache.RemoveAt(index);
|
||||||
|
|
||||||
// Reduce the number of bogus reports of non-freed memory
|
// Reduce the number of bogus reports of non-freed memory
|
||||||
// at app exit
|
// at app exit
|
||||||
|
@@ -172,7 +172,7 @@ void wxMenu::UpdateAccel(wxMenuItem *item)
|
|||||||
if ( accel )
|
if ( accel )
|
||||||
m_accels[n] = accel;
|
m_accels[n] = accel;
|
||||||
else
|
else
|
||||||
m_accels.Remove(n);
|
m_accels.RemoveAt(n);
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( IsAttached() )
|
if ( IsAttached() )
|
||||||
@@ -317,7 +317,7 @@ wxMenuItem *wxMenu::DoRemove(wxMenuItem *item)
|
|||||||
{
|
{
|
||||||
delete m_accels[n];
|
delete m_accels[n];
|
||||||
|
|
||||||
m_accels.Remove(n);
|
m_accels.RemoveAt(n);
|
||||||
}
|
}
|
||||||
//else: this item doesn't have an accel, nothing to do
|
//else: this item doesn't have an accel, nothing to do
|
||||||
#endif // wxUSE_ACCEL
|
#endif // wxUSE_ACCEL
|
||||||
|
@@ -161,7 +161,7 @@ bool wxNotebook::Create(wxWindow *parent,
|
|||||||
if ( m_windowStyle & wxTC_MULTILINE )
|
if ( m_windowStyle & wxTC_MULTILINE )
|
||||||
tabStyle |= TCS_MULTILINE;
|
tabStyle |= TCS_MULTILINE;
|
||||||
if ( m_windowStyle & wxBORDER )
|
if ( m_windowStyle & wxBORDER )
|
||||||
tabStyle &= WS_BORDER;
|
tabStyle |= WS_BORDER;
|
||||||
if (m_windowStyle & wxNB_FIXEDWIDTH)
|
if (m_windowStyle & wxNB_FIXEDWIDTH)
|
||||||
tabStyle |= TCS_FIXEDWIDTH ;
|
tabStyle |= TCS_FIXEDWIDTH ;
|
||||||
if (m_windowStyle & wxNB_BOTTOM)
|
if (m_windowStyle & wxNB_BOTTOM)
|
||||||
@@ -326,7 +326,7 @@ bool wxNotebook::DeletePage(int nPage)
|
|||||||
TabCtrl_DeleteItem(m_hwnd, nPage);
|
TabCtrl_DeleteItem(m_hwnd, nPage);
|
||||||
|
|
||||||
delete m_pages[nPage];
|
delete m_pages[nPage];
|
||||||
m_pages.Remove(nPage);
|
m_pages.RemoveAt(nPage);
|
||||||
|
|
||||||
if ( m_pages.IsEmpty() ) {
|
if ( m_pages.IsEmpty() ) {
|
||||||
// no selection if the notebook became empty
|
// no selection if the notebook became empty
|
||||||
|
Reference in New Issue
Block a user