X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/1044a386f0521b9b805b142547783acb96d1a406..d9506e775853406953c4b3ecd6f57b85abdafdfd:/src/msw/printwin.cpp diff --git a/src/msw/printwin.cpp b/src/msw/printwin.cpp index b4fa85248e..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(); }