From 41786731da2f4924202fe2f3bbd99c64f2ef481b Mon Sep 17 00:00:00 2001 From: Matthew Flatt Date: Wed, 7 Sep 2005 22:47:09 +0000 Subject: [PATCH] fix printer-dc origin shift svn: r793 --- src/wxwindow/include/msw/wx_dc.h | 8 ++++---- src/wxwindow/src/msw/wx_dc.cxx | 6 +++--- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/src/wxwindow/include/msw/wx_dc.h b/src/wxwindow/include/msw/wx_dc.h index 6f15e14a3f..986069dc1a 100644 --- a/src/wxwindow/include/msw/wx_dc.h +++ b/src/wxwindow/include/msw/wx_dc.h @@ -213,8 +213,8 @@ HDC wxGetPrinterDC(void); // Logical to device // Absolute -#define MS_XLOG2DEV(x) ((int)floor((x)*logical_scale_x*user_scale_x + device_origin_x + canvas_scroll_dx)) -#define MS_YLOG2DEV(y) ((int)floor((y)*logical_scale_y*user_scale_y + device_origin_y + canvas_scroll_dy)) +#define MS_XLOG2DEV(x) ((int)floor((x)*logical_scale_x*user_scale_x + (device_origin_x+canvas_scroll_dx)*logical_scale_x)) +#define MS_YLOG2DEV(y) ((int)floor((y)*logical_scale_y*user_scale_y + (device_origin_y+canvas_scroll_dy)*logical_scale_y)) // Logical to device #define XLOG2DEV(x) MS_XLOG2DEV(x) @@ -226,8 +226,8 @@ HDC wxGetPrinterDC(void); // Device to logical // Absolute -#define MS_XDEV2LOG(x) (((x) - device_origin_x - canvas_scroll_dx)/(logical_scale_x*user_scale_x)) -#define MS_YDEV2LOG(y) (((y) - device_origin_y - canvas_scroll_dy)/(logical_scale_y*user_scale_y)) +#define MS_XDEV2LOG(x) (((x)/(logical_scale_x*user_scale_x)) - (device_origin_x + canvas_scroll_dx)/logical_scale_x) +#define MS_YDEV2LOG(y) (((y)/(logical_scale_y*user_scale_y)) - (device_origin_y + canvas_scroll_dy)/logical_scale_y) // Relative #define MS_XDEV2LOGREL(x) ((x)/(logical_scale_x*user_scale_x)) diff --git a/src/wxwindow/src/msw/wx_dc.cxx b/src/wxwindow/src/msw/wx_dc.cxx index a276cc1b01..f1c0019092 100644 --- a/src/wxwindow/src/msw/wx_dc.cxx +++ b/src/wxwindow/src/msw/wx_dc.cxx @@ -1840,8 +1840,8 @@ void wxDC::DrawText(const char *text, double x, double y, Bool combine, Bool ucs alen = substitute_font(ustring, d, alen, font, dc, screen_font, angle, &reset); - SetDeviceOrigin(MS_XLOG2DEVREL(x + w) + oox + canvas_scroll_dx, - MS_YLOG2DEVREL(y + h) + ooy + canvas_scroll_dy); + SetDeviceOrigin(((x + w)*user_scale_x) + oox + canvas_scroll_dx, + ((y + h)*user_scale_y) + ooy + canvas_scroll_dy); (void)TextOutW(dc, 0, 0, ustring XFORM_OK_PLUS d, alen); @@ -2256,7 +2256,7 @@ void wxDC::ResetMapMode(HDC given_dc) (int)floor(1000*ly*sy), NULL); ::SetWindowExtEx(dc, 1000, 1000, NULL); - ::SetViewportOrgEx(dc, (int)floor(ox), (int)floor(oy), NULL); + ::SetViewportOrgEx(dc, (int)floor(ox*lx), (int)floor(oy*ly), NULL); ::SetWindowOrgEx(dc, (int)0, (int)0, NULL); }