CTFontCollection.pas 22 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540
  1. {
  2. * CTFontCollection.h
  3. * CoreText
  4. *
  5. * Copyright (c) 2006-2012 Apple Inc. All rights reserved.
  6. *
  7. }
  8. { Initial Pascal Translation: Jonas Maebe, <[email protected]>, October 2009 }
  9. { Pascal Translation Updated: Jonas Maebe, <[email protected]>, October 2012 }
  10. { Pascal Translation Updated: Jonas Maebe, <[email protected]>, August 2015 }
  11. {
  12. Modified for use with Free Pascal
  13. Version 308
  14. Please report any bugs to <[email protected]>
  15. }
  16. {$ifc not defined MACOSALLINCLUDE or not MACOSALLINCLUDE}
  17. {$mode macpas}
  18. {$modeswitch cblocks}
  19. {$packenum 1}
  20. {$macro on}
  21. {$inline on}
  22. {$calling mwpascal}
  23. {$IFNDEF FPC_DOTTEDUNITS}
  24. unit CTFontCollection;
  25. {$ENDIF FPC_DOTTEDUNITS}
  26. interface
  27. {$setc UNIVERSAL_INTERFACES_VERSION := $0400}
  28. {$setc GAP_INTERFACES_VERSION := $0308}
  29. {$ifc not defined USE_CFSTR_CONSTANT_MACROS}
  30. {$setc USE_CFSTR_CONSTANT_MACROS := TRUE}
  31. {$endc}
  32. {$ifc defined CPUPOWERPC and defined CPUI386}
  33. {$error Conflicting initial definitions for CPUPOWERPC and CPUI386}
  34. {$endc}
  35. {$ifc defined FPC_BIG_ENDIAN and defined FPC_LITTLE_ENDIAN}
  36. {$error Conflicting initial definitions for FPC_BIG_ENDIAN and FPC_LITTLE_ENDIAN}
  37. {$endc}
  38. {$ifc not defined __ppc__ and defined CPUPOWERPC32}
  39. {$setc __ppc__ := 1}
  40. {$elsec}
  41. {$setc __ppc__ := 0}
  42. {$endc}
  43. {$ifc not defined __ppc64__ and defined CPUPOWERPC64}
  44. {$setc __ppc64__ := 1}
  45. {$elsec}
  46. {$setc __ppc64__ := 0}
  47. {$endc}
  48. {$ifc not defined __i386__ and defined CPUI386}
  49. {$setc __i386__ := 1}
  50. {$elsec}
  51. {$setc __i386__ := 0}
  52. {$endc}
  53. {$ifc not defined __x86_64__ and defined CPUX86_64}
  54. {$setc __x86_64__ := 1}
  55. {$elsec}
  56. {$setc __x86_64__ := 0}
  57. {$endc}
  58. {$ifc not defined __arm__ and defined CPUARM}
  59. {$setc __arm__ := 1}
  60. {$elsec}
  61. {$setc __arm__ := 0}
  62. {$endc}
  63. {$ifc not defined __arm64__ and defined CPUAARCH64}
  64. {$setc __arm64__ := 1}
  65. {$elsec}
  66. {$setc __arm64__ := 0}
  67. {$endc}
  68. {$ifc defined cpu64}
  69. {$setc __LP64__ := 1}
  70. {$elsec}
  71. {$setc __LP64__ := 0}
  72. {$endc}
  73. {$ifc defined __ppc__ and __ppc__ and defined __i386__ and __i386__}
  74. {$error Conflicting definitions for __ppc__ and __i386__}
  75. {$endc}
  76. {$ifc defined __ppc__ and __ppc__}
  77. {$setc TARGET_CPU_PPC := TRUE}
  78. {$setc TARGET_CPU_PPC64 := FALSE}
  79. {$setc TARGET_CPU_X86 := FALSE}
  80. {$setc TARGET_CPU_X86_64 := FALSE}
  81. {$setc TARGET_CPU_ARM := FALSE}
  82. {$setc TARGET_CPU_ARM64 := FALSE}
  83. {$setc TARGET_OS_MAC := TRUE}
  84. {$setc TARGET_OS_IPHONE := FALSE}
  85. {$setc TARGET_IPHONE_SIMULATOR := FALSE}
  86. {$setc TARGET_OS_EMBEDDED := FALSE}
  87. {$elifc defined __ppc64__ and __ppc64__}
  88. {$setc TARGET_CPU_PPC := FALSE}
  89. {$setc TARGET_CPU_PPC64 := TRUE}
  90. {$setc TARGET_CPU_X86 := FALSE}
  91. {$setc TARGET_CPU_X86_64 := FALSE}
  92. {$setc TARGET_CPU_ARM := FALSE}
  93. {$setc TARGET_CPU_ARM64 := FALSE}
  94. {$setc TARGET_OS_MAC := TRUE}
  95. {$setc TARGET_OS_IPHONE := FALSE}
  96. {$setc TARGET_IPHONE_SIMULATOR := FALSE}
  97. {$setc TARGET_OS_EMBEDDED := FALSE}
  98. {$elifc defined __i386__ and __i386__}
  99. {$setc TARGET_CPU_PPC := FALSE}
  100. {$setc TARGET_CPU_PPC64 := FALSE}
  101. {$setc TARGET_CPU_X86 := TRUE}
  102. {$setc TARGET_CPU_X86_64 := FALSE}
  103. {$setc TARGET_CPU_ARM := FALSE}
  104. {$setc TARGET_CPU_ARM64 := FALSE}
  105. {$ifc defined iphonesim}
  106. {$setc TARGET_OS_MAC := FALSE}
  107. {$setc TARGET_OS_IPHONE := TRUE}
  108. {$setc TARGET_IPHONE_SIMULATOR := TRUE}
  109. {$elsec}
  110. {$setc TARGET_OS_MAC := TRUE}
  111. {$setc TARGET_OS_IPHONE := FALSE}
  112. {$setc TARGET_IPHONE_SIMULATOR := FALSE}
  113. {$endc}
  114. {$setc TARGET_OS_EMBEDDED := FALSE}
  115. {$elifc defined __x86_64__ and __x86_64__}
  116. {$setc TARGET_CPU_PPC := FALSE}
  117. {$setc TARGET_CPU_PPC64 := FALSE}
  118. {$setc TARGET_CPU_X86 := FALSE}
  119. {$setc TARGET_CPU_X86_64 := TRUE}
  120. {$setc TARGET_CPU_ARM := FALSE}
  121. {$setc TARGET_CPU_ARM64 := FALSE}
  122. {$ifc defined iphonesim}
  123. {$setc TARGET_OS_MAC := FALSE}
  124. {$setc TARGET_OS_IPHONE := TRUE}
  125. {$setc TARGET_IPHONE_SIMULATOR := TRUE}
  126. {$elsec}
  127. {$setc TARGET_OS_MAC := TRUE}
  128. {$setc TARGET_OS_IPHONE := FALSE}
  129. {$setc TARGET_IPHONE_SIMULATOR := FALSE}
  130. {$endc}
  131. {$setc TARGET_OS_EMBEDDED := FALSE}
  132. {$elifc defined __arm__ and __arm__}
  133. {$setc TARGET_CPU_PPC := FALSE}
  134. {$setc TARGET_CPU_PPC64 := FALSE}
  135. {$setc TARGET_CPU_X86 := FALSE}
  136. {$setc TARGET_CPU_X86_64 := FALSE}
  137. {$setc TARGET_CPU_ARM := TRUE}
  138. {$setc TARGET_CPU_ARM64 := FALSE}
  139. {$setc TARGET_OS_MAC := FALSE}
  140. {$setc TARGET_OS_IPHONE := TRUE}
  141. {$setc TARGET_IPHONE_SIMULATOR := FALSE}
  142. {$setc TARGET_OS_EMBEDDED := TRUE}
  143. {$elifc defined __arm64__ and __arm64__}
  144. {$setc TARGET_CPU_PPC := FALSE}
  145. {$setc TARGET_CPU_PPC64 := FALSE}
  146. {$setc TARGET_CPU_X86 := FALSE}
  147. {$setc TARGET_CPU_X86_64 := FALSE}
  148. {$setc TARGET_CPU_ARM := FALSE}
  149. {$setc TARGET_CPU_ARM64 := TRUE}
  150. {$ifc defined ios}
  151. {$setc TARGET_OS_MAC := FALSE}
  152. {$setc TARGET_OS_IPHONE := TRUE}
  153. {$setc TARGET_OS_EMBEDDED := TRUE}
  154. {$elsec}
  155. {$setc TARGET_OS_MAC := TRUE}
  156. {$setc TARGET_OS_IPHONE := FALSE}
  157. {$setc TARGET_OS_EMBEDDED := FALSE}
  158. {$endc}
  159. {$setc TARGET_IPHONE_SIMULATOR := FALSE}
  160. {$elsec}
  161. {$error __ppc__ nor __ppc64__ nor __i386__ nor __x86_64__ nor __arm__ nor __arm64__ is defined.}
  162. {$endc}
  163. {$ifc defined __LP64__ and __LP64__ }
  164. {$setc TARGET_CPU_64 := TRUE}
  165. {$elsec}
  166. {$setc TARGET_CPU_64 := FALSE}
  167. {$endc}
  168. {$ifc defined FPC_BIG_ENDIAN}
  169. {$setc TARGET_RT_BIG_ENDIAN := TRUE}
  170. {$setc TARGET_RT_LITTLE_ENDIAN := FALSE}
  171. {$elifc defined FPC_LITTLE_ENDIAN}
  172. {$setc TARGET_RT_BIG_ENDIAN := FALSE}
  173. {$setc TARGET_RT_LITTLE_ENDIAN := TRUE}
  174. {$elsec}
  175. {$error Neither FPC_BIG_ENDIAN nor FPC_LITTLE_ENDIAN are defined.}
  176. {$endc}
  177. {$setc ACCESSOR_CALLS_ARE_FUNCTIONS := TRUE}
  178. {$setc CALL_NOT_IN_CARBON := FALSE}
  179. {$setc OLDROUTINENAMES := FALSE}
  180. {$setc OPAQUE_TOOLBOX_STRUCTS := TRUE}
  181. {$setc OPAQUE_UPP_TYPES := TRUE}
  182. {$setc OTCARBONAPPLICATION := TRUE}
  183. {$setc OTKERNEL := FALSE}
  184. {$setc PM_USE_SESSION_APIS := TRUE}
  185. {$setc TARGET_API_MAC_CARBON := TRUE}
  186. {$setc TARGET_API_MAC_OS8 := FALSE}
  187. {$setc TARGET_API_MAC_OSX := TRUE}
  188. {$setc TARGET_CARBON := TRUE}
  189. {$setc TARGET_CPU_68K := FALSE}
  190. {$setc TARGET_CPU_MIPS := FALSE}
  191. {$setc TARGET_CPU_SPARC := FALSE}
  192. {$setc TARGET_OS_UNIX := FALSE}
  193. {$setc TARGET_OS_WIN32 := FALSE}
  194. {$setc TARGET_RT_MAC_68881 := FALSE}
  195. {$setc TARGET_RT_MAC_CFM := FALSE}
  196. {$setc TARGET_RT_MAC_MACHO := TRUE}
  197. {$setc TYPED_FUNCTION_POINTERS := TRUE}
  198. {$setc TYPE_BOOL := FALSE}
  199. {$setc TYPE_EXTENDED := FALSE}
  200. {$setc TYPE_LONGLONG := TRUE}
  201. {$IFDEF FPC_DOTTEDUNITS}
  202. uses MacOsApi.MacTypes,MacOsApi.CTFontDescriptor,MacOsApi.CFBase,MacOsApi.CFArray,MacOsApi.CFDictionary,MacOsApi.CFSet;
  203. {$ELSE FPC_DOTTEDUNITS}
  204. uses MacTypes,CTFontDescriptor,CFBase,CFArray,CFDictionary,CFSet;
  205. {$ENDIF FPC_DOTTEDUNITS}
  206. {$endc} {not MACOSALLINCLUDE}
  207. {$ALIGN POWER}
  208. {!
  209. @header
  210. Thread Safety Information
  211. All functions in this header are thread safe unless otherwise specified.
  212. }
  213. {! --------------------------------------------------------------------------
  214. @group Collection Types
  215. }//--------------------------------------------------------------------------
  216. {!
  217. @typedef CTFontCollectionRef
  218. @abstract The Core Text font collection reference.
  219. @discussion An opaque reference to an immutable font collection.
  220. }
  221. type
  222. CTFontCollectionRef = ^__CTFontCollection; { an opaque type }
  223. __CTFontCollection = record end;
  224. CTFontCollectionRefPTr = ^CTFontCollectionRef;
  225. {!
  226. @typedef CTMutableFontCollectionRef
  227. @abstract The Core Text mutable font collection reference.
  228. @discussion An opaque reference to a mutable font collection.
  229. }
  230. type
  231. CTMutableFontCollectionRef = ^__CTFontCollection;
  232. {!
  233. @function CTFontCollectionGetTypeID
  234. @abstract Returns the type identifier for Core Text font collection references.
  235. @result The identifier for the opaque types CTFontCollectionRef or CTMutableFontCollectionRef.
  236. }
  237. function CTFontCollectionGetTypeID: CFTypeID; external name '_CTFontCollectionGetTypeID';
  238. (* CT_AVAILABLE_STARTING( __MAC_10_5, __IPHONE_3_2) *)
  239. {!
  240. @typedef CTFontCollectionSortDescriptorsCallback
  241. @abstract Collection sorting callback.
  242. @discussion This callback can be specified to obtain the matching font descriptors of a collection in sorted order. Return the appropriate comparison result of first descriptor to second descriptor.
  243. }
  244. type
  245. CTFontCollectionSortDescriptorsCallback = function( first: CTFontDescriptorRef; second: CTFontDescriptorRef; refCon: UnivPtr ): CFComparisonResult;
  246. {! --------------------------------------------------------------------------
  247. @group Collection Matching Options
  248. }//--------------------------------------------------------------------------
  249. {!
  250. @defined kCTFontCollectionRemoveDuplicatesOption
  251. @abstract Option key to specify filtering of duplicates.
  252. @discussion Specify this option key in the options dictionary with a non- zero value to enable automatic filtering of duplicate font descriptors.
  253. }
  254. var kCTFontCollectionRemoveDuplicatesOption: CFStringRef; external name '_kCTFontCollectionRemoveDuplicatesOption'; (* attribute const *)
  255. (* CT_AVAILABLE_STARTING( __MAC_10_5, __IPHONE_3_2) *)
  256. {$ifc TARGET_OS_MAC}
  257. {!
  258. @defined kCTFontCollectionIncludeDisabledOption
  259. @abstract Option key to include disabled fonts in the matching results.
  260. @discussion Specify this option key in the options dictionary with a non-zero value to enable matching of disabled fonts. You can pass font descriptors specifying disabled fonts to CTFontManagerEnableFontDescriptors, but you cannot use such a font descriptor to query font attributes from the system database or create a CTFontRef.
  261. }
  262. var kCTFontCollectionIncludeDisabledFontsOption: CFStringRef; external name '_kCTFontCollectionIncludeDisabledFontsOption'; (* attribute const *)
  263. (* CT_AVAILABLE_STARTING( __MAC_10_7, __IPHONE_NA) *)
  264. {!
  265. @defined kCTFontCollectionDisallowAutoActivationOption
  266. @abstract Option key to avoid auto-activating fonts.
  267. @discussion Specify this option key in the options dictionary with a non-zero value to disallow searches for missing fonts (font descriptors returning no results).
  268. }
  269. var kCTFontCollectionDisallowAutoActivationOption: CFStringRef; external name '_kCTFontCollectionDisallowAutoActivationOption'; (* attribute const *)
  270. (* CT_AVAILABLE_STARTING( __MAC_10_7, __IPHONE_NA) *)
  271. {$endc} { TARGET_OS_MAC }
  272. {! --------------------------------------------------------------------------
  273. @group Collection Creation
  274. }//--------------------------------------------------------------------------
  275. {!
  276. @function CTFontCollectionCreateFromAvailableFonts
  277. @abstract Returns a new font collection matching all available fonts.
  278. @param options
  279. The options dictionary. See constant option keys.
  280. @result This function creates a new collection containing all fonts available to the current application.
  281. }
  282. function CTFontCollectionCreateFromAvailableFonts( options: CFDictionaryRef ): CTFontCollectionRef; external name '_CTFontCollectionCreateFromAvailableFonts';
  283. (* CT_AVAILABLE_STARTING( __MAC_10_5, __IPHONE_3_2) *)
  284. {!
  285. @function CTFontCollectionCreateWithFontDescriptors
  286. @abstract Returns a new collection based on the array of font descriptors.
  287. @param queryDescriptors
  288. An array of font descriptors to use for matching. May be NULL, in which case the matching descriptors will be NULL.
  289. @param options
  290. The options dictionary. See constant option keys.
  291. @result This function creates a new collection based on the provided font descriptors. The contents of this collection is defined by matching the provided descriptors against all available font descriptors.
  292. }
  293. function CTFontCollectionCreateWithFontDescriptors( queryDescriptors: CFArrayRef; options: CFDictionaryRef ): CTFontCollectionRef; external name '_CTFontCollectionCreateWithFontDescriptors';
  294. (* CT_AVAILABLE_STARTING( __MAC_10_5, __IPHONE_3_2) *)
  295. {!
  296. @function CTFontCollectionCreateCopyWithFontDescriptors
  297. @abstract Returns a copy of the original collection augmented with the new font descriptors.
  298. @param original
  299. The original font collection reference.
  300. @param queryDescriptors
  301. An array of font descriptors to augment those of the original collection.
  302. @param options
  303. The options dictionary. See constant option keys.
  304. @result This function creates a copy of the original font collection augmented by the new font descriptors and options. The new font descriptors are merged with the existing descriptors to create a single set.
  305. }
  306. function CTFontCollectionCreateCopyWithFontDescriptors( original: CTFontCollectionRef; queryDescriptors: CFArrayRef; options: CFDictionaryRef ): CTFontCollectionRef; external name '_CTFontCollectionCreateCopyWithFontDescriptors';
  307. (* CT_AVAILABLE_STARTING( __MAC_10_5, __IPHONE_3_2) *)
  308. {$ifc TARGET_OS_MAC}
  309. {!
  310. @function CTFontCollectionCreateMutableCopy
  311. @abstract Returns a mutable copy of the original collection.
  312. @param original
  313. The original font collection reference.
  314. @result This function creates a mutable copy of the original font collection.
  315. }
  316. function CTFontCollectionCreateMutableCopy( original: CTFontCollectionRef ): CTMutableFontCollectionRef; external name '_CTFontCollectionCreateMutableCopy';
  317. (* CT_AVAILABLE_STARTING( __MAC_10_7, __IPHONE_NA) *)
  318. {! --------------------------------------------------------------------------
  319. @group Editing the query descriptors
  320. }//--------------------------------------------------------------------------
  321. {!
  322. @function CTFontCollectionCopyQueryDescriptors
  323. @abstract Returns the array of descriptors to match.
  324. @param collection
  325. The font collection reference.
  326. @result This function returns a retained reference to the array of descriptors to be used to query (match) the system font database. The return value is undefined if CTFontCollectionCreateFromAvailableFonts was used to create the collection.
  327. }
  328. function CTFontCollectionCopyQueryDescriptors( collection: CTFontCollectionRef ): CFArrayRef; external name '_CTFontCollectionCopyQueryDescriptors';
  329. (* CT_AVAILABLE_STARTING( __MAC_10_7, __IPHONE_NA) *)
  330. {!
  331. @function CTFontCollectionSetQueryDescriptors
  332. @abstract Replaces the array of descriptors to match.
  333. @param collection
  334. The font collection reference.
  335. @param descriptors
  336. An array of CTFontDescriptorRef. May be NULL to represent an empty collection, in which case the matching descriptors will also be NULL.
  337. }
  338. procedure CTFontCollectionSetQueryDescriptors( collection: CTMutableFontCollectionRef; descriptors: CFArrayRef ); external name '_CTFontCollectionSetQueryDescriptors';
  339. (* CT_AVAILABLE_STARTING( __MAC_10_7, __IPHONE_NA) *)
  340. {!
  341. @function CTFontCollectionCopyExclusionDescriptors
  342. @abstract Returns the array of descriptors to exclude from the match.
  343. @param collection
  344. The font collection reference.
  345. @result This function returns a retained reference to the array of descriptors to be used to query (match) the system font database.
  346. }
  347. function CTFontCollectionCopyExclusionDescriptors( collection: CTFontCollectionRef ): CFArrayRef; external name '_CTFontCollectionCopyExclusionDescriptors';
  348. (* CT_AVAILABLE_STARTING( __MAC_10_7, __IPHONE_NA) *)
  349. {!
  350. @function CTFontCollectionSetExclusionDescriptors
  351. @abstract Replaces the array of descriptors to exclude from the match.
  352. @param collection
  353. The font collection reference.
  354. @param descriptors
  355. An array of CTFontDescriptorRef. May be NULL.
  356. }
  357. procedure CTFontCollectionSetExclusionDescriptors( collection: CTMutableFontCollectionRef; descriptors: CFArrayRef ); external name '_CTFontCollectionSetExclusionDescriptors';
  358. (* CT_AVAILABLE_STARTING( __MAC_10_7, __IPHONE_NA) *)
  359. {$endc} { TARGET_OS_MAC }
  360. {! --------------------------------------------------------------------------
  361. @group Retrieving Matching Descriptors
  362. }//--------------------------------------------------------------------------
  363. {!
  364. @function CTFontCollectionCreateMatchingFontDescriptors
  365. @abstract Returns an array of font descriptors matching the collection.
  366. @param collection
  367. The font collection reference.
  368. @result This function returns a retained reference to an array of normalized font descriptors matching the collection definition.
  369. }
  370. function CTFontCollectionCreateMatchingFontDescriptors( collection: CTFontCollectionRef ): CFArrayRef; external name '_CTFontCollectionCreateMatchingFontDescriptors';
  371. (* CT_AVAILABLE_STARTING( __MAC_10_5, __IPHONE_3_2) *)
  372. {!
  373. @function CTFontCollectionCreateMatchingFontDescriptorsSortedWithCallback
  374. @abstract Returns the array of matching font descriptors sorted with the callback function.
  375. @param collection
  376. The collection reference.
  377. @param sortCallback
  378. The sorting callback function that defines the sort order.
  379. @param refCon
  380. Pointer to client data define context for the callback.
  381. @result This function returns an array of font descriptors matching the criteria of the collection and sorted by the results of the sorting callback function.
  382. }
  383. function CTFontCollectionCreateMatchingFontDescriptorsSortedWithCallback( collection: CTFontCollectionRef; sortCallback: CTFontCollectionSortDescriptorsCallback; refCon: UnivPtr ): CFArrayRef; external name '_CTFontCollectionCreateMatchingFontDescriptorsSortedWithCallback';
  384. (* CT_AVAILABLE_STARTING( __MAC_10_5, __IPHONE_3_2) *)
  385. {$ifc TARGET_OS_MAC}
  386. {!
  387. @function CTFontCollectionCreateMatchingFontDescriptorsWithOptions
  388. @abstract Returns an array of font descriptors matching the collection.
  389. @param collection
  390. The font collection reference.
  391. @param options
  392. The options dictionary. See constant option keys. May be NULL, in which case this call returns the same results as CTFontCollectionCreateMatchingFontDescriptors, using the options passed in when the collection was created.
  393. @result This function returns a retained reference to an array of normalized font descriptors matching the collection definition.
  394. }
  395. function CTFontCollectionCreateMatchingFontDescriptorsWithOptions( collection: CTFontCollectionRef; options: CFDictionaryRef ): CFArrayRef; external name '_CTFontCollectionCreateMatchingFontDescriptorsWithOptions';
  396. (* CT_AVAILABLE_STARTING( __MAC_10_7, __IPHONE_NA) *)
  397. {!
  398. @function CTFontCollectionCreateMatchingFontDescriptorsForFamily
  399. @abstract Returns an array of font descriptors matching the specified family, one descriptor for each style in the collection.
  400. @param collection
  401. The font collection reference.
  402. @param familyName
  403. The font family name
  404. @result This function returns a retained reference to an array of normalized font descriptors matching the collection definition.
  405. }
  406. function CTFontCollectionCreateMatchingFontDescriptorsForFamily( collection: CTFontCollectionRef; familyName: CFStringRef; options: CFDictionaryRef ): CFArrayRef; external name '_CTFontCollectionCreateMatchingFontDescriptorsForFamily';
  407. (* CT_AVAILABLE_STARTING( __MAC_10_7, __IPHONE_NA) *)
  408. {! --------------------------------------------------------------------------
  409. @group Bulk attribute access
  410. }//--------------------------------------------------------------------------
  411. {!
  412. @enum CTFontCollectionCopyOptions
  413. @abstract Option bits for use with CTFontCollectionCopyFontAttribute(s).
  414. @constant kCTFontCollectionCopyStandardSort
  415. Passing this option indicates that the return values should be sorted in standard UI order, suitable for display to the user. This is the same sorting behavior used by NSFontPanel and Font Book.
  416. @constant kCTFontCollectionCopyUnique
  417. Passing this option indicates that duplicate values should be removed from the results.
  418. }
  419. const
  420. kCTFontCollectionCopyDefaultOptions = 0;
  421. kCTFontCollectionCopyUnique = 1 shl 0;
  422. kCTFontCollectionCopyStandardSort = 1 shl 1;
  423. type
  424. CTFontCollectionCopyOptions = UInt32;
  425. {!
  426. @function CTFontCollectionCopyFontAttribute
  427. @abstract Returns an array of font descriptor attribute values.
  428. @param collection
  429. The font collection reference.
  430. @param attributeName
  431. The attribute to retrieve for each descriptor in the collection.
  432. @param options
  433. Options to alter the return value.
  434. @result This function returns a retained reference to a CFArray, or NULL on error. The caller is reponsible for releasing the array. The array contains one value for each descriptor, in the same order as the results from CTFontCollectionCreateMatchingDescriptors. When the kCTFontCollectionCopyUnique is set, duplicate values will be removed. When kCTFontCollectionCopyStandardSort is set, the values will be sorted in standard UI order.
  435. }
  436. function CTFontCollectionCopyFontAttribute( collection: CTFontCollectionRef; attributeName: CFStringRef; options: CTFontCollectionCopyOptions ): CFArrayRef; external name '_CTFontCollectionCopyFontAttribute';
  437. (* CT_AVAILABLE_STARTING( __MAC_10_7, __IPHONE_NA) *)
  438. {!
  439. @function CTFontCollectionCopyFontAttributes
  440. @abstract Returns an array of dictionaries containing font descriptor attribute values.
  441. @param collection
  442. The font collection reference.
  443. @param attributeNames
  444. The attributes to retrieve for each descriptor in the collection.
  445. @param options
  446. Options to alter the return value.
  447. @result This function returns a retained reference to a CFArray, or NULL on error. The caller is reponsible for releasing the array. The array contains one value for each descriptor, in the same order as the results from CTFontCollectionCreateMatchingDescriptors. When the kCTFontCollectionCopyUnique is set, duplicate values will be removed. When kCTFontCollectionCopyStandardSort is set, the values will be sorted in standard UI order.
  448. }
  449. function CTFontCollectionCopyFontAttributes( collection: CTFontCollectionRef; attributeNames: CFSetRef; options: CTFontCollectionCopyOptions ): CFArrayRef; external name '_CTFontCollectionCopyFontAttributes';
  450. (* CT_AVAILABLE_STARTING( __MAC_10_7, __IPHONE_NA) *)
  451. {$endc} { TARGET_OS_MAC }
  452. {$ifc not defined MACOSALLINCLUDE or not MACOSALLINCLUDE}
  453. end.
  454. {$endc} {not MACOSALLINCLUDE}