From 8ffac5b07b922ea2addd6fbd9083414f2e0c25d1 Mon Sep 17 00:00:00 2001
From: Stefan Csomor <csomor@advancedconcepts.ch>
Date: Thu, 14 Jun 2012 21:46:34 +0000
Subject: [PATCH] CoreText font enumeration support for iOS

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@71765 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
---
 src/osx/core/fontenum.cpp | 10 +++++++++-
 src/osx/iphone/utils.mm   |  5 +++++
 2 files changed, 14 insertions(+), 1 deletion(-)

diff --git a/src/osx/core/fontenum.cpp b/src/osx/core/fontenum.cpp
index c4326e8319..f6afd49545 100644
--- a/src/osx/core/fontenum.cpp
+++ b/src/osx/core/fontenum.cpp
@@ -31,6 +31,10 @@
 // wxFontEnumerator
 // ----------------------------------------------------------------------------
 
+#if wxOSX_USE_IPHONE
+extern CFArrayRef CopyAvailableFontFamilyNames();
+#endif
+
 bool wxFontEnumerator::EnumerateFacenames(wxFontEncoding encoding,
                                           bool fixedWidthOnly)
 {
@@ -41,7 +45,8 @@ bool wxFontEnumerator::EnumerateFacenames(wxFontEncoding encoding,
 #if wxOSX_USE_CORE_TEXT
     {
         CFArrayRef cfFontFamilies = nil;
-        
+
+#if wxOSX_USE_COCOA_OR_CARBON
 #if (MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_6)
         if ( UMAGetSystemVersion() >= 0x1060 )
             cfFontFamilies = CTFontManagerCopyAvailableFontFamilyNames();
@@ -89,6 +94,9 @@ bool wxFontEnumerator::EnumerateFacenames(wxFontEncoding encoding,
             cfFontFamilies = atsfontnames;
 #endif
         }
+#elif wxOSX_USE_IPHONE
+        cfFontFamilies = CopyAvailableFontFamilyNames();
+#endif
         
         CFIndex count = CFArrayGetCount(cfFontFamilies);
         for(CFIndex i = 0; i < count; i++)
diff --git a/src/osx/iphone/utils.mm b/src/osx/iphone/utils.mm
index e1e80ad5eb..f453992216 100644
--- a/src/osx/iphone/utils.mm
+++ b/src/osx/iphone/utils.mm
@@ -118,6 +118,11 @@ extern UIFont* CreateUIFont( const wxFont& font )
     return [UIFont fontWithName:wxCFStringRef(font.GetFaceName() ).AsNSString() size:font.GetPointSize()];
 }
 
+CFArrayRef CopyAvailableFontFamilyNames()
+{
+    return (CFArrayRef) [[UIFont familyNames] retain];
+}
+
 extern void DrawTextInContext( CGContextRef context, CGPoint where, UIFont *font, NSString* text )
 {
     bool contextChanged = ( UIGraphicsGetCurrentContext() != context );
-- 
2.47.2