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_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
 | 
			
		||||
 */
 | 
			
		||||
 
 | 
			
		||||
@@ -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); }  \
 | 
			
		||||
 
 | 
			
		||||
@@ -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"
 | 
			
		||||
 
 | 
			
		||||
@@ -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
 | 
			
		||||
 
 | 
			
		||||
@@ -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
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -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
 | 
			
		||||
 
 | 
			
		||||
@@ -71,6 +71,7 @@ BEGIN_EVENT_TABLE(MyFrame, wxFrame)
 | 
			
		||||
    EVT_MENU(LIST_SET_BG_COL, MyFrame::OnSetBgColour)
 | 
			
		||||
    EVT_MENU(LIST_TOGGLE_MULTI_SEL, MyFrame::OnToggleMultiSel)
 | 
			
		||||
    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)
 | 
			
		||||
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_DESELECT_ALL, _T("&Deselect All\tCtrl-D"));
 | 
			
		||||
    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_SEL_INFO, _T("Show &selected items\tCtrl-S"));
 | 
			
		||||
    menuList->AppendSeparator();
 | 
			
		||||
    menuList->Append(LIST_SORT, _T("&Sort\tCtrl-S"));
 | 
			
		||||
    menuList->AppendSeparator();
 | 
			
		||||
@@ -459,6 +462,32 @@ void MyFrame::OnSort(wxCommandEvent& WXUNUSED(event))
 | 
			
		||||
                                            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)
 | 
			
		||||
{
 | 
			
		||||
    int count = m_listCtrl->GetColumnCount();
 | 
			
		||||
 
 | 
			
		||||
@@ -84,6 +84,7 @@ public:
 | 
			
		||||
    void OnSetBgColour(wxCommandEvent& event);
 | 
			
		||||
    void OnToggleMultiSel(wxCommandEvent& event);
 | 
			
		||||
    void OnShowColInfo(wxCommandEvent& event);
 | 
			
		||||
    void OnShowSelInfo(wxCommandEvent& event);
 | 
			
		||||
 | 
			
		||||
    void OnUpdateShowColInfo(wxUpdateUIEvent& event);
 | 
			
		||||
 | 
			
		||||
@@ -131,6 +132,7 @@ enum
 | 
			
		||||
    LIST_TOGGLE_MULTI_SEL,
 | 
			
		||||
    LIST_TOGGLE_FIRST,
 | 
			
		||||
    LIST_SHOW_COL_INFO,
 | 
			
		||||
    LIST_SHOW_SEL_INFO,
 | 
			
		||||
 | 
			
		||||
    LIST_CTRL                   = 1000
 | 
			
		||||
};
 | 
			
		||||
 
 | 
			
		||||
@@ -182,37 +182,8 @@ int wxBaseArray::Index(long lItem, bool bFromEnd) const
 | 
			
		||||
  return wxNOT_FOUND;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// search for an item in a sorted array (binary search)
 | 
			
		||||
int wxBaseArray::Index(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)
 | 
			
		||||
// search for a place to insert an item into a sorted array (binary search)
 | 
			
		||||
size_t wxBaseArray::IndexForInsert(long lItem, CMPFUNC fnCompare) const
 | 
			
		||||
{
 | 
			
		||||
  size_t i,
 | 
			
		||||
       lo = 0,
 | 
			
		||||
@@ -228,14 +199,33 @@ void wxBaseArray::Add(long lItem, CMPFUNC fnCompare)
 | 
			
		||||
    else if ( res > 0 )
 | 
			
		||||
      lo = i + 1;
 | 
			
		||||
    else {
 | 
			
		||||
      lo = hi = i;
 | 
			
		||||
      lo = i;
 | 
			
		||||
      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
 | 
			
		||||
 
 | 
			
		||||
@@ -120,7 +120,7 @@ wxNotebookPage *wxNotebookBase::DoRemovePage(int nPage)
 | 
			
		||||
                 _T("invalid page index in wxNotebookBase::DoRemovePage()") );
 | 
			
		||||
 | 
			
		||||
    wxNotebookPage *pageRemoved = m_pages[nPage];
 | 
			
		||||
    m_pages.Remove(nPage);
 | 
			
		||||
    m_pages.RemoveAt(nPage);
 | 
			
		||||
 | 
			
		||||
    return pageRemoved;
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -3022,7 +3022,7 @@ bool wxGridStringTable::DeleteRows( size_t pos, size_t numRows )
 | 
			
		||||
    {
 | 
			
		||||
        for ( n = 0;  n < numRows;  n++ )
 | 
			
		||||
        {
 | 
			
		||||
            m_data.Remove( pos );
 | 
			
		||||
            m_data.RemoveAt( pos );
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
    if ( GetView() )
 | 
			
		||||
 
 | 
			
		||||
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							@@ -315,7 +315,7 @@ bool wxHtmlWindow::LoadPage(const wxString& location)
 | 
			
		||||
        {
 | 
			
		||||
            m_HistoryPos++;
 | 
			
		||||
            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));
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 
 | 
			
		||||
@@ -296,7 +296,7 @@ void wxCheckListBox::Delete(int N)
 | 
			
		||||
    // free memory
 | 
			
		||||
    delete m_aItems[N];
 | 
			
		||||
 | 
			
		||||
    m_aItems.Remove(N);
 | 
			
		||||
    m_aItems.RemoveAt(N);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void wxCheckListBox::InsertItems(int nItems, const wxString items[], int pos)
 | 
			
		||||
 
 | 
			
		||||
@@ -237,7 +237,7 @@ wxPaintDC::~wxPaintDC()
 | 
			
		||||
        {
 | 
			
		||||
            ::EndPaint(GetHwndOf(m_canvas), &g_paintStruct);
 | 
			
		||||
 | 
			
		||||
            ms_cache.Remove(index);
 | 
			
		||||
            ms_cache.RemoveAt(index);
 | 
			
		||||
 | 
			
		||||
            // Reduce the number of bogus reports of non-freed memory
 | 
			
		||||
            // at app exit
 | 
			
		||||
 
 | 
			
		||||
@@ -172,7 +172,7 @@ void wxMenu::UpdateAccel(wxMenuItem *item)
 | 
			
		||||
            if ( accel )
 | 
			
		||||
                m_accels[n] = accel;
 | 
			
		||||
            else
 | 
			
		||||
                m_accels.Remove(n);
 | 
			
		||||
                m_accels.RemoveAt(n);
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        if ( IsAttached() )
 | 
			
		||||
@@ -317,7 +317,7 @@ wxMenuItem *wxMenu::DoRemove(wxMenuItem *item)
 | 
			
		||||
    {
 | 
			
		||||
        delete m_accels[n];
 | 
			
		||||
 | 
			
		||||
        m_accels.Remove(n);
 | 
			
		||||
        m_accels.RemoveAt(n);
 | 
			
		||||
    }
 | 
			
		||||
    //else: this item doesn't have an accel, nothing to do
 | 
			
		||||
#endif // wxUSE_ACCEL
 | 
			
		||||
 
 | 
			
		||||
@@ -161,7 +161,7 @@ bool wxNotebook::Create(wxWindow *parent,
 | 
			
		||||
  if ( m_windowStyle & wxTC_MULTILINE )
 | 
			
		||||
    tabStyle |= TCS_MULTILINE;
 | 
			
		||||
  if ( m_windowStyle & wxBORDER )
 | 
			
		||||
    tabStyle &= WS_BORDER;
 | 
			
		||||
    tabStyle |= WS_BORDER;
 | 
			
		||||
  if (m_windowStyle & wxNB_FIXEDWIDTH)
 | 
			
		||||
    tabStyle |= TCS_FIXEDWIDTH ;
 | 
			
		||||
  if (m_windowStyle & wxNB_BOTTOM)
 | 
			
		||||
@@ -326,7 +326,7 @@ bool wxNotebook::DeletePage(int nPage)
 | 
			
		||||
  TabCtrl_DeleteItem(m_hwnd, nPage);
 | 
			
		||||
 | 
			
		||||
  delete m_pages[nPage];
 | 
			
		||||
  m_pages.Remove(nPage);
 | 
			
		||||
  m_pages.RemoveAt(nPage);
 | 
			
		||||
 | 
			
		||||
  if ( m_pages.IsEmpty() ) {
 | 
			
		||||
      // no selection if the notebook became empty
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user