]> git.saurik.com Git - wxWidgets.git/blobdiff - src/generic/listctrl.cpp
fixed compilation for wxBase
[wxWidgets.git] / src / generic / listctrl.cpp
index 79c094ccf7bbcbce6a5f928bb3f70b865cda3cf7..c23e25e96d861359450ec6b09b700e00be0c49bb 100644 (file)
@@ -435,7 +435,7 @@ protected:
     wxCursor          *m_resizeCursor;
     bool               m_isDragging;
 
-    // column being resized
+    // column being resized or -1
     int m_column;
 
     // divider line position in logical (unscrolled) coords
@@ -2022,8 +2022,9 @@ void wxListHeaderWindow::OnMouse( wxMouseEvent &event )
         int xpos = 0;
 
         // find the column where this event occured
-        int countCol = m_owner->GetColumnCount();
-        for (int col = 0; col < countCol; col++)
+        int col,
+            countCol = m_owner->GetColumnCount();
+        for (col = 0; col < countCol; col++)
         {
             xpos += m_owner->GetColumnWidth( col );
             m_column = col;
@@ -2044,6 +2045,9 @@ void wxListHeaderWindow::OnMouse( wxMouseEvent &event )
             m_minX = xpos;
         }
 
+        if ( col == countCol )
+            m_column = -1;
+
         if (event.LeftDown() || event.RightUp())
         {
             if (hit_border && event.LeftDown())
@@ -2474,7 +2478,10 @@ long wxListMainWindow::HitTestLine(size_t line, int x, int y) const
     if ( ld->HasImage() && GetLineIconRect(line).Inside(x, y) )
         return wxLIST_HITTEST_ONITEMICON;
 
-    if ( ld->HasText() )
+    // VS: Testing for "ld->HasText() || InReportView()" instead of
+    //     "ld->HasText()" is needed to make empty lines in report view
+    //     possible
+    if ( ld->HasText() || InReportView() )
     {
         wxRect rect = InReportView() ? GetLineRect(line)
                                      : GetLineLabelRect(line);
@@ -2910,14 +2917,10 @@ void wxListMainWindow::EditLabel( long item )
     if (m_dirty)
         wxSafeYield();
 
-    wxClientDC dc(this);
-    PrepareDC( dc );
-
     wxString s = data->GetText(0);
     wxRect rectLabel = GetLineLabelRect(m_currentEdit);
 
-    rectLabel.x = dc.LogicalToDeviceX( rectLabel.x );
-    rectLabel.y = dc.LogicalToDeviceY( rectLabel.y );
+    CalcScrolledPosition(rectLabel.x, rectLabel.y, &rectLabel.x, &rectLabel.y);
 
     wxListTextCtrl *text = new wxListTextCtrl
                                (
@@ -4163,6 +4166,9 @@ void wxListMainWindow::DeleteColumn( int col )
 
     m_dirty = TRUE;
     m_columns.DeleteNode( node );
+
+    // invalidate it as it has to be recalculated
+    m_headerWidth = 0;
 }
 
 void wxListMainWindow::DoDeleteAllItems()
@@ -4357,6 +4363,9 @@ void wxListMainWindow::InsertColumn( long col, wxListItem &item )
         {
             m_columns.Append( column );
         }
+
+        // invalidate it as it has to be recalculated
+        m_headerWidth = 0;
     }
 }