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
- #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)
#else
#define XLOG2DEV(x) (x)
#define YLOG2DEV(y) (y)
if ( !::GetClipBox(GetHdc(), &rectClip) )
return;
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);
HRGN hrgnDest = ::CreateRectRgn(0, 0, 0, 0);
HRGN hrgnClipOld = ::CreateRectRgn(rectClip.left, rectClip.top,
rectClip.right, rectClip.bottom);
m_deviceOriginX = x;
m_deviceOriginY = y;
m_deviceOriginX = x;
m_deviceOriginY = y;
::SetViewportOrgEx(GetHdc(), (int)m_deviceOriginX, (int)m_deviceOriginY, NULL);
::SetViewportOrgEx(GetHdc(), (int)m_deviceOriginX, (int)m_deviceOriginY, NULL);
}
// ---------------------------------------------------------------------------
}
// ---------------------------------------------------------------------------