]> git.saurik.com Git - wxWidgets.git/blobdiff - src/generic/listctrl.cpp
wxMotif compilation fix
[wxWidgets.git] / src / generic / listctrl.cpp
index b68ffb85ae5d04aa2d17dee45fabb6216f0d9953..22cf70aa383df6eb9140c1b4e4831db20d0ab42a 100644 (file)
@@ -1449,8 +1449,8 @@ void wxListLineData::SetPosition( int x, int y,
 
             if ( item->HasImage() )
             {
-                m_gi->m_rectIcon.x = m_gi->m_rectAll.x + 4
-                                    + (spacing - m_gi->m_rectIcon.width)/2;
+                m_gi->m_rectIcon.x = m_gi->m_rectAll.x + 4 +
+                    (m_gi->m_rectAll.width - m_gi->m_rectIcon.width) / 2;
                 m_gi->m_rectIcon.y = m_gi->m_rectAll.y + 4;
             }
 
@@ -3772,6 +3772,14 @@ void wxListMainWindow::SetItemState( long litem, long state, long stateMask )
             {
                 ResetCurrent();
 
+                if ( IsSingleSel() )
+                {
+                    // we must unselect the old current item as well or we
+                    // might end up with more than one selected item in a
+                    // single selection control
+                    HighlightLine(oldCurrent, FALSE);
+                }
+
                 RefreshLine( oldCurrent );
             }
         }
@@ -4492,38 +4500,6 @@ void wxListMainWindow::GetVisibleLinesRange(size_t *from, size_t *to)
 
 IMPLEMENT_DYNAMIC_CLASS(wxListItem, wxObject)
 
-wxListItem::wxListItem()
-{
-    m_attr = NULL;
-
-    Clear();
-}
-
-void wxListItem::Clear()
-{
-    m_mask = 0;
-    m_itemId = 0;
-    m_col = 0;
-    m_state = 0;
-    m_stateMask = 0;
-    m_image = -1;
-    m_data = 0;
-    m_format = wxLIST_FORMAT_CENTRE;
-    m_width = 0;
-    m_text.clear();
-
-    ClearAttributes();
-}
-
-void wxListItem::ClearAttributes()
-{
-    if (m_attr)
-    {
-        delete m_attr;
-        m_attr = NULL;
-    }
-}
-
 // -------------------------------------------------------------------------------------
 // wxListCtrl
 // -------------------------------------------------------------------------------------
@@ -4980,6 +4956,13 @@ void wxListCtrl::ClearAll()
 bool wxListCtrl::DeleteColumn( int col )
 {
     m_mainWin->DeleteColumn( col );
+
+    // if we don't have the header any longer, we need to relayout the window
+    if ( !GetColumnCount() )
+    {
+        ResizeReportView(FALSE /* no header */);
+    }
+
     return TRUE;
 }
 
@@ -5051,8 +5034,17 @@ long wxListCtrl::InsertItem( long index, const wxString &label, int imageIndex )
 
 long wxListCtrl::InsertColumn( long col, wxListItem &item )
 {
-    wxASSERT( m_headerWin );
+    wxCHECK_MSG( m_headerWin, -1, _T("can't add column in non report mode") );
+
     m_mainWin->InsertColumn( col, item );
+
+    // if we hadn't had header before and have it now we need to relayout the
+    // window
+    if ( GetColumnCount() == 1 )
+    {
+        ResizeReportView(TRUE /* have header */);
+    }
+
     m_headerWin->Refresh();
 
     return 0;
@@ -5099,7 +5091,7 @@ bool wxListCtrl::SortItems( wxListCtrlCompare fn, long data )
 // event handlers
 // ----------------------------------------------------------------------------
 
-void wxListCtrl::OnSize(wxSizeEvent& event)
+void wxListCtrl::OnSize(wxSizeEvent& WXUNUSED(event))
 {
     if ( !m_mainWin )
         return;
@@ -5243,19 +5235,19 @@ void wxListCtrl::SetFocus()
 // virtual list control support
 // ----------------------------------------------------------------------------
 
-wxString wxListCtrl::OnGetItemText(long item, long col) const
+wxString wxListCtrl::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
-    wxFAIL_MSG( _T("not supposed to be called") );
+    wxFAIL_MSG( _T("wxListCtrl::OnGetItemText not supposed to be called") );
 
     return wxEmptyString;
 }
 
-int wxListCtrl::OnGetItemImage(long item) const
+int wxListCtrl::OnGetItemImage(long WXUNUSED(item)) const
 {
     // same as above
-    wxFAIL_MSG( _T("not supposed to be called") );
+    wxFAIL_MSG( _T("wxListCtrl::OnGetItemImage not supposed to be called") );
 
     return -1;
 }