X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/48a1108eb87970373e1b1d5debeeaedd8d1916ea..99749f85a14d6d920eadbdfcd9a925e22f79cb7f:/src/os2/font.cpp?ds=sidebyside diff --git a/src/os2/font.cpp b/src/os2/font.cpp index a85ff9d642..4a97f97c28 100644 --- a/src/os2/font.cpp +++ b/src/os2/font.cpp @@ -51,7 +51,7 @@ class WXDLLEXPORT wxFontRefData: public wxGDIRefData public: wxFontRefData() { - Init(-1, wxFONTFAMILY_DEFAULT, wxFONTSTYLE_NORMAL, wxFONTWEIGHT_NORMAL, FALSE, + Init(-1, wxFONTFAMILY_DEFAULT, wxFONTSTYLE_NORMAL, wxFONTWEIGHT_NORMAL, false, wxEmptyString, wxFONTENCODING_DEFAULT); } @@ -297,6 +297,8 @@ protected: bool m_bInternalPS; // Internally generated PS? }; // end of CLASS wxFontRefData +#define M_FONTDATA ((wxFontRefData*)m_refData) + // ============================================================================ // implementation // ============================================================================ @@ -855,7 +857,7 @@ wxString wxNativeFontInfo::ToString() const fa.usCodePage, fa.lMatch, fn.usWeightClass, - fa.szFacename); + (char *)fa.szFacename); return sStr; } // end of wxNativeFontInfo::ToString @@ -929,6 +931,16 @@ wxFont::~wxFont() // here, but we may check that font definition is true // ---------------------------------------------------------------------------- +wxGDIRefData *wxFont::CreateGDIRefData() const +{ + return new wxFontRefData(); +} + +wxGDIRefData *wxFont::CloneGDIRefData(const wxGDIRefData *data) const +{ + return new wxFontRefData(*wx_static_cast(const wxFontRefData *, data)); +} + bool wxFont::RealizeResource() { if ( GetResourceHandle() ) @@ -948,7 +960,7 @@ bool wxFont::FreeResource( bool WXUNUSED(bForce) ) return false; } // end of wxFont::FreeResource -WXHANDLE wxFont::GetResourceHandle() +WXHANDLE wxFont::GetResourceHandle() const { return GetHFONT(); } // end of wxFont::GetResourceHandle @@ -963,21 +975,6 @@ bool wxFont::IsFree() const return M_FONTDATA && (M_FONTDATA->GetHFONT() == 0); } // end of wxFont::IsFree -void wxFont::Unshare() -{ - // Don't change shared data - if ( !m_refData ) - { - m_refData = new wxFontRefData(); - } - else - { - wxFontRefData* ref = new wxFontRefData(*M_FONTDATA); - UnRef(); - m_refData = ref; - } -} // end of wxFont::Unshare - // ---------------------------------------------------------------------------- // change font attribute: we recreate font when doing it // ---------------------------------------------------------------------------- @@ -986,7 +983,7 @@ void wxFont::SetPointSize( int nPointSize ) { - Unshare(); + AllocExclusive(); M_FONTDATA->SetPointSize(nPointSize); @@ -997,7 +994,7 @@ void wxFont::SetFamily( int nFamily ) { - Unshare(); + AllocExclusive(); M_FONTDATA->SetFamily(nFamily); @@ -1008,7 +1005,7 @@ void wxFont::SetStyle( int nStyle ) { - Unshare(); + AllocExclusive(); M_FONTDATA->SetStyle(nStyle); @@ -1019,7 +1016,7 @@ void wxFont::SetWeight( int nWeight ) { - Unshare(); + AllocExclusive(); M_FONTDATA->SetWeight(nWeight); @@ -1030,7 +1027,7 @@ bool wxFont::SetFaceName( const wxString& rsFaceName ) { - Unshare(); + AllocExclusive(); bool refdataok = M_FONTDATA->SetFaceName(rsFaceName); @@ -1043,7 +1040,7 @@ void wxFont::SetUnderlined( bool bUnderlined ) { - Unshare(); + AllocExclusive(); M_FONTDATA->SetUnderlined(bUnderlined); @@ -1054,7 +1051,7 @@ void wxFont::SetEncoding( wxFontEncoding vEncoding ) { - Unshare(); + AllocExclusive(); M_FONTDATA->SetEncoding(vEncoding); @@ -1065,7 +1062,7 @@ void wxFont::DoSetNativeFontInfo( const wxNativeFontInfo& rInfo ) { - Unshare(); + AllocExclusive(); FreeResource(); @@ -1145,7 +1142,7 @@ void wxFont::SetFM( PFONTMETRICS pFM, int nNumFonts ) void wxFont::SetPS( HPS hPS ) { - Unshare(); + AllocExclusive(); M_FONTDATA->SetPS(hPS);