X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/519cb848a8f4c91c73421bb75314754284e593a4..80a24267cbc17d85e278e1f10cdfdaea12199639:/src/mac/font.cpp diff --git a/src/mac/font.cpp b/src/mac/font.cpp index 2409e1a38b..4f26c04f91 100644 --- a/src/mac/font.cpp +++ b/src/mac/font.cpp @@ -22,39 +22,42 @@ IMPLEMENT_DYNAMIC_CLASS(wxFont, wxGDIObject) #endif -wxFontRefData::wxFontRefData() -{ - m_style = 0; - m_pointSize = 0; - m_family = 0; - m_style = 0; - m_weight = 0; - m_underlined = 0; - m_faceName = ""; - - m_macFontSize = m_pointSize ; - m_macFontNum = systemFont ; - m_macFontStyle = normal ; -} -wxFontRefData::wxFontRefData(const wxFontRefData& data) + + +// ============================================================================ +// implementation +// ============================================================================ + +// ---------------------------------------------------------------------------- +// wxFontRefData +// ---------------------------------------------------------------------------- + +void wxFontRefData::Init(int pointSize, + int family, + int style, + int weight, + bool underlined, + const wxString& faceName, + wxFontEncoding encoding) { - m_style = data.m_style; - m_pointSize = data.m_pointSize; - m_family = data.m_family; - m_style = data.m_style; - m_weight = data.m_weight; - m_underlined = data.m_underlined; - m_faceName = data.m_faceName; - - m_macFontSize = m_pointSize ; - m_macFontNum = systemFont ; - m_macFontStyle = normal ; + m_style = style; + m_pointSize = pointSize; + m_family = family; + m_style = style; + m_weight = weight; + m_underlined = underlined; + m_faceName = faceName; + m_encoding = encoding; + + m_macFontNum = 0 ; + m_macFontSize = 0; + m_macFontStyle = 0; + m_fontId = 0; } wxFontRefData::~wxFontRefData() { - // TODO: delete font data } void wxFontRefData::MacFindFont() @@ -76,7 +79,7 @@ void wxFontRefData::MacFindFont() ::GetFNum( "\pTimes" , &m_macFontNum) ; break ; case wxSWISS : - ::GetFNum( "\pHelvetica" , &m_macFontNum) ; + ::GetFNum( "\pGeneva" , &m_macFontNum) ; break ; case wxMODERN : ::GetFNum( "\pMonaco" , &m_macFontNum) ; @@ -107,31 +110,27 @@ void wxFontRefData::MacFindFont() m_macFontSize = m_pointSize ; } -wxFont::wxFont() -{ - if ( wxTheFontList ) - wxTheFontList->Append(this); -} +// ---------------------------------------------------------------------------- +// wxFont +// ---------------------------------------------------------------------------- -wxFont::wxFont(int pointSize, int family, int style, int weight, bool underlined, const wxString& faceName) +void wxFont::Init() { - Create(pointSize, family, style, weight, underlined, faceName); - if ( wxTheFontList ) wxTheFontList->Append(this); } -bool wxFont::Create(int pointSize, int family, int style, int weight, bool underlined, const wxString& faceName) +bool wxFont::Create(int pointSize, + int family, + int style, + int weight, + bool underlined, + const wxString& faceName, + wxFontEncoding encoding) { UnRef(); - m_refData = new wxFontRefData; - - M_FONTDATA->m_family = family; - M_FONTDATA->m_style = style; - M_FONTDATA->m_weight = weight; - M_FONTDATA->m_pointSize = pointSize; - M_FONTDATA->m_underlined = underlined; - M_FONTDATA->m_faceName = faceName; + m_refData = new wxFontRefData(pointSize, family, style, weight, + underlined, faceName, encoding); RealizeResource(); @@ -150,6 +149,15 @@ bool wxFont::RealizeResource() return TRUE; } +void wxFont::SetEncoding(wxFontEncoding encoding) +{ + Unshare(); + + M_FONTDATA->m_encoding = encoding; + + RealizeResource(); +} + void wxFont::Unshare() { // Don't change shared data @@ -219,78 +227,45 @@ void wxFont::SetUnderlined(bool underlined) RealizeResource(); } -wxString wxFont::GetFamilyString() const +// ---------------------------------------------------------------------------- +// accessors +// ---------------------------------------------------------------------------- + +int wxFont::GetPointSize() const { - wxString fam(""); - switch (GetFamily()) - { - case wxDECORATIVE: - fam = "wxDECORATIVE"; - break; - case wxROMAN: - fam = "wxROMAN"; - break; - case wxSCRIPT: - fam = "wxSCRIPT"; - break; - case wxSWISS: - fam = "wxSWISS"; - break; - case wxMODERN: - fam = "wxMODERN"; - break; - case wxTELETYPE: - fam = "wxTELETYPE"; - break; - default: - fam = "wxDEFAULT"; - break; - } - return fam; + return M_FONTDATA->m_pointSize; } -/* New font system */ -wxString wxFont::GetFaceName() const +int wxFont::GetFamily() const { - wxString str(""); - if (M_FONTDATA) - str = M_FONTDATA->m_faceName ; - return str; + return M_FONTDATA->m_family; } -wxString wxFont::GetStyleString() const +int wxFont::GetStyle() const { - wxString styl(""); - switch (GetStyle()) - { - case wxITALIC: - styl = "wxITALIC"; - break; - case wxSLANT: - styl = "wxSLANT"; - break; - default: - styl = "wxNORMAL"; - break; - } - return styl; + return M_FONTDATA->m_style; } -wxString wxFont::GetWeightString() const +int wxFont::GetWeight() const { - wxString w(""); - switch (GetWeight()) - { - case wxBOLD: - w = "wxBOLD"; - break; - case wxLIGHT: - w = "wxLIGHT"; - break; - default: - w = "wxNORMAL"; - break; - } - return w; + return M_FONTDATA->m_weight; +} + +bool wxFont::GetUnderlined() const +{ + return M_FONTDATA->m_underlined; +} + +wxString wxFont::GetFaceName() const +{ + wxString str; + if ( M_FONTDATA ) + str = M_FONTDATA->m_faceName ; + return str; +} + +wxFontEncoding wxFont::GetEncoding() const +{ + return M_FONTDATA->m_encoding; }