]> git.saurik.com Git - wxWidgets.git/blobdiff - src/common/prntbase.cpp
Ensure that size in the major direction of box sizer doesn't exceed the total.
[wxWidgets.git] / src / common / prntbase.cpp
index fcab0216039d7024bdb0e04db642aa12cb68ce1d..05d4d729a1b6d171ff9f736648dbae7cedf0cfd2 100644 (file)
@@ -587,7 +587,7 @@ void wxPrintout::FitThisSizeToPaper(const wxSize& imageSize)
     float scaleX = ((float(paperRect.width) * w) / (float(pw) * imageSize.x));
     float scaleY = ((float(paperRect.height) * h) / (float(ph) * imageSize.y));
     float actualScale = wxMin(scaleX, scaleY);
-    m_printoutDC->SetUserScale(actualScale, actualScale); 
+    m_printoutDC->SetUserScale(actualScale, actualScale);
     m_printoutDC->SetDeviceOrigin(0, 0);
     wxRect logicalPaperRect = GetLogicalPaperRect();
     SetLogicalOrigin(logicalPaperRect.x, logicalPaperRect.y);
@@ -604,7 +604,7 @@ void wxPrintout::FitThisSizeToPage(const wxSize& imageSize)
     float scaleX = float(w) / imageSize.x;
     float scaleY = float(h) / imageSize.y;
     float actualScale = wxMin(scaleX, scaleY);
-    m_printoutDC->SetUserScale(actualScale, actualScale); 
+    m_printoutDC->SetUserScale(actualScale, actualScale);
     m_printoutDC->SetDeviceOrigin(0, 0);
 }
 
@@ -632,7 +632,7 @@ void wxPrintout::FitThisSizeToPageMargins(const wxSize& imageSize, const wxPageS
     float scaleX = (float(pageMarginsRect.width) * w) / (float(pw) * imageSize.x);
     float scaleY = (float(pageMarginsRect.height) * h) / (float(ph) * imageSize.y);
     float actualScale = wxMin(scaleX, scaleY);
-    m_printoutDC->SetUserScale(actualScale, actualScale); 
+    m_printoutDC->SetUserScale(actualScale, actualScale);
     m_printoutDC->SetDeviceOrigin(0, 0);
     wxRect logicalPageMarginsRect = GetLogicalPageMarginsRect(pageSetupData);
     SetLogicalOrigin(logicalPageMarginsRect.x, logicalPageMarginsRect.y);
@@ -655,16 +655,16 @@ void wxPrintout::MapScreenSizeToPage()
     // Set the DC scale and origin so that an image on the screen is the same
     // size on the paper and the origin is at the top left of the printable area.
     if (!m_printoutDC) return;
-    int ppiScreenX, ppiScreenY; 
-    GetPPIScreen(&ppiScreenX, &ppiScreenY); 
-    int ppiPrinterX, ppiPrinterY; 
-    GetPPIPrinter(&ppiPrinterX, &ppiPrinterY); 
-    int w, h; 
-    m_printoutDC->GetSize(&w, &h); 
-    int pageSizePixelsX, pageSizePixelsY; 
-    GetPageSizePixels(&pageSizePixelsX, &pageSizePixelsY); 
-    float userScaleX = (float(ppiPrinterX) * w) / (float(ppiScreenX) * pageSizePixelsX); 
-    float userScaleY = (float(ppiPrinterY) * h) / (float(ppiScreenY) * pageSizePixelsY); 
+    int ppiScreenX, ppiScreenY;
+    GetPPIScreen(&ppiScreenX, &ppiScreenY);
+    int ppiPrinterX, ppiPrinterY;
+    GetPPIPrinter(&ppiPrinterX, &ppiPrinterY);
+    int w, h;
+    m_printoutDC->GetSize(&w, &h);
+    int pageSizePixelsX, pageSizePixelsY;
+    GetPageSizePixels(&pageSizePixelsX, &pageSizePixelsY);
+    float userScaleX = (float(ppiPrinterX) * w) / (float(ppiScreenX) * pageSizePixelsX);
+    float userScaleY = (float(ppiPrinterY) * h) / (float(ppiScreenY) * pageSizePixelsY);
     m_printoutDC->SetUserScale(userScaleX, userScaleY);
     m_printoutDC->SetDeviceOrigin(0, 0);
 }
@@ -685,12 +685,12 @@ void wxPrintout::MapScreenSizeToDevice()
     // Set the DC scale so that a screen pixel is the same size as a device
     // pixel and the origin is at the top left of the printable area.
     if (!m_printoutDC) return;
-    int w, h; 
-    m_printoutDC->GetSize(&w, &h); 
-    int pageSizePixelsX, pageSizePixelsY; 
-    GetPageSizePixels(&pageSizePixelsX, &pageSizePixelsY); 
-    float userScaleX = float(w) / pageSizePixelsX; 
-    float userScaleY = float(h) / pageSizePixelsY; 
+    int w, h;
+    m_printoutDC->GetSize(&w, &h);
+    int pageSizePixelsX, pageSizePixelsY;
+    GetPageSizePixels(&pageSizePixelsX, &pageSizePixelsY);
+    float userScaleX = float(w) / pageSizePixelsX;
+    float userScaleY = float(h) / pageSizePixelsY;
     m_printoutDC->SetUserScale(userScaleX, userScaleY);
     m_printoutDC->SetDeviceOrigin(0, 0);
 }
@@ -706,17 +706,17 @@ wxRect wxPrintout::GetLogicalPaperRect() const
     m_printoutDC->GetSize(&w, &h);
     if (w == pw && h == ph) {
         // this DC matches the printed page, so no scaling
-        return wxRect(m_printoutDC->DeviceToLogicalX(paperRect.x), 
-            m_printoutDC->DeviceToLogicalY(paperRect.y), 
-            m_printoutDC->DeviceToLogicalXRel(paperRect.width), 
+        return wxRect(m_printoutDC->DeviceToLogicalX(paperRect.x),
+            m_printoutDC->DeviceToLogicalY(paperRect.y),
+            m_printoutDC->DeviceToLogicalXRel(paperRect.width),
             m_printoutDC->DeviceToLogicalYRel(paperRect.height));
     }
     // This DC doesn't match the printed page, so we have to scale.
     float scaleX = float(w) / pw;
     float scaleY = float(h) / ph;
-    return wxRect(m_printoutDC->DeviceToLogicalX(wxRound(paperRect.x * scaleX)), 
-        m_printoutDC->DeviceToLogicalY(wxRound(paperRect.y * scaleY)), 
-        m_printoutDC->DeviceToLogicalXRel(wxRound(paperRect.width * scaleX)), 
+    return wxRect(m_printoutDC->DeviceToLogicalX(wxRound(paperRect.x * scaleX)),
+        m_printoutDC->DeviceToLogicalY(wxRound(paperRect.y * scaleY)),
+        m_printoutDC->DeviceToLogicalXRel(wxRound(paperRect.width * scaleX)),
         m_printoutDC->DeviceToLogicalYRel(wxRound(paperRect.height * scaleY)));
 }
 
@@ -726,9 +726,9 @@ wxRect wxPrintout::GetLogicalPageRect() const
     // area.
     int w, h;
     m_printoutDC->GetSize(&w, &h);
-    return wxRect(m_printoutDC->DeviceToLogicalX(0), 
-        m_printoutDC->DeviceToLogicalY(0), 
-        m_printoutDC->DeviceToLogicalXRel(w), 
+    return wxRect(m_printoutDC->DeviceToLogicalX(0),
+        m_printoutDC->DeviceToLogicalY(0),
+        m_printoutDC->DeviceToLogicalXRel(w),
         m_printoutDC->DeviceToLogicalYRel(h));
 }
 
@@ -737,7 +737,7 @@ wxRect wxPrintout::GetLogicalPageMarginsRect(const wxPageSetupDialogData& pageSe
     // Return the rectangle in logical units that corresponds to the region
     // within the page margins as specified by the given wxPageSetupDialogData
     // object.
-    
+
     // We get the paper size in device units and the margins in mm,
     // so we need to calculate the conversion with this trick
     wxCoord pw, ph;
@@ -747,38 +747,38 @@ wxRect wxPrintout::GetLogicalPageMarginsRect(const wxPageSetupDialogData& pageSe
     float mmToDeviceX = float(pw) / mw;
     float mmToDeviceY = float(ph) / mh;
 
-    // paper size in device units    
+    // paper size in device units
     wxRect paperRect = GetPaperRectPixels();
-    
+
     // margins in mm
     wxPoint topLeft = pageSetupData.GetMarginTopLeft();
     wxPoint bottomRight = pageSetupData.GetMarginBottomRight();
-    
+
     // calculate margins in device units
     wxRect pageMarginsRect(
         paperRect.x      + wxRound(mmToDeviceX * topLeft.x),
         paperRect.y      + wxRound(mmToDeviceY * topLeft.y),
         paperRect.width  - wxRound(mmToDeviceX * (topLeft.x + bottomRight.x)),
         paperRect.height - wxRound(mmToDeviceY * (topLeft.y + bottomRight.y)));
-        
+
     wxCoord w, h;
     m_printoutDC->GetSize(&w, &h);
-    if (w == pw && h == ph) 
+    if (w == pw && h == ph)
     {
         // this DC matches the printed page, so no scaling
         return wxRect(
-            m_printoutDC->DeviceToLogicalX(pageMarginsRect.x), 
-            m_printoutDC->DeviceToLogicalY(pageMarginsRect.y), 
-            m_printoutDC->DeviceToLogicalXRel(pageMarginsRect.width), 
+            m_printoutDC->DeviceToLogicalX(pageMarginsRect.x),
+            m_printoutDC->DeviceToLogicalY(pageMarginsRect.y),
+            m_printoutDC->DeviceToLogicalXRel(pageMarginsRect.width),
             m_printoutDC->DeviceToLogicalYRel(pageMarginsRect.height));
     }
-    
+
     // This DC doesn't match the printed page, so we have to scale.
     float scaleX = float(w) / pw;
     float scaleY = float(h) / ph;
-    return wxRect(m_printoutDC->DeviceToLogicalX(wxRound(pageMarginsRect.x * scaleX)), 
-        m_printoutDC->DeviceToLogicalY(wxRound(pageMarginsRect.y * scaleY)), 
-        m_printoutDC->DeviceToLogicalXRel(wxRound(pageMarginsRect.width * scaleX)), 
+    return wxRect(m_printoutDC->DeviceToLogicalX(wxRound(pageMarginsRect.x * scaleX)),
+        m_printoutDC->DeviceToLogicalY(wxRound(pageMarginsRect.y * scaleY)),
+        m_printoutDC->DeviceToLogicalXRel(wxRound(pageMarginsRect.width * scaleX)),
         m_printoutDC->DeviceToLogicalYRel(wxRound(pageMarginsRect.height * scaleY)));
 }
 
@@ -786,19 +786,19 @@ void wxPrintout::SetLogicalOrigin(wxCoord x, wxCoord y)
 {
     // Set the device origin by specifying a point in logical coordinates.
     m_printoutDC->SetDeviceOrigin(
-        m_printoutDC->LogicalToDeviceX(x), 
+        m_printoutDC->LogicalToDeviceX(x),
         m_printoutDC->LogicalToDeviceY(y) );
 }
-    
+
 void wxPrintout::OffsetLogicalOrigin(wxCoord xoff, wxCoord yoff)
 {
     // Offset the device origin by a specified distance in device coordinates.
     wxPoint dev_org = m_printoutDC->GetDeviceOrigin();
     m_printoutDC->SetDeviceOrigin(
-        dev_org.x + m_printoutDC->LogicalToDeviceXRel(xoff), 
+        dev_org.x + m_printoutDC->LogicalToDeviceXRel(xoff),
         dev_org.y + m_printoutDC->LogicalToDeviceYRel(yoff) );
 }
-    
+
 
 //----------------------------------------------------------------------------
 // wxPreviewCanvas
@@ -1271,7 +1271,7 @@ wxFrame(parent, wxID_ANY, title, pos, size, style, name)
 #ifdef __WXMSW__
     wxFrame* topFrame = wxDynamicCast(wxTheApp->GetTopWindow(), wxFrame);
     if (topFrame)
-        SetIcon(topFrame->GetIcon());
+        SetIcons(topFrame->GetIcons());
 #endif
 }
 
@@ -1512,7 +1512,7 @@ bool wxPrintPreviewBase::PaintPage(wxPreviewCanvas *canvas, wxDC& dc)
     wxMemoryDC temp_dc;
     temp_dc.SelectObject(*m_previewBitmap);
 
-    dc.Blit(pageRect.x, pageRect.y, 
+    dc.Blit(pageRect.x, pageRect.y,
         m_previewBitmap->GetWidth(), m_previewBitmap->GetHeight(), &temp_dc, 0, 0);
 
     temp_dc.SelectObject(wxNullBitmap);
@@ -1643,7 +1643,7 @@ bool wxPrintPreviewBase::DrawBlankPage(wxPreviewCanvas *canvas, wxDC& dc)
     // Draw blank page allowing for 1-pixel border AROUND the actual paper
     dc.SetPen(*wxBLACK_PEN);
     dc.SetBrush(*wxWHITE_BRUSH);
-    dc.DrawRectangle(paperRect.x - 2, paperRect.y - 1, 
+    dc.DrawRectangle(paperRect.x - 2, paperRect.y - 1,
         paperRect.width + 3, paperRect.height + 2);
 
     return true;