fix printer-dc origin shift

svn: r793
This commit is contained in:
Matthew Flatt 2005-09-07 22:47:09 +00:00
parent 3eeac2cf66
commit 41786731da
2 changed files with 7 additions and 7 deletions

View File

@ -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))

View File

@ -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);
}