a bit better solution for ©, etc. (in terms of speed)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@4691 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -73,20 +73,26 @@ bool wxHtmlCell::AdjustPagebreak(int *pagebreak)
|
||||
wxHtmlWordCell::wxHtmlWordCell(const wxString& word, wxDC& dc) : wxHtmlCell()
|
||||
{
|
||||
m_Word = word;
|
||||
|
||||
if (m_Word.Find(wxT('&')) != -1)
|
||||
{
|
||||
static wxChar* substitutions[][3] =
|
||||
{
|
||||
{ wxT(" "), wxT("  "), wxT(" ") },
|
||||
{ wxT("©"), wxT("© "), wxT("(c)") },
|
||||
{ wxT("""), wxT("" "), wxT("\"") },
|
||||
{ wxT("<"), wxT("< "), wxT("<") },
|
||||
{ wxT(">"), wxT("> "), wxT(">") },
|
||||
{ wxT("&"), wxT("& "), wxT("&") /*this one should be last one*/ },
|
||||
{ NULL, NULL, NULL }
|
||||
};
|
||||
|
||||
m_Word.Replace(wxT(" "), wxT(" "), TRUE);
|
||||
m_Word.Replace(wxT("©"), wxT("(c)"), TRUE);
|
||||
m_Word.Replace(wxT("""), wxT("\""), TRUE);
|
||||
m_Word.Replace(wxT("<"), wxT("<"), TRUE);
|
||||
m_Word.Replace(wxT(">"), wxT(">"), TRUE);
|
||||
m_Word.Replace(wxT("&"), wxT("&"), TRUE);
|
||||
|
||||
m_Word.Replace(wxT("  "), wxT(" "), TRUE);
|
||||
m_Word.Replace(wxT("© "), wxT("(c)"), TRUE);
|
||||
m_Word.Replace(wxT("" "), wxT("\""), TRUE);
|
||||
m_Word.Replace(wxT("< "), wxT("<"), TRUE);
|
||||
m_Word.Replace(wxT("> "), wxT(">"), TRUE);
|
||||
m_Word.Replace(wxT("& "), wxT("&"), TRUE);
|
||||
for (int i = 0; substitutions[i][0] != NULL; i++)
|
||||
{
|
||||
m_Word.Replace(substitutions[i][0], substitutions[i][2], TRUE);
|
||||
m_Word.Replace(substitutions[i][1], substitutions[i][2], TRUE);
|
||||
}
|
||||
}
|
||||
|
||||
dc.GetTextExtent(m_Word, &m_Width, &m_Height, &m_Descent);
|
||||
SetCanLiveOnPagebreak(FALSE);
|
||||
|
Reference in New Issue
Block a user