#include "wx/log.h"
#include "wx/intl.h"
#include "wx/dc.h"
- #include "wx/msgdlg.h"
#endif
#if wxUSE_HTML && wxUSE_PRINTING_ARCHITECTURE && wxUSE_STREAMS
}
-
void wxHtmlDCRenderer::SetHtmlText(const wxString& html, const wxString& basepath, bool isdir)
{
if (m_DC == NULL) return;
}
+void wxHtmlDCRenderer::SetFonts(wxString normal_face, wxString fixed_face,
+ const int *sizes)
+{
+ m_Parser->SetFonts(normal_face, fixed_face, sizes);
+ if (m_DC == NULL && m_Cells != NULL) m_Cells->Layout(m_Width);
+}
+
int wxHtmlDCRenderer::Render(int x, int y, int from, int dont_render)
{
m_BasePathIsDir = isdir;
}
-// defined in htmlfilt.cpp
-void wxPrivate_ReadString(wxString& str, wxInputStream* s);
-
void wxHtmlPrintout::SetHtmlFile(const wxString& htmlfile)
{
wxFileSystem fs;
return;
}
- wxInputStream *st = ff->GetStream();
- wxString doc;
- wxPrivate_ReadString(doc, st);
-
- delete ff;
-
+ wxHtmlFilterHTML filter;
+ wxString doc = filter.ReadFile(*ff);
+
SetHtmlText(doc, htmlfile, FALSE);
+ delete ff;
}
+void wxHtmlPrintout::SetFonts(wxString normal_face, wxString fixed_face,
+ const int *sizes)
+{
+ m_Renderer->SetFonts(normal_face, fixed_face, sizes);
+ m_RendererHdr->SetFonts(normal_face, fixed_face, sizes);
+}
-//--------------------------------------------------------------------------------
+
+//----------------------------------------------------------------------------
// wxHtmlEasyPrinting
-//--------------------------------------------------------------------------------
+//----------------------------------------------------------------------------
wxHtmlEasyPrinting::wxHtmlEasyPrinting(const wxString& name, wxFrame *parent_frame)
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;
m_PageSetupData->EnableMargins(TRUE);
m_PageSetupData->SetMarginTopLeft(wxPoint(25, 25));
m_PageSetupData->SetMarginBottomRight(wxPoint(25, 25));
+
+ SetFonts(wxEmptyString, wxEmptyString, NULL);
}
{
if (!m_PrintData->Ok())
{
- wxMessageBox(_("Sorry, there was a problem: you may need to set a default printer."),
- _("Page Setup Problem"), wxICON_INFORMATION|wxOK, m_Frame);
+ wxLogError(_("There was a problem during page setup: you may need to set a default printer."));
return;
}
}
+void wxHtmlEasyPrinting::SetFonts(wxString normal_face, wxString fixed_face,
+ const int *sizes)
+{
+ m_FontFaceNormal = normal_face;
+ m_FontFaceFixed = fixed_face;
+
+ if (sizes)
+ {
+ m_FontsSizes = m_FontsSizesArr;
+ for (int i = 0; i < 7; i++) m_FontsSizes[i] = sizes[i];
+ }
+ else
+ m_FontsSizes = NULL;
+}
+
wxHtmlPrintout *wxHtmlEasyPrinting::CreatePrintout()
{
wxHtmlPrintout *p = new wxHtmlPrintout(m_Name);
+ p->SetFonts(m_FontFaceNormal, m_FontFaceFixed, m_FontsSizes);
+
p->SetHeader(m_Headers[0], wxPAGE_EVEN);
p->SetHeader(m_Headers[1], wxPAGE_ODD);
p->SetFooter(m_Footers[0], wxPAGE_EVEN);