#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 ( !driver_name.empty() && !device_name.empty() && !file.empty() )
{
- m_hDC = (WXHDC) CreateDC(driver_name, device_name, file, NULL);
+ m_hDC = (WXHDC) CreateDC(driver_name.wx_str(),
+ device_name.wx_str(),
+ file.fn_str(),
+ NULL);
}
else // we don't have all parameters, ask the user
{
{
DOCINFO docinfo;
docinfo.cbSize = sizeof(DOCINFO);
- docinfo.lpszDocName = (const wxChar*)message;
+ docinfo.lpszDocName = message.wx_str();
wxString filename(m_printData.GetFilename());
if (filename.empty())
docinfo.lpszOutput = NULL;
else
- docinfo.lpszOutput = (const wxChar *) filename;
+ docinfo.lpszOutput = filename.wx_str();
docinfo.lpszDatatype = NULL;
docinfo.fwType = 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
DEVMODE *lpDevMode = hDevMode ? (DEVMODE *)::GlobalLock(hDevMode) : NULL;
- HDC hDC = ::CreateDC(NULL, deviceName, NULL, lpDevMode);
+ HDC hDC = ::CreateDC(NULL, deviceName.wx_str(), NULL, lpDevMode);
if ( !hDC )
wxLogLastError(_T("CreateDC(printer)"));
{
// 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);