// wxWin macros
// ---------------------------------------------------------------------------
-#if !USE_SHARED_LIBRARY
IMPLEMENT_DYNAMIC_CLASS(wxWindowsPrinter, wxPrinterBase)
IMPLEMENT_CLASS(wxWindowsPrintPreview, wxPrintPreviewBase)
-#endif
// ===========================================================================
// implementation
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)
if (!win)
{
wxEndBusyCursor();
- wxLogDebug(T("Could not create an abort dialog."));
+ wxLogDebug(wxT("Could not create an abort dialog."));
delete dc;
}
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()))
{
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();
}