comdlg32: Rename pagesetup data type to reflect upcoming unicode/ansi merge.
This commit is contained in:
parent
32cc4011ee
commit
10dfcfb9a0
|
@ -2388,11 +2388,12 @@ BOOL WINAPI PrintDlgW(LPPRINTDLGW lppd)
|
||||||
* psh3 - "Printer..."
|
* psh3 - "Printer..."
|
||||||
*/
|
*/
|
||||||
|
|
||||||
typedef struct {
|
typedef struct
|
||||||
|
{
|
||||||
LPPAGESETUPDLGA dlga; /* Handler to user defined struct */
|
LPPAGESETUPDLGA dlga; /* Handler to user defined struct */
|
||||||
HWND hDlg; /* Page Setup dialog handler */
|
HWND hDlg; /* Page Setup dialog handler */
|
||||||
RECT rtDrawRect; /* Drawing rect for page */
|
RECT rtDrawRect; /* Drawing rect for page */
|
||||||
} PageSetupDataA;
|
} pagesetup_data;
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
LPPAGESETUPDLGW dlgw;
|
LPPAGESETUPDLGW dlgw;
|
||||||
|
@ -2437,12 +2438,12 @@ static HGLOBAL PRINTDLG_GetPGSTemplateW(const PAGESETUPDLGW *lppd)
|
||||||
return hDlgTmpl;
|
return hDlgTmpl;
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline BOOL is_metric(const PageSetupDataA *pda)
|
static inline BOOL is_metric(const pagesetup_data *data)
|
||||||
{
|
{
|
||||||
return pda->dlga->Flags & PSD_INHUNDREDTHSOFMILLIMETERS;
|
return data->dlga->Flags & PSD_INHUNDREDTHSOFMILLIMETERS;
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline LONG tenths_mm_to_size(PageSetupDataA *data, LONG size)
|
static inline LONG tenths_mm_to_size(pagesetup_data *data, LONG size)
|
||||||
{
|
{
|
||||||
if (is_metric(data))
|
if (is_metric(data))
|
||||||
return 10 * size;
|
return 10 * size;
|
||||||
|
@ -2450,7 +2451,7 @@ static inline LONG tenths_mm_to_size(PageSetupDataA *data, LONG size)
|
||||||
return 10 * size * 100 / 254;
|
return 10 * size * 100 / 254;
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline LONG thousandths_inch_to_size(PageSetupDataA *data, LONG size)
|
static inline LONG thousandths_inch_to_size(pagesetup_data *data, LONG size)
|
||||||
{
|
{
|
||||||
if (is_metric(data))
|
if (is_metric(data))
|
||||||
return size * 254 / 100;
|
return size * 254 / 100;
|
||||||
|
@ -2487,7 +2488,7 @@ static WCHAR get_decimal_sep(void)
|
||||||
return sep;
|
return sep;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void size2str(const PageSetupDataA *pda, DWORD size, LPWSTR strout)
|
static void size2str(const pagesetup_data *data, DWORD size, LPWSTR strout)
|
||||||
{
|
{
|
||||||
WCHAR integer_fmt[] = {'%','d',0};
|
WCHAR integer_fmt[] = {'%','d',0};
|
||||||
WCHAR hundredths_fmt[] = {'%','d','%','c','%','0','2','d',0};
|
WCHAR hundredths_fmt[] = {'%','d','%','c','%','0','2','d',0};
|
||||||
|
@ -2495,7 +2496,7 @@ static void size2str(const PageSetupDataA *pda, DWORD size, LPWSTR strout)
|
||||||
|
|
||||||
/* FIXME use LOCALE_SDECIMAL when the edit parsing code can cope */
|
/* FIXME use LOCALE_SDECIMAL when the edit parsing code can cope */
|
||||||
|
|
||||||
if (is_metric(pda))
|
if (is_metric(data))
|
||||||
{
|
{
|
||||||
if(size % 100)
|
if(size % 100)
|
||||||
wsprintfW(strout, hundredths_fmt, size / 100, get_decimal_sep(), size % 100);
|
wsprintfW(strout, hundredths_fmt, size / 100, get_decimal_sep(), size % 100);
|
||||||
|
@ -2614,104 +2615,104 @@ static inline void rotate_rect(RECT *rc, BOOL sense)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static void pagesetup_set_orientation(PageSetupDataA *pda, WORD orient)
|
static void pagesetup_set_orientation(pagesetup_data *data, WORD orient)
|
||||||
{
|
{
|
||||||
DEVMODEA *dm = GlobalLock(pda->dlga->hDevMode);
|
DEVMODEA *dm = GlobalLock(data->dlga->hDevMode);
|
||||||
|
|
||||||
assert(orient == DMORIENT_PORTRAIT || orient == DMORIENT_LANDSCAPE);
|
assert(orient == DMORIENT_PORTRAIT || orient == DMORIENT_LANDSCAPE);
|
||||||
|
|
||||||
dm->u1.s1.dmOrientation = orient;
|
dm->u1.s1.dmOrientation = orient;
|
||||||
GlobalUnlock(pda->dlga->hDevMode);
|
GlobalUnlock(data->dlga->hDevMode);
|
||||||
}
|
}
|
||||||
|
|
||||||
static WORD pagesetup_get_orientation(const PageSetupDataA *pda)
|
static WORD pagesetup_get_orientation(const pagesetup_data *data)
|
||||||
{
|
{
|
||||||
DEVMODEA *dm = GlobalLock(pda->dlga->hDevMode);
|
DEVMODEA *dm = GlobalLock(data->dlga->hDevMode);
|
||||||
WORD orient = dm->u1.s1.dmOrientation;
|
WORD orient = dm->u1.s1.dmOrientation;
|
||||||
GlobalUnlock(pda->dlga->hDevMode);
|
GlobalUnlock(data->dlga->hDevMode);
|
||||||
return orient;
|
return orient;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void pagesetup_set_papersize(PageSetupDataA *pda, WORD paper)
|
static void pagesetup_set_papersize(pagesetup_data *data, WORD paper)
|
||||||
{
|
{
|
||||||
DEVMODEA *dm = GlobalLock(pda->dlga->hDevMode);
|
DEVMODEA *dm = GlobalLock(data->dlga->hDevMode);
|
||||||
dm->u1.s1.dmPaperSize = paper;
|
dm->u1.s1.dmPaperSize = paper;
|
||||||
GlobalUnlock(pda->dlga->hDevMode);
|
GlobalUnlock(data->dlga->hDevMode);
|
||||||
}
|
}
|
||||||
|
|
||||||
static WORD pagesetup_get_papersize(const PageSetupDataA *pda)
|
static WORD pagesetup_get_papersize(const pagesetup_data *data)
|
||||||
{
|
{
|
||||||
DEVMODEA *dm = GlobalLock(pda->dlga->hDevMode);
|
DEVMODEA *dm = GlobalLock(data->dlga->hDevMode);
|
||||||
WORD paper = dm->u1.s1.dmPaperSize;
|
WORD paper = dm->u1.s1.dmPaperSize;
|
||||||
GlobalUnlock(pda->dlga->hDevMode);
|
GlobalUnlock(data->dlga->hDevMode);
|
||||||
return paper;
|
return paper;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void pagesetup_set_defaultsource(PageSetupDataA *pda, WORD source)
|
static void pagesetup_set_defaultsource(pagesetup_data *data, WORD source)
|
||||||
{
|
{
|
||||||
DEVMODEA *dm = GlobalLock(pda->dlga->hDevMode);
|
DEVMODEA *dm = GlobalLock(data->dlga->hDevMode);
|
||||||
dm->u1.s1.dmDefaultSource = source;
|
dm->u1.s1.dmDefaultSource = source;
|
||||||
GlobalUnlock(pda->dlga->hDevMode);
|
GlobalUnlock(data->dlga->hDevMode);
|
||||||
}
|
}
|
||||||
|
|
||||||
static WCHAR *pagesetup_get_drvname(const PageSetupDataA *pda)
|
static WCHAR *pagesetup_get_drvname(const pagesetup_data *data)
|
||||||
{
|
{
|
||||||
DEVNAMES *dn;
|
DEVNAMES *dn;
|
||||||
int len;
|
int len;
|
||||||
WCHAR *name;
|
WCHAR *name;
|
||||||
|
|
||||||
dn = GlobalLock(pda->dlga->hDevNames);
|
dn = GlobalLock(data->dlga->hDevNames);
|
||||||
len = MultiByteToWideChar(CP_ACP, 0, (char*)dn + dn->wDriverOffset, -1, NULL, 0);
|
len = MultiByteToWideChar(CP_ACP, 0, (char*)dn + dn->wDriverOffset, -1, NULL, 0);
|
||||||
name = HeapAlloc(GetProcessHeap(), 0, len * sizeof(WCHAR));
|
name = HeapAlloc(GetProcessHeap(), 0, len * sizeof(WCHAR));
|
||||||
MultiByteToWideChar(CP_ACP, 0, (char*)dn + dn->wDriverOffset, -1, name, len);
|
MultiByteToWideChar(CP_ACP, 0, (char*)dn + dn->wDriverOffset, -1, name, len);
|
||||||
GlobalUnlock(pda->dlga->hDevNames);
|
GlobalUnlock(data->dlga->hDevNames);
|
||||||
return name;
|
return name;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void pagesetup_release_drvname(const PageSetupDataA *pda, WCHAR *name)
|
static void pagesetup_release_drvname(const pagesetup_data *data, WCHAR *name)
|
||||||
{
|
{
|
||||||
HeapFree(GetProcessHeap(), 0, name);
|
HeapFree(GetProcessHeap(), 0, name);
|
||||||
}
|
}
|
||||||
|
|
||||||
static WCHAR *pagesetup_get_devname(const PageSetupDataA *pda)
|
static WCHAR *pagesetup_get_devname(const pagesetup_data *data)
|
||||||
{
|
{
|
||||||
DEVNAMES *dn;
|
DEVNAMES *dn;
|
||||||
int len;
|
int len;
|
||||||
WCHAR *name;
|
WCHAR *name;
|
||||||
|
|
||||||
dn = GlobalLock(pda->dlga->hDevNames);
|
dn = GlobalLock(data->dlga->hDevNames);
|
||||||
len = MultiByteToWideChar(CP_ACP, 0, (char*)dn + dn->wDeviceOffset, -1, NULL, 0);
|
len = MultiByteToWideChar(CP_ACP, 0, (char*)dn + dn->wDeviceOffset, -1, NULL, 0);
|
||||||
name = HeapAlloc(GetProcessHeap(), 0, len * sizeof(WCHAR));
|
name = HeapAlloc(GetProcessHeap(), 0, len * sizeof(WCHAR));
|
||||||
MultiByteToWideChar(CP_ACP, 0, (char*)dn + dn->wDeviceOffset, -1, name, len);
|
MultiByteToWideChar(CP_ACP, 0, (char*)dn + dn->wDeviceOffset, -1, name, len);
|
||||||
GlobalUnlock(pda->dlga->hDevNames);
|
GlobalUnlock(data->dlga->hDevNames);
|
||||||
return name;
|
return name;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void pagesetup_release_devname(const PageSetupDataA *pda, WCHAR *name)
|
static void pagesetup_release_devname(const pagesetup_data *data, WCHAR *name)
|
||||||
{
|
{
|
||||||
HeapFree(GetProcessHeap(), 0, name);
|
HeapFree(GetProcessHeap(), 0, name);
|
||||||
}
|
}
|
||||||
|
|
||||||
static WCHAR *pagesetup_get_portname(const PageSetupDataA *pda)
|
static WCHAR *pagesetup_get_portname(const pagesetup_data *data)
|
||||||
{
|
{
|
||||||
DEVNAMES *dn;
|
DEVNAMES *dn;
|
||||||
int len;
|
int len;
|
||||||
WCHAR *name;
|
WCHAR *name;
|
||||||
|
|
||||||
dn = GlobalLock(pda->dlga->hDevNames);
|
dn = GlobalLock(data->dlga->hDevNames);
|
||||||
len = MultiByteToWideChar(CP_ACP, 0, (char*)dn + dn->wOutputOffset, -1, NULL, 0);
|
len = MultiByteToWideChar(CP_ACP, 0, (char*)dn + dn->wOutputOffset, -1, NULL, 0);
|
||||||
name = HeapAlloc(GetProcessHeap(), 0, len * sizeof(WCHAR));
|
name = HeapAlloc(GetProcessHeap(), 0, len * sizeof(WCHAR));
|
||||||
MultiByteToWideChar(CP_ACP, 0, (char*)dn + dn->wOutputOffset, -1, name, len);
|
MultiByteToWideChar(CP_ACP, 0, (char*)dn + dn->wOutputOffset, -1, name, len);
|
||||||
GlobalUnlock(pda->dlga->hDevNames);
|
GlobalUnlock(data->dlga->hDevNames);
|
||||||
return name;
|
return name;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void pagesetup_release_portname(const PageSetupDataA *pda, WCHAR *name)
|
static void pagesetup_release_portname(const pagesetup_data *data, WCHAR *name)
|
||||||
{
|
{
|
||||||
HeapFree(GetProcessHeap(), 0, name);
|
HeapFree(GetProcessHeap(), 0, name);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void pagesetup_set_devnames(PageSetupDataA *pda, LPCWSTR drv, LPCWSTR devname, LPCWSTR port)
|
static void pagesetup_set_devnames(pagesetup_data *data, LPCWSTR drv, LPCWSTR devname, LPCWSTR port)
|
||||||
{
|
{
|
||||||
DEVNAMES *dn;
|
DEVNAMES *dn;
|
||||||
char *ptr;
|
char *ptr;
|
||||||
|
@ -2723,8 +2724,8 @@ static void pagesetup_set_devnames(PageSetupDataA *pda, LPCWSTR drv, LPCWSTR dev
|
||||||
|
|
||||||
len += drv_len + dev_len + port_len;
|
len += drv_len + dev_len + port_len;
|
||||||
|
|
||||||
pda->dlga->hDevNames = GlobalReAlloc(pda->dlga->hDevNames, len, GMEM_MOVEABLE);
|
data->dlga->hDevNames = GlobalReAlloc(data->dlga->hDevNames, len, GMEM_MOVEABLE);
|
||||||
dn = GlobalLock(pda->dlga->hDevNames);
|
dn = GlobalLock(data->dlga->hDevNames);
|
||||||
|
|
||||||
ptr = (char *)(dn + 1);
|
ptr = (char *)(dn + 1);
|
||||||
len = sizeof(DEVNAMES);
|
len = sizeof(DEVNAMES);
|
||||||
|
@ -2745,40 +2746,40 @@ static void pagesetup_set_devnames(PageSetupDataA *pda, LPCWSTR drv, LPCWSTR dev
|
||||||
if(!lstrcmpW(def, devname))
|
if(!lstrcmpW(def, devname))
|
||||||
dn->wDefault = 1;
|
dn->wDefault = 1;
|
||||||
|
|
||||||
GlobalUnlock(pda->dlga->hDevNames);
|
GlobalUnlock(data->dlga->hDevNames);
|
||||||
}
|
}
|
||||||
|
|
||||||
static DEVMODEW *pagesetup_get_devmode(const PageSetupDataA *pda)
|
static DEVMODEW *pagesetup_get_devmode(const pagesetup_data *data)
|
||||||
{
|
{
|
||||||
DEVMODEA *dm;
|
DEVMODEA *dm;
|
||||||
DEVMODEW *dmW;
|
DEVMODEW *dmW;
|
||||||
|
|
||||||
dm = GlobalLock(pda->dlga->hDevMode);
|
dm = GlobalLock(data->dlga->hDevMode);
|
||||||
dmW = GdiConvertToDevmodeW(dm);
|
dmW = GdiConvertToDevmodeW(dm);
|
||||||
GlobalUnlock(pda->dlga->hDevMode);
|
GlobalUnlock(data->dlga->hDevMode);
|
||||||
return dmW;
|
return dmW;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void pagesetup_release_devmode(const PageSetupDataA *pda, DEVMODEW *dm)
|
static void pagesetup_release_devmode(const pagesetup_data *data, DEVMODEW *dm)
|
||||||
{
|
{
|
||||||
HeapFree(GetProcessHeap(), 0, dm);
|
HeapFree(GetProcessHeap(), 0, dm);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void pagesetup_set_devmode(PageSetupDataA *pda, DEVMODEW *dm)
|
static void pagesetup_set_devmode(pagesetup_data *data, DEVMODEW *dm)
|
||||||
{
|
{
|
||||||
DEVMODEA *dmA, *tmp_dm;
|
DEVMODEA *dmA, *tmp_dm;
|
||||||
|
|
||||||
tmp_dm = convert_to_devmodeA(dm);
|
tmp_dm = convert_to_devmodeA(dm);
|
||||||
pda->dlga->hDevMode = GlobalReAlloc(pda->dlga->hDevMode,
|
data->dlga->hDevMode = GlobalReAlloc(data->dlga->hDevMode,
|
||||||
tmp_dm->dmSize + tmp_dm->dmDriverExtra,
|
tmp_dm->dmSize + tmp_dm->dmDriverExtra,
|
||||||
GMEM_MOVEABLE);
|
GMEM_MOVEABLE);
|
||||||
dmA = GlobalLock(pda->dlga->hDevMode);
|
dmA = GlobalLock(data->dlga->hDevMode);
|
||||||
memcpy(dmA, tmp_dm, tmp_dm->dmSize + tmp_dm->dmDriverExtra);
|
memcpy(dmA, tmp_dm, tmp_dm->dmSize + tmp_dm->dmDriverExtra);
|
||||||
GlobalUnlock(pda->dlga->hDevMode);
|
GlobalUnlock(data->dlga->hDevMode);
|
||||||
HeapFree(GetProcessHeap(), 0, tmp_dm);
|
HeapFree(GetProcessHeap(), 0, tmp_dm);
|
||||||
}
|
}
|
||||||
|
|
||||||
static BOOL pagesetup_update_papersize(PageSetupDataA *pda)
|
static BOOL pagesetup_update_papersize(pagesetup_data *data)
|
||||||
{
|
{
|
||||||
DEVMODEW *dm;
|
DEVMODEW *dm;
|
||||||
LPWSTR devname, portname;
|
LPWSTR devname, portname;
|
||||||
|
@ -2787,9 +2788,9 @@ static BOOL pagesetup_update_papersize(PageSetupDataA *pda)
|
||||||
POINT *points = NULL;
|
POINT *points = NULL;
|
||||||
BOOL retval = FALSE;
|
BOOL retval = FALSE;
|
||||||
|
|
||||||
dm = pagesetup_get_devmode(pda);
|
dm = pagesetup_get_devmode(data);
|
||||||
devname = pagesetup_get_devname(pda);
|
devname = pagesetup_get_devname(data);
|
||||||
portname = pagesetup_get_portname(pda);
|
portname = pagesetup_get_portname(data);
|
||||||
|
|
||||||
num = DeviceCapabilitiesW(devname, portname, DC_PAPERS, NULL, dm);
|
num = DeviceCapabilitiesW(devname, portname, DC_PAPERS, NULL, dm);
|
||||||
if (num <= 0)
|
if (num <= 0)
|
||||||
|
@ -2813,7 +2814,7 @@ static BOOL pagesetup_update_papersize(PageSetupDataA *pda)
|
||||||
goto end;
|
goto end;
|
||||||
}
|
}
|
||||||
|
|
||||||
paperword = pagesetup_get_papersize(pda);
|
paperword = pagesetup_get_papersize(data);
|
||||||
|
|
||||||
for (i = 0; i < num; i++)
|
for (i = 0; i < num; i++)
|
||||||
if (words[i] == paperword)
|
if (words[i] == paperword)
|
||||||
|
@ -2826,23 +2827,23 @@ static BOOL pagesetup_update_papersize(PageSetupDataA *pda)
|
||||||
}
|
}
|
||||||
|
|
||||||
/* this is _10ths_ of a millimeter */
|
/* this is _10ths_ of a millimeter */
|
||||||
pda->dlga->ptPaperSize.x = tenths_mm_to_size(pda, points[i].x);
|
data->dlga->ptPaperSize.x = tenths_mm_to_size(data, points[i].x);
|
||||||
pda->dlga->ptPaperSize.y = tenths_mm_to_size(pda, points[i].y);
|
data->dlga->ptPaperSize.y = tenths_mm_to_size(data, points[i].y);
|
||||||
|
|
||||||
if(pagesetup_get_orientation(pda) == DMORIENT_LANDSCAPE)
|
if(pagesetup_get_orientation(data) == DMORIENT_LANDSCAPE)
|
||||||
{
|
{
|
||||||
LONG tmp = pda->dlga->ptPaperSize.x;
|
LONG tmp = data->dlga->ptPaperSize.x;
|
||||||
pda->dlga->ptPaperSize.x = pda->dlga->ptPaperSize.y;
|
data->dlga->ptPaperSize.x = data->dlga->ptPaperSize.y;
|
||||||
pda->dlga->ptPaperSize.y = tmp;
|
data->dlga->ptPaperSize.y = tmp;
|
||||||
}
|
}
|
||||||
retval = TRUE;
|
retval = TRUE;
|
||||||
|
|
||||||
end:
|
end:
|
||||||
HeapFree(GetProcessHeap(), 0, words);
|
HeapFree(GetProcessHeap(), 0, words);
|
||||||
HeapFree(GetProcessHeap(), 0, points);
|
HeapFree(GetProcessHeap(), 0, points);
|
||||||
pagesetup_release_portname(pda, portname);
|
pagesetup_release_portname(data, portname);
|
||||||
pagesetup_release_devname(pda, devname);
|
pagesetup_release_devname(data, devname);
|
||||||
pagesetup_release_devmode(pda, dm);
|
pagesetup_release_devmode(data, dm);
|
||||||
|
|
||||||
return retval;
|
return retval;
|
||||||
}
|
}
|
||||||
|
@ -2903,7 +2904,7 @@ PRINTDLG_PS_UpdateDlgStructW(HWND hDlg, PageSetupDataW *pdw) {
|
||||||
* Redefines hDevMode and hDevNames HANDLES and initialises it.
|
* Redefines hDevMode and hDevNames HANDLES and initialises it.
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
static BOOL pagesetup_change_printer(LPWSTR name, PageSetupDataA *pda)
|
static BOOL pagesetup_change_printer(LPWSTR name, pagesetup_data *data)
|
||||||
{
|
{
|
||||||
HANDLE hprn;
|
HANDLE hprn;
|
||||||
DWORD needed;
|
DWORD needed;
|
||||||
|
@ -2940,8 +2941,8 @@ static BOOL pagesetup_change_printer(LPWSTR name, PageSetupDataA *pda)
|
||||||
dm = HeapAlloc(GetProcessHeap(), 0, needed);
|
dm = HeapAlloc(GetProcessHeap(), 0, needed);
|
||||||
DocumentPropertiesW(0, 0, name, dm, NULL, DM_OUT_BUFFER);
|
DocumentPropertiesW(0, 0, name, dm, NULL, DM_OUT_BUFFER);
|
||||||
|
|
||||||
pagesetup_set_devmode(pda, dm);
|
pagesetup_set_devmode(data, dm);
|
||||||
pagesetup_set_devnames(pda, drv_info->pDriverPath, prn_info->pPrinterName,
|
pagesetup_set_devnames(data, drv_info->pDriverPath, prn_info->pPrinterName,
|
||||||
prn_info->pPortName);
|
prn_info->pPortName);
|
||||||
|
|
||||||
retval = TRUE;
|
retval = TRUE;
|
||||||
|
@ -2958,22 +2959,22 @@ end:
|
||||||
* Fills Printers, Paper and Source combos
|
* Fills Printers, Paper and Source combos
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
static void pagesetup_init_combos(HWND hDlg, PageSetupDataA *pda)
|
static void pagesetup_init_combos(HWND hDlg, pagesetup_data *data)
|
||||||
{
|
{
|
||||||
DEVMODEW *dm;
|
DEVMODEW *dm;
|
||||||
LPWSTR devname, portname;
|
LPWSTR devname, portname;
|
||||||
|
|
||||||
dm = pagesetup_get_devmode(pda);
|
dm = pagesetup_get_devmode(data);
|
||||||
devname = pagesetup_get_devname(pda);
|
devname = pagesetup_get_devname(data);
|
||||||
portname = pagesetup_get_portname(pda);
|
portname = pagesetup_get_portname(data);
|
||||||
|
|
||||||
PRINTDLG_SetUpPrinterListComboW(hDlg, cmb1, devname);
|
PRINTDLG_SetUpPrinterListComboW(hDlg, cmb1, devname);
|
||||||
PRINTDLG_SetUpPaperComboBoxW(hDlg, cmb2, devname, portname, dm);
|
PRINTDLG_SetUpPaperComboBoxW(hDlg, cmb2, devname, portname, dm);
|
||||||
PRINTDLG_SetUpPaperComboBoxW(hDlg, cmb3, devname, portname, dm);
|
PRINTDLG_SetUpPaperComboBoxW(hDlg, cmb3, devname, portname, dm);
|
||||||
|
|
||||||
pagesetup_release_portname(pda, portname);
|
pagesetup_release_portname(data, portname);
|
||||||
pagesetup_release_devname(pda, devname);
|
pagesetup_release_devname(data, devname);
|
||||||
pagesetup_release_devmode(pda, dm);
|
pagesetup_release_devmode(data, dm);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -2984,7 +2985,7 @@ static void pagesetup_init_combos(HWND hDlg, PageSetupDataA *pda)
|
||||||
*
|
*
|
||||||
* For now we display the PrintDlg, this should display a striped down version of it.
|
* For now we display the PrintDlg, this should display a striped down version of it.
|
||||||
*/
|
*/
|
||||||
static void pagesetup_change_printer_dialog(HWND hDlg, PageSetupDataA *pda)
|
static void pagesetup_change_printer_dialog(HWND hDlg, pagesetup_data *data)
|
||||||
{
|
{
|
||||||
PRINTDLGW prnt;
|
PRINTDLGW prnt;
|
||||||
LPWSTR drvname, devname, portname;
|
LPWSTR drvname, devname, portname;
|
||||||
|
@ -2995,33 +2996,33 @@ static void pagesetup_change_printer_dialog(HWND hDlg, PageSetupDataA *pda)
|
||||||
prnt.Flags = 0;
|
prnt.Flags = 0;
|
||||||
prnt.hwndOwner = hDlg;
|
prnt.hwndOwner = hDlg;
|
||||||
|
|
||||||
drvname = pagesetup_get_drvname(pda);
|
drvname = pagesetup_get_drvname(data);
|
||||||
devname = pagesetup_get_devname(pda);
|
devname = pagesetup_get_devname(data);
|
||||||
portname = pagesetup_get_portname(pda);
|
portname = pagesetup_get_portname(data);
|
||||||
prnt.hDevNames = 0;
|
prnt.hDevNames = 0;
|
||||||
PRINTDLG_CreateDevNamesW(&prnt.hDevNames, drvname, devname, portname);
|
PRINTDLG_CreateDevNamesW(&prnt.hDevNames, drvname, devname, portname);
|
||||||
pagesetup_release_portname(pda, portname);
|
pagesetup_release_portname(data, portname);
|
||||||
pagesetup_release_devname(pda, devname);
|
pagesetup_release_devname(data, devname);
|
||||||
pagesetup_release_drvname(pda, drvname);
|
pagesetup_release_drvname(data, drvname);
|
||||||
|
|
||||||
tmp_dm = pagesetup_get_devmode(pda);
|
tmp_dm = pagesetup_get_devmode(data);
|
||||||
prnt.hDevMode = GlobalAlloc(GMEM_MOVEABLE, tmp_dm->dmSize + tmp_dm->dmDriverExtra);
|
prnt.hDevMode = GlobalAlloc(GMEM_MOVEABLE, tmp_dm->dmSize + tmp_dm->dmDriverExtra);
|
||||||
dm = GlobalLock(prnt.hDevMode);
|
dm = GlobalLock(prnt.hDevMode);
|
||||||
memcpy(dm, tmp_dm, tmp_dm->dmSize + tmp_dm->dmDriverExtra);
|
memcpy(dm, tmp_dm, tmp_dm->dmSize + tmp_dm->dmDriverExtra);
|
||||||
GlobalUnlock(prnt.hDevMode);
|
GlobalUnlock(prnt.hDevMode);
|
||||||
pagesetup_release_devmode(pda, tmp_dm);
|
pagesetup_release_devmode(data, tmp_dm);
|
||||||
|
|
||||||
if (PrintDlgW(&prnt))
|
if (PrintDlgW(&prnt))
|
||||||
{
|
{
|
||||||
DEVMODEW *dm = GlobalLock(prnt.hDevMode);
|
DEVMODEW *dm = GlobalLock(prnt.hDevMode);
|
||||||
DEVNAMES *dn = GlobalLock(prnt.hDevNames);
|
DEVNAMES *dn = GlobalLock(prnt.hDevNames);
|
||||||
|
|
||||||
pagesetup_set_devnames(pda, (WCHAR*)dn + dn->wDriverOffset,
|
pagesetup_set_devnames(data, (WCHAR*)dn + dn->wDriverOffset,
|
||||||
(WCHAR*)dn + dn->wDeviceOffset, (WCHAR *)dn + dn->wOutputOffset);
|
(WCHAR*)dn + dn->wDeviceOffset, (WCHAR *)dn + dn->wOutputOffset);
|
||||||
pagesetup_set_devmode(pda, dm);
|
pagesetup_set_devmode(data, dm);
|
||||||
GlobalUnlock(prnt.hDevNames);
|
GlobalUnlock(prnt.hDevNames);
|
||||||
GlobalUnlock(prnt.hDevMode);
|
GlobalUnlock(prnt.hDevMode);
|
||||||
pagesetup_init_combos(hDlg, pda);
|
pagesetup_init_combos(hDlg, data);
|
||||||
}
|
}
|
||||||
|
|
||||||
GlobalFree(prnt.hDevMode);
|
GlobalFree(prnt.hDevMode);
|
||||||
|
@ -3102,7 +3103,7 @@ PRINTDLG_PS_ChangePrinterW(HWND hDlg, PageSetupDataW *pdw) {
|
||||||
* Changes paper preview size / position
|
* Changes paper preview size / position
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
static void pagesetup_change_preview(const PageSetupDataA *data)
|
static void pagesetup_change_preview(const pagesetup_data *data)
|
||||||
{
|
{
|
||||||
LONG width, height, x, y;
|
LONG width, height, x, y;
|
||||||
RECT tmp;
|
RECT tmp;
|
||||||
|
@ -3145,7 +3146,7 @@ static inline LONG *element_from_margin_id(RECT *rc, WORD id)
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void update_margin_edits(HWND hDlg, const PageSetupDataA *pda, WORD id)
|
static void update_margin_edits(HWND hDlg, const pagesetup_data *data, WORD id)
|
||||||
{
|
{
|
||||||
WCHAR str[100];
|
WCHAR str[100];
|
||||||
WORD idx;
|
WORD idx;
|
||||||
|
@ -3154,13 +3155,13 @@ static void update_margin_edits(HWND hDlg, const PageSetupDataA *pda, WORD id)
|
||||||
{
|
{
|
||||||
if(id == 0 || id == idx)
|
if(id == 0 || id == idx)
|
||||||
{
|
{
|
||||||
size2str(pda, *element_from_margin_id(&pda->dlga->rtMargin, idx), str);
|
size2str(data, *element_from_margin_id(&data->dlga->rtMargin, idx), str);
|
||||||
SetDlgItemTextW(hDlg, idx, str);
|
SetDlgItemTextW(hDlg, idx, str);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static void margin_edit_notification(HWND hDlg, PageSetupDataA *pda, WORD msg, WORD id)
|
static void margin_edit_notification(HWND hDlg, pagesetup_data *data, WORD msg, WORD id)
|
||||||
{
|
{
|
||||||
switch (msg)
|
switch (msg)
|
||||||
{
|
{
|
||||||
|
@ -3168,7 +3169,7 @@ static void margin_edit_notification(HWND hDlg, PageSetupDataA *pda, WORD msg, W
|
||||||
{
|
{
|
||||||
WCHAR buf[10];
|
WCHAR buf[10];
|
||||||
LONG val = 0;
|
LONG val = 0;
|
||||||
LONG *value = element_from_margin_id(&pda->dlga->rtMargin, id);
|
LONG *value = element_from_margin_id(&data->dlga->rtMargin, id);
|
||||||
|
|
||||||
if (GetDlgItemTextW(hDlg, id, buf, sizeof(buf) / sizeof(buf[0])) != 0)
|
if (GetDlgItemTextW(hDlg, id, buf, sizeof(buf) / sizeof(buf[0])) != 0)
|
||||||
{
|
{
|
||||||
|
@ -3178,7 +3179,7 @@ static void margin_edit_notification(HWND hDlg, PageSetupDataA *pda, WORD msg, W
|
||||||
val = strtolW(buf, &end, 10);
|
val = strtolW(buf, &end, 10);
|
||||||
if(end != buf || *end == decimal)
|
if(end != buf || *end == decimal)
|
||||||
{
|
{
|
||||||
int mult = is_metric(pda) ? 100 : 1000;
|
int mult = is_metric(data) ? 100 : 1000;
|
||||||
val *= mult;
|
val *= mult;
|
||||||
if(*end == decimal)
|
if(*end == decimal)
|
||||||
{
|
{
|
||||||
|
@ -3199,23 +3200,23 @@ static void margin_edit_notification(HWND hDlg, PageSetupDataA *pda, WORD msg, W
|
||||||
}
|
}
|
||||||
|
|
||||||
case EN_KILLFOCUS:
|
case EN_KILLFOCUS:
|
||||||
update_margin_edits(hDlg, pda, id);
|
update_margin_edits(hDlg, data, id);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static void set_margin_groupbox_title(HWND hDlg, const PageSetupDataA *pda)
|
static void set_margin_groupbox_title(HWND hDlg, const pagesetup_data *data)
|
||||||
{
|
{
|
||||||
WCHAR title[256];
|
WCHAR title[256];
|
||||||
|
|
||||||
if(LoadStringW(COMDLG32_hInstance, is_metric(pda) ? PD32_MARGINS_IN_MILLIMETERS : PD32_MARGINS_IN_INCHES,
|
if(LoadStringW(COMDLG32_hInstance, is_metric(data) ? PD32_MARGINS_IN_MILLIMETERS : PD32_MARGINS_IN_INCHES,
|
||||||
title, sizeof(title)/sizeof(title[0])))
|
title, sizeof(title)/sizeof(title[0])))
|
||||||
SetDlgItemTextW(hDlg, grp4, title);
|
SetDlgItemTextW(hDlg, grp4, title);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void pagesetup_update_orientation_buttons(HWND hDlg, const PageSetupDataA *pda)
|
static void pagesetup_update_orientation_buttons(HWND hDlg, const pagesetup_data *data)
|
||||||
{
|
{
|
||||||
if (pagesetup_get_orientation(pda) == DMORIENT_LANDSCAPE)
|
if (pagesetup_get_orientation(data) == DMORIENT_LANDSCAPE)
|
||||||
CheckRadioButton(hDlg, rad1, rad2, rad2);
|
CheckRadioButton(hDlg, rad1, rad2, rad2);
|
||||||
else
|
else
|
||||||
CheckRadioButton(hDlg, rad1, rad2, rad1);
|
CheckRadioButton(hDlg, rad1, rad2, rad1);
|
||||||
|
@ -3226,7 +3227,7 @@ static void pagesetup_update_orientation_buttons(HWND hDlg, const PageSetupDataA
|
||||||
*
|
*
|
||||||
* Handle invocation of the 'Properties' button (not present in the default template).
|
* Handle invocation of the 'Properties' button (not present in the default template).
|
||||||
*/
|
*/
|
||||||
static void pagesetup_printer_properties(HWND hDlg, PageSetupDataA *data)
|
static void pagesetup_printer_properties(HWND hDlg, pagesetup_data *data)
|
||||||
{
|
{
|
||||||
HANDLE hprn;
|
HANDLE hprn;
|
||||||
LPWSTR devname;
|
LPWSTR devname;
|
||||||
|
@ -3283,10 +3284,8 @@ static void pagesetup_printer_properties(HWND hDlg, PageSetupDataA *data)
|
||||||
* pda [in/out] ptr to PageSetupDataA
|
* pda [in/out] ptr to PageSetupDataA
|
||||||
*/
|
*/
|
||||||
|
|
||||||
static BOOL
|
static BOOL PRINTDLG_PS_WMCommandA(HWND hDlg, WPARAM wParam, LPARAM lParam, pagesetup_data *data)
|
||||||
PRINTDLG_PS_WMCommandA(
|
{
|
||||||
HWND hDlg, WPARAM wParam, LPARAM lParam, PageSetupDataA *pda
|
|
||||||
) {
|
|
||||||
WORD msg = HIWORD(wParam);
|
WORD msg = HIWORD(wParam);
|
||||||
WORD id = LOWORD(wParam);
|
WORD id = LOWORD(wParam);
|
||||||
|
|
||||||
|
@ -3302,19 +3301,19 @@ PRINTDLG_PS_WMCommandA(
|
||||||
return FALSE ;
|
return FALSE ;
|
||||||
|
|
||||||
case psh3: /* Printer... */
|
case psh3: /* Printer... */
|
||||||
pagesetup_change_printer_dialog(hDlg, pda);
|
pagesetup_change_printer_dialog(hDlg, data);
|
||||||
return TRUE;
|
return TRUE;
|
||||||
|
|
||||||
case rad1: /* Portrait */
|
case rad1: /* Portrait */
|
||||||
case rad2: /* Landscape */
|
case rad2: /* Landscape */
|
||||||
if((id == rad1 && pagesetup_get_orientation(pda) == DMORIENT_LANDSCAPE) ||
|
if((id == rad1 && pagesetup_get_orientation(data) == DMORIENT_LANDSCAPE) ||
|
||||||
(id == rad2 && pagesetup_get_orientation(pda) == DMORIENT_PORTRAIT))
|
(id == rad2 && pagesetup_get_orientation(data) == DMORIENT_PORTRAIT))
|
||||||
{
|
{
|
||||||
pagesetup_set_orientation(pda, (id == rad1) ? DMORIENT_PORTRAIT : DMORIENT_LANDSCAPE);
|
pagesetup_set_orientation(data, (id == rad1) ? DMORIENT_PORTRAIT : DMORIENT_LANDSCAPE);
|
||||||
pagesetup_update_papersize(pda);
|
pagesetup_update_papersize(data);
|
||||||
rotate_rect(&pda->dlga->rtMargin, (id == rad2));
|
rotate_rect(&data->dlga->rtMargin, (id == rad2));
|
||||||
update_margin_edits(hDlg, pda, 0);
|
update_margin_edits(hDlg, data, 0);
|
||||||
pagesetup_change_preview(pda);
|
pagesetup_change_preview(data);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case cmb1: /* Printer combo */
|
case cmb1: /* Printer combo */
|
||||||
|
@ -3322,8 +3321,8 @@ PRINTDLG_PS_WMCommandA(
|
||||||
{
|
{
|
||||||
WCHAR name[256];
|
WCHAR name[256];
|
||||||
GetDlgItemTextW(hDlg, id, name, sizeof(name) / sizeof(name[0]));
|
GetDlgItemTextW(hDlg, id, name, sizeof(name) / sizeof(name[0]));
|
||||||
pagesetup_change_printer(name, pda);
|
pagesetup_change_printer(name, data);
|
||||||
pagesetup_init_combos(hDlg, pda);
|
pagesetup_init_combos(hDlg, data);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case cmb2: /* Paper combo */
|
case cmb2: /* Paper combo */
|
||||||
|
@ -3333,9 +3332,9 @@ PRINTDLG_PS_WMCommandA(
|
||||||
SendDlgItemMessageW(hDlg, cmb2, CB_GETCURSEL, 0, 0), 0);
|
SendDlgItemMessageW(hDlg, cmb2, CB_GETCURSEL, 0, 0), 0);
|
||||||
if (paperword != CB_ERR)
|
if (paperword != CB_ERR)
|
||||||
{
|
{
|
||||||
pagesetup_set_papersize(pda, paperword);
|
pagesetup_set_papersize(data, paperword);
|
||||||
pagesetup_update_papersize(pda);
|
pagesetup_update_papersize(data);
|
||||||
pagesetup_change_preview(pda);
|
pagesetup_change_preview(data);
|
||||||
} else
|
} else
|
||||||
FIXME("could not get dialog text for papersize cmbbox?\n");
|
FIXME("could not get dialog text for papersize cmbbox?\n");
|
||||||
}
|
}
|
||||||
|
@ -3345,17 +3344,17 @@ PRINTDLG_PS_WMCommandA(
|
||||||
{
|
{
|
||||||
WORD source = SendDlgItemMessageW(hDlg, cmb3, CB_GETITEMDATA,
|
WORD source = SendDlgItemMessageW(hDlg, cmb3, CB_GETITEMDATA,
|
||||||
SendDlgItemMessageW(hDlg, cmb3, CB_GETCURSEL, 0, 0), 0);
|
SendDlgItemMessageW(hDlg, cmb3, CB_GETCURSEL, 0, 0), 0);
|
||||||
pagesetup_set_defaultsource(pda, source);
|
pagesetup_set_defaultsource(data, source);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case psh2: /* Printer Properties button */
|
case psh2: /* Printer Properties button */
|
||||||
pagesetup_printer_properties(hDlg, pda);
|
pagesetup_printer_properties(hDlg, data);
|
||||||
break;
|
break;
|
||||||
case edt4:
|
case edt4:
|
||||||
case edt5:
|
case edt5:
|
||||||
case edt6:
|
case edt6:
|
||||||
case edt7:
|
case edt7:
|
||||||
margin_edit_notification(hDlg, pda, msg, id);
|
margin_edit_notification(hDlg, data, msg, id);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
InvalidateRect(GetDlgItem(hDlg, rct1), NULL, TRUE);
|
InvalidateRect(GetDlgItem(hDlg, rct1), NULL, TRUE);
|
||||||
|
@ -3424,7 +3423,7 @@ PRINTDLG_PS_WMCommandW(
|
||||||
|
|
||||||
static UINT_PTR
|
static UINT_PTR
|
||||||
PRINTDLG_DefaultPagePaintHook(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam,
|
PRINTDLG_DefaultPagePaintHook(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam,
|
||||||
const PageSetupDataA *pda)
|
const pagesetup_data *data)
|
||||||
{
|
{
|
||||||
LPRECT lprc = (LPRECT) lParam;
|
LPRECT lprc = (LPRECT) lParam;
|
||||||
HDC hdc = (HDC) wParam;
|
HDC hdc = (HDC) wParam;
|
||||||
|
@ -3434,8 +3433,8 @@ PRINTDLG_DefaultPagePaintHook(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lPa
|
||||||
INT oldbkmode;
|
INT oldbkmode;
|
||||||
TRACE("uMsg: WM_USER+%d\n",uMsg-WM_USER);
|
TRACE("uMsg: WM_USER+%d\n",uMsg-WM_USER);
|
||||||
/* Call user paint hook if enable */
|
/* Call user paint hook if enable */
|
||||||
if (pda->dlga->Flags & PSD_ENABLEPAGEPAINTHOOK)
|
if (data->dlga->Flags & PSD_ENABLEPAGEPAINTHOOK)
|
||||||
if (pda->dlga->lpfnPagePaintHook(hwndDlg, uMsg, wParam, lParam))
|
if (data->dlga->lpfnPagePaintHook(hwndDlg, uMsg, wParam, lParam))
|
||||||
return TRUE;
|
return TRUE;
|
||||||
|
|
||||||
switch (uMsg) {
|
switch (uMsg) {
|
||||||
|
@ -3529,34 +3528,34 @@ PRINTDLG_PagePaintProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
|
||||||
HPEN hpen, holdpen;
|
HPEN hpen, holdpen;
|
||||||
HDC hdc;
|
HDC hdc;
|
||||||
HBRUSH hbrush, holdbrush;
|
HBRUSH hbrush, holdbrush;
|
||||||
PageSetupDataA *pda;
|
pagesetup_data *data;
|
||||||
int papersize=0, orientation=0; /* FIXME: set this values for user paint hook */
|
int papersize=0, orientation=0; /* FIXME: set this values for user paint hook */
|
||||||
double scalx, scaly;
|
double scalx, scaly;
|
||||||
#define CALLPAINTHOOK(msg,lprc) PRINTDLG_DefaultPagePaintHook( hWnd, msg, (WPARAM)hdc, (LPARAM)lprc, pda)
|
#define CALLPAINTHOOK(msg,lprc) PRINTDLG_DefaultPagePaintHook( hWnd, msg, (WPARAM)hdc, (LPARAM)lprc, data)
|
||||||
|
|
||||||
if (uMsg != WM_PAINT)
|
if (uMsg != WM_PAINT)
|
||||||
return CallWindowProcA(lpfnStaticWndProc, hWnd, uMsg, wParam, lParam);
|
return CallWindowProcA(lpfnStaticWndProc, hWnd, uMsg, wParam, lParam);
|
||||||
|
|
||||||
/* Processing WM_PAINT message */
|
/* Processing WM_PAINT message */
|
||||||
pda = GetPropW(hWnd, pagesetupdlg_prop);
|
data = GetPropW(hWnd, pagesetupdlg_prop);
|
||||||
if (!pda) {
|
if (!data) {
|
||||||
WARN("__WINE_PAGESETUPDLGDATA prop not set?\n");
|
WARN("__WINE_PAGESETUPDLGDATA prop not set?\n");
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
if (PRINTDLG_DefaultPagePaintHook(hWnd, WM_PSD_PAGESETUPDLG, MAKELONG(papersize, orientation), (LPARAM)pda->dlga, pda))
|
if (PRINTDLG_DefaultPagePaintHook(hWnd, WM_PSD_PAGESETUPDLG, MAKELONG(papersize, orientation), (LPARAM)data->dlga, data))
|
||||||
return FALSE;
|
return FALSE;
|
||||||
|
|
||||||
hdc = BeginPaint(hWnd, &ps);
|
hdc = BeginPaint(hWnd, &ps);
|
||||||
GetClientRect(hWnd, &rcClient);
|
GetClientRect(hWnd, &rcClient);
|
||||||
|
|
||||||
scalx = rcClient.right / (double)pda->dlga->ptPaperSize.x;
|
scalx = rcClient.right / (double)data->dlga->ptPaperSize.x;
|
||||||
scaly = rcClient.bottom / (double)pda->dlga->ptPaperSize.y;
|
scaly = rcClient.bottom / (double)data->dlga->ptPaperSize.y;
|
||||||
rcMargin = rcClient;
|
rcMargin = rcClient;
|
||||||
|
|
||||||
rcMargin.left += pda->dlga->rtMargin.left * scalx;
|
rcMargin.left += data->dlga->rtMargin.left * scalx;
|
||||||
rcMargin.top += pda->dlga->rtMargin.top * scalx;
|
rcMargin.top += data->dlga->rtMargin.top * scalx;
|
||||||
rcMargin.right -= pda->dlga->rtMargin.right * scaly;
|
rcMargin.right -= data->dlga->rtMargin.right * scaly;
|
||||||
rcMargin.bottom -= pda->dlga->rtMargin.bottom * scaly;
|
rcMargin.bottom -= data->dlga->rtMargin.bottom * scaly;
|
||||||
|
|
||||||
/* if the space is too small then we make sure to not draw anything */
|
/* if the space is too small then we make sure to not draw anything */
|
||||||
rcMargin.left = min(rcMargin.left, rcMargin.right);
|
rcMargin.left = min(rcMargin.left, rcMargin.right);
|
||||||
|
@ -3652,21 +3651,21 @@ static void subclass_margin_edits(HWND hDlg)
|
||||||
static INT_PTR CALLBACK
|
static INT_PTR CALLBACK
|
||||||
PRINTDLG_PageDlgProcA(HWND hDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
|
PRINTDLG_PageDlgProcA(HWND hDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
|
||||||
{
|
{
|
||||||
PageSetupDataA *pda;
|
pagesetup_data *data;
|
||||||
INT_PTR res = FALSE;
|
INT_PTR res = FALSE;
|
||||||
HWND hDrawWnd;
|
HWND hDrawWnd;
|
||||||
|
|
||||||
if (uMsg == WM_INITDIALOG) { /*Init dialog*/
|
if (uMsg == WM_INITDIALOG) { /*Init dialog*/
|
||||||
pda = (PageSetupDataA*)lParam;
|
data = (pagesetup_data *)lParam;
|
||||||
pda->hDlg = hDlg; /* saving handle to main window to PageSetupDataA structure */
|
data->hDlg = hDlg;
|
||||||
|
|
||||||
hDrawWnd = GetDlgItem(hDlg, rct1);
|
hDrawWnd = GetDlgItem(hDlg, rct1);
|
||||||
TRACE("set property to %p\n", pda);
|
TRACE("set property to %p\n", data);
|
||||||
SetPropW(hDlg, pagesetupdlg_prop, pda);
|
SetPropW(hDlg, pagesetupdlg_prop, data);
|
||||||
SetPropW(hDrawWnd, pagesetupdlg_prop, pda);
|
SetPropW(hDrawWnd, pagesetupdlg_prop, data);
|
||||||
GetWindowRect(hDrawWnd, &pda->rtDrawRect); /* Calculating rect in client coordinates where paper draws */
|
GetWindowRect(hDrawWnd, &data->rtDrawRect); /* Calculating rect in client coordinates where paper draws */
|
||||||
ScreenToClient(hDlg, (LPPOINT)&pda->rtDrawRect);
|
ScreenToClient(hDlg, (LPPOINT)&data->rtDrawRect);
|
||||||
ScreenToClient(hDlg, (LPPOINT)(&pda->rtDrawRect.right));
|
ScreenToClient(hDlg, (LPPOINT)(&data->rtDrawRect.right));
|
||||||
lpfnStaticWndProc = (WNDPROC)SetWindowLongPtrW(
|
lpfnStaticWndProc = (WNDPROC)SetWindowLongPtrW(
|
||||||
hDrawWnd,
|
hDrawWnd,
|
||||||
GWLP_WNDPROC,
|
GWLP_WNDPROC,
|
||||||
|
@ -3674,16 +3673,18 @@ PRINTDLG_PageDlgProcA(HWND hDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
|
||||||
|
|
||||||
/* FIXME: Paint hook. Must it be at begin of initialization or at end? */
|
/* FIXME: Paint hook. Must it be at begin of initialization or at end? */
|
||||||
res = TRUE;
|
res = TRUE;
|
||||||
if (pda->dlga->Flags & PSD_ENABLEPAGESETUPHOOK) {
|
if (data->dlga->Flags & PSD_ENABLEPAGESETUPHOOK)
|
||||||
if (!pda->dlga->lpfnPageSetupHook(hDlg,uMsg,wParam,(LPARAM)pda->dlga))
|
{
|
||||||
|
if (!data->dlga->lpfnPageSetupHook(hDlg,uMsg,wParam,(LPARAM)data->dlga))
|
||||||
FIXME("Setup page hook failed?\n");
|
FIXME("Setup page hook failed?\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
/* if printer button disabled */
|
/* if printer button disabled */
|
||||||
if (pda->dlga->Flags & PSD_DISABLEPRINTER)
|
if (data->dlga->Flags & PSD_DISABLEPRINTER)
|
||||||
EnableWindow(GetDlgItem(hDlg, psh3), FALSE);
|
EnableWindow(GetDlgItem(hDlg, psh3), FALSE);
|
||||||
/* if margin edit boxes disabled */
|
/* if margin edit boxes disabled */
|
||||||
if (pda->dlga->Flags & PSD_DISABLEMARGINS) {
|
if (data->dlga->Flags & PSD_DISABLEMARGINS)
|
||||||
|
{
|
||||||
EnableWindow(GetDlgItem(hDlg, edt4), FALSE);
|
EnableWindow(GetDlgItem(hDlg, edt4), FALSE);
|
||||||
EnableWindow(GetDlgItem(hDlg, edt5), FALSE);
|
EnableWindow(GetDlgItem(hDlg, edt5), FALSE);
|
||||||
EnableWindow(GetDlgItem(hDlg, edt6), FALSE);
|
EnableWindow(GetDlgItem(hDlg, edt6), FALSE);
|
||||||
|
@ -3691,56 +3692,60 @@ PRINTDLG_PageDlgProcA(HWND hDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Set orientation radiobuttons properly */
|
/* Set orientation radiobuttons properly */
|
||||||
pagesetup_update_orientation_buttons(hDlg, pda);
|
pagesetup_update_orientation_buttons(hDlg, data);
|
||||||
|
|
||||||
/* if orientation disabled */
|
/* if orientation disabled */
|
||||||
if (pda->dlga->Flags & PSD_DISABLEORIENTATION) {
|
if (data->dlga->Flags & PSD_DISABLEORIENTATION)
|
||||||
|
{
|
||||||
EnableWindow(GetDlgItem(hDlg,rad1),FALSE);
|
EnableWindow(GetDlgItem(hDlg,rad1),FALSE);
|
||||||
EnableWindow(GetDlgItem(hDlg,rad2),FALSE);
|
EnableWindow(GetDlgItem(hDlg,rad2),FALSE);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* We fill them out enabled or not */
|
/* We fill them out enabled or not */
|
||||||
if (!(pda->dlga->Flags & PSD_MARGINS))
|
if (!(data->dlga->Flags & PSD_MARGINS))
|
||||||
{
|
{
|
||||||
/* default is 1 inch */
|
/* default is 1 inch */
|
||||||
LONG size = thousandths_inch_to_size(pda, 1000);
|
LONG size = thousandths_inch_to_size(data, 1000);
|
||||||
pda->dlga->rtMargin.left = size;
|
data->dlga->rtMargin.left = size;
|
||||||
pda->dlga->rtMargin.top = size;
|
data->dlga->rtMargin.top = size;
|
||||||
pda->dlga->rtMargin.right = size;
|
data->dlga->rtMargin.right = size;
|
||||||
pda->dlga->rtMargin.bottom = size;
|
data->dlga->rtMargin.bottom = size;
|
||||||
}
|
}
|
||||||
update_margin_edits(hDlg, pda, 0);
|
update_margin_edits(hDlg, data, 0);
|
||||||
subclass_margin_edits(hDlg);
|
subclass_margin_edits(hDlg);
|
||||||
set_margin_groupbox_title(hDlg, pda);
|
set_margin_groupbox_title(hDlg, data);
|
||||||
|
|
||||||
/* if paper disabled */
|
/* if paper disabled */
|
||||||
if (pda->dlga->Flags & PSD_DISABLEPAPER) {
|
if (data->dlga->Flags & PSD_DISABLEPAPER)
|
||||||
|
{
|
||||||
EnableWindow(GetDlgItem(hDlg,cmb2),FALSE);
|
EnableWindow(GetDlgItem(hDlg,cmb2),FALSE);
|
||||||
EnableWindow(GetDlgItem(hDlg,cmb3),FALSE);
|
EnableWindow(GetDlgItem(hDlg,cmb3),FALSE);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* filling combos: printer, paper, source. selecting current printer (from DEVMODEA) */
|
/* filling combos: printer, paper, source. selecting current printer (from DEVMODEA) */
|
||||||
pagesetup_init_combos(hDlg, pda);
|
pagesetup_init_combos(hDlg, data);
|
||||||
pagesetup_update_papersize(pda);
|
pagesetup_update_papersize(data);
|
||||||
pagesetup_set_defaultsource(pda, DMBIN_FORMSOURCE); /* FIXME: This is the auto select bin. Is this correct? */
|
pagesetup_set_defaultsource(data, DMBIN_FORMSOURCE); /* FIXME: This is the auto select bin. Is this correct? */
|
||||||
|
|
||||||
/* Drawing paper prev */
|
/* Drawing paper prev */
|
||||||
pagesetup_change_preview(pda);
|
pagesetup_change_preview(data);
|
||||||
return TRUE;
|
return TRUE;
|
||||||
} else {
|
} else {
|
||||||
pda = GetPropW(hDlg, pagesetupdlg_prop);
|
data = GetPropW(hDlg, pagesetupdlg_prop);
|
||||||
if (!pda) {
|
if (!data)
|
||||||
|
{
|
||||||
WARN("__WINE_PAGESETUPDLGDATA prop not set?\n");
|
WARN("__WINE_PAGESETUPDLGDATA prop not set?\n");
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
if (pda->dlga->Flags & PSD_ENABLEPAGESETUPHOOK) {
|
if (data->dlga->Flags & PSD_ENABLEPAGESETUPHOOK)
|
||||||
res = pda->dlga->lpfnPageSetupHook(hDlg,uMsg,wParam,lParam);
|
{
|
||||||
|
res = data->dlga->lpfnPageSetupHook(hDlg, uMsg, wParam, lParam);
|
||||||
if (res) return res;
|
if (res) return res;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
switch (uMsg) {
|
switch (uMsg) {
|
||||||
case WM_COMMAND:
|
case WM_COMMAND:
|
||||||
return PRINTDLG_PS_WMCommandA(hDlg, wParam, lParam, pda);
|
return PRINTDLG_PS_WMCommandA(hDlg, wParam, lParam, data);
|
||||||
}
|
}
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
@ -3852,7 +3857,7 @@ BOOL WINAPI PageSetupDlgA(LPPAGESETUPDLGA setupdlg) {
|
||||||
HGLOBAL hDlgTmpl;
|
HGLOBAL hDlgTmpl;
|
||||||
LPVOID ptr;
|
LPVOID ptr;
|
||||||
BOOL bRet;
|
BOOL bRet;
|
||||||
PageSetupDataA *pda;
|
pagesetup_data *data;
|
||||||
|
|
||||||
if (setupdlg == NULL) {
|
if (setupdlg == NULL) {
|
||||||
COMDLG32_SetCommDlgExtendedError(CDERR_INITIALIZATION);
|
COMDLG32_SetCommDlgExtendedError(CDERR_INITIALIZATION);
|
||||||
|
@ -3913,13 +3918,13 @@ BOOL WINAPI PageSetupDlgA(LPPAGESETUPDLGA setupdlg) {
|
||||||
setupdlg->hDevNames = pdlg.hDevNames;
|
setupdlg->hDevNames = pdlg.hDevNames;
|
||||||
}
|
}
|
||||||
|
|
||||||
pda = HeapAlloc(GetProcessHeap(),0,sizeof(*pda));
|
data = HeapAlloc(GetProcessHeap(), 0, sizeof(*data));
|
||||||
pda->dlga = setupdlg;
|
data->dlga = setupdlg;
|
||||||
|
|
||||||
/* short cut exit, just return default values */
|
/* short cut exit, just return default values */
|
||||||
if (setupdlg->Flags & PSD_RETURNDEFAULT) {
|
if (setupdlg->Flags & PSD_RETURNDEFAULT) {
|
||||||
pagesetup_update_papersize(pda);
|
pagesetup_update_papersize(data);
|
||||||
HeapFree(GetProcessHeap(), 0, pda);
|
HeapFree(GetProcessHeap(), 0, data);
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -3940,10 +3945,10 @@ BOOL WINAPI PageSetupDlgA(LPPAGESETUPDLGA setupdlg) {
|
||||||
ptr,
|
ptr,
|
||||||
setupdlg->hwndOwner,
|
setupdlg->hwndOwner,
|
||||||
PRINTDLG_PageDlgProcA,
|
PRINTDLG_PageDlgProcA,
|
||||||
(LPARAM)pda)
|
(LPARAM)data)
|
||||||
);
|
);
|
||||||
|
|
||||||
HeapFree(GetProcessHeap(),0,pda);
|
HeapFree(GetProcessHeap(), 0, data);
|
||||||
return bRet;
|
return bRet;
|
||||||
}
|
}
|
||||||
/***********************************************************************
|
/***********************************************************************
|
||||||
|
|
Loading…
Reference in New Issue