Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
W
wine-winehq
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
wine
wine-winehq
Commits
00e5840e
Commit
00e5840e
authored
Jan 13, 2009
by
Huw Davies
Committed by
Alexandre Julliard
Jan 13, 2009
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
comdlg32: Update the original dialog structure rather than a temporary copy.
parent
8ddf6c0a
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
41 additions
and
44 deletions
+41
-44
printdlg.c
dlls/comdlg32/printdlg.c
+41
-44
No files found.
dlls/comdlg32/printdlg.c
View file @
00e5840e
...
...
@@ -2413,7 +2413,6 @@ typedef struct {
LPPAGESETUPDLGA
dlga
;
/* Handler to user defined struct */
PRINTDLGA
pdlg
;
HWND
hDlg
;
/* Page Setup dialog handler */
PAGESETUPDLGA
curdlg
;
/* Stores the current dialog state */
RECT
rtDrawRect
;
/* Drawing rect for page */
}
PageSetupDataA
;
...
...
@@ -2586,14 +2585,13 @@ PRINTDLG_PS_UpdateDlgStructA(HWND hDlg, PageSetupDataA *pda) {
DEVMODEA
*
dm
;
DWORD
paperword
;
memcpy
(
pda
->
dlga
,
&
pda
->
curdlg
,
sizeof
(
pda
->
curdlg
));
pda
->
dlga
->
hDevMode
=
pda
->
pdlg
.
hDevMode
;
pda
->
dlga
->
hDevNames
=
pda
->
pdlg
.
hDevNames
;
dm
=
GlobalLock
(
pda
->
pdlg
.
hDevMode
);
/* Save paper orientation into device context */
if
(
pda
->
curdlg
.
ptPaperSize
.
x
>
pda
->
curdlg
.
ptPaperSize
.
y
)
if
(
pda
->
dlga
->
ptPaperSize
.
x
>
pda
->
dlga
->
ptPaperSize
.
y
)
dm
->
u1
.
s1
.
dmOrientation
=
DMORIENT_LANDSCAPE
;
else
dm
->
u1
.
s1
.
dmOrientation
=
DMORIENT_PORTRAIT
;
...
...
@@ -2845,12 +2843,12 @@ PRINTDLG_PS_ChangePaperPrev(const PageSetupDataA *pda)
LONG
width
,
height
,
x
,
y
;
RECT
rtTmp
;
if
(
pda
->
curdlg
.
ptPaperSize
.
x
>
pda
->
curdlg
.
ptPaperSize
.
y
)
{
if
(
pda
->
dlga
->
ptPaperSize
.
x
>
pda
->
dlga
->
ptPaperSize
.
y
)
{
width
=
pda
->
rtDrawRect
.
right
-
pda
->
rtDrawRect
.
left
;
height
=
pda
->
curdlg
.
ptPaperSize
.
y
*
width
/
pda
->
curdlg
.
ptPaperSize
.
x
;
height
=
pda
->
dlga
->
ptPaperSize
.
y
*
width
/
pda
->
dlga
->
ptPaperSize
.
x
;
}
else
{
height
=
pda
->
rtDrawRect
.
bottom
-
pda
->
rtDrawRect
.
top
;
width
=
pda
->
curdlg
.
ptPaperSize
.
x
*
height
/
pda
->
curdlg
.
ptPaperSize
.
y
;
width
=
pda
->
dlga
->
ptPaperSize
.
x
*
height
/
pda
->
dlga
->
ptPaperSize
.
y
;
}
x
=
(
pda
->
rtDrawRect
.
right
+
pda
->
rtDrawRect
.
left
-
width
)
/
2
;
y
=
(
pda
->
rtDrawRect
.
bottom
+
pda
->
rtDrawRect
.
top
-
height
)
/
2
;
...
...
@@ -2920,15 +2918,15 @@ PRINTDLG_PS_WMCommandA(
return
TRUE
;
case
rad1
:
case
rad2
:
if
((
id
==
rad1
&&
pda
->
curdlg
.
ptPaperSize
.
x
>
pda
->
curdlg
.
ptPaperSize
.
y
)
||
(
id
==
rad2
&&
pda
->
curdlg
.
ptPaperSize
.
y
>
pda
->
curdlg
.
ptPaperSize
.
x
))
if
((
id
==
rad1
&&
pda
->
dlga
->
ptPaperSize
.
x
>
pda
->
dlga
->
ptPaperSize
.
y
)
||
(
id
==
rad2
&&
pda
->
dlga
->
ptPaperSize
.
y
>
pda
->
dlga
->
ptPaperSize
.
x
))
{
char
TmpText
[
25
];
char
TmpText2
[
25
];
DWORD
tmp
=
pda
->
curdlg
.
ptPaperSize
.
x
;
DWORD
tmp
=
pda
->
dlga
->
ptPaperSize
.
x
;
pda
->
curdlg
.
ptPaperSize
.
x
=
pda
->
curdlg
.
ptPaperSize
.
y
;
pda
->
curdlg
.
ptPaperSize
.
y
=
tmp
;
pda
->
dlga
->
ptPaperSize
.
x
=
pda
->
dlga
->
ptPaperSize
.
y
;
pda
->
dlga
->
ptPaperSize
.
y
=
tmp
;
GetDlgItemTextA
(
hDlg
,
edt4
,
TmpText
,
sizeof
(
TmpText
));
GetDlgItemTextA
(
hDlg
,
edt5
,
TmpText2
,
sizeof
(
TmpText2
));
...
...
@@ -2956,14 +2954,14 @@ PRINTDLG_PS_WMCommandA(
DWORD
paperword
=
SendDlgItemMessageA
(
hDlg
,
cmb2
,
CB_GETITEMDATA
,
SendDlgItemMessageA
(
hDlg
,
cmb2
,
CB_GETCURSEL
,
0
,
0
),
0
);
if
(
paperword
!=
CB_ERR
)
{
PRINTDLG_PaperSizeA
(
&
(
pda
->
pdlg
),
paperword
,
&
(
pda
->
curdlg
.
ptPaperSize
));
pda
->
curdlg
.
ptPaperSize
.
x
=
_c_10mm2size
(
pda
->
dlga
,
pda
->
curdlg
.
ptPaperSize
.
x
);
pda
->
curdlg
.
ptPaperSize
.
y
=
_c_10mm2size
(
pda
->
dlga
,
pda
->
curdlg
.
ptPaperSize
.
y
);
PRINTDLG_PaperSizeA
(
&
(
pda
->
pdlg
),
paperword
,
&
(
pda
->
dlga
->
ptPaperSize
));
pda
->
dlga
->
ptPaperSize
.
x
=
_c_10mm2size
(
pda
->
dlga
,
pda
->
dlga
->
ptPaperSize
.
x
);
pda
->
dlga
->
ptPaperSize
.
y
=
_c_10mm2size
(
pda
->
dlga
,
pda
->
dlga
->
ptPaperSize
.
y
);
if
(
IsDlgButtonChecked
(
hDlg
,
rad2
))
{
DWORD
tmp
=
pda
->
curdlg
.
ptPaperSize
.
x
;
pda
->
curdlg
.
ptPaperSize
.
x
=
pda
->
curdlg
.
ptPaperSize
.
y
;
pda
->
curdlg
.
ptPaperSize
.
y
=
tmp
;
DWORD
tmp
=
pda
->
dlga
->
ptPaperSize
.
x
;
pda
->
dlga
->
ptPaperSize
.
x
=
pda
->
dlga
->
ptPaperSize
.
y
;
pda
->
dlga
->
ptPaperSize
.
y
=
tmp
;
}
PRINTDLG_PS_ChangePaperPrev
(
pda
);
}
else
...
...
@@ -2996,13 +2994,13 @@ PRINTDLG_PS_WMCommandA(
DM_IN_BUFFER
|
DM_OUT_BUFFER
|
DM_IN_PROMPT
);
ClosePrinter
(
hPrinter
);
/* Changing paper */
PRINTDLG_PaperSizeA
(
&
(
pda
->
pdlg
),
dm
->
u1
.
s1
.
dmPaperSize
,
&
(
pda
->
curdlg
.
ptPaperSize
));
pda
->
curdlg
.
ptPaperSize
.
x
=
_c_10mm2size
(
pda
->
dlga
,
pda
->
curdlg
.
ptPaperSize
.
x
);
pda
->
curdlg
.
ptPaperSize
.
y
=
_c_10mm2size
(
pda
->
dlga
,
pda
->
curdlg
.
ptPaperSize
.
y
);
PRINTDLG_PaperSizeA
(
&
(
pda
->
pdlg
),
dm
->
u1
.
s1
.
dmPaperSize
,
&
(
pda
->
dlga
->
ptPaperSize
));
pda
->
dlga
->
ptPaperSize
.
x
=
_c_10mm2size
(
pda
->
dlga
,
pda
->
dlga
->
ptPaperSize
.
x
);
pda
->
dlga
->
ptPaperSize
.
y
=
_c_10mm2size
(
pda
->
dlga
,
pda
->
dlga
->
ptPaperSize
.
y
);
if
(
dm
->
u1
.
s1
.
dmOrientation
==
DMORIENT_LANDSCAPE
){
DWORD
tmp
=
pda
->
curdlg
.
ptPaperSize
.
x
;
pda
->
curdlg
.
ptPaperSize
.
x
=
pda
->
curdlg
.
ptPaperSize
.
y
;
pda
->
curdlg
.
ptPaperSize
.
y
=
tmp
;
DWORD
tmp
=
pda
->
dlga
->
ptPaperSize
.
x
;
pda
->
dlga
->
ptPaperSize
.
x
=
pda
->
dlga
->
ptPaperSize
.
y
;
pda
->
dlga
->
ptPaperSize
.
y
=
tmp
;
CheckRadioButton
(
hDlg
,
rad1
,
rad2
,
rad2
);
}
else
...
...
@@ -3024,16 +3022,16 @@ PRINTDLG_PS_WMCommandA(
break
;
}
case
edt4
:
GETVAL
(
id
,
pda
->
curdlg
.
rtMargin
.
left
);
GETVAL
(
id
,
pda
->
dlga
->
rtMargin
.
left
);
break
;
case
edt5
:
GETVAL
(
id
,
pda
->
curdlg
.
rtMargin
.
top
);
GETVAL
(
id
,
pda
->
dlga
->
rtMargin
.
top
);
break
;
case
edt6
:
GETVAL
(
id
,
pda
->
curdlg
.
rtMargin
.
right
);
GETVAL
(
id
,
pda
->
dlga
->
rtMargin
.
right
);
break
;
case
edt7
:
GETVAL
(
id
,
pda
->
curdlg
.
rtMargin
.
bottom
);
GETVAL
(
id
,
pda
->
dlga
->
rtMargin
.
bottom
);
break
;
}
InvalidateRect
(
GetDlgItem
(
hDlg
,
rct1
),
NULL
,
TRUE
);
...
...
@@ -3228,14 +3226,14 @@ PRINTDLG_PagePaintProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
hdc
=
BeginPaint
(
hWnd
,
&
ps
);
GetClientRect
(
hWnd
,
&
rcClient
);
scalx
=
rcClient
.
right
/
(
double
)
pda
->
curdlg
.
ptPaperSize
.
x
;
scaly
=
rcClient
.
bottom
/
(
double
)
pda
->
curdlg
.
ptPaperSize
.
y
;
scalx
=
rcClient
.
right
/
(
double
)
pda
->
dlga
->
ptPaperSize
.
x
;
scaly
=
rcClient
.
bottom
/
(
double
)
pda
->
dlga
->
ptPaperSize
.
y
;
rcMargin
=
rcClient
;
rcMargin
.
left
+=
pda
->
curdlg
.
rtMargin
.
left
*
scalx
;
rcMargin
.
top
+=
pda
->
curdlg
.
rtMargin
.
top
*
scalx
;
rcMargin
.
right
-=
pda
->
curdlg
.
rtMargin
.
right
*
scaly
;
rcMargin
.
bottom
-=
pda
->
curdlg
.
rtMargin
.
bottom
*
scaly
;
rcMargin
.
left
+=
pda
->
dlga
->
rtMargin
.
left
*
scalx
;
rcMargin
.
top
+=
pda
->
dlga
->
rtMargin
.
top
*
scalx
;
rcMargin
.
right
-=
pda
->
dlga
->
rtMargin
.
right
*
scaly
;
rcMargin
.
bottom
-=
pda
->
dlga
->
rtMargin
.
bottom
*
scaly
;
/* if the space is too small then we make sure to not draw anything */
rcMargin
.
left
=
min
(
rcMargin
.
left
,
rcMargin
.
right
);
...
...
@@ -3309,7 +3307,6 @@ PRINTDLG_PageDlgProcA(HWND hDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
if
(
uMsg
==
WM_INITDIALOG
)
{
/*Init dialog*/
pda
=
(
PageSetupDataA
*
)
lParam
;
pda
->
hDlg
=
hDlg
;
/* saving handle to main window to PageSetupDataA structure */
pda
->
curdlg
=
*
pda
->
dlga
;
hDrawWnd
=
GetDlgItem
(
hDlg
,
rct1
);
TRACE
(
"set property to %p
\n
"
,
pda
);
...
...
@@ -3376,10 +3373,10 @@ PRINTDLG_PageDlgProcA(HWND hDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
SetDlgItemTextA
(
hDlg
,
edt5
,
str
);
SetDlgItemTextA
(
hDlg
,
edt6
,
str
);
SetDlgItemTextA
(
hDlg
,
edt7
,
str
);
pda
->
curdlg
.
rtMargin
.
left
=
size
;
pda
->
curdlg
.
rtMargin
.
top
=
size
;
pda
->
curdlg
.
rtMargin
.
right
=
size
;
pda
->
curdlg
.
rtMargin
.
bottom
=
size
;
pda
->
dlga
->
rtMargin
.
left
=
size
;
pda
->
dlga
->
rtMargin
.
top
=
size
;
pda
->
dlga
->
rtMargin
.
right
=
size
;
pda
->
dlga
->
rtMargin
.
bottom
=
size
;
}
/* if paper disabled */
if
(
pda
->
dlga
->
Flags
&
PSD_DISABLEPAPER
)
{
...
...
@@ -3391,14 +3388,14 @@ PRINTDLG_PageDlgProcA(HWND hDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
dm
=
GlobalLock
(
pda
->
pdlg
.
hDevMode
);
if
(
dm
){
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
);
PRINTDLG_PaperSizeA
(
&
(
pda
->
pdlg
),
dm
->
u1
.
s1
.
dmPaperSize
,
&
pda
->
dlga
->
ptPaperSize
);
GlobalUnlock
(
pda
->
pdlg
.
hDevMode
);
pda
->
curdlg
.
ptPaperSize
.
x
=
_c_10mm2size
(
pda
->
dlga
,
pda
->
curdlg
.
ptPaperSize
.
x
);
pda
->
curdlg
.
ptPaperSize
.
y
=
_c_10mm2size
(
pda
->
dlga
,
pda
->
curdlg
.
ptPaperSize
.
y
);
pda
->
dlga
->
ptPaperSize
.
x
=
_c_10mm2size
(
pda
->
dlga
,
pda
->
dlga
->
ptPaperSize
.
x
);
pda
->
dlga
->
ptPaperSize
.
y
=
_c_10mm2size
(
pda
->
dlga
,
pda
->
dlga
->
ptPaperSize
.
y
);
if
(
IsDlgButtonChecked
(
hDlg
,
rad2
)
==
BST_CHECKED
)
{
/* Landscape orientation */
DWORD
tmp
=
pda
->
curdlg
.
ptPaperSize
.
y
;
pda
->
curdlg
.
ptPaperSize
.
y
=
pda
->
curdlg
.
ptPaperSize
.
x
;
pda
->
curdlg
.
ptPaperSize
.
x
=
tmp
;
DWORD
tmp
=
pda
->
dlga
->
ptPaperSize
.
y
;
pda
->
dlga
->
ptPaperSize
.
y
=
pda
->
dlga
->
ptPaperSize
.
x
;
pda
->
dlga
->
ptPaperSize
.
x
=
tmp
;
}
}
else
WARN
(
"GlobalLock(pda->pdlg.hDevMode) fail? hDevMode=%p
\n
"
,
pda
->
pdlg
.
hDevMode
);
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment