]> git.saurik.com Git - wxWidgets.git/commitdiff
Fix vertical rules rendering in generic wxDataViewCtrl.
authorVáclav Slavík <vslavik@fastmail.fm>
Mon, 31 Jan 2011 16:54:03 +0000 (16:54 +0000)
committerVáclav Slavík <vslavik@fastmail.fm>
Mon, 31 Jan 2011 16:54:03 +0000 (16:54 +0000)
Vertical rules are now drawn in the last pixel of a column instead of in
the first, so that they align perfectly with native MSW wxHeaderCtrl as
well as for consistency with MSW native list control.  There's no
vertical rule at the most-left side of the control anymore.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@66821 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

src/generic/datavgen.cpp

index d0260367993d5ecc40cf43ded60e35b8c60569d7..ca7dc0a9bd50219f3b9dd4b98f6505a7070f4f36 100644 (file)
@@ -1664,22 +1664,23 @@ void wxDataViewMainWindow::OnPaint( wxPaintEvent &WXUNUSED(event) )
         dc.SetPen(m_penRule);
         dc.SetBrush(*wxTRANSPARENT_BRUSH);
 
-        int x = x_start;
+        // NB: Vertical rules are drawn in the last pixel of a column so that
+        //     they align perfectly with native MSW wxHeaderCtrl as well as for
+        //     consistency with MSW native list control. There's no vertical
+        //     rule at the most-left side of the control.
+
+        int x = x_start - 1;
         for (unsigned int i = col_start; i < col_last; i++)
         {
             wxDataViewColumn *col = GetOwner()->GetColumnAt(i);
             if (col->IsHidden())
                 continue;       // skip it
 
+            x += col->GetWidth();
+
             dc.DrawLine(x, GetLineStart( item_start ),
                         x, GetLineStart( item_last ) );
-
-            x += col->GetWidth();
         }
-
-        // Draw last vertical rule
-        dc.DrawLine(x, GetLineStart( item_start ),
-                    x, GetLineStart( item_last ) );
     }
 
     // redraw the background for the items which are selected/current