]> git.saurik.com Git - wxWidgets.git/commitdiff
NSFont -> wxFont conversion.
authorKevin Ollivier <kevino@theolliviers.com>
Sat, 31 Oct 2009 23:00:04 +0000 (23:00 +0000)
committerKevin Ollivier <kevino@theolliviers.com>
Sat, 31 Oct 2009 23:00:04 +0000 (23:00 +0000)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@62526 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

include/wx/osx/font.h
src/osx/carbon/utilscocoa.mm

index 625a079c0b4521b371b4e9b041cdd52659719307..bcd86e775a896fc4e2c68a0d44c25eff0a67754e 100644 (file)
@@ -37,6 +37,10 @@ public:
     // ctors and such
     wxFont() { }
 
+#if wxOSX_USE_COCOA
+    wxFont(WX_NSFont nsfont);
+#endif
+
 #if FUTURE_WXWIN_COMPATIBILITY_3_0
     wxFont(int size,
            int family,
@@ -153,6 +157,7 @@ public:
     WX_NSFont OSXGetNSFont() const;
     static WX_NSFont OSXCreateNSFont(wxOSXSystemFont font, wxNativeFontInfo* info);
     static WX_NSFont OSXCreateNSFont(const wxNativeFontInfo* info);
+    static void SetNativeInfoFromNSFont(WX_NSFont nsfont, wxNativeFontInfo* info);
 #endif
 
 #if wxOSX_USE_IPHONE
index 08e0a23bc04c55aaf48e7ade3a01c94db4bb6e23..7604f0f277e4d067a0de4034120c7b27fcb92246 100644 (file)
@@ -102,6 +102,40 @@ void* wxMacCocoaRetain( void* obj )
 // ----------------------------------------------------------------------------
 
 #if wxOSX_USE_COCOA
+wxFont::wxFont(WX_NSFont nsfont)
+{
+    [nsfont retain];
+    wxNativeFontInfo info;
+    SetNativeInfoFromNSFont(nsfont, &info);
+    Create(info);
+}
+
+void wxFont::SetNativeInfoFromNSFont(WX_NSFont nsfont, wxNativeFontInfo* info)
+{   
+    NSFontDescriptor*desc = [[nsfont fontDescriptor] retain];
+    if ( info->m_faceName.empty())
+    {
+        wxFontStyle fontstyle = wxFONTSTYLE_NORMAL;
+        wxFontWeight fontweight = wxFONTWEIGHT_NORMAL;
+        bool underlined = false;
+
+        int size = (int) ([desc pointSize]+0.5);
+        NSFontSymbolicTraits traits = [desc symbolicTraits];
+
+        if ( traits & NSFontBoldTrait )
+            fontweight = wxFONTWEIGHT_BOLD ;
+        else
+            fontweight = wxFONTWEIGHT_NORMAL ;
+        if ( traits & NSFontItalicTrait )
+            fontstyle = wxFONTSTYLE_ITALIC ;
+
+        wxCFStringRef fontname( [desc postscriptName] );
+        info->Init(size,wxFONTFAMILY_DEFAULT,fontstyle,fontweight,underlined,
+            fontname.AsString(), wxFONTENCODING_DEFAULT);
+
+    }
+    info->m_nsFontDescriptor = desc;
+}
 
 WX_NSFont wxFont::OSXCreateNSFont(wxOSXSystemFont font, wxNativeFontInfo* info)
 {
@@ -138,29 +172,7 @@ WX_NSFont wxFont::OSXCreateNSFont(wxOSXSystemFont font, wxNativeFontInfo* info)
             break;
     }
     [nsfont retain];
-    NSFontDescriptor*desc = [[nsfont fontDescriptor] retain];
-    if ( info->m_faceName.empty())
-    {
-        wxFontStyle fontstyle = wxFONTSTYLE_NORMAL;
-        wxFontWeight fontweight = wxFONTWEIGHT_NORMAL;
-        bool underlined = false;
-
-        int size = (int) ([desc pointSize]+0.5);
-        NSFontSymbolicTraits traits = [desc symbolicTraits];
-
-        if ( traits & NSFontBoldTrait )
-            fontweight = wxFONTWEIGHT_BOLD ;
-        else
-            fontweight = wxFONTWEIGHT_NORMAL ;
-        if ( traits & NSFontItalicTrait )
-            fontstyle = wxFONTSTYLE_ITALIC ;
-
-        wxCFStringRef fontname( [desc postscriptName] );
-        info->Init(size,wxFONTFAMILY_DEFAULT,fontstyle,fontweight,underlined,
-            fontname.AsString(), wxFONTENCODING_DEFAULT);
-
-    }
-    info->m_nsFontDescriptor = desc;
+    SetNativeInfoFromNSFont(nsfont, info);
     return nsfont;
 }