include: Synchronize DEVMODE layout with PSDK.

This commit is contained in:
Dmitry Timoshkov 2007-11-01 14:22:11 +08:00 committed by Alexandre Julliard
parent aa7f9f0a72
commit d43fdc5ab0
8 changed files with 76 additions and 60 deletions

View File

@ -354,7 +354,7 @@ static BOOL PRINTDLG_UpdatePrintDlgA(HWND hDlg,
lpdm->dmCollate =
(IsDlgButtonChecked(hDlg, chx2) == BST_CHECKED);
if (lpdm->dmFields & DM_COPIES)
lpdm->dmCopies = GetDlgItemInt(hDlg, edt3, NULL, FALSE);
lpdm->u1.s1.dmCopies = GetDlgItemInt(hDlg, edt3, NULL, FALSE);
} else {
if (IsDlgButtonChecked(hDlg, chx2) == BST_CHECKED)
lppd->Flags |= PD_COLLATE;
@ -437,7 +437,7 @@ static BOOL PRINTDLG_UpdatePrintDlgW(HWND hDlg,
lpdm->dmCollate =
(IsDlgButtonChecked(hDlg, chx2) == BST_CHECKED);
if (lpdm->dmFields & DM_COPIES)
lpdm->dmCopies = GetDlgItemInt(hDlg, edt3, NULL, FALSE);
lpdm->u1.s1.dmCopies = GetDlgItemInt(hDlg, edt3, NULL, FALSE);
} else {
if (IsDlgButtonChecked(hDlg, chx2) == BST_CHECKED)
lppd->Flags |= PD_COLLATE;
@ -604,7 +604,7 @@ static BOOL PRINTDLG_SetUpPaperComboBoxA(HWND hDlg,
if (nIDComboBox == cmb2)
dm->u1.s1.dmPaperSize = oldWord;
else
dm->dmDefaultSource = oldWord;
dm->u1.s1.dmDefaultSource = oldWord;
}
}
else {
@ -616,7 +616,7 @@ static BOOL PRINTDLG_SetUpPaperComboBoxA(HWND hDlg,
if (nIDComboBox == cmb2)
oldWord = dm->u1.s1.dmPaperSize;
else
oldWord = dm->dmDefaultSource;
oldWord = dm->u1.s1.dmDefaultSource;
}
}
@ -714,7 +714,7 @@ static BOOL PRINTDLG_SetUpPaperComboBoxW(HWND hDlg,
if (nIDComboBox == cmb2)
dm->u1.s1.dmPaperSize = oldWord;
else
dm->dmDefaultSource = oldWord;
dm->u1.s1.dmDefaultSource = oldWord;
}
}
else {
@ -726,7 +726,7 @@ static BOOL PRINTDLG_SetUpPaperComboBoxW(HWND hDlg,
if (nIDComboBox == cmb2)
oldWord = dm->u1.s1.dmPaperSize;
else
oldWord = dm->dmDefaultSource;
oldWord = dm->u1.s1.dmDefaultSource;
}
}
@ -976,7 +976,7 @@ BOOL PRINTDLG_ChangePrinterA(HWND hDlg, char *name,
if (lppd->hDevMode == 0)
copies = lppd->nCopies;
else
copies = lpdm->dmCopies;
copies = lpdm->u1.s1.dmCopies;
if(copies == 0) copies = 1;
else if(copies < 0) copies = MAX_COPIES;
SetDlgItemInt(hDlg, edt3, copies, FALSE);
@ -1125,7 +1125,7 @@ static BOOL PRINTDLG_ChangePrinterW(HWND hDlg, WCHAR *name,
if (lppd->hDevMode == 0)
copies = lppd->nCopies;
else
copies = lpdm->dmCopies;
copies = lpdm->u1.s1.dmCopies;
if(copies == 0) copies = 1;
else if(copies < 0) copies = MAX_COPIES;
SetDlgItemInt(hDlg, edt3, copies, FALSE);
@ -1564,7 +1564,7 @@ LRESULT PRINTDLG_WMCommandA(HWND hDlg, WPARAM wParam,
{
DWORD Sel = SendDlgItemMessageA(hDlg, cmb3, CB_GETCURSEL, 0, 0);
if(Sel != CB_ERR)
lpdm->dmDefaultSource = SendDlgItemMessageA(hDlg, cmb3,
lpdm->u1.s1.dmDefaultSource = SendDlgItemMessageA(hDlg, cmb3,
CB_GETITEMDATA, Sel,
0);
}
@ -1728,7 +1728,7 @@ static LRESULT PRINTDLG_WMCommandW(HWND hDlg, WPARAM wParam,
{
DWORD Sel = SendDlgItemMessageW(hDlg, cmb3, CB_GETCURSEL, 0, 0);
if(Sel != CB_ERR)
lpdm->dmDefaultSource = SendDlgItemMessageW(hDlg, cmb3,
lpdm->u1.s1.dmDefaultSource = SendDlgItemMessageW(hDlg, cmb3,
CB_GETITEMDATA, Sel,
0);
}
@ -2531,7 +2531,7 @@ PRINTDLG_PS_UpdateDlgStructA(HWND hDlg, PageSetupDataA *pda) {
paperword = SendDlgItemMessageA(hDlg,cmb1,CB_GETITEMDATA,
SendDlgItemMessageA(hDlg, cmb1, CB_GETCURSEL, 0, 0), 0);
if (paperword != CB_ERR)
dm->dmDefaultSource = paperword;
dm->u1.s1.dmDefaultSource = paperword;
else
FIXME("could not get dialog text for papersize cmbbox?\n");
@ -2836,7 +2836,7 @@ PRINTDLG_PS_WMCommandA(
case cmb3:
if(msg == CBN_SELCHANGE){
DEVMODEA *dm = GlobalLock(pda->pdlg.hDevMode);
dm->dmDefaultSource = SendDlgItemMessageA(hDlg, cmb3,CB_GETITEMDATA,
dm->u1.s1.dmDefaultSource = SendDlgItemMessageA(hDlg, cmb3,CB_GETITEMDATA,
SendDlgItemMessageA(hDlg, cmb3, CB_GETCURSEL, 0, 0), 0);
GlobalUnlock(pda->pdlg.hDevMode);
}
@ -3228,7 +3228,7 @@ PRINTDLG_PageDlgProcA(HWND hDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
PRINTDLG_PS_ChangePrinterA(hDlg, pda);
dm = GlobalLock(pda->pdlg.hDevMode);
if(dm){
dm->dmDefaultSource = 15; /*FIXME: Automatic select. Does it always 15 at start? */
dm->u1.s1.dmDefaultSource = 15; /*FIXME: Automatic select. Does it always 15 at start? */
PRINTDLG_PaperSizeA(&(pda->pdlg), dm->u1.s1.dmPaperSize, &pda->curdlg.ptPaperSize);
GlobalUnlock(pda->pdlg.hDevMode);
pda->curdlg.ptPaperSize.x = _c_10mm2size(pda->dlga, pda->curdlg.ptPaperSize.x);

View File

@ -148,13 +148,13 @@ static LRESULT PRINTDLG_WMInitDialog16(HWND hDlg, WPARAM wParam, PRINT_PTRA16* p
pdm = GlobalLock16(lppd->hDevMode);
if(pdm) {
switch (pdm->dmPrintQuality) {
switch (pdm->u1.s1.dmPrintQuality) {
case DMRES_HIGH : strcpy(buf,"High");break;
case DMRES_MEDIUM : strcpy(buf,"Medium");break;
case DMRES_LOW : strcpy(buf,"Low");break;
case DMRES_DRAFT : strcpy(buf,"Draft");break;
case 0 : strcpy(buf,"Default");break;
default : sprintf(buf,"%ddpi",pdm->dmPrintQuality);break;
default : sprintf(buf,"%ddpi",pdm->u1.s1.dmPrintQuality);break;
}
GlobalUnlock16(lppd->hDevMode);
} else

View File

@ -104,35 +104,35 @@ void PSDRV_MergeDevmodes(PSDRV_DEVMODEA *dm1, PSDRV_DEVMODEA *dm2,
}
if(dm2->dmPublic.dmFields & DM_SCALE) {
dm1->dmPublic.dmScale = dm2->dmPublic.dmScale;
TRACE("Changing Scale to %d\n", dm2->dmPublic.dmScale);
dm1->dmPublic.u1.s1.dmScale = dm2->dmPublic.u1.s1.dmScale;
TRACE("Changing Scale to %d\n", dm2->dmPublic.u1.s1.dmScale);
}
if(dm2->dmPublic.dmFields & DM_COPIES) {
dm1->dmPublic.dmCopies = dm2->dmPublic.dmCopies;
TRACE("Changing Copies to %d\n", dm2->dmPublic.dmCopies);
dm1->dmPublic.u1.s1.dmCopies = dm2->dmPublic.u1.s1.dmCopies;
TRACE("Changing Copies to %d\n", dm2->dmPublic.u1.s1.dmCopies);
}
if(dm2->dmPublic.dmFields & DM_DEFAULTSOURCE) {
INPUTSLOT *slot;
for(slot = pi->ppd->InputSlots; slot; slot = slot->next) {
if(slot->WinBin == dm2->dmPublic.dmDefaultSource)
if(slot->WinBin == dm2->dmPublic.u1.s1.dmDefaultSource)
break;
}
if(slot) {
dm1->dmPublic.dmDefaultSource = dm2->dmPublic.dmDefaultSource;
dm1->dmPublic.u1.s1.dmDefaultSource = dm2->dmPublic.u1.s1.dmDefaultSource;
TRACE("Changing bin to '%s'\n", slot->FullName);
} else {
TRACE("Trying to change to unsupported bin %d\n",
dm2->dmPublic.dmDefaultSource);
dm2->dmPublic.u1.s1.dmDefaultSource);
}
}
if (dm2->dmPublic.dmFields & DM_DEFAULTSOURCE )
dm1->dmPublic.dmDefaultSource = dm2->dmPublic.dmDefaultSource;
dm1->dmPublic.u1.s1.dmDefaultSource = dm2->dmPublic.u1.s1.dmDefaultSource;
if (dm2->dmPublic.dmFields & DM_PRINTQUALITY )
dm1->dmPublic.dmPrintQuality = dm2->dmPublic.dmPrintQuality;
dm1->dmPublic.u1.s1.dmPrintQuality = dm2->dmPublic.u1.s1.dmPrintQuality;
if (dm2->dmPublic.dmFields & DM_COLOR )
dm1->dmPublic.dmColor = dm2->dmPublic.dmColor;
if (dm2->dmPublic.dmFields & DM_DUPLEX && pi->ppd->DefaultDuplex && pi->ppd->DefaultDuplex->WinDuplex != 0)
@ -152,11 +152,11 @@ void PSDRV_MergeDevmodes(PSDRV_DEVMODEA *dm1, PSDRV_DEVMODEA *dm2,
if (dm2->dmPublic.dmFields & DM_PELSHEIGHT )
dm1->dmPublic.dmPelsHeight = dm2->dmPublic.dmPelsHeight;
if (dm2->dmPublic.dmFields & DM_DISPLAYFLAGS )
dm1->dmPublic.dmDisplayFlags = dm2->dmPublic.dmDisplayFlags;
dm1->dmPublic.u2.dmDisplayFlags = dm2->dmPublic.u2.dmDisplayFlags;
if (dm2->dmPublic.dmFields & DM_DISPLAYFREQUENCY )
dm1->dmPublic.dmDisplayFrequency = dm2->dmPublic.dmDisplayFrequency;
if (dm2->dmPublic.dmFields & DM_POSITION )
dm1->dmPublic.u1.dmPosition = dm2->dmPublic.u1.dmPosition;
dm1->dmPublic.u1.s2.dmPosition = dm2->dmPublic.u1.s2.dmPosition;
if (dm2->dmPublic.dmFields & DM_LOGPIXELS )
dm1->dmPublic.dmLogPixels = dm2->dmPublic.dmLogPixels;
if (dm2->dmPublic.dmFields & DM_ICMMETHOD )

View File

@ -65,13 +65,13 @@ static const PSDRV_DEVMODEA DefaultDevmode =
/* dmOrientation */ DMORIENT_PORTRAIT,
/* dmPaperSize */ DMPAPER_LETTER,
/* dmPaperLength */ 2794,
/* dmPaperWidth */ 2159
}
},
/* dmPaperWidth */ 2159,
/* dmScale */ 100, /* ?? */
/* dmCopies */ 1,
/* dmDefaultSource */ DMBIN_AUTO,
/* dmPrintQuality */ 0,
/* dmPrintQuality */ 0
}
},
/* dmColor */ DMCOLOR_COLOR,
/* dmDuplex */ DMDUP_SIMPLEX,
/* dmYResolution */ 0,
@ -82,7 +82,9 @@ static const PSDRV_DEVMODEA DefaultDevmode =
/* dmBitsPerPel */ 0,
/* dmPelsWidth */ 0,
/* dmPelsHeight */ 0,
/* dmDisplayFlags */ 0,
{ /* u2 */
/* dmDisplayFlags */ 0
},
/* dmDisplayFrequency */ 0,
/* dmICMMethod */ 0,
/* dmICMIntent */ 0,
@ -423,10 +425,10 @@ INT PSDRV_GetDeviceCaps( PSDRV_PDEVICE *physDev, INT cap )
return DT_RASPRINTER;
case HORZSIZE:
return MulDiv(physDev->horzSize, 100,
physDev->Devmode->dmPublic.dmScale);
physDev->Devmode->dmPublic.u1.s1.dmScale);
case VERTSIZE:
return MulDiv(physDev->vertSize, 100,
physDev->Devmode->dmPublic.dmScale);
physDev->Devmode->dmPublic.u1.s1.dmScale);
case HORZRES:
case DESKTOPHORZRES:
return physDev->horzRes;
@ -475,10 +477,10 @@ INT PSDRV_GetDeviceCaps( PSDRV_PDEVICE *physDev, INT cap )
(double)physDev->pi->ppd->DefaultResolution );
case LOGPIXELSX:
return MulDiv(physDev->logPixelsX,
physDev->Devmode->dmPublic.dmScale, 100);
physDev->Devmode->dmPublic.u1.s1.dmScale, 100);
case LOGPIXELSY:
return MulDiv(physDev->logPixelsY,
physDev->Devmode->dmPublic.dmScale, 100);
physDev->Devmode->dmPublic.u1.s1.dmScale, 100);
case SIZEPALETTE:
return 0;
case NUMRESERVED:

View File

@ -348,14 +348,14 @@ INT PSDRV_WriteHeader( PSDRV_PDEVICE *physDev, LPCSTR title )
WriteSpool16( physDev->job.hJob, (LPSTR)psbeginsetup, strlen(psbeginsetup) );
if(physDev->Devmode->dmPublic.dmCopies > 1) {
if(physDev->Devmode->dmPublic.u1.s1.dmCopies > 1) {
char copies_buf[100];
sprintf(copies_buf, "mark {\n << /NumCopies %d >> setpagedevice\n} stopped cleartomark\n", physDev->Devmode->dmPublic.dmCopies);
sprintf(copies_buf, "mark {\n << /NumCopies %d >> setpagedevice\n} stopped cleartomark\n", physDev->Devmode->dmPublic.u1.s1.dmCopies);
WriteSpool16(physDev->job.hJob, copies_buf, strlen(copies_buf));
}
for(slot = physDev->pi->ppd->InputSlots; slot; slot = slot->next) {
if(slot->WinBin == physDev->Devmode->dmPublic.dmDefaultSource) {
if(slot->WinBin == physDev->Devmode->dmPublic.u1.s1.dmDefaultSource) {
if(slot->InvocationString) {
PSDRV_WriteFeature(physDev->job.hJob, "*InputSlot", slot->Name,
slot->InvocationString);

View File

@ -3687,10 +3687,10 @@ static void WINSPOOL_GetDefaultDevMode(
dm.u1.s1.dmPaperLength = 2970;
dm.u1.s1.dmPaperWidth = 2100;
dm.dmScale = 100;
dm.dmCopies = 1;
dm.dmDefaultSource = DMBIN_AUTO;
dm.dmPrintQuality = DMRES_MEDIUM;
dm.u1.s1.dmScale = 100;
dm.u1.s1.dmCopies = 1;
dm.u1.s1.dmDefaultSource = DMBIN_AUTO;
dm.u1.s1.dmPrintQuality = DMRES_MEDIUM;
/* dm.dmColor */
/* dm.dmDuplex */
dm.dmYResolution = 300; /* 300dpi */
@ -3701,7 +3701,7 @@ static void WINSPOOL_GetDefaultDevMode(
/* dm.dmBitsPerPel */
/* dm.dmPelsWidth */
/* dm.dmPelsHeight */
/* dm.dmDisplayFlags */
/* dm.u2.dmDisplayFlags */
/* dm.dmDisplayFrequency */
/* dm.dmICMMethod */
/* dm.dmICMIntent */

View File

@ -2814,13 +2814,17 @@ typedef struct
short dmPaperSize;
short dmPaperLength;
short dmPaperWidth;
short dmScale;
short dmCopies;
short dmDefaultSource;
short dmPrintQuality;
} DUMMYSTRUCTNAME1;
POINTL dmPosition;
struct {
POINTL dmPosition;
DWORD dmDisplayOrientation;
DWORD dmDisplayFixedOutput;
} DUMMYSTRUCTNAME2;
} DUMMYUNIONNAME1;
short dmScale;
short dmCopies;
short dmDefaultSource;
short dmPrintQuality;
short dmColor;
short dmDuplex;
short dmYResolution;
@ -2831,7 +2835,10 @@ typedef struct
DWORD dmBitsPerPel;
DWORD dmPelsWidth;
DWORD dmPelsHeight;
DWORD dmDisplayFlags;
union {
DWORD dmDisplayFlags;
DWORD dmNup;
} DUMMYUNIONNAME2;
DWORD dmDisplayFrequency;
DWORD dmICMMethod;
DWORD dmICMIntent;
@ -2857,13 +2864,17 @@ typedef struct
short dmPaperSize;
short dmPaperLength;
short dmPaperWidth;
short dmScale;
short dmCopies;
short dmDefaultSource;
short dmPrintQuality;
} DUMMYSTRUCTNAME1;
POINTL dmPosition;
struct {
POINTL dmPosition;
DWORD dmDisplayOrientation;
DWORD dmDisplayFixedOutput;
} DUMMYSTRUCTNAME2;
} DUMMYUNIONNAME1;
short dmScale;
short dmCopies;
short dmDefaultSource;
short dmPrintQuality;
short dmColor;
short dmDuplex;
short dmYResolution;
@ -2874,7 +2885,10 @@ typedef struct
DWORD dmBitsPerPel;
DWORD dmPelsWidth;
DWORD dmPelsHeight;
DWORD dmDisplayFlags;
union {
DWORD dmDisplayFlags;
DWORD dmNup;
} DUMMYUNIONNAME2;
DWORD dmDisplayFrequency;
DWORD dmICMMethod;
DWORD dmICMIntent;

View File

@ -498,12 +498,12 @@ static void mw_PageSetup(HWND hWnd)
OF("dmPaperSize", u1.s1.dmPaperSize, DM_PAPERSIZE);
OF("dmPaperLength", u1.s1.dmPaperLength, DM_PAPERLENGTH);
OF("dmPaperWidth", u1.s1.dmPaperWidth, DM_PAPERWIDTH);
OF("dmScale", dmScale, DM_SCALE);
OF("dmCopies", dmCopies, DM_COPIES);
OF("dmDefaultSource", dmDefaultSource,DM_DEFAULTSOURCE);
OF("dmPrintQuality", dmPrintQuality, DM_PRINTQUALITY);
OF("dmScale", u1.s1.dmScale, DM_SCALE);
OF("dmCopies", u1.s1.dmCopies, DM_COPIES);
OF("dmDefaultSource", u1.s1.dmDefaultSource,DM_DEFAULTSOURCE);
OF("dmPrintQuality", u1.s1.dmPrintQuality, DM_PRINTQUALITY);
if(dm->dmFields & DM_POSITION)
WINE_TRACE(" dmPosition(%d, %d)\n", dm->u1.dmPosition.x, dm->u1.dmPosition.y);
WINE_TRACE(" dmPosition(%d, %d)\n", dm->u1.s2.dmPosition.x, dm->u1.s2.dmPosition.y);
else
WINE_TRACE(" dmPosition NOT SET!\n");
OF("dmColor", dmColor, DM_COLOR);