Huw Davies : comdlg32: Simplify the preview change function a little.

Alexandre Julliard julliard at winehq.org
Thu Jan 22 08:41:36 CST 2009


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

Author: Huw Davies <huw at codeweavers.com>
Date:   Wed Jan 21 18:18:26 2009 +0000

comdlg32: Simplify the preview change function a little.

---

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

diff --git a/dlls/comdlg32/printdlg.c b/dlls/comdlg32/printdlg.c
index 5f59f6c..d3add8d 100644
--- a/dlls/comdlg32/printdlg.c
+++ b/dlls/comdlg32/printdlg.c
@@ -3097,46 +3097,40 @@ PRINTDLG_PS_ChangePrinterW(HWND hDlg, PageSetupDataW *pdw) {
 }
 
 /******************************************************************************************
- * PRINTDLG_PS_ChangePaperPrev 
- * 
- * Changes paper preview size / position
+ * pagesetup_change_preview
  *
- * PARAMS:
- * 	pda		[i] Pointer for current PageSetupDataA structure
+ * Changes paper preview size / position
  *
- * RETURNS:
- *  always - TRUE
  */
-static BOOL 
-PRINTDLG_PS_ChangePaperPrev(const PageSetupDataA *pda)
+static void pagesetup_change_preview(const PageSetupDataA *data)
 {
     LONG width, height, x, y;
-    RECT rtTmp;
-    
-    if(pda->dlga->ptPaperSize.x > pda->dlga->ptPaperSize.y) {
-	width  = pda->rtDrawRect.right - pda->rtDrawRect.left;
-        height = pda->dlga->ptPaperSize.y * width / pda->dlga->ptPaperSize.x;
-    } else {
-	height = pda->rtDrawRect.bottom - pda->rtDrawRect.top;
-        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;
-    TRACE("rtDrawRect(%d, %d, %d, %d) x=%d, y=%d, w=%d, h=%d\n",
-	pda->rtDrawRect.left, pda->rtDrawRect.top, pda->rtDrawRect.right, pda->rtDrawRect.bottom,
-	x, y, width, height);
-
-#define SHADOW 4
-    MoveWindow(GetDlgItem(pda->hDlg, rct2), x+width, y+SHADOW, SHADOW, height, FALSE);
-    MoveWindow(GetDlgItem(pda->hDlg, rct3), x+SHADOW, y+height, width, SHADOW, FALSE);
-    MoveWindow(GetDlgItem(pda->hDlg, rct1), x, y, width, height, FALSE);
-    rtTmp = pda->rtDrawRect;
-    rtTmp.right  += SHADOW;
-    rtTmp.bottom += SHADOW;
-#undef SHADOW 
-
-    InvalidateRect(pda->hDlg, &rtTmp, TRUE);
-    return TRUE;
+    RECT tmp;
+    const int shadow = 4;
+
+    if(pagesetup_get_orientation(data) == DMORIENT_LANDSCAPE)
+    {
+        width  = data->rtDrawRect.right - data->rtDrawRect.left;
+        height = data->dlga->ptPaperSize.y * width / data->dlga->ptPaperSize.x;
+    }
+    else
+    {
+        height = data->rtDrawRect.bottom - data->rtDrawRect.top;
+        width  = data->dlga->ptPaperSize.x * height / data->dlga->ptPaperSize.y;
+    }
+    x = (data->rtDrawRect.right + data->rtDrawRect.left - width) / 2;
+    y = (data->rtDrawRect.bottom + data->rtDrawRect.top - height) / 2;
+    TRACE("draw rect %s x=%d, y=%d, w=%d, h=%d\n",
+          wine_dbgstr_rect(&data->rtDrawRect), x, y, width, height);
+
+    MoveWindow(GetDlgItem(data->hDlg, rct2), x + width, y + shadow, shadow, height, FALSE);
+    MoveWindow(GetDlgItem(data->hDlg, rct3), x + shadow, y + height, width, shadow, FALSE);
+    MoveWindow(GetDlgItem(data->hDlg, rct1), x, y, width, height, FALSE);
+
+    tmp = data->rtDrawRect;
+    tmp.right  += shadow;
+    tmp.bottom += shadow;
+    InvalidateRect(data->hDlg, &tmp, TRUE);
 }
 
 static inline LONG *element_from_margin_id(RECT *rc, WORD id)
@@ -3261,7 +3255,7 @@ static void pagesetup_printer_properties(HWND hDlg, PageSetupDataA *data)
     pagesetup_update_orientation_buttons(hDlg, data);
 
     /* Changing paper preview */
-    PRINTDLG_PS_ChangePaperPrev(data);
+    pagesetup_change_preview(data);
 
     /* Selecting paper in combo */
     count = SendDlgItemMessageW(hDlg, cmb2, CB_GETCOUNT, 0, 0);
@@ -3320,7 +3314,7 @@ PRINTDLG_PS_WMCommandA(
             pagesetup_update_papersize(pda);
             rotate_rect(&pda->dlga->rtMargin, (id == rad2));
             update_margin_edits(hDlg, pda, 0);
-	    PRINTDLG_PS_ChangePaperPrev(pda);
+            pagesetup_change_preview(pda);
 	}
 	break;
     case cmb1: /* Printer combo */
@@ -3341,7 +3335,7 @@ PRINTDLG_PS_WMCommandA(
             {
                 pagesetup_set_papersize(pda, paperword);
                 pagesetup_update_papersize(pda);
-	        PRINTDLG_PS_ChangePaperPrev(pda);
+                pagesetup_change_preview(pda);
 	    } else
                 FIXME("could not get dialog text for papersize cmbbox?\n");
         }
@@ -3731,7 +3725,7 @@ PRINTDLG_PageDlgProcA(HWND hDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
         pagesetup_set_defaultsource(pda, DMBIN_FORMSOURCE); /* FIXME: This is the auto select bin. Is this correct? */
 
 	/* Drawing paper prev */
-	PRINTDLG_PS_ChangePaperPrev(pda);
+        pagesetup_change_preview(pda);
 	return TRUE;
     } else {
         pda = GetPropW(hDlg, pagesetupdlg_prop);




More information about the wine-cvs mailing list