Module: wine Branch: master Commit: d5bb616913d1cbfafbf82b5b8cc0433c067ab5fa URL: http://source.winehq.org/git/wine.git/?a=commit;h=d5bb616913d1cbfafbf82b5b8c...
Author: Alexander Nicolaysen Sørnes alex@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: