Alexander Nicolaysen Sørnes : wordpad: Add page setup dialog.
Alexandre Julliard
julliard at wine.codeweavers.com
Wed Sep 12 07:50:57 CDT 2007
Module: wine
Branch: master
Commit: d5bb616913d1cbfafbf82b5b8cc0433c067ab5fa
URL: http://source.winehq.org/git/wine.git/?a=commit;h=d5bb616913d1cbfafbf82b5b8cc0433c067ab5fa
Author: Alexander Nicolaysen Sørnes <alex at thehandofagony.com>
Date: Thu Aug 23 01:38:08 2007 +0200
wordpad: Add page setup dialog.
---
programs/wordpad/De.rc | 1 +
programs/wordpad/En.rc | 1 +
programs/wordpad/Fr.rc | 1 +
programs/wordpad/Hu.rc | 1 +
programs/wordpad/Ko.rc | 1 +
programs/wordpad/Nl.rc | 1 +
programs/wordpad/No.rc | 1 +
programs/wordpad/Pl.rc | 1 +
programs/wordpad/Ru.rc | 1 +
programs/wordpad/Tr.rc | 2 +
programs/wordpad/resource.h | 5 ++-
programs/wordpad/wordpad.c | 52 +++++++++++++++++++++++++++++++++++++++---
12 files changed, 62 insertions(+), 6 deletions(-)
diff --git a/programs/wordpad/De.rc b/programs/wordpad/De.rc
index 4941f49..39ff38f 100644
--- a/programs/wordpad/De.rc
+++ b/programs/wordpad/De.rc
@@ -28,6 +28,7 @@ BEGIN
MENUITEM "Speichern &unter...", ID_FILE_SAVEAS
MENUITEM SEPARATOR
MENUITEM "&Print . . .\tCtrl+P", ID_PRINT
+ MENUITEM "Pag&e setup . . .", ID_PRINTSETUP
MENUITEM SEPARATOR
MENUITEM "&Beenden", ID_FILE_EXIT
END
diff --git a/programs/wordpad/En.rc b/programs/wordpad/En.rc
index ac30045..835cb01 100644
--- a/programs/wordpad/En.rc
+++ b/programs/wordpad/En.rc
@@ -28,6 +28,7 @@ BEGIN
MENUITEM "Save &as . . .", ID_FILE_SAVEAS
MENUITEM SEPARATOR
MENUITEM "&Print . . .\tCtrl+P", ID_PRINT
+ MENUITEM "Pag&e setup . . .", ID_PRINTSETUP
MENUITEM SEPARATOR
MENUITEM "E&xit", ID_FILE_EXIT
END
diff --git a/programs/wordpad/Fr.rc b/programs/wordpad/Fr.rc
index b6ed430..1a0d6a2 100644
--- a/programs/wordpad/Fr.rc
+++ b/programs/wordpad/Fr.rc
@@ -28,6 +28,7 @@ BEGIN
MENUITEM "Enregistrer &sous...", ID_FILE_SAVEAS
MENUITEM SEPARATOR
MENUITEM "&Print . . .\tCtrl+P", ID_PRINT
+ MENUITEM "Page setup . . .", ID_PRINTSETUP
MENUITEM SEPARATOR
MENUITEM "&Quitter", ID_FILE_EXIT
END
diff --git a/programs/wordpad/Hu.rc b/programs/wordpad/Hu.rc
index 9bd0682..e2ac6e5 100644
--- a/programs/wordpad/Hu.rc
+++ b/programs/wordpad/Hu.rc
@@ -28,6 +28,7 @@ BEGIN
MENUITEM "Mentés má&sként...", ID_FILE_SAVEAS
MENUITEM SEPARATOR
MENUITEM "&Print . . .\tCtrl+P", ID_PRINT
+ MENUITEM "Page setup . . .", ID_PRINTSETUP
MENUITEM SEPARATOR
MENUITEM "&Kilépés", ID_FILE_EXIT
END
diff --git a/programs/wordpad/Ko.rc b/programs/wordpad/Ko.rc
index 65ad9e0..f51a8da 100644
--- a/programs/wordpad/Ko.rc
+++ b/programs/wordpad/Ko.rc
@@ -29,6 +29,7 @@ BEGIN
MENUITEM "´Ù¸¥ À̸§À¸·Î ÀúÀå(&A)...", ID_FILE_SAVEAS
MENUITEM SEPARATOR
MENUITEM "&Print . . .\tCtrl+P", ID_PRINT
+ MENUITEM "Pag&e setup . . .", ID_PRINTSETUP
MENUITEM SEPARATOR
MENUITEM "³ª°¡±â(&X)", ID_FILE_EXIT
END
diff --git a/programs/wordpad/Nl.rc b/programs/wordpad/Nl.rc
index b5a4b33..6416322 100644
--- a/programs/wordpad/Nl.rc
+++ b/programs/wordpad/Nl.rc
@@ -28,6 +28,7 @@ BEGIN
MENUITEM "Ops&laan als...", ID_FILE_SAVEAS
MENUITEM SEPARATOR
MENUITEM "&Print . . .\tCtrl+P", ID_PRINT
+ MENUITEM "Pag&e setup . . .", ID_PRINTSETUP
MENUITEM SEPARATOR
MENUITEM "&Afsluiten", ID_FILE_EXIT
END
diff --git a/programs/wordpad/No.rc b/programs/wordpad/No.rc
index e6a2457..5c980ce 100644
--- a/programs/wordpad/No.rc
+++ b/programs/wordpad/No.rc
@@ -28,6 +28,7 @@ BEGIN
MENUITEM "Lagre &som . . .", ID_FILE_SAVEAS
MENUITEM SEPARATOR
MENUITEM "&Skriv ut . . .\tCtrl+P", ID_PRINT
+ MENUITEM "&Utskriftformat . . .", ID_PRINTSETUP
MENUITEM SEPARATOR
MENUITEM "&Avslutt", ID_FILE_EXIT
END
diff --git a/programs/wordpad/Pl.rc b/programs/wordpad/Pl.rc
index 782a008..7812a79 100644
--- a/programs/wordpad/Pl.rc
+++ b/programs/wordpad/Pl.rc
@@ -29,6 +29,7 @@ BEGIN
MENUITEM "Z&apisz jako...", ID_FILE_SAVEAS
MENUITEM SEPARATOR
MENUITEM "&Print . . .\tCtrl+P", ID_PRINT
+ MENUITEM "Pag&e setup . . .", ID_PRINTSETUP
MENUITEM SEPARATOR
MENUITEM "Za&koñcz", ID_FILE_EXIT
END
diff --git a/programs/wordpad/Ru.rc b/programs/wordpad/Ru.rc
index 453d961..ae43e35 100644
--- a/programs/wordpad/Ru.rc
+++ b/programs/wordpad/Ru.rc
@@ -28,6 +28,7 @@ BEGIN
MENUITEM "Ñîõðàíèòü &êàê...", ID_FILE_SAVEAS
MENUITEM SEPARATOR
MENUITEM "&Print . . .\tCtrl+P", ID_PRINT
+ MENUITEM "Pag&e setup . . .", ID_PRINTSETUP
MENUITEM SEPARATOR
MENUITEM "Â&ûõîä", ID_FILE_EXIT
END
diff --git a/programs/wordpad/Tr.rc b/programs/wordpad/Tr.rc
index c3f06c9..2cd1edf 100644
--- a/programs/wordpad/Tr.rc
+++ b/programs/wordpad/Tr.rc
@@ -28,8 +28,10 @@ BEGIN
MENUITEM "&Aç...\tCtrl+O", ID_FILE_OPEN
MENUITEM "&Kaydet\tCtrl+S", ID_FILE_SAVE
MENUITEM "&Farklý Kaydet...", ID_FILE_SAVEAS
+ MENUITEM "Pag&e setup . . .", ID_PRINTSETUP
MENUITEM SEPARATOR
MENUITEM "&Print . . .\tCtrl+P", ID_PRINT
+ MENUITEM "Pag&e setup . . .", ID_PRINTSETUP
MENUITEM SEPARATOR
MENUITEM "&Çýk", ID_FILE_EXIT
END
diff --git a/programs/wordpad/resource.h b/programs/wordpad/resource.h
index ea7b52a..7915568 100644
--- a/programs/wordpad/resource.h
+++ b/programs/wordpad/resource.h
@@ -30,9 +30,10 @@
#define ID_PRINT 1010
#define ID_PREVIEW 1011
+#define ID_PRINTSETUP 1012
-#define ID_FIND 1012
-#define ID_FIND_NEXT 1013
+#define ID_FIND 1013
+#define ID_FIND_NEXT 1014
#define ID_ALIGN_LEFT 1100
#define ID_ALIGN_CENTER 1101
diff --git a/programs/wordpad/wordpad.c b/programs/wordpad/wordpad.c
index 5b84b25..bb744c2 100644
--- a/programs/wordpad/wordpad.c
+++ b/programs/wordpad/wordpad.c
@@ -915,6 +915,15 @@ static LONG devunits_to_twips(int units, int dpi)
return (LONG)ret;
}
+static int centmm_to_twips(int mm)
+{
+ return MulDiv(mm, 567, 1000);
+}
+
+static RECT margins;
+
+static HGLOBAL devMode;
+
static void print(LPPRINTDLGW pd)
{
FORMATRANGE fr;
@@ -929,10 +938,10 @@ static void print(LPPRINTDLGW pd)
width = devunits_to_twips(GetDeviceCaps(fr.hdc, PHYSICALWIDTH), dpiX);
height = devunits_to_twips(GetDeviceCaps(fr.hdc, PHYSICALHEIGHT), dpiY);
- fr.rc.left = devunits_to_twips(GetDeviceCaps(fr.hdc, PHYSICALOFFSETX), dpiX);
- fr.rc.right = width - (fr.rc.left * 2);
- fr.rc.top = devunits_to_twips(GetDeviceCaps(fr.hdc, PHYSICALOFFSETY), dpiY);
- fr.rc.bottom = height - (fr.rc.top * 2);
+ fr.rc.left = centmm_to_twips(margins.left);
+ fr.rc.right = width - centmm_to_twips(margins.right);
+ fr.rc.top = centmm_to_twips(margins.top);
+ fr.rc.bottom = height - centmm_to_twips(margins.bottom);
fr.rcPage.left = 0;
fr.rcPage.right = width;
fr.rcPage.top = 0;
@@ -978,6 +987,32 @@ static void print(LPPRINTDLGW pd)
SendMessageW(hEditorWnd, EM_FORMATRANGE, FALSE, 0);
}
+static void registry_read_margins(void)
+{
+ margins.top = 2500;
+ margins.bottom = 2500;
+ margins.left = 3100;
+ margins.right = 3100;
+}
+
+static void dialog_printsetup(void)
+{
+ PAGESETUPDLGW ps;
+
+ ZeroMemory(&ps, sizeof(ps));
+ ps.lStructSize = sizeof(ps);
+ ps.hwndOwner = hMainWnd;
+ ps.Flags = PSD_INHUNDREDTHSOFMILLIMETERS | PSD_MARGINS;
+ ps.rtMargin = margins;
+ ps.hDevMode = devMode;
+
+ if(PageSetupDlgW(&ps))
+ {
+ margins = ps.rtMargin;
+ devMode = ps.hDevMode;
+ }
+}
+
static void dialog_print(void)
{
PRINTDLGW pd;
@@ -990,13 +1025,17 @@ static void dialog_print(void)
pd.Flags = PD_RETURNDC | PD_USEDEVMODECOPIESANDCOLLATE;
pd.nMinPage = 1;
pd.nMaxPage = 1;
+ pd.hDevMode = devMode;
SendMessageW(hEditorWnd, EM_GETSEL, (WPARAM)&from, (LPARAM)&to);
if(from == to)
pd.Flags |= PD_NOSELECTION;
if(PrintDlgW(&pd))
+ {
+ devMode = pd.hDevMode;
print(&pd);
+ }
}
static void HandleCommandLine(LPWSTR cmdline)
@@ -1660,6 +1699,7 @@ static LRESULT OnCreate( HWND hWnd, WPARAM wParam, LPARAM lParam)
registry_read_filelist(hWnd);
registry_read_options();
+ registry_read_margins();
DragAcceptFiles(hWnd, TRUE);
return 0;
@@ -1834,6 +1874,10 @@ static LRESULT OnCommand( HWND hWnd, WPARAM wParam, LPARAM lParam)
}
break;
+ case ID_PRINTSETUP:
+ dialog_printsetup();
+ break;
+
case ID_FORMAT_BOLD:
case ID_FORMAT_ITALIC:
case ID_FORMAT_UNDERLINE:
More information about the wine-cvs
mailing list