X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/e90c1d2a19361551eb07778280f22be3e759cf64..37b8e6798782278fdfe4f3c1291aaff55cdbb8c9:/src/msw/printwin.cpp diff --git a/src/msw/printwin.cpp b/src/msw/printwin.cpp index 847557f7e4..f46993f88a 100644 --- a/src/msw/printwin.cpp +++ b/src/msw/printwin.cpp @@ -66,10 +66,8 @@ LONG APIENTRY _EXPORT wxAbortProc(HDC hPr, int Code); // wxWin macros // --------------------------------------------------------------------------- -#if !USE_SHARED_LIBRARY IMPLEMENT_DYNAMIC_CLASS(wxWindowsPrinter, wxPrinterBase) IMPLEMENT_CLASS(wxWindowsPrintPreview, wxPrintPreviewBase) -#endif // =========================================================================== // implementation @@ -87,7 +85,11 @@ wxWindowsPrinter::wxWindowsPrinter(wxPrintDialogData *data) wxWindowsPrinter::~wxWindowsPrinter() { + // avoids mingw warning about statement with no effect (FreeProcInstance + // doesn't do anything under Win32) +#ifndef __GNUWIN32__ FreeProcInstance((FARPROC) m_lpAbortProc); +#endif } bool wxWindowsPrinter::Print(wxWindow *parent, wxPrintout *printout, bool prompt) @@ -217,7 +219,7 @@ bool wxWindowsPrinter::Print(wxWindow *parent, wxPrintout *printout, bool prompt if (!win) { wxEndBusyCursor(); - wxLogDebug(T("Could not create an abort dialog.")); + wxLogDebug(wxT("Could not create an abort dialog.")); delete dc; } @@ -227,10 +229,10 @@ bool wxWindowsPrinter::Print(wxWindow *parent, wxPrintout *printout, bool prompt printout->OnBeginPrinting(); - bool keepGoing = TRUE; - int copyCount; - for (copyCount = 1; copyCount <= m_printDialogData.GetNoCopies(); copyCount ++) + for ( copyCount = 1; + copyCount <= m_printDialogData.GetNoCopies(); + copyCount++ ) { if (!printout->OnBeginDocument(m_printDialogData.GetFromPage(), m_printDialogData.GetToPage())) { @@ -242,21 +244,23 @@ bool wxWindowsPrinter::Print(wxWindow *parent, wxPrintout *printout, bool prompt break; int pn; - for (pn = m_printDialogData.GetFromPage(); keepGoing && (pn <= m_printDialogData.GetToPage()) && printout->HasPage(pn); - pn++) + for ( pn = m_printDialogData.GetFromPage(); + pn <= m_printDialogData.GetToPage() && printout->HasPage(pn); + pn++ ) { - if (sm_abortIt) + if ( sm_abortIt ) { - keepGoing = FALSE; break; } - else - { - dc->StartPage(); - printout->OnPrintPage(pn); - dc->EndPage(); - } + + dc->StartPage(); + bool cont = printout->OnPrintPage(pn); + dc->EndPage(); + + if ( !cont ) + break; } + printout->OnEndDocument(); }