comdlg32: Add a helper function to access the PAGESETUPDLG's ptPaperSize element.
This commit is contained in:
parent
de7be5885c
commit
30aa997b69
|
@ -2784,6 +2784,18 @@ static void pagesetup_set_devmode(pagesetup_data *data, DEVMODEW *dm)
|
||||||
HeapFree(GetProcessHeap(), 0, tmp_dm);
|
HeapFree(GetProcessHeap(), 0, tmp_dm);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static inline POINT *pagesetup_get_papersize_pt(const pagesetup_data *data)
|
||||||
|
{
|
||||||
|
return &data->dlga->ptPaperSize;
|
||||||
|
}
|
||||||
|
|
||||||
|
static inline void swap_point(POINT *pt)
|
||||||
|
{
|
||||||
|
LONG tmp = pt->x;
|
||||||
|
pt->x = pt->y;
|
||||||
|
pt->y = tmp;
|
||||||
|
}
|
||||||
|
|
||||||
static BOOL pagesetup_update_papersize(pagesetup_data *data)
|
static BOOL pagesetup_update_papersize(pagesetup_data *data)
|
||||||
{
|
{
|
||||||
DEVMODEW *dm;
|
DEVMODEW *dm;
|
||||||
|
@ -2832,15 +2844,12 @@ static BOOL pagesetup_update_papersize(pagesetup_data *data)
|
||||||
}
|
}
|
||||||
|
|
||||||
/* this is _10ths_ of a millimeter */
|
/* this is _10ths_ of a millimeter */
|
||||||
data->dlga->ptPaperSize.x = tenths_mm_to_size(data, points[i].x);
|
pagesetup_get_papersize_pt(data)->x = tenths_mm_to_size(data, points[i].x);
|
||||||
data->dlga->ptPaperSize.y = tenths_mm_to_size(data, points[i].y);
|
pagesetup_get_papersize_pt(data)->y = tenths_mm_to_size(data, points[i].y);
|
||||||
|
|
||||||
if(pagesetup_get_orientation(data) == DMORIENT_LANDSCAPE)
|
if(pagesetup_get_orientation(data) == DMORIENT_LANDSCAPE)
|
||||||
{
|
swap_point(pagesetup_get_papersize_pt(data));
|
||||||
LONG tmp = data->dlga->ptPaperSize.x;
|
|
||||||
data->dlga->ptPaperSize.x = data->dlga->ptPaperSize.y;
|
|
||||||
data->dlga->ptPaperSize.y = tmp;
|
|
||||||
}
|
|
||||||
retval = TRUE;
|
retval = TRUE;
|
||||||
|
|
||||||
end:
|
end:
|
||||||
|
@ -3117,12 +3126,12 @@ static void pagesetup_change_preview(const pagesetup_data *data)
|
||||||
if(pagesetup_get_orientation(data) == DMORIENT_LANDSCAPE)
|
if(pagesetup_get_orientation(data) == DMORIENT_LANDSCAPE)
|
||||||
{
|
{
|
||||||
width = data->rtDrawRect.right - data->rtDrawRect.left;
|
width = data->rtDrawRect.right - data->rtDrawRect.left;
|
||||||
height = data->dlga->ptPaperSize.y * width / data->dlga->ptPaperSize.x;
|
height = pagesetup_get_papersize_pt(data)->y * width / pagesetup_get_papersize_pt(data)->x;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
height = data->rtDrawRect.bottom - data->rtDrawRect.top;
|
height = data->rtDrawRect.bottom - data->rtDrawRect.top;
|
||||||
width = data->dlga->ptPaperSize.x * height / data->dlga->ptPaperSize.y;
|
width = pagesetup_get_papersize_pt(data)->x * height / pagesetup_get_papersize_pt(data)->y;
|
||||||
}
|
}
|
||||||
x = (data->rtDrawRect.right + data->rtDrawRect.left - width) / 2;
|
x = (data->rtDrawRect.right + data->rtDrawRect.left - width) / 2;
|
||||||
y = (data->rtDrawRect.bottom + data->rtDrawRect.top - height) / 2;
|
y = (data->rtDrawRect.bottom + data->rtDrawRect.top - height) / 2;
|
||||||
|
@ -3553,8 +3562,8 @@ PRINTDLG_PagePaintProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
|
||||||
hdc = BeginPaint(hWnd, &ps);
|
hdc = BeginPaint(hWnd, &ps);
|
||||||
GetClientRect(hWnd, &rcClient);
|
GetClientRect(hWnd, &rcClient);
|
||||||
|
|
||||||
scalx = rcClient.right / (double)data->dlga->ptPaperSize.x;
|
scalx = rcClient.right / (double)pagesetup_get_papersize_pt(data)->x;
|
||||||
scaly = rcClient.bottom / (double)data->dlga->ptPaperSize.y;
|
scaly = rcClient.bottom / (double)pagesetup_get_papersize_pt(data)->y;
|
||||||
rcMargin = rcClient;
|
rcMargin = rcClient;
|
||||||
|
|
||||||
rcMargin.left += data->dlga->rtMargin.left * scalx;
|
rcMargin.left += data->dlga->rtMargin.left * scalx;
|
||||||
|
|
Loading…
Reference in New Issue