don't hardcode HTML font sizes, this makes wxHtmlWindow look really ugly when default font size is not 12, base the default font sizes on wxNORMAL_FONT instead
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@40823 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -89,40 +89,16 @@
|
||||
// wxHTML internal constants
|
||||
//--------------------------------------------------------------------------------
|
||||
|
||||
#define wxHTML_SCROLL_STEP 16
|
||||
/* size of one scroll step of wxHtmlWindow in pixels */
|
||||
#define wxHTML_BUFLEN 1024
|
||||
#define wxHTML_SCROLL_STEP 16
|
||||
|
||||
/* size of temporary buffer used during parsing */
|
||||
#define wxHTML_PRINT_MAX_PAGES 999
|
||||
#define wxHTML_BUFLEN 1024
|
||||
|
||||
/* maximum number of pages printable via html printing */
|
||||
#define wxHTML_PRINT_MAX_PAGES 999
|
||||
|
||||
#endif // wxUSE_HTML
|
||||
|
||||
/* default font sizes */
|
||||
#ifdef __WXMSW__
|
||||
#define wxHTML_FONT_SIZE_1 7
|
||||
#define wxHTML_FONT_SIZE_2 8
|
||||
#define wxHTML_FONT_SIZE_3 10
|
||||
#define wxHTML_FONT_SIZE_4 12
|
||||
#define wxHTML_FONT_SIZE_5 16
|
||||
#define wxHTML_FONT_SIZE_6 22
|
||||
#define wxHTML_FONT_SIZE_7 30
|
||||
#elif defined(__WXMAC__)
|
||||
#define wxHTML_FONT_SIZE_1 9
|
||||
#define wxHTML_FONT_SIZE_2 12
|
||||
#define wxHTML_FONT_SIZE_3 14
|
||||
#define wxHTML_FONT_SIZE_4 18
|
||||
#define wxHTML_FONT_SIZE_5 24
|
||||
#define wxHTML_FONT_SIZE_6 30
|
||||
#define wxHTML_FONT_SIZE_7 36
|
||||
#else
|
||||
#define wxHTML_FONT_SIZE_1 10
|
||||
#define wxHTML_FONT_SIZE_2 12
|
||||
#define wxHTML_FONT_SIZE_3 14
|
||||
#define wxHTML_FONT_SIZE_4 16
|
||||
#define wxHTML_FONT_SIZE_5 19
|
||||
#define wxHTML_FONT_SIZE_6 24
|
||||
#define wxHTML_FONT_SIZE_7 32
|
||||
#endif
|
||||
#endif // _WX_HTMLDEFS_H_
|
||||
|
||||
#endif
|
||||
#endif
|
||||
|
@@ -110,25 +110,39 @@ void wxHtmlWinParser::RemoveModule(wxHtmlTagsModule *module)
|
||||
m_Modules.DeleteObject(module);
|
||||
}
|
||||
|
||||
void wxHtmlWinParser::SetFonts(const wxString& normal_face, const wxString& fixed_face,
|
||||
// build all HTML font sizes (1..7) from the given base size
|
||||
static void wxBuildFontSizes(int *sizes, int size)
|
||||
{
|
||||
// using a fixed factor (1.2, from CSS2) is a bad idea as explained at
|
||||
// http://www.w3.org/TR/CSS21/fonts.html#font-size-props but this is by far
|
||||
// simplest thing to do so still do it like this for now
|
||||
sizes[0] = int(size * 0.69);
|
||||
sizes[1] = int(size * 0.83);
|
||||
sizes[2] = size;
|
||||
sizes[3] = int(size * 1.2);
|
||||
sizes[4] = int(size * 1.44);
|
||||
sizes[5] = int(size * 1.73);
|
||||
sizes[6] = int(size * 2);
|
||||
}
|
||||
|
||||
void wxHtmlWinParser::SetFonts(const wxString& normal_face,
|
||||
const wxString& fixed_face,
|
||||
const int *sizes)
|
||||
{
|
||||
static int default_sizes[7] =
|
||||
static int default_sizes[7] = { 0 };
|
||||
if ( !sizes )
|
||||
{
|
||||
wxHTML_FONT_SIZE_1,
|
||||
wxHTML_FONT_SIZE_2,
|
||||
wxHTML_FONT_SIZE_3,
|
||||
wxHTML_FONT_SIZE_4,
|
||||
wxHTML_FONT_SIZE_5,
|
||||
wxHTML_FONT_SIZE_6,
|
||||
wxHTML_FONT_SIZE_7
|
||||
};
|
||||
if ( !default_sizes[0] )
|
||||
wxBuildFontSizes(default_sizes, wxNORMAL_FONT->GetPointSize());
|
||||
|
||||
if (sizes == NULL) sizes = default_sizes;
|
||||
sizes = default_sizes;
|
||||
}
|
||||
|
||||
int i, j, k, l, m;
|
||||
|
||||
for (i = 0; i < 7; i++) m_FontsSizes[i] = sizes[i];
|
||||
for (i = 0; i < 7; i++)
|
||||
m_FontsSizes[i] = sizes[i];
|
||||
|
||||
m_FontFaceFixed = fixed_face;
|
||||
m_FontFaceNormal = normal_face;
|
||||
|
||||
@@ -153,22 +167,15 @@ void wxHtmlWinParser::SetStandardFonts(int size,
|
||||
const wxString& normal_face,
|
||||
const wxString& fixed_face)
|
||||
{
|
||||
wxFont defaultFont = wxSystemSettings::GetFont(wxSYS_DEFAULT_GUI_FONT);
|
||||
if (size == -1)
|
||||
size = wxNORMAL_FONT->GetPointSize();
|
||||
|
||||
int f_sizes[7];
|
||||
if (size == -1)
|
||||
size = defaultFont.GetPointSize();
|
||||
wxBuildFontSizes(f_sizes, size);
|
||||
|
||||
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);
|
||||
|
||||
wxString normal = normal_face.empty() ?
|
||||
defaultFont.GetFaceName() : normal_face;
|
||||
wxString normal = normal_face;
|
||||
if ( normal.empty() )
|
||||
normal = wxNORMAL_FONT->GetFaceName();
|
||||
|
||||
SetFonts(normal, fixed_face, f_sizes);
|
||||
}
|
||||
|
Reference in New Issue
Block a user