]> git.saurik.com Git - wxWidgets.git/blobdiff - src/cocoa/font.mm
fix a hang up in wxExecute(wxArrayString& output) overload (#4380)
[wxWidgets.git] / src / cocoa / font.mm
index e18a4768b3b95bbddf50e36812d268eced210c21..bac3a57df9cd30c53743662740cfff37c0ea34c5 100644 (file)
@@ -319,7 +319,7 @@ bool wxFont::Create(wxFontRefData *refData)
 {
     UnRef();
     m_refData = refData;
 {
     UnRef();
     m_refData = refData;
-    
+
     return m_refData != NULL;
 }
 
     return m_refData != NULL;
 }
 
@@ -327,10 +327,20 @@ bool wxFont::Create(const wxNativeFontInfo& nativeFontInfo)
 {
     UnRef();
     m_refData = new wxFontRefData(nativeFontInfo);
 {
     UnRef();
     m_refData = new wxFontRefData(nativeFontInfo);
-    
+
     return true;
 }
 
     return true;
 }
 
+wxGDIRefData *wxFont::CreateGDIRefData() const
+{
+    return new wxFontRefData;
+}
+
+wxGDIRefData *wxFont::CloneGDIRefData(const wxGDIRefData *data) const
+{
+    return new wxFontRefData(*wx_static_cast(const wxFontRefData *, data));
+}
+
 void wxFont::SetEncoding(wxFontEncoding)
 {
 }
 void wxFont::SetEncoding(wxFontEncoding)
 {
 }
@@ -398,24 +408,9 @@ bool wxFont::RealizeResource()
     return false;
 }
 
     return false;
 }
 
-void wxFont::Unshare()
-{
-    // Don't change shared data
-    if (!m_refData)
-    {
-        m_refData = new wxFontRefData();
-    }
-    else
-    {
-        wxFontRefData* ref = new wxFontRefData(*(wxFontRefData*)m_refData);
-        UnRef();
-        m_refData = ref;
-    }
-}
-
 void wxFont::SetPointSize(int pointSize)
 {
 void wxFont::SetPointSize(int pointSize)
 {
-    Unshare();
+    AllocExclusive();
 
     M_FONTDATA->m_info.pointSize = pointSize;
 
 
     M_FONTDATA->m_info.pointSize = pointSize;
 
@@ -424,7 +419,7 @@ void wxFont::SetPointSize(int pointSize)
 
 void wxFont::SetFamily(int family)
 {
 
 void wxFont::SetFamily(int family)
 {
-    Unshare();
+    AllocExclusive();
 
     M_FONTDATA->m_info.family = static_cast<wxFontFamily>(family);
 
 
     M_FONTDATA->m_info.family = static_cast<wxFontFamily>(family);
 
@@ -433,7 +428,7 @@ void wxFont::SetFamily(int family)
 
 void wxFont::SetStyle(int style)
 {
 
 void wxFont::SetStyle(int style)
 {
-    Unshare();
+    AllocExclusive();
 
     M_FONTDATA->m_info.style = static_cast<wxFontStyle>(style);
 
 
     M_FONTDATA->m_info.style = static_cast<wxFontStyle>(style);
 
@@ -442,7 +437,7 @@ void wxFont::SetStyle(int style)
 
 void wxFont::SetWeight(int weight)
 {
 
 void wxFont::SetWeight(int weight)
 {
-    Unshare();
+    AllocExclusive();
 
     M_FONTDATA->m_info.weight = static_cast<wxFontWeight>(weight);
 
 
     M_FONTDATA->m_info.weight = static_cast<wxFontWeight>(weight);
 
@@ -451,7 +446,7 @@ void wxFont::SetWeight(int weight)
 
 bool wxFont::SetFaceName(const wxString& faceName)
 {
 
 bool wxFont::SetFaceName(const wxString& faceName)
 {
-    Unshare();
+    AllocExclusive();
 
     M_FONTDATA->m_info.faceName = faceName;
 
 
     M_FONTDATA->m_info.faceName = faceName;
 
@@ -462,7 +457,7 @@ bool wxFont::SetFaceName(const wxString& faceName)
 
 void wxFont::SetUnderlined(bool underlined)
 {
 
 void wxFont::SetUnderlined(bool underlined)
 {
-    Unshare();
+    AllocExclusive();
 
     M_FONTDATA->m_info.underlined = underlined;
 
 
     M_FONTDATA->m_info.underlined = underlined;