X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/5438a5665e35ee6286c5af73747873df9daed252..66ee25523a09eb1db2773cecc44e39d6f7f76598:/src/html/htmprint.cpp diff --git a/src/html/htmprint.cpp b/src/html/htmprint.cpp index 9b25e01dc6..117e2261c4 100644 --- a/src/html/htmprint.cpp +++ b/src/html/htmprint.cpp @@ -10,7 +10,7 @@ #ifdef __GNUG__ -#pragma implementation +#pragma implementation "htmprint.h" #endif // For compilers that support precompilation, includes "wx/wx.h". @@ -30,6 +30,7 @@ #if wxUSE_HTML && wxUSE_PRINTING_ARCHITECTURE && wxUSE_STREAMS +#include "wx/dc.h" #include "wx/print.h" #include "wx/printdlg.h" #include "wx/html/htmprint.h" @@ -268,7 +269,8 @@ void wxHtmlPrintout::SetHtmlText(const wxString& html, const wxString &basepath, m_BasePathIsDir = isdir; } - +// defined in htmlfilt.cpp +void wxPrivate_ReadString(wxString& str, wxInputStream* s); void wxHtmlPrintout::SetHtmlFile(const wxString& htmlfile) { @@ -282,12 +284,9 @@ void wxHtmlPrintout::SetHtmlFile(const wxString& htmlfile) } wxInputStream *st = ff->GetStream(); - char *t = new char[st->GetSize() + 1]; - st->Read(t, st->GetSize()); - t[st->GetSize()] = 0; + wxString doc; + wxPrivate_ReadString(doc, st); - wxString doc = wxString(t); - delete t; delete ff; SetHtmlText(doc, htmlfile, FALSE); @@ -426,9 +425,6 @@ wxHtmlEasyPrinting::wxHtmlEasyPrinting(const wxString& name, wxFrame *parent_fra m_Frame = parent_frame; m_Name = name; m_PrintData = new wxPrintData; -#if (defined __WXGTK__) || (defined __WXMOTIF__) - (*m_PrintData) = (*wxThePrintSetupData); -#endif m_PageSetupData = new wxPageSetupDialogData; m_Headers[0] = m_Headers[1] = m_Footers[0] = m_Footers[1] = wxEmptyString; @@ -544,6 +540,12 @@ void wxHtmlEasyPrinting::PrinterSetup() void wxHtmlEasyPrinting::PageSetup() { + if (!m_PrintData->Ok()) + { + wxLogError(_("There was a problem during page setup: you may need to set a default printer.")); + return; + } + m_PageSetupData->SetPrintData(*m_PrintData); wxPageSetupDialog pageSetupDialog(m_Frame, m_PageSetupData); @@ -594,5 +596,9 @@ wxHtmlPrintout *wxHtmlEasyPrinting::CreatePrintout() } +// This hack forces the linker to always link in m_* files +// (wxHTML doesn't work without handlers from these files) +#include "wx/html/forcelnk.h" +FORCE_WXHTML_MODULES() #endif // wxUSE_HTML & wxUSE_PRINTING_ARCHITECTURE