#define GDI_ERROR ((int)-1)
#endif
-#if defined(__WXUNIVERSAL__) || wxUSE_POSTSCRIPT_ARCHITECTURE_IN_MSW
+#if defined(__WXUNIVERSAL__) && wxUSE_POSTSCRIPT_ARCHITECTURE_IN_MSW
#define wxUSE_PS_PRINTING 1
#else
#define wxUSE_PS_PRINTING 0
if (!m_hDC)
return false;
- int ret = ::StartDoc(GetHdc(), &docinfo);
-
- if (ret <= 0)
+ if ( ::StartDoc(GetHdc(), &docinfo) <= 0 )
{
- DWORD lastError = GetLastError();
- wxLogDebug(wxT("wxDC::StartDoc failed with error: %ld\n"), lastError);
+ wxLogLastError(wxT("StartDoc"));
+ return false;
}
- return (ret > 0);
+ return true;
}
void wxPrinterDC::EndDoc()
::EndPage((HDC) m_hDC);
}
+
+wxRect wxPrinterDC::GetPaperRect()
+
+{
+ if (!Ok()) return wxRect(0, 0, 0, 0);
+ int w = ::GetDeviceCaps((HDC) m_hDC, PHYSICALWIDTH);
+ int h = ::GetDeviceCaps((HDC) m_hDC, PHYSICALHEIGHT);
+ int x = -::GetDeviceCaps((HDC) m_hDC, PHYSICALOFFSETX);
+ int y = -::GetDeviceCaps((HDC) m_hDC, PHYSICALOFFSETY);
+ return wxRect(x, y, w, h);
+}
+
+
#if !wxUSE_PS_PRINTING
// Returns default device and port names
{
// no support for StretchDIBits() or an error occurred if we got here
wxMemoryDC memDC;
- memDC.SelectObject(bmp);
+
+ memDC.SelectObjectAsSource(bmp);
Blit(x, y, width, height, &memDC, 0, 0, wxCOPY, useMask);