Huw Davies : comdlg32: Add a helper for setting the defaultsource.

Alexandre Julliard julliard at winehq.org
Tue Jan 20 08:27:48 CST 2009


Module: wine
Branch: master
Commit: b6ed969ee5c9b8516c84eb4d115da93e0af4a7fb
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=b6ed969ee5c9b8516c84eb4d115da93e0af4a7fb

Author: Huw Davies <huw at codeweavers.com>
Date:   Mon Jan 19 16:57:24 2009 +0000

comdlg32: Add a helper for setting the defaultsource.

---

 dlls/comdlg32/printdlg.c |   33 ++++++++++++++++++---------------
 1 files changed, 18 insertions(+), 15 deletions(-)

diff --git a/dlls/comdlg32/printdlg.c b/dlls/comdlg32/printdlg.c
index 0634381..3e5eac3 100644
--- a/dlls/comdlg32/printdlg.c
+++ b/dlls/comdlg32/printdlg.c
@@ -2590,6 +2590,13 @@ static WORD pagesetup_get_papersize(PageSetupDataA *pda)
     return paper;
 }
 
+static void pagesetup_set_defaultsource(PageSetupDataA *pda, WORD source)
+{
+    DEVMODEA *dm = GlobalLock(pda->dlga->hDevMode);
+    dm->u1.s1.dmDefaultSource = source;
+    GlobalUnlock(pda->dlga->hDevMode);
+}
+
 static BOOL pagesetup_update_papersize(PageSetupDataA *pda)
 {
     DEVNAMES *dn;
@@ -3070,14 +3077,14 @@ PRINTDLG_PS_WMCommandA(
 	        FIXME("could not get dialog text for papersize cmbbox?\n");
 	}    
 	break;
-    case cmb3:
-	if(msg == CBN_SELCHANGE){
-	    DEVMODEA *dm = GlobalLock(pda->dlga->hDevMode);
-	    dm->u1.s1.dmDefaultSource = SendDlgItemMessageA(hDlg, cmb3,CB_GETITEMDATA,
-                SendDlgItemMessageA(hDlg, cmb3, CB_GETCURSEL, 0, 0), 0);
-	    GlobalUnlock(pda->dlga->hDevMode);
-	}
-	break;
+    case cmb3: /* Paper Source */
+        if(msg == CBN_SELCHANGE)
+        {
+            WORD source = SendDlgItemMessageA(hDlg, cmb3, CB_GETITEMDATA,
+                                              SendDlgItemMessageA(hDlg, cmb3, CB_GETCURSEL, 0, 0), 0);
+            pagesetup_set_defaultsource(pda, source);
+        }
+        break;
     case psh2:                       /* Printer Properties button */
        {
 	    HANDLE hPrinter;
@@ -3419,7 +3426,6 @@ static void subclass_margin_edits(HWND hDlg)
 static INT_PTR CALLBACK
 PRINTDLG_PageDlgProcA(HWND hDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
 {
-    DEVMODEA		*dm;
     PageSetupDataA	*pda;
     INT_PTR		res = FALSE;
     HWND 		hDrawWnd;
@@ -3489,15 +3495,12 @@ PRINTDLG_PageDlgProcA(HWND hDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
 	    EnableWindow(GetDlgItem(hDlg,cmb2),FALSE);
 	    EnableWindow(GetDlgItem(hDlg,cmb3),FALSE);
 	}
+
 	/* filling combos: printer, paper, source. selecting current printer (from DEVMODEA) */
         PRINTDLG_PS_ChangePrinterA(hDlg, pda);
         pagesetup_update_papersize(pda);
-	dm = GlobalLock(pda->dlga->hDevMode);
-	if(dm){
-	    dm->u1.s1.dmDefaultSource = 15; /*FIXME: Automatic select. Does it always 15 at start? */
-            GlobalUnlock(pda->dlga->hDevMode);
-	} else 
-	    WARN("GlobalLock(pda->dlga->hDevMode) fail? hDevMode=%p\n", pda->dlga->hDevMode);
+        pagesetup_set_defaultsource(pda, DMBIN_FORMSOURCE); /* FIXME: This is the auto select bin. Is this correct? */
+
 	/* Drawing paper prev */
 	PRINTDLG_PS_ChangePaperPrev(pda);
 	return TRUE;




More information about the wine-cvs mailing list