void SetFonts(wxString normal_face, wxString fixed_face,
const int *sizes = NULL);
- // Sets font sizes to be relative to the given size or the system default size
- void NormalizeFontSizes(int size=-1);
+ // Sets font sizes to be relative to the given size or the system
+ // default size; use either specified or default font
+ void SetStandardFonts(int size = -1,
+ const wxString& normal_face = wxEmptyString,
+ const wxString& fixed_face = wxEmptyString);
// Sets space between text and window borders.
void SetBorders(int b) {m_Borders = b;}
// Sets fonts to be used when displaying HTML page. (if size null then default sizes used).
void SetFonts(wxString normal_face, wxString fixed_face, const int *sizes = NULL);
- // Sets font sizes to be relative to the given size or the system default size
- void NormalizeFontSizes(int size=-1);
+ // Sets font sizes to be relative to the given size or the system
+ // default size; use either specified or default font
+ void SetStandardFonts(int size = -1,
+ const wxString& normal_face = wxEmptyString,
+ const wxString& fixed_face = wxEmptyString);
// [x,y] is position of upper-left corner of printing rectangle (see SetSize)
// from is y-coordinate of the very first visible cell
// Sets fonts to be used when displaying HTML page. (if size null then default sizes used).
void SetFonts(wxString normal_face, wxString fixed_face, const int *sizes = NULL);
- // Sets font sizes to be relative to the given size or the system default size
- void NormalizeFontSizes(int size=-1);
+ // Sets font sizes to be relative to the given size or the system
+ // default size; use either specified or default font
+ void SetStandardFonts(int size = -1,
+ const wxString& normal_face = wxEmptyString,
+ const wxString& fixed_face = wxEmptyString);
void SetMargins(float top = 25.2, float bottom = 25.2, float left = 25.2, float right = 25.2,
float spaces = 5);
void SetFonts(wxString normal_face, wxString fixed_face, const int *sizes = 0);
// Sets fonts to be used when displaying HTML page. (if size null then default sizes used)
- void NormalizeFontSizes(int size=-1);
- // Sets font sizes to be relative to the given size or the system default size
+ // Sets font sizes to be relative to the given size or the system
+ // default size; use either specified or default font
+ void SetStandardFonts(int size = -1,
+ const wxString& normal_face = wxEmptyString,
+ const wxString& fixed_face = wxEmptyString);
wxPrintData *GetPrintData();
wxPageSetupDialogData *GetPageSetupData() {return m_PageSetupData;}
int m_FontsSizesArr[7];
int *m_FontsSizes;
wxString m_FontFaceFixed, m_FontFaceNormal;
+
+ enum FontMode
+ {
+ FontMode_Explicit,
+ FontMode_Standard
+ };
+ FontMode m_fontMode;
+
wxString m_Headers[2], m_Footers[2];
wxWindow *m_ParentWindow;
// Sets fonts to be used when displaying HTML page. (if size null then default sizes used).
void SetFonts(wxString normal_face, wxString fixed_face, const int *sizes = NULL);
- // Sets font sizes to be relative to the given size or the system default size
- void NormalizeFontSizes(int size=-1);
+ // Sets font sizes to be relative to the given size or the system
+ // default size; use either specified or default font
+ void SetStandardFonts(int size = -1,
+ const wxString& normal_face = wxEmptyString,
+ const wxString& fixed_face = wxEmptyString);
// Adds tags module. see wxHtmlTagsModule for details.
static void AddModule(wxHtmlTagsModule *module);
m_Parser->SetFonts(normal_face, fixed_face, sizes);
// fonts changed => contents invalid, so reload the page:
SetPage(wxT("<html><body></body></html>"));
- if (!op.IsEmpty()) LoadPage(op);
+ if (!op.empty())
+ LoadPage(op);
}
-void wxHtmlWindow::NormalizeFontSizes(int size)
+void wxHtmlWindow::SetStandardFonts(int size,
+ const wxString& normal_face,
+ const wxString& fixed_face)
{
- int f_sizes[7];
- if (size == -1)
- size = wxSystemSettings::GetFont(wxSYS_DEFAULT_GUI_FONT).GetPointSize();
-
- f_sizes[0] = int(size * 0.6);
- f_sizes[1] = int(size * 0.8);
- f_sizes[2] = size;
- f_sizes[3] = int(size * 1.2);
- f_sizes[4] = int(size * 1.4);
- f_sizes[5] = int(size * 1.6);
- f_sizes[6] = int(size * 1.8);
-
- SetFonts(wxEmptyString, wxEmptyString, f_sizes);
+ wxString op = m_OpenedPage;
+
+ m_Parser->SetStandardFonts(size, normal_face, fixed_face);
+ // fonts changed => contents invalid, so reload the page:
+ SetPage(wxT("<html><body></body></html>"));
+ if (!op.empty())
+ LoadPage(op);
}
const int *sizes)
{
m_Parser->SetFonts(normal_face, fixed_face, sizes);
- if (m_DC == NULL && m_Cells != NULL) m_Cells->Layout(m_Width);
+ if (m_DC == NULL && m_Cells != NULL)
+ m_Cells->Layout(m_Width);
}
-
-void wxHtmlDCRenderer::NormalizeFontSizes(int size)
+void wxHtmlDCRenderer::SetStandardFonts(int size,
+ const wxString& normal_face,
+ const wxString& fixed_face)
{
- int f_sizes[7];
- if (size == -1)
- size = wxSystemSettings::GetFont(wxSYS_DEFAULT_GUI_FONT).GetPointSize();
-
- f_sizes[0] = int(size * 0.6);
- f_sizes[1] = int(size * 0.8);
- f_sizes[2] = size;
- f_sizes[3] = int(size * 1.2);
- f_sizes[4] = int(size * 1.4);
- f_sizes[5] = int(size * 1.6);
- f_sizes[6] = int(size * 1.8);
-
- SetFonts(wxEmptyString, wxEmptyString, f_sizes);
+ m_Parser->SetStandardFonts(size, normal_face, fixed_face);
+ if (m_DC == NULL && m_Cells != NULL)
+ m_Cells->Layout(m_Width);
}
m_RendererHdr->SetFonts(normal_face, fixed_face, sizes);
}
-
-void wxHtmlPrintout::NormalizeFontSizes(int size)
+void wxHtmlPrintout::SetStandardFonts(int size,
+ const wxString& normal_face,
+ const wxString& fixed_face)
{
- int f_sizes[7];
- if (size == -1)
- size = wxSystemSettings::GetFont(wxSYS_DEFAULT_GUI_FONT).GetPointSize();
-
- f_sizes[0] = int(size * 0.6);
- f_sizes[1] = int(size * 0.8);
- f_sizes[2] = size;
- f_sizes[3] = int(size * 1.2);
- f_sizes[4] = int(size * 1.4);
- f_sizes[5] = int(size * 1.6);
- f_sizes[6] = int(size * 1.8);
-
- SetFonts(wxEmptyString, wxEmptyString, f_sizes);
+ m_Renderer->SetStandardFonts(size, normal_face, fixed_face);
+ m_RendererHdr->SetStandardFonts(size, normal_face, fixed_face);
}
void wxHtmlEasyPrinting::SetFonts(wxString normal_face, wxString fixed_face,
const int *sizes)
{
+ m_fontMode = FontMode_Explicit;
m_FontFaceNormal = normal_face;
m_FontFaceFixed = fixed_face;
m_FontsSizes = NULL;
}
-void wxHtmlEasyPrinting::NormalizeFontSizes(int size)
+void wxHtmlEasyPrinting::SetStandardFonts(int size,
+ const wxString& normal_face,
+ const wxString& fixed_face)
{
- int f_sizes[7];
- if (size == -1)
- size = wxSystemSettings::GetFont(wxSYS_DEFAULT_GUI_FONT).GetPointSize();
-
- f_sizes[0] = int(size * 0.6);
- f_sizes[1] = int(size * 0.8);
- f_sizes[2] = size;
- f_sizes[3] = int(size * 1.2);
- f_sizes[4] = int(size * 1.4);
- f_sizes[5] = int(size * 1.6);
- f_sizes[6] = int(size * 1.8);
-
- SetFonts(wxEmptyString, wxEmptyString, f_sizes);
+ m_fontMode = FontMode_Standard;
+ m_FontFaceNormal = normal_face;
+ m_FontFaceFixed = fixed_face;
+ m_FontsSizesArr[0] = size;
}
{
wxHtmlPrintout *p = new wxHtmlPrintout(m_Name);
- p->SetFonts(m_FontFaceNormal, m_FontFaceFixed, m_FontsSizes);
+ if (m_fontMode == FontMode_Explicit)
+ {
+ p->SetFonts(m_FontFaceNormal, m_FontFaceFixed, m_FontsSizes);
+ }
+ else // FontMode_Standard
+ {
+ p->SetStandardFonts(m_FontsSizesArr[0],
+ m_FontFaceNormal, m_FontFaceFixed);
+ }
p->SetHeader(m_Headers[0], wxPAGE_EVEN);
p->SetHeader(m_Headers[1], wxPAGE_ODD);
}
}
-void wxHtmlWinParser::NormalizeFontSizes(int size)
+void wxHtmlWinParser::SetStandardFonts(int size,
+ const wxString& normal_face,
+ const wxString& fixed_face)
{
+ wxFont defaultFont = wxSystemSettings::GetFont(wxSYS_DEFAULT_GUI_FONT);
+
int f_sizes[7];
if (size == -1)
- size = wxSystemSettings::GetFont(wxSYS_DEFAULT_GUI_FONT).GetPointSize();
+ size = defaultFont.GetPointSize();
f_sizes[0] = int(size * 0.6);
f_sizes[1] = int(size * 0.8);
f_sizes[4] = int(size * 1.4);
f_sizes[5] = int(size * 1.6);
f_sizes[6] = int(size * 1.8);
+
+ wxString normal = normal_face.empty() ?
+ defaultFont.GetFaceName() : normal_face;
- SetFonts(wxEmptyString, wxEmptyString, f_sizes);
+ SetFonts(normal, fixed_face, f_sizes);
}
void wxHtmlWinParser::InitParser(const wxString& source)