summaryrefslogtreecommitdiff
path: root/src/os/macosx/string_osx.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/os/macosx/string_osx.cpp')
-rw-r--r--src/os/macosx/string_osx.cpp29
1 files changed, 29 insertions, 0 deletions
diff --git a/src/os/macosx/string_osx.cpp b/src/os/macosx/string_osx.cpp
index 63be4d3ad..ad4983e9a 100644
--- a/src/os/macosx/string_osx.cpp
+++ b/src/os/macosx/string_osx.cpp
@@ -19,6 +19,35 @@
#if (MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_5)
+
+/* CTRunDelegateCreate is supported since MacOS X 10.5, but was only included in the SDKs starting with the 10.9 SDK. */
+#ifndef HAVE_OSX_109_SDK
+extern "C" {
+ typedef const struct __CTRunDelegate * CTRunDelegateRef;
+
+ typedef void (*CTRunDelegateDeallocateCallback) (void* refCon);
+ typedef CGFloat (*CTRunDelegateGetAscentCallback) (void* refCon);
+ typedef CGFloat (*CTRunDelegateGetDescentCallback) (void* refCon);
+ typedef CGFloat (*CTRunDelegateGetWidthCallback) (void* refCon);
+ typedef struct {
+ CFIndex version;
+ CTRunDelegateDeallocateCallback dealloc;
+ CTRunDelegateGetAscentCallback getAscent;
+ CTRunDelegateGetDescentCallback getDescent;
+ CTRunDelegateGetWidthCallback getWidth;
+ } CTRunDelegateCallbacks;
+
+ enum {
+ kCTRunDelegateVersion1 = 1,
+ kCTRunDelegateCurrentVersion = kCTRunDelegateVersion1
+ };
+
+ extern const CFStringRef kCTRunDelegateAttributeName AVAILABLE_MAC_OS_X_VERSION_10_5_AND_LATER;
+
+ CTRunDelegateRef CTRunDelegateCreate(const CTRunDelegateCallbacks* callbacks, void* refCon) AVAILABLE_MAC_OS_X_VERSION_10_5_AND_LATER;
+}
+#endif /* HAVE_OSX_109_SDK */
+
/** Cached current locale. */
static CFAutoRelease<CFLocaleRef> _osx_locale;
/** CoreText cache for font information, cleared when OTTD changes fonts. */