]> git.saurik.com Git - wxWidgets.git/blobdiff - src/generic/listctrl.cpp
reverted wxPopupWindow implementation to the original version using WS_CHILD and...
[wxWidgets.git] / src / generic / listctrl.cpp
index 48b0ca5226cb2ba93e9726a820d5c2f67be1c5a2..38a9a92ce0a79e0273df6d6fd7a3518a85896e9a 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,56 +4500,6 @@ void wxListMainWindow::GetVisibleLinesRange(size_t *from, size_t *to)
 
 IMPLEMENT_DYNAMIC_CLASS(wxListItem, wxObject)
 
-wxListItem::wxListItem()
-{
-    m_attr = NULL;
-
-    Clear();
-}
-
-wxListItem::wxListItem(const wxListItem& item)
-    : wxObject()
-    , m_mask(item.m_mask)
-    , m_itemId(item.m_itemId)
-    , m_col(item.m_col)
-    , m_state(item.m_state)
-    , m_stateMask(item.m_stateMask)
-    , m_text(item.m_text)
-    , m_image(item.m_image)
-    , m_data(item.m_data)
-    , m_format(item.m_format)
-    , m_width(item.m_width)
-    , m_attr(NULL)
-{
-    // copy list item attributes
-    m_attr = new wxListItemAttr(*item.GetAttributes());
-}
-
-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
 // -------------------------------------------------------------------------------------