WX_DECLARE_LIST(wxFontInstance, wxFontInstanceList);
WX_DEFINE_LIST(wxFontInstanceList)
WX_DEFINE_LIST(wxFontBundleList)
+
WX_DECLARE_HASH_MAP(wxString, wxFontBundle*,
wxStringHash, wxStringEqual,
- wxFontBundleHash);
+ wxFontBundleHashBase);
+// in STL build, hash class is typedef to a template, so it can't be forward
+// declared, as we do; solve it by having a dummy class:
+class wxFontBundleHash : public wxFontBundleHashBase
+{
+};
// ============================================================================
// implementation
{
wxASSERT_MSG( m_refCnt > 0, _T("font library not loaded!") );
- wxFontInstance *i;
- wxFontInstanceList::Node *node;
-
- for ( node = m_instances->GetFirst(); node; node = node->GetNext() )
+ for ( wxFontInstanceList::const_iterator i = m_instances->begin();
+ i != m_instances->end(); ++i )
{
- i = node->GetData();
- if ( i->GetPointSize() == ptSize && i->IsAntiAliased() == aa )
- return i;
+ if ( (*i)->GetPointSize() == ptSize && (*i)->IsAntiAliased() == aa )
+ return *i;
}
- i = CreateFontInstance(ptSize, aa);
+ wxFontInstance *i = CreateFontInstance(ptSize, aa);
m_instances->Append(i);
return i;
}
if ( !HasFace((FaceType)type) )
{
+ // if we can't get the exact font requested, substitute it with
+ // some other variant:
for (int i = 0; i < FaceType_Max; i++)
{
if ( HasFace((FaceType)i) )
// ----------------------------------------------------------------------------
wxFontMgrFontRefData::wxFontMgrFontRefData(int size,
- int family,
- int style,
- int weight,
+ wxFontFamily family,
+ wxFontStyle style,
+ wxFontWeight weight,
bool underlined,
const wxString& faceName,
wxFontEncoding encoding)
{
- if ( family == wxDEFAULT )
- family = wxSWISS;
- if ( style == wxDEFAULT )
- style = wxNORMAL;
- if ( weight == wxDEFAULT )
- weight = wxNORMAL;
+ if ( family == wxFONTFAMILY_DEFAULT )
+ family = wxFONTFAMILY_SWISS;
if ( size == wxDEFAULT )
size = 12;
m_fontValid = false;
}
-void wxFontMgrFontRefData::SetFamily(int family)
+void wxFontMgrFontRefData::SetFamily(wxFontFamily family)
{
- m_info.family = (wxFontFamily)family;
+ m_info.family = family;
m_fontValid = false;
}
-void wxFontMgrFontRefData::SetStyle(int style)
+void wxFontMgrFontRefData::SetStyle(wxFontStyle style)
{
- m_info.style = (wxFontStyle)style;
+ m_info.style = style;
m_fontValid = false;
}
-void wxFontMgrFontRefData::SetWeight(int weight)
+void wxFontMgrFontRefData::SetWeight(wxFontWeight weight)
{
- m_info.weight = (wxFontWeight)weight;
+ m_info.weight = weight;
m_fontValid = false;
}