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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • python是一种动态面向对象的编程语言。动态是因为同一个变量可以被赋予不同的数据类型,与动态语言相对的是静态语言...
    Higgen阅读 1,033评论 0 0
  • 资本正流向企业服务领域。虽说2016年是资本寒冬,但更多类似“袋鼠云”一样的企业服务领域潜力新星正在阿里云云市场上...
    robin927阅读 2,784评论 0 1