X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/5438a5665e35ee6286c5af73747873df9daed252..b6f4144e596cdf8e862e513b7f7c09022a664137:/src/html/htmprint.cpp diff --git a/src/html/htmprint.cpp b/src/html/htmprint.cpp index 9b25e01dc6..fac5d33635 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); @@ -544,6 +543,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 +599,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