]> git.saurik.com Git - wxWidgets.git/blobdiff - src/generic/listctrl.cpp
Slider Updates
[wxWidgets.git] / src / generic / listctrl.cpp
index 538ddcc162d2aa2f9c01e9eef938ee7dccc3cad1..3c6eb23cf8839b28b37382c0d98fdc7fdd468082 100644 (file)
@@ -733,9 +733,9 @@ public:
     // these are for wxListLineData usage only
 
     // get the backpointer to the list ctrl
     // these are for wxListLineData usage only
 
     // get the backpointer to the list ctrl
-    wxListCtrl *GetListCtrl() const
+    wxGenericListCtrl *GetListCtrl() const
     {
     {
-        return wxStaticCast(GetParent(), wxListCtrl);
+        return wxStaticCast(GetParent(), wxGenericListCtrl);
     }
 
     // get the height of all lines (assuming they all do have the same height)
     }
 
     // get the height of all lines (assuming they all do have the same height)
@@ -751,7 +751,8 @@ public:
     }
 
 //protected:
     }
 
 //protected:
-    // the array of all line objects for a non virtual list control
+    // the array of all line objects for a non virtual list control (for the
+    // virtual list control we only ever use m_lines[0])
     wxListLineDataArray  m_lines;
 
     // the list of column objects
     wxListLineDataArray  m_lines;
 
     // the list of column objects
@@ -1701,18 +1702,17 @@ void wxListLineData::DrawInReportMode( wxDC *dc,
         dc->DrawRectangle( rectHL );
     }
 
         dc->DrawRectangle( rectHL );
     }
 
-    wxListItemDataList::Node *node = m_items.GetFirst();
-    wxCHECK_RET( node, _T("no subitems at all??") );
-
-    size_t col = 0;
     wxCoord x = rect.x + HEADER_OFFSET_X,
             y = rect.y + (LINE_SPACING + EXTRA_HEIGHT) / 2;
 
     wxCoord x = rect.x + HEADER_OFFSET_X,
             y = rect.y + (LINE_SPACING + EXTRA_HEIGHT) / 2;
 
-    while ( node )
+    size_t col = 0;
+    for ( wxListItemDataList::Node *node = m_items.GetFirst();
+          node;
+          node = node->GetNext(), col++ )
     {
         wxListItemData *item = node->GetData();
 
     {
         wxListItemData *item = node->GetData();
 
-        int width = m_owner->GetColumnWidth(col++);
+        int width = m_owner->GetColumnWidth(col);
         int xOld = x;
         x += width;
 
         int xOld = x;
         x += width;
 
@@ -1734,8 +1734,6 @@ void wxListLineData::DrawInReportMode( wxDC *dc,
         {
             dc->DrawText( item->GetText(), xOld, y );
         }
         {
             dc->DrawText( item->GetText(), xOld, y );
         }
-
-        node = node->GetNext();
     }
 }
 
     }
 }
 
@@ -2377,7 +2375,7 @@ wxListMainWindow::~wxListMainWindow()
 
 void wxListMainWindow::CacheLineData(size_t line)
 {
 
 void wxListMainWindow::CacheLineData(size_t line)
 {
-    wxListCtrl *listctrl = GetListCtrl();
+    wxGenericListCtrl *listctrl = GetListCtrl();
 
     wxListLineData *ld = GetDummyLine();
 
 
     wxListLineData *ld = GetDummyLine();
 
@@ -2395,15 +2393,27 @@ wxListLineData *wxListMainWindow::GetDummyLine() const
 {
     wxASSERT_MSG( !IsEmpty(), _T("invalid line index") );
 
 {
     wxASSERT_MSG( !IsEmpty(), _T("invalid line index") );
 
-    if ( m_lines.IsEmpty() )
+    wxASSERT_MSG( IsVirtual(), _T("GetDummyLine() shouldn't be called") );
+
+    wxListMainWindow *self = wxConstCast(this, wxListMainWindow);
+
+    // we need to recreate the dummy line if the number of columns in the
+    // control changed as it would have the incorrect number of fields
+    // otherwise
+    if ( !m_lines.IsEmpty() &&
+            m_lines[0].m_items.GetCount() != (size_t)GetColumnCount() )
     {
     {
-        // normal controls are supposed to have something in m_lines
-        // already if it's not empty
-        wxASSERT_MSG( IsVirtual(), _T("logic error") );
+        self->m_lines.Clear();
+    }
 
 
-        wxListMainWindow *self = wxConstCast(this, wxListMainWindow);
+    if ( m_lines.IsEmpty() )
+    {
         wxListLineData *line = new wxListLineData(self);
         self->m_lines.Add(line);
         wxListLineData *line = new wxListLineData(self);
         self->m_lines.Add(line);
+
+        // don't waste extra memory -- there never going to be anything
+        // else/more in this array
+        self->m_lines.Shrink();
     }
 
     return &m_lines[0];
     }
 
     return &m_lines[0];
@@ -2923,7 +2933,7 @@ void wxListMainWindow::ChangeCurrent(size_t current)
 void wxListMainWindow::EditLabel( long item )
 {
     wxCHECK_RET( (item >= 0) && ((size_t)item < GetItemCount()),
 void wxListMainWindow::EditLabel( long item )
 {
     wxCHECK_RET( (item >= 0) && ((size_t)item < GetItemCount()),
-                 wxT("wrong index in wxListCtrl::EditLabel()") );
+                 wxT("wrong index in wxGenericListCtrl::EditLabel()") );
 
     size_t itemEdit = (size_t)item;
 
 
     size_t itemEdit = (size_t)item;
 
@@ -3220,7 +3230,7 @@ void wxListMainWindow::OnArrowChar(size_t newCurrent, const wxKeyEvent& event)
 
         ChangeCurrent(newCurrent);
 
 
         ChangeCurrent(newCurrent);
 
-        HighlightLine( oldCurrent, FALSE );
+        // refresh the old focus to remove it
         RefreshLine( oldCurrent );
 
         if ( !event.ControlDown() )
         RefreshLine( oldCurrent );
 
         if ( !event.ControlDown() )
@@ -4228,9 +4238,9 @@ void wxListMainWindow::DeleteAllItems()
 
 void wxListMainWindow::DeleteEverything()
 {
 
 void wxListMainWindow::DeleteEverything()
 {
-    DeleteAllItems();
-
     m_columns.Clear();
     m_columns.Clear();
+
+    DeleteAllItems();
 }
 
 // ----------------------------------------------------------------------------
 }
 
 // ----------------------------------------------------------------------------
@@ -4429,7 +4439,7 @@ void wxListMainWindow::OnScroll(wxScrollWinEvent& event)
 
     if ( event.GetOrientation() == wxHORIZONTAL && HasHeader() )
     {
 
     if ( event.GetOrientation() == wxHORIZONTAL && HasHeader() )
     {
-        wxListCtrl* lc = GetListCtrl();
+        wxGenericListCtrl* lc = GetListCtrl();
         wxCHECK_RET( lc, _T("no listctrl window?") );
 
         lc->m_headerWin->Refresh();
         wxCHECK_RET( lc, _T("no listctrl window?") );
 
         lc->m_headerWin->Refresh();
@@ -4490,23 +4500,37 @@ void wxListMainWindow::GetVisibleLinesRange(size_t *from, size_t *to)
 // wxListItem
 // -------------------------------------------------------------------------------------
 
 // wxListItem
 // -------------------------------------------------------------------------------------
 
+#if !defined(__WIN32__)
 IMPLEMENT_DYNAMIC_CLASS(wxListItem, wxObject)
 IMPLEMENT_DYNAMIC_CLASS(wxListItem, wxObject)
+#endif
 
 // -------------------------------------------------------------------------------------
 
 // -------------------------------------------------------------------------------------
-// wxListCtrl
+// wxGenericListCtrl
 // -------------------------------------------------------------------------------------
 
 // -------------------------------------------------------------------------------------
 
-IMPLEMENT_DYNAMIC_CLASS(wxListCtrl, wxControl)
+IMPLEMENT_DYNAMIC_CLASS(wxGenericListCtrl, wxControl)
+
+#if !defined(__WIN32__)
 IMPLEMENT_DYNAMIC_CLASS(wxListView, wxListCtrl)
 
 IMPLEMENT_DYNAMIC_CLASS(wxListEvent, wxNotifyEvent)
 IMPLEMENT_DYNAMIC_CLASS(wxListView, wxListCtrl)
 
 IMPLEMENT_DYNAMIC_CLASS(wxListEvent, wxNotifyEvent)
+#endif
 
 
-BEGIN_EVENT_TABLE(wxListCtrl,wxControl)
-  EVT_SIZE(wxListCtrl::OnSize)
-  EVT_IDLE(wxListCtrl::OnIdle)
+BEGIN_EVENT_TABLE(wxGenericListCtrl,wxControl)
+  EVT_SIZE(wxGenericListCtrl::OnSize)
+  EVT_IDLE(wxGenericListCtrl::OnIdle)
 END_EVENT_TABLE()
 
 END_EVENT_TABLE()
 
-wxListCtrl::wxListCtrl()
+#if !defined(__WXMSW__) || defined(__WIN16__) || defined(__WXUNIVERSAL__)
+/*
+ * wxListCtrl has to be a real class or we have problems with
+ * the run-time information.
+ */
+
+IMPLEMENT_DYNAMIC_CLASS(wxListCtrl, wxGenericListCtrl)
+#endif
+
+wxGenericListCtrl::wxGenericListCtrl()
 {
     m_imageListNormal = (wxImageList *) NULL;
     m_imageListSmall = (wxImageList *) NULL;
 {
     m_imageListNormal = (wxImageList *) NULL;
     m_imageListSmall = (wxImageList *) NULL;
@@ -4520,7 +4544,7 @@ wxListCtrl::wxListCtrl()
     m_headerWin = (wxListHeaderWindow*) NULL;
 }
 
     m_headerWin = (wxListHeaderWindow*) NULL;
 }
 
-wxListCtrl::~wxListCtrl()
+wxGenericListCtrl::~wxGenericListCtrl()
 {
     if (m_ownsImageListNormal)
         delete m_imageListNormal;
 {
     if (m_ownsImageListNormal)
         delete m_imageListNormal;
@@ -4530,7 +4554,7 @@ wxListCtrl::~wxListCtrl()
         delete m_imageListState;
 }
 
         delete m_imageListState;
 }
 
-void wxListCtrl::CreateHeaderWindow()
+void wxGenericListCtrl::CreateHeaderWindow()
 {
     m_headerWin = new wxListHeaderWindow
                       (
 {
     m_headerWin = new wxListHeaderWindow
                       (
@@ -4541,7 +4565,7 @@ void wxListCtrl::CreateHeaderWindow()
                       );
 }
 
                       );
 }
 
-bool wxListCtrl::Create(wxWindow *parent,
+bool wxGenericListCtrl::Create(wxWindow *parent,
                         wxWindowID id,
                         const wxPoint &pos,
                         const wxSize &size,
                         wxWindowID id,
                         const wxPoint &pos,
                         const wxSize &size,
@@ -4586,7 +4610,7 @@ bool wxListCtrl::Create(wxWindow *parent,
     return TRUE;
 }
 
     return TRUE;
 }
 
-void wxListCtrl::SetSingleStyle( long style, bool add )
+void wxGenericListCtrl::SetSingleStyle( long style, bool add )
 {
     wxASSERT_MSG( !(style & wxLC_VIRTUAL),
                   _T("wxLC_VIRTUAL can't be [un]set") );
 {
     wxASSERT_MSG( !(style & wxLC_VIRTUAL),
                   _T("wxLC_VIRTUAL can't be [un]set") );
@@ -4615,7 +4639,7 @@ void wxListCtrl::SetSingleStyle( long style, bool add )
     SetWindowStyleFlag( flag );
 }
 
     SetWindowStyleFlag( flag );
 }
 
-void wxListCtrl::SetWindowStyleFlag( long flag )
+void wxGenericListCtrl::SetWindowStyleFlag( long flag )
 {
     if (m_mainWin)
     {
 {
     if (m_mainWin)
     {
@@ -4656,47 +4680,47 @@ void wxListCtrl::SetWindowStyleFlag( long flag )
     wxWindow::SetWindowStyleFlag( flag );
 }
 
     wxWindow::SetWindowStyleFlag( flag );
 }
 
-bool wxListCtrl::GetColumn(int col, wxListItem &item) const
+bool wxGenericListCtrl::GetColumn(int col, wxListItem &item) const
 {
     m_mainWin->GetColumn( col, item );
     return TRUE;
 }
 
 {
     m_mainWin->GetColumn( col, item );
     return TRUE;
 }
 
-bool wxListCtrl::SetColumn( int col, wxListItem& item )
+bool wxGenericListCtrl::SetColumn( int col, wxListItem& item )
 {
     m_mainWin->SetColumn( col, item );
     return TRUE;
 }
 
 {
     m_mainWin->SetColumn( col, item );
     return TRUE;
 }
 
-int wxListCtrl::GetColumnWidth( int col ) const
+int wxGenericListCtrl::GetColumnWidth( int col ) const
 {
     return m_mainWin->GetColumnWidth( col );
 }
 
 {
     return m_mainWin->GetColumnWidth( col );
 }
 
-bool wxListCtrl::SetColumnWidth( int col, int width )
+bool wxGenericListCtrl::SetColumnWidth( int col, int width )
 {
     m_mainWin->SetColumnWidth( col, width );
     return TRUE;
 }
 
 {
     m_mainWin->SetColumnWidth( col, width );
     return TRUE;
 }
 
-int wxListCtrl::GetCountPerPage() const
+int wxGenericListCtrl::GetCountPerPage() const
 {
   return m_mainWin->GetCountPerPage();  // different from Windows ?
 }
 
 {
   return m_mainWin->GetCountPerPage();  // different from Windows ?
 }
 
-bool wxListCtrl::GetItem( wxListItem &info ) const
+bool wxGenericListCtrl::GetItem( wxListItem &info ) const
 {
     m_mainWin->GetItem( info );
     return TRUE;
 }
 
 {
     m_mainWin->GetItem( info );
     return TRUE;
 }
 
-bool wxListCtrl::SetItem( wxListItem &info )
+bool wxGenericListCtrl::SetItem( wxListItem &info )
 {
     m_mainWin->SetItem( info );
     return TRUE;
 }
 
 {
     m_mainWin->SetItem( info );
     return TRUE;
 }
 
-long wxListCtrl::SetItem( long index, int col, const wxString& label, int imageId )
+long wxGenericListCtrl::SetItem( long index, int col, const wxString& label, int imageId )
 {
     wxListItem info;
     info.m_text = label;
 {
     wxListItem info;
     info.m_text = label;
@@ -4712,18 +4736,18 @@ long wxListCtrl::SetItem( long index, int col, const wxString& label, int imageI
     return TRUE;
 }
 
     return TRUE;
 }
 
-int wxListCtrl::GetItemState( long item, long stateMask ) const
+int wxGenericListCtrl::GetItemState( long item, long stateMask ) const
 {
     return m_mainWin->GetItemState( item, stateMask );
 }
 
 {
     return m_mainWin->GetItemState( item, stateMask );
 }
 
-bool wxListCtrl::SetItemState( long item, long state, long stateMask )
+bool wxGenericListCtrl::SetItemState( long item, long state, long stateMask )
 {
     m_mainWin->SetItemState( item, state, stateMask );
     return TRUE;
 }
 
 {
     m_mainWin->SetItemState( item, state, stateMask );
     return TRUE;
 }
 
-bool wxListCtrl::SetItemImage( long item, int image, int WXUNUSED(selImage) )
+bool wxGenericListCtrl::SetItemImage( long item, int image, int WXUNUSED(selImage) )
 {
     wxListItem info;
     info.m_image = image;
 {
     wxListItem info;
     info.m_image = image;
@@ -4733,17 +4757,17 @@ bool wxListCtrl::SetItemImage( long item, int image, int WXUNUSED(selImage) )
     return TRUE;
 }
 
     return TRUE;
 }
 
-wxString wxListCtrl::GetItemText( long item ) const
+wxString wxGenericListCtrl::GetItemText( long item ) const
 {
     return m_mainWin->GetItemText(item);
 }
 
 {
     return m_mainWin->GetItemText(item);
 }
 
-void wxListCtrl::SetItemText( long item, const wxString& str )
+void wxGenericListCtrl::SetItemText( long item, const wxString& str )
 {
     m_mainWin->SetItemText(item, str);
 }
 
 {
     m_mainWin->SetItemText(item, str);
 }
 
-long wxListCtrl::GetItemData( long item ) const
+long wxGenericListCtrl::GetItemData( long item ) const
 {
     wxListItem info;
     info.m_itemId = item;
 {
     wxListItem info;
     info.m_itemId = item;
@@ -4751,7 +4775,7 @@ long wxListCtrl::GetItemData( long item ) const
     return info.m_data;
 }
 
     return info.m_data;
 }
 
-bool wxListCtrl::SetItemData( long item, long data )
+bool wxGenericListCtrl::SetItemData( long item, long data )
 {
     wxListItem info;
     info.m_mask = wxLIST_MASK_DATA;
 {
     wxListItem info;
     info.m_mask = wxLIST_MASK_DATA;
@@ -4761,44 +4785,44 @@ bool wxListCtrl::SetItemData( long item, long data )
     return TRUE;
 }
 
     return TRUE;
 }
 
-bool wxListCtrl::GetItemRect( long item, wxRect &rect,  int WXUNUSED(code) ) const
+bool wxGenericListCtrl::GetItemRect( long item, wxRect &rect,  int WXUNUSED(code) ) const
 {
     m_mainWin->GetItemRect( item, rect );
     return TRUE;
 }
 
 {
     m_mainWin->GetItemRect( item, rect );
     return TRUE;
 }
 
-bool wxListCtrl::GetItemPosition( long item, wxPoint& pos ) const
+bool wxGenericListCtrl::GetItemPosition( long item, wxPoint& pos ) const
 {
     m_mainWin->GetItemPosition( item, pos );
     return TRUE;
 }
 
 {
     m_mainWin->GetItemPosition( item, pos );
     return TRUE;
 }
 
-bool wxListCtrl::SetItemPosition( long WXUNUSED(item), const wxPoint& WXUNUSED(pos) )
+bool wxGenericListCtrl::SetItemPosition( long WXUNUSED(item), const wxPoint& WXUNUSED(pos) )
 {
     return 0;
 }
 
 {
     return 0;
 }
 
-int wxListCtrl::GetItemCount() const
+int wxGenericListCtrl::GetItemCount() const
 {
     return m_mainWin->GetItemCount();
 }
 
 {
     return m_mainWin->GetItemCount();
 }
 
-int wxListCtrl::GetColumnCount() const
+int wxGenericListCtrl::GetColumnCount() const
 {
     return m_mainWin->GetColumnCount();
 }
 
 {
     return m_mainWin->GetColumnCount();
 }
 
-void wxListCtrl::SetItemSpacing( int spacing, bool isSmall )
+void wxGenericListCtrl::SetItemSpacing( int spacing, bool isSmall )
 {
     m_mainWin->SetItemSpacing( spacing, isSmall );
 }
 
 {
     m_mainWin->SetItemSpacing( spacing, isSmall );
 }
 
-int wxListCtrl::GetItemSpacing( bool isSmall ) const
+int wxGenericListCtrl::GetItemSpacing( bool isSmall ) const
 {
     return m_mainWin->GetItemSpacing( isSmall );
 }
 
 {
     return m_mainWin->GetItemSpacing( isSmall );
 }
 
-void wxListCtrl::SetItemTextColour( long item, const wxColour &col )
+void wxGenericListCtrl::SetItemTextColour( long item, const wxColour &col )
 {
     wxListItem info;
     info.m_itemId = item;
 {
     wxListItem info;
     info.m_itemId = item;
@@ -4806,7 +4830,7 @@ void wxListCtrl::SetItemTextColour( long item, const wxColour &col )
     m_mainWin->SetItem( info );
 }
 
     m_mainWin->SetItem( info );
 }
 
-wxColour wxListCtrl::GetItemTextColour( long item ) const
+wxColour wxGenericListCtrl::GetItemTextColour( long item ) const
 {
     wxListItem info;
     info.m_itemId = item;
 {
     wxListItem info;
     info.m_itemId = item;
@@ -4814,7 +4838,7 @@ wxColour wxListCtrl::GetItemTextColour( long item ) const
     return info.GetTextColour();
 }
 
     return info.GetTextColour();
 }
 
-void wxListCtrl::SetItemBackgroundColour( long item, const wxColour &col )
+void wxGenericListCtrl::SetItemBackgroundColour( long item, const wxColour &col )
 {
     wxListItem info;
     info.m_itemId = item;
 {
     wxListItem info;
     info.m_itemId = item;
@@ -4822,7 +4846,7 @@ void wxListCtrl::SetItemBackgroundColour( long item, const wxColour &col )
     m_mainWin->SetItem( info );
 }
 
     m_mainWin->SetItem( info );
 }
 
-wxColour wxListCtrl::GetItemBackgroundColour( long item ) const
+wxColour wxGenericListCtrl::GetItemBackgroundColour( long item ) const
 {
     wxListItem info;
     info.m_itemId = item;
 {
     wxListItem info;
     info.m_itemId = item;
@@ -4830,32 +4854,32 @@ wxColour wxListCtrl::GetItemBackgroundColour( long item ) const
     return info.GetBackgroundColour();
 }
 
     return info.GetBackgroundColour();
 }
 
-int wxListCtrl::GetSelectedItemCount() const
+int wxGenericListCtrl::GetSelectedItemCount() const
 {
     return m_mainWin->GetSelectedItemCount();
 }
 
 {
     return m_mainWin->GetSelectedItemCount();
 }
 
-wxColour wxListCtrl::GetTextColour() const
+wxColour wxGenericListCtrl::GetTextColour() const
 {
     return GetForegroundColour();
 }
 
 {
     return GetForegroundColour();
 }
 
-void wxListCtrl::SetTextColour(const wxColour& col)
+void wxGenericListCtrl::SetTextColour(const wxColour& col)
 {
     SetForegroundColour(col);
 }
 
 {
     SetForegroundColour(col);
 }
 
-long wxListCtrl::GetTopItem() const
+long wxGenericListCtrl::GetTopItem() const
 {
     return 0;
 }
 
 {
     return 0;
 }
 
-long wxListCtrl::GetNextItem( long item, int geom, int state ) const
+long wxGenericListCtrl::GetNextItem( long item, int geom, int state ) const
 {
     return m_mainWin->GetNextItem( item, geom, state );
 }
 
 {
     return m_mainWin->GetNextItem( item, geom, state );
 }
 
-wxImageList *wxListCtrl::GetImageList(int which) const
+wxImageList *wxGenericListCtrl::GetImageList(int which) const
 {
     if (which == wxIMAGE_LIST_NORMAL)
     {
 {
     if (which == wxIMAGE_LIST_NORMAL)
     {
@@ -4872,7 +4896,7 @@ wxImageList *wxListCtrl::GetImageList(int which) const
     return (wxImageList *) NULL;
 }
 
     return (wxImageList *) NULL;
 }
 
-void wxListCtrl::SetImageList( wxImageList *imageList, int which )
+void wxGenericListCtrl::SetImageList( wxImageList *imageList, int which )
 {
     if ( which == wxIMAGE_LIST_NORMAL )
     {
 {
     if ( which == wxIMAGE_LIST_NORMAL )
     {
@@ -4896,7 +4920,7 @@ void wxListCtrl::SetImageList( wxImageList *imageList, int which )
     m_mainWin->SetImageList( imageList, which );
 }
 
     m_mainWin->SetImageList( imageList, which );
 }
 
-void wxListCtrl::AssignImageList(wxImageList *imageList, int which)
+void wxGenericListCtrl::AssignImageList(wxImageList *imageList, int which)
 {
     SetImageList(imageList, which);
     if ( which == wxIMAGE_LIST_NORMAL )
 {
     SetImageList(imageList, which);
     if ( which == wxIMAGE_LIST_NORMAL )
@@ -4907,24 +4931,24 @@ void wxListCtrl::AssignImageList(wxImageList *imageList, int which)
         m_ownsImageListState = TRUE;
 }
 
         m_ownsImageListState = TRUE;
 }
 
-bool wxListCtrl::Arrange( int WXUNUSED(flag) )
+bool wxGenericListCtrl::Arrange( int WXUNUSED(flag) )
 {
     return 0;
 }
 
 {
     return 0;
 }
 
-bool wxListCtrl::DeleteItem( long item )
+bool wxGenericListCtrl::DeleteItem( long item )
 {
     m_mainWin->DeleteItem( item );
     return TRUE;
 }
 
 {
     m_mainWin->DeleteItem( item );
     return TRUE;
 }
 
-bool wxListCtrl::DeleteAllItems()
+bool wxGenericListCtrl::DeleteAllItems()
 {
     m_mainWin->DeleteAllItems();
     return TRUE;
 }
 
 {
     m_mainWin->DeleteAllItems();
     return TRUE;
 }
 
-bool wxListCtrl::DeleteAllColumns()
+bool wxGenericListCtrl::DeleteAllColumns()
 {
     size_t count = m_mainWin->m_columns.GetCount();
     for ( size_t n = 0; n < count; n++ )
 {
     size_t count = m_mainWin->m_columns.GetCount();
     for ( size_t n = 0; n < count; n++ )
@@ -4933,12 +4957,12 @@ bool wxListCtrl::DeleteAllColumns()
     return TRUE;
 }
 
     return TRUE;
 }
 
-void wxListCtrl::ClearAll()
+void wxGenericListCtrl::ClearAll()
 {
     m_mainWin->DeleteEverything();
 }
 
 {
     m_mainWin->DeleteEverything();
 }
 
-bool wxListCtrl::DeleteColumn( int col )
+bool wxGenericListCtrl::DeleteColumn( int col )
 {
     m_mainWin->DeleteColumn( col );
 
 {
     m_mainWin->DeleteColumn( col );
 
@@ -4951,45 +4975,45 @@ bool wxListCtrl::DeleteColumn( int col )
     return TRUE;
 }
 
     return TRUE;
 }
 
-void wxListCtrl::Edit( long item )
+void wxGenericListCtrl::Edit( long item )
 {
     m_mainWin->EditLabel( item );
 }
 
 {
     m_mainWin->EditLabel( item );
 }
 
-bool wxListCtrl::EnsureVisible( long item )
+bool wxGenericListCtrl::EnsureVisible( long item )
 {
     m_mainWin->EnsureVisible( item );
     return TRUE;
 }
 
 {
     m_mainWin->EnsureVisible( item );
     return TRUE;
 }
 
-long wxListCtrl::FindItem( long start, const wxString& str,  bool partial )
+long wxGenericListCtrl::FindItem( long start, const wxString& str,  bool partial )
 {
     return m_mainWin->FindItem( start, str, partial );
 }
 
 {
     return m_mainWin->FindItem( start, str, partial );
 }
 
-long wxListCtrl::FindItem( long start, long data )
+long wxGenericListCtrl::FindItem( long start, long data )
 {
     return m_mainWin->FindItem( start, data );
 }
 
 {
     return m_mainWin->FindItem( start, data );
 }
 
-long wxListCtrl::FindItem( long WXUNUSED(start), const wxPoint& WXUNUSED(pt),
+long wxGenericListCtrl::FindItem( long WXUNUSED(start), const wxPoint& WXUNUSED(pt),
                            int WXUNUSED(direction))
 {
     return 0;
 }
 
                            int WXUNUSED(direction))
 {
     return 0;
 }
 
-long wxListCtrl::HitTest( const wxPoint &point, int &flags )
+long wxGenericListCtrl::HitTest( const wxPoint &point, int &flags )
 {
     return m_mainWin->HitTest( (int)point.x, (int)point.y, flags );
 }
 
 {
     return m_mainWin->HitTest( (int)point.x, (int)point.y, flags );
 }
 
-long wxListCtrl::InsertItem( wxListItem& info )
+long wxGenericListCtrl::InsertItem( wxListItem& info )
 {
     m_mainWin->InsertItem( info );
     return info.m_itemId;
 }
 
 {
     m_mainWin->InsertItem( info );
     return info.m_itemId;
 }
 
-long wxListCtrl::InsertItem( long index, const wxString &label )
+long wxGenericListCtrl::InsertItem( long index, const wxString &label )
 {
     wxListItem info;
     info.m_text = label;
 {
     wxListItem info;
     info.m_text = label;
@@ -4998,7 +5022,7 @@ long wxListCtrl::InsertItem( long index, const wxString &label )
     return InsertItem( info );
 }
 
     return InsertItem( info );
 }
 
-long wxListCtrl::InsertItem( long index, int imageIndex )
+long wxGenericListCtrl::InsertItem( long index, int imageIndex )
 {
     wxListItem info;
     info.m_mask = wxLIST_MASK_IMAGE;
 {
     wxListItem info;
     info.m_mask = wxLIST_MASK_IMAGE;
@@ -5007,7 +5031,7 @@ long wxListCtrl::InsertItem( long index, int imageIndex )
     return InsertItem( info );
 }
 
     return InsertItem( info );
 }
 
-long wxListCtrl::InsertItem( long index, const wxString &label, int imageIndex )
+long wxGenericListCtrl::InsertItem( long index, const wxString &label, int imageIndex )
 {
     wxListItem info;
     info.m_text = label;
 {
     wxListItem info;
     info.m_text = label;
@@ -5017,7 +5041,7 @@ long wxListCtrl::InsertItem( long index, const wxString &label, int imageIndex )
     return InsertItem( info );
 }
 
     return InsertItem( info );
 }
 
-long wxListCtrl::InsertColumn( long col, wxListItem &item )
+long wxGenericListCtrl::InsertColumn( long col, wxListItem &item )
 {
     wxCHECK_MSG( m_headerWin, -1, _T("can't add column in non report mode") );
 
 {
     wxCHECK_MSG( m_headerWin, -1, _T("can't add column in non report mode") );
 
@@ -5035,7 +5059,7 @@ long wxListCtrl::InsertColumn( long col, wxListItem &item )
     return 0;
 }
 
     return 0;
 }
 
-long wxListCtrl::InsertColumn( long col, const wxString &heading,
+long wxGenericListCtrl::InsertColumn( long col, const wxString &heading,
                                int format, int width )
 {
     wxListItem item;
                                int format, int width )
 {
     wxListItem item;
@@ -5051,7 +5075,7 @@ long wxListCtrl::InsertColumn( long col, const wxString &heading,
     return InsertColumn( col, item );
 }
 
     return InsertColumn( col, item );
 }
 
-bool wxListCtrl::ScrollList( int WXUNUSED(dx), int WXUNUSED(dy) )
+bool wxGenericListCtrl::ScrollList( int WXUNUSED(dx), int WXUNUSED(dy) )
 {
     return 0;
 }
 {
     return 0;
 }
@@ -5066,7 +5090,7 @@ bool wxListCtrl::ScrollList( int WXUNUSED(dx), int WXUNUSED(dy) )
 // or zero if the two items are equivalent.
 // data is arbitrary data to be passed to the sort function.
 
 // or zero if the two items are equivalent.
 // data is arbitrary data to be passed to the sort function.
 
-bool wxListCtrl::SortItems( wxListCtrlCompare fn, long data )
+bool wxGenericListCtrl::SortItems( wxListCtrlCompare fn, long data )
 {
     m_mainWin->SortItems( fn, data );
     return TRUE;
 {
     m_mainWin->SortItems( fn, data );
     return TRUE;
@@ -5076,7 +5100,7 @@ bool wxListCtrl::SortItems( wxListCtrlCompare fn, long data )
 // event handlers
 // ----------------------------------------------------------------------------
 
 // event handlers
 // ----------------------------------------------------------------------------
 
-void wxListCtrl::OnSize(wxSizeEvent& WXUNUSED(event))
+void wxGenericListCtrl::OnSize(wxSizeEvent& WXUNUSED(event))
 {
     if ( !m_mainWin )
         return;
 {
     if ( !m_mainWin )
         return;
@@ -5086,7 +5110,7 @@ void wxListCtrl::OnSize(wxSizeEvent& WXUNUSED(event))
     m_mainWin->RecalculatePositions();
 }
 
     m_mainWin->RecalculatePositions();
 }
 
-void wxListCtrl::ResizeReportView(bool showHeader)
+void wxGenericListCtrl::ResizeReportView(bool showHeader)
 {
     int cw, ch;
     GetClientSize( &cw, &ch );
 {
     int cw, ch;
     GetClientSize( &cw, &ch );
@@ -5102,7 +5126,7 @@ void wxListCtrl::ResizeReportView(bool showHeader)
     }
 }
 
     }
 }
 
-void wxListCtrl::OnIdle( wxIdleEvent & event )
+void wxGenericListCtrl::OnIdle( wxIdleEvent & event )
 {
     event.Skip();
 
 {
     event.Skip();
 
@@ -5117,7 +5141,7 @@ void wxListCtrl::OnIdle( wxIdleEvent & event )
 // font/colours
 // ----------------------------------------------------------------------------
 
 // font/colours
 // ----------------------------------------------------------------------------
 
-bool wxListCtrl::SetBackgroundColour( const wxColour &colour )
+bool wxGenericListCtrl::SetBackgroundColour( const wxColour &colour )
 {
     if (m_mainWin)
     {
 {
     if (m_mainWin)
     {
@@ -5128,7 +5152,7 @@ bool wxListCtrl::SetBackgroundColour( const wxColour &colour )
     return TRUE;
 }
 
     return TRUE;
 }
 
-bool wxListCtrl::SetForegroundColour( const wxColour &colour )
+bool wxGenericListCtrl::SetForegroundColour( const wxColour &colour )
 {
     if ( !wxWindow::SetForegroundColour( colour ) )
         return FALSE;
 {
     if ( !wxWindow::SetForegroundColour( colour ) )
         return FALSE;
@@ -5147,7 +5171,7 @@ bool wxListCtrl::SetForegroundColour( const wxColour &colour )
     return TRUE;
 }
 
     return TRUE;
 }
 
-bool wxListCtrl::SetFont( const wxFont &font )
+bool wxGenericListCtrl::SetFont( const wxFont &font )
 {
     if ( !wxWindow::SetFont( font ) )
         return FALSE;
 {
     if ( !wxWindow::SetFont( font ) )
         return FALSE;
@@ -5172,34 +5196,34 @@ bool wxListCtrl::SetFont( const wxFont &font )
 
 #if wxUSE_DRAG_AND_DROP
 
 
 #if wxUSE_DRAG_AND_DROP
 
-void wxListCtrl::SetDropTarget( wxDropTarget *dropTarget )
+void wxGenericListCtrl::SetDropTarget( wxDropTarget *dropTarget )
 {
     m_mainWin->SetDropTarget( dropTarget );
 }
 
 {
     m_mainWin->SetDropTarget( dropTarget );
 }
 
-wxDropTarget *wxListCtrl::GetDropTarget() const
+wxDropTarget *wxGenericListCtrl::GetDropTarget() const
 {
     return m_mainWin->GetDropTarget();
 }
 
 #endif // wxUSE_DRAG_AND_DROP
 
 {
     return m_mainWin->GetDropTarget();
 }
 
 #endif // wxUSE_DRAG_AND_DROP
 
-bool wxListCtrl::SetCursor( const wxCursor &cursor )
+bool wxGenericListCtrl::SetCursor( const wxCursor &cursor )
 {
     return m_mainWin ? m_mainWin->wxWindow::SetCursor(cursor) : FALSE;
 }
 
 {
     return m_mainWin ? m_mainWin->wxWindow::SetCursor(cursor) : FALSE;
 }
 
-wxColour wxListCtrl::GetBackgroundColour() const
+wxColour wxGenericListCtrl::GetBackgroundColour() const
 {
     return m_mainWin ? m_mainWin->GetBackgroundColour() : wxColour();
 }
 
 {
     return m_mainWin ? m_mainWin->GetBackgroundColour() : wxColour();
 }
 
-wxColour wxListCtrl::GetForegroundColour() const
+wxColour wxGenericListCtrl::GetForegroundColour() const
 {
     return m_mainWin ? m_mainWin->GetForegroundColour() : wxColour();
 }
 
 {
     return m_mainWin ? m_mainWin->GetForegroundColour() : wxColour();
 }
 
-bool wxListCtrl::DoPopupMenu( wxMenu *menu, int x, int y )
+bool wxGenericListCtrl::DoPopupMenu( wxMenu *menu, int x, int y )
 {
 #if wxUSE_MENUS
     return m_mainWin->PopupMenu( menu, x, y );
 {
 #if wxUSE_MENUS
     return m_mainWin->PopupMenu( menu, x, y );
@@ -5208,7 +5232,7 @@ bool wxListCtrl::DoPopupMenu( wxMenu *menu, int x, int y )
 #endif // wxUSE_MENUS
 }
 
 #endif // wxUSE_MENUS
 }
 
-void wxListCtrl::SetFocus()
+void wxGenericListCtrl::SetFocus()
 {
     /* The test in window.cpp fails as we are a composite
        window, so it checks against "this", but not m_mainWin. */
 {
     /* The test in window.cpp fails as we are a composite
        window, so it checks against "this", but not m_mainWin. */
@@ -5220,24 +5244,24 @@ void wxListCtrl::SetFocus()
 // virtual list control support
 // ----------------------------------------------------------------------------
 
 // virtual list control support
 // ----------------------------------------------------------------------------
 
-wxString wxListCtrl::OnGetItemText(long WXUNUSED(item), long WXUNUSED(col)) const
+wxString wxGenericListCtrl::OnGetItemText(long WXUNUSED(item), long WXUNUSED(col)) const
 {
     // this is a pure virtual function, in fact - which is not really pure
     // because the controls which are not virtual don't need to implement it
 {
     // this is a pure virtual function, in fact - which is not really pure
     // because the controls which are not virtual don't need to implement it
-    wxFAIL_MSG( _T("wxListCtrl::OnGetItemText not supposed to be called") );
+    wxFAIL_MSG( _T("wxGenericListCtrl::OnGetItemText not supposed to be called") );
 
     return wxEmptyString;
 }
 
 
     return wxEmptyString;
 }
 
-int wxListCtrl::OnGetItemImage(long WXUNUSED(item)) const
+int wxGenericListCtrl::OnGetItemImage(long WXUNUSED(item)) const
 {
     // same as above
 {
     // same as above
-    wxFAIL_MSG( _T("wxListCtrl::OnGetItemImage not supposed to be called") );
+    wxFAIL_MSG( _T("wxGenericListCtrl::OnGetItemImage not supposed to be called") );
 
     return -1;
 }
 
 
     return -1;
 }
 
-wxListItemAttr *wxListCtrl::OnGetItemAttr(long item) const
+wxListItemAttr *wxGenericListCtrl::OnGetItemAttr(long item) const
 {
     wxASSERT_MSG( item >= 0 && item < GetItemCount(),
                   _T("invalid item index in OnGetItemAttr()") );
 {
     wxASSERT_MSG( item >= 0 && item < GetItemCount(),
                   _T("invalid item index in OnGetItemAttr()") );
@@ -5246,33 +5270,32 @@ wxListItemAttr *wxListCtrl::OnGetItemAttr(long item) const
     return NULL;
 }
 
     return NULL;
 }
 
-void wxListCtrl::SetItemCount(long count)
+void wxGenericListCtrl::SetItemCount(long count)
 {
     wxASSERT_MSG( IsVirtual(), _T("this is for virtual controls only") );
 
     m_mainWin->SetItemCount(count);
 }
 
 {
     wxASSERT_MSG( IsVirtual(), _T("this is for virtual controls only") );
 
     m_mainWin->SetItemCount(count);
 }
 
-void wxListCtrl::RefreshItem(long item)
+void wxGenericListCtrl::RefreshItem(long item)
 {
     m_mainWin->RefreshLine(item);
 }
 
 {
     m_mainWin->RefreshLine(item);
 }
 
-void wxListCtrl::RefreshItems(long itemFrom, long itemTo)
+void wxGenericListCtrl::RefreshItems(long itemFrom, long itemTo)
 {
     m_mainWin->RefreshLines(itemFrom, itemTo);
 }
 
 {
     m_mainWin->RefreshLines(itemFrom, itemTo);
 }
 
-void wxListCtrl::Freeze()
+void wxGenericListCtrl::Freeze()
 {
     m_mainWin->Freeze();
 }
 
 {
     m_mainWin->Freeze();
 }
 
-void wxListCtrl::Thaw()
+void wxGenericListCtrl::Thaw()
 {
     m_mainWin->Thaw();
 }
 
 #endif // wxUSE_LISTCTRL
 
 {
     m_mainWin->Thaw();
 }
 
 #endif // wxUSE_LISTCTRL
 
-// vi:sts=4:sw=4:et