Alexander Nicolaysen Sørnes : wordpad: Add quick print support.
Alexandre Julliard
julliard at wine.codeweavers.com
Wed Sep 12 07:50:58 CDT 2007
Module: wine
Branch: master
Commit: f586e1cce11658ed0f45541e34b90ca07655e00c
URL: http://source.winehq.org/git/wine.git/?a=commit;h=f586e1cce11658ed0f45541e34b90ca07655e00c
Author: Alexander Nicolaysen Sørnes <alex at thehandofagony.com>
Date: Thu Aug 23 15:00:44 2007 +0200
wordpad: Add quick print support.
---
programs/wordpad/resource.h | 5 +++--
programs/wordpad/wordpad.c | 41 ++++++++++++++++++++++++++++++++++++++++-
2 files changed, 43 insertions(+), 3 deletions(-)
diff --git a/programs/wordpad/resource.h b/programs/wordpad/resource.h
index 7915568..9264cd8 100644
--- a/programs/wordpad/resource.h
+++ b/programs/wordpad/resource.h
@@ -31,9 +31,10 @@
#define ID_PRINT 1010
#define ID_PREVIEW 1011
#define ID_PRINTSETUP 1012
+#define ID_PRINT_QUICK 1013
-#define ID_FIND 1013
-#define ID_FIND_NEXT 1014
+#define ID_FIND 1014
+#define ID_FIND_NEXT 1015
#define ID_ALIGN_LEFT 1100
#define ID_ALIGN_CENTER 1101
diff --git a/programs/wordpad/wordpad.c b/programs/wordpad/wordpad.c
index 8d302bf..456f33f 100644
--- a/programs/wordpad/wordpad.c
+++ b/programs/wordpad/wordpad.c
@@ -929,6 +929,7 @@ static int twips_to_centmm(int twips)
}
static HGLOBAL devMode;
+static HGLOBAL devNames;
static void print(LPPRINTDLGW pd)
{
@@ -1006,6 +1007,7 @@ static void dialog_printsetup(void)
ps.rtMargin.top = twips_to_centmm(margins.top);
ps.rtMargin.bottom = twips_to_centmm(margins.bottom);
ps.hDevMode = devMode;
+ ps.hDevNames = devNames;
if(PageSetupDlgW(&ps))
{
@@ -1014,9 +1016,40 @@ static void dialog_printsetup(void)
margins.top = centmm_to_twips(ps.rtMargin.top);
margins.bottom = centmm_to_twips(ps.rtMargin.bottom);
devMode = ps.hDevMode;
+ devNames = ps.hDevNames;
}
}
+static void print_quick(void)
+{
+ PRINTDLGW pd;
+ ZeroMemory(&pd, sizeof(pd));
+
+ if(devMode && devNames)
+ {
+ LPDEVNAMES dn = GlobalLock(devNames);
+ LPDEVMODEW dm = GlobalLock(devMode);
+ pd.hDC = CreateDCW((LPWSTR)dn + dn->wDriverOffset,
+ (LPWSTR)dn + dn->wDeviceOffset, 0, dm);
+ GlobalUnlock(dn);
+ GlobalUnlock(dm);
+ } else
+ {
+ ZeroMemory(&pd, sizeof(pd));
+ pd.lStructSize = sizeof(pd);
+ pd.Flags = PD_RETURNDC | PD_RETURNDEFAULT;
+ pd.hwndOwner = hMainWnd;
+ pd.hDevMode = (HGLOBAL)devMode;
+
+ PrintDlgW(&pd);
+
+ devMode = pd.hDevMode;
+ devNames = pd.hDevNames;
+ }
+
+ print(&pd);
+}
+
static void dialog_print(void)
{
PRINTDLGW pd;
@@ -1030,6 +1063,7 @@ static void dialog_print(void)
pd.nMinPage = 1;
pd.nMaxPage = 1;
pd.hDevMode = devMode;
+ pd.hDevNames = devNames;
SendMessageW(hEditorWnd, EM_GETSEL, (WPARAM)&from, (LPARAM)&to);
if(from == to)
@@ -1038,6 +1072,7 @@ static void dialog_print(void)
if(PrintDlgW(&pd))
{
devMode = pd.hDevMode;
+ devNames = pd.hDevNames;
print(&pd);
}
}
@@ -1643,7 +1678,7 @@ static LRESULT OnCreate( HWND hWnd, WPARAM wParam, LPARAM lParam)
AddButton(hToolBarWnd, nStdBitmaps+STD_FILEOPEN, ID_FILE_OPEN);
AddButton(hToolBarWnd, nStdBitmaps+STD_FILESAVE, ID_FILE_SAVE);
AddSeparator(hToolBarWnd);
- AddButton(hToolBarWnd, nStdBitmaps+STD_PRINT, ID_PRINT);
+ AddButton(hToolBarWnd, nStdBitmaps+STD_PRINT, ID_PRINT_QUICK);
AddButton(hToolBarWnd, nStdBitmaps+STD_PRINTPRE, ID_PREVIEW);
AddSeparator(hToolBarWnd);
AddButton(hToolBarWnd, nStdBitmaps+STD_FIND, ID_FIND);
@@ -1888,6 +1923,10 @@ static LRESULT OnCommand( HWND hWnd, WPARAM wParam, LPARAM lParam)
dialog_print();
break;
+ case ID_PRINT_QUICK:
+ print_quick();
+ break;
+
case ID_PREVIEW:
{
static const WCHAR wszNotImplemented[] = {'N','o','t',' ',
More information about the wine-cvs
mailing list