]> git.saurik.com Git - wxWidgets.git/blobdiff - src/mac/dc.cpp
removed log record
[wxWidgets.git] / src / mac / dc.cpp
index aaa3df65f445f461f25eaa7c5dc256a4a7089495..27d92a4efc875e3e7f72f825930969a6af10bc32 100644 (file)
@@ -239,7 +239,7 @@ void wxDC::DoDrawIcon( const wxIcon &icon, wxCoord x, wxCoord y )
  
      wxCHECK_RET(icon.Ok(), wxT("Invalid icon wxDC::DoDrawIcon"));
  
-    DoDrawBitmap( icon , x , y ) ;
+    DoDrawBitmap( icon , x , y , icon.GetMask() != NULL ) ;
 }
 void wxDC::DoSetClippingRegion( wxCoord x, wxCoord y, wxCoord width, wxCoord height )
 {
@@ -527,13 +527,34 @@ void  wxDC::DoDrawLine( wxCoord x1, wxCoord y1, wxCoord x2, wxCoord y2 )
                wxCoord offset = ( (m_pen.GetWidth() == 0 ? 1 :
                             m_pen.GetWidth() ) * (wxCoord)m_scaleX - 1) / 2;
 
-        wxCoord xx1 = XLOG2DEV(x1);
-        wxCoord yy1 = YLOG2DEV(y1);
-        wxCoord xx2 = XLOG2DEV(x2);
-        wxCoord yy2 = YLOG2DEV(y2);
-
-               ::MoveTo(xx1 - offset, yy1 - offset);
-               ::LineTo(xx2 - offset, yy2 - offset);
+        wxCoord xx1 = XLOG2DEV(x1) - offset;
+        wxCoord yy1 = YLOG2DEV(y1) - offset;
+        wxCoord xx2 = XLOG2DEV(x2) - offset;
+        wxCoord yy2 = YLOG2DEV(y2) - offset;
+
+        if ((m_pen.GetCap() == wxCAP_ROUND) &&
+            (m_pen.GetWidth() <= 1))
+       {
+           // Implement LAST_NOT for MAC at least for
+           // orthogonal lines. RR.
+               if (xx1 == xx2)
+               {
+                       if (yy1 < yy2)
+                               yy2--;
+                   if (yy1 > yy2)
+                       yy2++;
+               }
+               if (yy1 == yy2)
+               {
+                       if (xx1 < xx2)
+                               xx2--;
+                   if (xx1 > xx2)
+                       xx2++;
+               }
+       }
+       
+               ::MoveTo(xx1, yy1);
+               ::LineTo(xx2, yy2);
   }
 }