]> git.saurik.com Git - wxWidgets.git/commitdiff
The device origin can be set on WinCE, so use it and redefine conversion
authorJulian Smart <julian@anthemion.co.uk>
Wed, 13 Apr 2005 15:36:06 +0000 (15:36 +0000)
committerJulian Smart <julian@anthemion.co.uk>
Wed, 13 Apr 2005 15:36:06 +0000 (15:36 +0000)
macros accordingly.
Also, convert result of calling GetClipBox from logical to
device coordinates since we're dealing with device coordinates at
this point.

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

src/msw/dc.cpp

index 22e2455e0a6217250d2da69fb63100693f517083..9f7482b9bd1afd0ce47438d624a27e25330ae3c6 100644 (file)
@@ -103,10 +103,10 @@ static const int MM_METRIC = 10;
  */
 
 #ifdef __WXWINCE__
-    #define XLOG2DEV(x) ((x-m_logicalOriginX)*m_signX+m_deviceOriginX)
-    #define YLOG2DEV(y) ((y-m_logicalOriginY)*m_signY+m_deviceOriginY)
-    #define XDEV2LOG(x) ((x-m_deviceOriginX)*m_signX+m_logicalOriginX)
-    #define YDEV2LOG(y) ((y-m_deviceOriginY)*m_signY+m_logicalOriginY)
+    #define XLOG2DEV(x) ((x-m_logicalOriginX)*m_signX)
+    #define YLOG2DEV(y) ((y-m_logicalOriginY)*m_signY)
+    #define XDEV2LOG(x) ((x)*m_signX+m_logicalOriginX)
+    #define YDEV2LOG(y) ((y)*m_signY+m_logicalOriginY)
 #else
     #define XLOG2DEV(x) (x)
     #define YLOG2DEV(y) (y)
@@ -407,6 +407,12 @@ void wxDC::SetClippingHrgn(WXHRGN hrgn)
     if ( !::GetClipBox(GetHdc(), &rectClip) )
         return;
 
+    // GetClipBox returns logical coordinates, so transform to device
+    rectClip.left = LogicalToDeviceX(rectClip.left);
+    rectClip.top = LogicalToDeviceY(rectClip.top);
+    rectClip.right = LogicalToDeviceX(rectClip.right);
+    rectClip.bottom = LogicalToDeviceY(rectClip.bottom);
+
     HRGN hrgnDest = ::CreateRectRgn(0, 0, 0, 0);
     HRGN hrgnClipOld = ::CreateRectRgn(rectClip.left, rectClip.top,
                                        rectClip.right, rectClip.bottom);
@@ -1835,9 +1841,7 @@ void wxDC::SetDeviceOrigin(wxCoord x, wxCoord y)
     m_deviceOriginX = x;
     m_deviceOriginY = y;
 
-#ifndef __WXWINCE__
     ::SetViewportOrgEx(GetHdc(), (int)m_deviceOriginX, (int)m_deviceOriginY, NULL);
-#endif
 }
 
 // ---------------------------------------------------------------------------