COnversion of some common font names to current platform

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_8_BRANCH@53671 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Julian Smart
2008-05-20 13:23:07 +00:00
parent eee388cfcf
commit 40b9e72e72
2 changed files with 57 additions and 0 deletions

View File

@@ -2148,6 +2148,10 @@ protected:
// in a larger document // in a larger document
#define wxRICHTEXT_HANDLER_NO_HEADER_FOOTER 0x0080 #define wxRICHTEXT_HANDLER_NO_HEADER_FOOTER 0x0080
// Convert the more common face names to names that will work on the current platform
// in a larger document
#define wxRICHTEXT_HANDLER_CONVERT_FACENAMES 0x0100
/*! /*!
* wxRichTextFileHandler * wxRichTextFileHandler
* Base class for file handlers * Base class for file handlers

View File

@@ -1072,6 +1072,54 @@ wxString wxRichTextXMLHandler::CreateStyle(const wxTextAttrEx& attr, bool isPara
return str; return str;
} }
/// Replace face name with current name for platform.
/// TODO: introduce a virtual function or settable table to
/// do this comprehensively.
bool wxRichTextFixFaceName(wxString& facename)
{
if (facename.IsEmpty())
return false;
#ifdef __WXMSW__
if (facename == wxT("Times"))
{
facename = wxT("Times New Roman");
return true;
}
else if (facename == wxT("Helvetica"))
{
facename = wxT("Arial");
return true;
}
else if (facename == wxT("Courier"))
{
facename = wxT("Courier New");
return true;
}
else
return false;
#else
if (facename == wxT("Times New Roman"))
{
facename = wxT("Times");
return true;
}
else if (facename == wxT("Arial"))
{
facename = wxT("Helvetica");
return true;
}
else if (facename == wxT("Courier New"))
{
facename = wxT("Courier");
return true;
}
else
return false;
#endif
}
/// Get style parameters /// Get style parameters
bool wxRichTextXMLHandler::GetStyle(wxTextAttrEx& attr, wxXmlNode* node, bool isPara) bool wxRichTextXMLHandler::GetStyle(wxTextAttrEx& attr, wxXmlNode* node, bool isPara)
{ {
@@ -1086,8 +1134,13 @@ bool wxRichTextXMLHandler::GetStyle(wxTextAttrEx& attr, wxXmlNode* node, bool is
fontFacename = node->GetPropVal(wxT("fontface"), wxEmptyString); fontFacename = node->GetPropVal(wxT("fontface"), wxEmptyString);
if (!fontFacename.IsEmpty()) if (!fontFacename.IsEmpty())
{
fontFlags |= wxTEXT_ATTR_FONT_FACE; fontFlags |= wxTEXT_ATTR_FONT_FACE;
if (GetFlags() & wxRICHTEXT_HANDLER_CONVERT_FACENAMES)
wxRichTextFixFaceName(fontFacename);
}
wxString value; wxString value;
//value = node->GetPropVal(wxT("fontfamily"), wxEmptyString); //value = node->GetPropVal(wxT("fontfamily"), wxEmptyString);
//if (!value.empty()) //if (!value.empty())