CTRunDelegateRef

typedef const struct CF_BRIDGED_TYPE(id) __CTRunDelegate * CTRunDelegateRef;

CFTypeID CTRunDelegateGetTypeID( void ) CT_AVAILABLE(10_5, 3_2);

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
};

CTRunDelegateRef __nullable CTRunDelegateCreate(
    const CTRunDelegateCallbacks* callbacks,
    void * __nullable refCon ) CT_AVAILABLE(10_5, 3_2);

void * CTRunDelegateGetRefCon(
    CTRunDelegateRef runDelegate ) CT_AVAILABLE(10_5, 3_2);

你可能感兴趣的:(CTRunDelegateRef)