12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144214521462147214821492150215121522153215421552156215721582159216021612162216321642165216621672168216921702171217221732174217521762177217821792180218121822183218421852186218721882189219021912192219321942195219621972198219922002201220222032204220522062207220822092210221122122213221422152216221722182219222022212222222322242225222622272228222922302231223222332234223522362237223822392240224122422243224422452246224722482249225022512252225322542255225622572258225922602261226222632264226522662267226822692270227122722273227422752276227722782279228022812282228322842285228622872288228922902291229222932294229522962297229822992300230123022303230423052306230723082309231023112312231323142315231623172318231923202321232223232324232523262327232823292330233123322333233423352336233723382339234023412342234323442345234623472348234923502351235223532354235523562357235823592360236123622363236423652366236723682369237023712372237323742375237623772378237923802381238223832384238523862387238823892390239123922393239423952396239723982399240024012402240324042405240624072408240924102411241224132414241524162417241824192420242124222423242424252426242724282429243024312432243324342435243624372438243924402441244224432444244524462447244824492450245124522453245424552456245724582459246024612462246324642465246624672468246924702471247224732474247524762477247824792480248124822483248424852486248724882489249024912492249324942495249624972498249925002501250225032504250525062507250825092510251125122513251425152516251725182519252025212522252325242525252625272528252925302531253225332534253525362537253825392540254125422543254425452546254725482549255025512552255325542555255625572558255925602561256225632564256525662567256825692570257125722573257425752576257725782579258025812582258325842585258625872588258925902591259225932594259525962597259825992600260126022603260426052606260726082609261026112612261326142615261626172618261926202621262226232624262526262627262826292630263126322633263426352636263726382639264026412642264326442645264626472648264926502651265226532654265526562657265826592660266126622663266426652666266726682669267026712672267326742675267626772678267926802681268226832684268526862687268826892690269126922693269426952696269726982699270027012702270327042705270627072708270927102711271227132714271527162717271827192720272127222723272427252726272727282729273027312732273327342735273627372738273927402741274227432744274527462747274827492750275127522753275427552756275727582759276027612762276327642765276627672768276927702771277227732774277527762777277827792780278127822783278427852786278727882789279027912792279327942795279627972798279928002801280228032804280528062807280828092810281128122813281428152816281728182819282028212822282328242825282628272828282928302831283228332834283528362837283828392840284128422843284428452846284728482849285028512852285328542855285628572858285928602861286228632864286528662867286828692870287128722873287428752876287728782879288028812882288328842885288628872888288928902891289228932894289528962897289828992900290129022903290429052906290729082909291029112912291329142915291629172918291929202921292229232924292529262927292829292930293129322933293429352936293729382939294029412942294329442945294629472948294929502951295229532954295529562957295829592960296129622963296429652966296729682969297029712972297329742975297629772978297929802981298229832984298529862987298829892990299129922993299429952996299729982999300030013002300330043005300630073008300930103011301230133014301530163017301830193020302130223023302430253026302730283029303030313032303330343035303630373038303930403041304230433044304530463047304830493050305130523053305430553056305730583059306030613062306330643065306630673068306930703071307230733074307530763077307830793080308130823083308430853086308730883089309030913092309330943095309630973098309931003101310231033104310531063107310831093110 |
- {
- File: QD/ATSUnicodeObjects.h
-
- Contains: ATSUI object manipulation functions.
-
- Version: Quickdraw-262~1
-
- Copyright: © 2003-2008 by Apple Inc. all rights reserved.
-
- Bugs?: For bug reports, consult the following page on
- the World Wide Web:
-
- http://www.freepascal.org/bugs.html
-
- }
- { Pascal Translation: Peter N Lewis, <[email protected]>, 2004 }
- { Pascal Translation Updated: Jonas Maebe, <[email protected]>, October 2009 }
- {
- Modified for use with Free Pascal
- Version 308
- Please report any bugs to <[email protected]>
- }
- {$ifc not defined MACOSALLINCLUDE or not MACOSALLINCLUDE}
- {$mode macpas}
- {$packenum 1}
- {$macro on}
- {$inline on}
- {$calling mwpascal}
- unit ATSUnicodeObjects;
- interface
- {$setc UNIVERSAL_INTERFACES_VERSION := $0400}
- {$setc GAP_INTERFACES_VERSION := $0308}
- {$ifc not defined USE_CFSTR_CONSTANT_MACROS}
- {$setc USE_CFSTR_CONSTANT_MACROS := TRUE}
- {$endc}
- {$ifc defined CPUPOWERPC and defined CPUI386}
- {$error Conflicting initial definitions for CPUPOWERPC and CPUI386}
- {$endc}
- {$ifc defined FPC_BIG_ENDIAN and defined FPC_LITTLE_ENDIAN}
- {$error Conflicting initial definitions for FPC_BIG_ENDIAN and FPC_LITTLE_ENDIAN}
- {$endc}
- {$ifc not defined __ppc__ and defined CPUPOWERPC32}
- {$setc __ppc__ := 1}
- {$elsec}
- {$setc __ppc__ := 0}
- {$endc}
- {$ifc not defined __ppc64__ and defined CPUPOWERPC64}
- {$setc __ppc64__ := 1}
- {$elsec}
- {$setc __ppc64__ := 0}
- {$endc}
- {$ifc not defined __i386__ and defined CPUI386}
- {$setc __i386__ := 1}
- {$elsec}
- {$setc __i386__ := 0}
- {$endc}
- {$ifc not defined __x86_64__ and defined CPUX86_64}
- {$setc __x86_64__ := 1}
- {$elsec}
- {$setc __x86_64__ := 0}
- {$endc}
- {$ifc not defined __arm__ and defined CPUARM}
- {$setc __arm__ := 1}
- {$elsec}
- {$setc __arm__ := 0}
- {$endc}
- {$ifc defined cpu64}
- {$setc __LP64__ := 1}
- {$elsec}
- {$setc __LP64__ := 0}
- {$endc}
- {$ifc defined __ppc__ and __ppc__ and defined __i386__ and __i386__}
- {$error Conflicting definitions for __ppc__ and __i386__}
- {$endc}
- {$ifc defined __ppc__ and __ppc__}
- {$setc TARGET_CPU_PPC := TRUE}
- {$setc TARGET_CPU_PPC64 := FALSE}
- {$setc TARGET_CPU_X86 := FALSE}
- {$setc TARGET_CPU_X86_64 := FALSE}
- {$setc TARGET_CPU_ARM := FALSE}
- {$setc TARGET_OS_MAC := TRUE}
- {$setc TARGET_OS_IPHONE := FALSE}
- {$setc TARGET_IPHONE_SIMULATOR := FALSE}
- {$elifc defined __ppc64__ and __ppc64__}
- {$setc TARGET_CPU_PPC := FALSE}
- {$setc TARGET_CPU_PPC64 := TRUE}
- {$setc TARGET_CPU_X86 := FALSE}
- {$setc TARGET_CPU_X86_64 := FALSE}
- {$setc TARGET_CPU_ARM := FALSE}
- {$setc TARGET_OS_MAC := TRUE}
- {$setc TARGET_OS_IPHONE := FALSE}
- {$setc TARGET_IPHONE_SIMULATOR := FALSE}
- {$elifc defined __i386__ and __i386__}
- {$setc TARGET_CPU_PPC := FALSE}
- {$setc TARGET_CPU_PPC64 := FALSE}
- {$setc TARGET_CPU_X86 := TRUE}
- {$setc TARGET_CPU_X86_64 := FALSE}
- {$setc TARGET_CPU_ARM := FALSE}
- {$ifc defined(iphonesim)}
- {$setc TARGET_OS_MAC := FALSE}
- {$setc TARGET_OS_IPHONE := TRUE}
- {$setc TARGET_IPHONE_SIMULATOR := TRUE}
- {$elsec}
- {$setc TARGET_OS_MAC := TRUE}
- {$setc TARGET_OS_IPHONE := FALSE}
- {$setc TARGET_IPHONE_SIMULATOR := FALSE}
- {$endc}
- {$elifc defined __x86_64__ and __x86_64__}
- {$setc TARGET_CPU_PPC := FALSE}
- {$setc TARGET_CPU_PPC64 := FALSE}
- {$setc TARGET_CPU_X86 := FALSE}
- {$setc TARGET_CPU_X86_64 := TRUE}
- {$setc TARGET_CPU_ARM := FALSE}
- {$setc TARGET_OS_MAC := TRUE}
- {$setc TARGET_OS_IPHONE := FALSE}
- {$setc TARGET_IPHONE_SIMULATOR := FALSE}
- {$elifc defined __arm__ and __arm__}
- {$setc TARGET_CPU_PPC := FALSE}
- {$setc TARGET_CPU_PPC64 := FALSE}
- {$setc TARGET_CPU_X86 := FALSE}
- {$setc TARGET_CPU_X86_64 := FALSE}
- {$setc TARGET_CPU_ARM := TRUE}
- { will require compiler define when/if other Apple devices with ARM cpus ship }
- {$setc TARGET_OS_MAC := FALSE}
- {$setc TARGET_OS_IPHONE := TRUE}
- {$setc TARGET_IPHONE_SIMULATOR := FALSE}
- {$elsec}
- {$error __ppc__ nor __ppc64__ nor __i386__ nor __x86_64__ nor __arm__ is defined.}
- {$endc}
- {$ifc defined __LP64__ and __LP64__ }
- {$setc TARGET_CPU_64 := TRUE}
- {$elsec}
- {$setc TARGET_CPU_64 := FALSE}
- {$endc}
- {$ifc defined FPC_BIG_ENDIAN}
- {$setc TARGET_RT_BIG_ENDIAN := TRUE}
- {$setc TARGET_RT_LITTLE_ENDIAN := FALSE}
- {$elifc defined FPC_LITTLE_ENDIAN}
- {$setc TARGET_RT_BIG_ENDIAN := FALSE}
- {$setc TARGET_RT_LITTLE_ENDIAN := TRUE}
- {$elsec}
- {$error Neither FPC_BIG_ENDIAN nor FPC_LITTLE_ENDIAN are defined.}
- {$endc}
- {$setc ACCESSOR_CALLS_ARE_FUNCTIONS := TRUE}
- {$setc CALL_NOT_IN_CARBON := FALSE}
- {$setc OLDROUTINENAMES := FALSE}
- {$setc OPAQUE_TOOLBOX_STRUCTS := TRUE}
- {$setc OPAQUE_UPP_TYPES := TRUE}
- {$setc OTCARBONAPPLICATION := TRUE}
- {$setc OTKERNEL := FALSE}
- {$setc PM_USE_SESSION_APIS := TRUE}
- {$setc TARGET_API_MAC_CARBON := TRUE}
- {$setc TARGET_API_MAC_OS8 := FALSE}
- {$setc TARGET_API_MAC_OSX := TRUE}
- {$setc TARGET_CARBON := TRUE}
- {$setc TARGET_CPU_68K := FALSE}
- {$setc TARGET_CPU_MIPS := FALSE}
- {$setc TARGET_CPU_SPARC := FALSE}
- {$setc TARGET_OS_UNIX := FALSE}
- {$setc TARGET_OS_WIN32 := FALSE}
- {$setc TARGET_RT_MAC_68881 := FALSE}
- {$setc TARGET_RT_MAC_CFM := FALSE}
- {$setc TARGET_RT_MAC_MACHO := TRUE}
- {$setc TYPED_FUNCTION_POINTERS := TRUE}
- {$setc TYPE_BOOL := FALSE}
- {$setc TYPE_EXTENDED := FALSE}
- {$setc TYPE_LONGLONG := TRUE}
- uses MacTypes,ATSUnicodeTypes,TextCommon,SFNTLayoutTypes;
- {$endc} {not MACOSALLINCLUDE}
- {$ifc TARGET_OS_MAC}
- {$ALIGN POWER}
- { ---------------------------------------------------------------------------- }
- { ATSUI basic style functions }
- { ---------------------------------------------------------------------------- }
- {
- * ATSUCreateStyle() *** DEPRECATED ***
- *
- * Deprecated:
- * Use CTFontCopyGraphicsFont, CTFontCreateWithGraphicsFont,
- * CTFontCreateWithPlatformFont, CTFontCreateWithQuickdrawInstance,
- * CTFontCreateUIFontForLanguage, CTFontCreateCopyWithAttributes,
- * CTFontCreateCopyWithSymbolicTraits, CTFontCreateCopyWithFamily,
- * CTFontCreateForString, CTFontCreateWithName, or
- * CTFontCreateWithFontDescriptor instead.
- *
- * Summary:
- * Creates an ATSUStyle object with default settings.
- *
- * Discussion:
- * ATSUStyle objects created by this function have a default set of
- * values for all attributes. The attributes include settings such
- * as font, point size, color and so on. You can change the
- * attributes of a style object by calling the function
- * ATSUSetAttributes. You can also change font features and
- * variations set in an ATSUStyle by calling the functions
- * ATSUSetFontFeatures and ATSUSetVariations, respectively.
- * ATSUStyle objects are used by associating them with a run of
- * characters in an ATSUTextLayout object. You can do this by
- * calling functions such as ATSUSetRunStyle or
- * ATSUCreateTextLayoutWithTextPtr. You are responsible for freeing
- * memory assoicated with an ATSUStyle object by calling
- * ATSUDisposeStyle.
- *
- * Parameters:
- *
- * oStyle:
- * On return, a reference to an ATSUStyle object with default
- * settings.
- *
- * Result:
- * On success, noErr is returned. See MacErrors.h for possible error
- * codes.
- *
- * Availability:
- * Mac OS X: in version 10.0 and later in ApplicationServices.framework but deprecated in 10.6
- * CarbonLib: in CarbonLib 1.0 and later
- * Non-Carbon CFM: in ATSUnicodeLib 8.5 and later
- }
- function ATSUCreateStyle( var oStyle: ATSUStyle ): OSStatus; external name '_ATSUCreateStyle';
- (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_6 *)
- {$ifc not TARGET_CPU_64}
- {
- * ATSUCreateAndCopyStyle() *** DEPRECATED ***
- *
- * Deprecated:
- * Use CTFontCopyGraphicsFont, CTFontCreateWithGraphicsFont,
- * CTFontCreateWithPlatformFont, CTFontCreateWithQuickdrawInstance,
- * CTFontCreateUIFontForLanguage, CTFontCreateCopyWithAttributes,
- * CTFontCreateCopyWithSymbolicTraits, CTFontCreateCopyWithFamily,
- * CTFontCreateForString, CTFontCreateWithName, or
- * CTFontCreateWithFontDescriptor instead.
- *
- * Summary:
- * Creates a new ATSUStyle object with the same attributes, font
- * features, and font variation settings as the input style.
- *
- * Discussion:
- * All attributes, font features, and font variation settings of the
- * input ATSUStyle object are copied over to a newly created
- * ATSUStyle object. Note that reference constants are not copied.
- * You are responsible for freeing memory assoicated with the
- * returned ATSUStyle object by calling ATSUDisposeStyle.
- *
- * Parameters:
- *
- * iStyle:
- * The ATSUStyle object you want to copy.
- *
- * oStyle:
- * On return, a newly created ATSUStyle object. This will be an
- * exact copy of iStyle, except for the reference constant (if
- * set).
- *
- * Result:
- * On success, noErr is returned. See MacErrors.h for possible error
- * codes.
- *
- * Availability:
- * Mac OS X: in version 10.0 and later in ApplicationServices.framework [32-bit only] but deprecated in 10.6
- * CarbonLib: in CarbonLib 1.0 and later
- * Non-Carbon CFM: in ATSUnicodeLib 8.5 and later
- }
- function ATSUCreateAndCopyStyle( iStyle: ATSUStyle; var oStyle: ATSUStyle ): OSStatus; external name '_ATSUCreateAndCopyStyle';
- (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_6 *)
- {$endc} {not TARGET_CPU_64}
- {
- * ATSUDisposeStyle() *** DEPRECATED ***
- *
- * Deprecated:
- * Use CoreText API and CFRelease instead.
- *
- * Summary:
- * Disposes of the memory associated with a style object.
- *
- * Discussion:
- * The ATSUDisposeStyle function frees the memory associated with
- * the specified style object and its internal structures, including
- * style run attributes. It does not dispose of the memory pointed
- * to by application-defined style run attributes or reference
- * constants. You are responsible for doing so. You should call this
- * function after calling the function ATSUDisposeTextLayout to
- * dispose of any text layout objects associated with the style
- * object. For best performance, once you create a style object, you
- * should keep it and use it as often as needed. You should dispose
- * of the style object only when it is no longer needed in your
- * application.
- *
- * Parameters:
- *
- * iStyle:
- * The style you want to dispose of.
- *
- * Result:
- * On success, noErr is returned. See MacErrors.h for possible error
- * codes.
- *
- * Availability:
- * Mac OS X: in version 10.0 and later in ApplicationServices.framework but deprecated in 10.6
- * CarbonLib: in CarbonLib 1.0 and later
- * Non-Carbon CFM: in ATSUnicodeLib 8.5 and later
- }
- function ATSUDisposeStyle( iStyle: ATSUStyle ): OSStatus; external name '_ATSUDisposeStyle';
- (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_6 *)
- {$ifc not TARGET_CPU_64}
- {
- * ATSUSetStyleRefCon() *** DEPRECATED ***
- *
- * Deprecated:
- * Use CTFontDescriptorCopyAttributes instead.
- *
- * Summary:
- * Sets a reference constant for an ATSUStyle object.
- *
- * Discussion:
- * Reference constants are any 32-bit value you wish to associate
- * with an object. It can be a pointer to application-specific data,
- * a integer value, or anything you like. If you copy or clear a
- * style object that contains a reference constant, the reference
- * constant is neither copied nor removed. To obtain the reference
- * constant for a particular ATSUStyle object after it has been set,
- * use the function ATSUGetStyleRefCon.
- *
- * Parameters:
- *
- * iStyle:
- * An ATSUStyle object you want to set the reference constant for.
- *
- * iRefCon:
- * Any arbitrary 32-bit value containing or referring to
- * application-specific data.
- *
- * Result:
- * On success, noErr is returned. See MacErrors.h for possible error
- * codes.
- *
- * Availability:
- * Mac OS X: in version 10.0 and later in ApplicationServices.framework [32-bit only] but deprecated in 10.6
- * CarbonLib: in CarbonLib 1.0 and later
- * Non-Carbon CFM: in ATSUnicodeLib 8.5 and later
- }
- function ATSUSetStyleRefCon( iStyle: ATSUStyle; iRefCon: URefCon ): OSStatus; external name '_ATSUSetStyleRefCon';
- (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_6 *)
- {
- * ATSUGetStyleRefCon() *** DEPRECATED ***
- *
- * Deprecated:
- * Use CTFontDescriptorCopyAttributes instead.
- *
- * Summary:
- * Returns the reference constant for an ATSUStyle object.
- *
- * Discussion:
- * Together with ATSUSetStyleRefCon, this function provides a
- * mechanism for keeping application-specific data associated with
- * ATSUStyle objects. Note that if an ATSUStyle object is copied or
- * cleared, its associated reference constant, if any, is not copied
- * or cleared.
- *
- * Parameters:
- *
- * iStyle:
- * The style object for which to obtain application-specific data.
- *
- * oRefCon:
- * On return, the reference constant for iStyle.
- *
- * Result:
- * On success, noErr is returned. If no reference constant is set in
- * iStyle, paramErr is returned. See MacErrors.h for other possible
- * error codes.
- *
- * Availability:
- * Mac OS X: in version 10.0 and later in ApplicationServices.framework [32-bit only] but deprecated in 10.6
- * CarbonLib: in CarbonLib 1.0 and later
- * Non-Carbon CFM: in ATSUnicodeLib 8.5 and later
- }
- function ATSUGetStyleRefCon( iStyle: ATSUStyle; var oRefCon: URefCon ): OSStatus; external name '_ATSUGetStyleRefCon';
- (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_6 *)
- { ---------------------------------------------------------------------------- }
- { ATSUI style comparison }
- { ---------------------------------------------------------------------------- }
- {
- * ATSUCompareStyles() *** DEPRECATED ***
- *
- * Deprecated:
- * Use CTFontDescriptorCreateMatchingFontDescriptor instead.
- *
- * Summary:
- * Compares two ATSUStyleObjects.
- *
- * Discussion:
- * The ATSUCompareStyles function compares the contents of two style
- * objects, including their style attributes, font features, and
- * font variations. It does not consider reference constants or
- * application-defined style attributes in the comparison. Note that
- * order is important, as the ATSUStyleComparison constants that can
- * be returned indicate "contains" vs. "contained by" based on which
- * style is considered first in the comparsion.
- *
- * Parameters:
- *
- * iFirstStyle:
- * The first style to be compared.
- *
- * iSecondStyle:
- * The second style to be compared.
- *
- * oComparison:
- * On return, the value contains the results of the comparison and
- * indicates whether the two style objects are the same,
- * different, or if one is a subset of the other. See the
- * definition of the ATSUStyleComparison type for more information
- * on possible values returned for this parameter.
- *
- * Result:
- * On success, noErr is returned. See MacErrors.h for possible error
- * codes.
- *
- * Availability:
- * Mac OS X: in version 10.0 and later in ApplicationServices.framework [32-bit only] but deprecated in 10.6
- * CarbonLib: in CarbonLib 1.0 and later
- * Non-Carbon CFM: in ATSUnicodeLib 8.5 and later
- }
- function ATSUCompareStyles( iFirstStyle: ATSUStyle; iSecondStyle: ATSUStyle; var oComparison: ATSUStyleComparison ): OSStatus; external name '_ATSUCompareStyles';
- (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_6 *)
- { ---------------------------------------------------------------------------- }
- { ATSUI style attribute manipulation }
- { ---------------------------------------------------------------------------- }
- {
- * ATSUCopyAttributes() *** DEPRECATED ***
- *
- * Deprecated:
- * Use CTFontDescriptorCreateCopyWithAttributes instead.
- *
- * Summary:
- * Copies attributes from one style to another.
- *
- * Discussion:
- * There are three types of settings in a style: attributes, font
- * features, and font variations. This function copies only the
- * first. To copy all three types of settings, use the function
- * ATSUCreateAndCopyStyle. Also note that this function does not
- * copy reference constants.
- *
- * Parameters:
- *
- * iSourceStyle:
- * The style whose attributes you are copying from.
- *
- * iDestinationStyle:
- * The style whose attributes you are copying to.
- *
- * Result:
- * On success, noErr is returned. See MacErrors.h for possible error
- * codes.
- *
- * Availability:
- * Mac OS X: in version 10.0 and later in ApplicationServices.framework [32-bit only] but deprecated in 10.6
- * CarbonLib: in CarbonLib 1.0 and later
- * Non-Carbon CFM: in ATSUnicodeLib 8.5 and later
- }
- function ATSUCopyAttributes( iSourceStyle: ATSUStyle; iDestinationStyle: ATSUStyle ): OSStatus; external name '_ATSUCopyAttributes';
- (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_6 *)
- {
- * ATSUOverwriteAttributes() *** DEPRECATED ***
- *
- * Deprecated:
- * Use CTFontDescriptorCreateCopyWithAttributes instead.
- *
- * Summary:
- * Copies to a destination style object the nondefault style
- * attribute settings of a source style object.
- *
- * Discussion:
- * The ATSUOverwriteAttributes function copies all nondefault style
- * attribute values from a source style object to a destination
- * style object. The source object's nondefault values are applied
- * to the destination object whether or not the destination object
- * also has nondefault values for the copied attributes. All other
- * settings in the destination style object are left unchanged.
- * ATSUOverwriteAttributes does not copy the contents of memory
- * referenced by pointers within custom style attributes or within
- * reference constants. You are responsible for ensuring that this
- * memory remains valid until both the source and destination style
- * objects are disposed of. To create a style object that contains
- * all the contents of another style object, call the function
- * ATSUCreateAndCopyStyle. To copy all the style attributes
- * (including any default settings) of a style object into an
- * existing style object, call the function ATSUCopyAttributes. To
- * copy style attributes that are set in the source but not in the
- * destination style object, call the function
- * ATSUUnderwriteAttributes.
- *
- * Parameters:
- *
- * iSourceStyle:
- * An ATSUStyle value specifying the style object from which to
- * copy nondefault style attributes.
- *
- * iDestinationStyle:
- * An ATSUStyle value specifying the style object containing the
- * style attributes to be overwritten.
- *
- * Result:
- * On success, noErr is returned. See MacErrors.h for possible error
- * codes.
- *
- * Availability:
- * Mac OS X: in version 10.0 and later in ApplicationServices.framework [32-bit only] but deprecated in 10.6
- * CarbonLib: in CarbonLib 1.0 and later
- * Non-Carbon CFM: in ATSUnicodeLib 8.5 and later
- }
- function ATSUOverwriteAttributes( iSourceStyle: ATSUStyle; iDestinationStyle: ATSUStyle ): OSStatus; external name '_ATSUOverwriteAttributes';
- (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_6 *)
- {
- * ATSUUnderwriteAttributes() *** DEPRECATED ***
- *
- * Deprecated:
- * Use CTFontDescriptorCreateCopyWithAttributes instead.
- *
- * Summary:
- * Copies to a destination style object only those nondefault style
- * attribute settings of a source style object that are at default
- * settings in the destination object.
- *
- * Discussion:
- * The ATSUUnderwriteAttributes function copies to a destination
- * style object only those nondefault style attribute values of a
- * source style object that are not currently set in a destination
- * style object. Note that the corresponding value in the
- * destination object must not be set in order for a copied value to
- * be applied. All other quantities in the destination style object
- * are left unchanged. ATSUUnderwriteAttributes does not copy the
- * contents of memory referenced by pointers within custom style
- * attributes or within reference constants. You are responsible for
- * ensuring that this memory remains valid until both the source and
- * destination style objects are disposed of. To create a style
- * object that contains all the contents of another style object,
- * call the function ATSUCreateAndCopyStyle. To copy all the style
- * attributes (including any default settings) of a style object
- * into an existing style object, call the function
- * ATSUCopyAttributes. To copy style attributes that are set in the
- * source whether or not they are set in the destination style
- * object, call the function ATSUOverwriteAttributes.
- *
- * Parameters:
- *
- * iSourceStyle:
- * An ATSUStyle value specifying the style object from which to
- * copy nondefault style attributes.
- *
- * iDestinationStyle:
- * An ATSUStyle value specifying the style object containing style
- * attribute values to be set.
- *
- * Result:
- * On success, noErr is returned. See MacErrors.h for possible error
- * codes.
- *
- * Availability:
- * Mac OS X: in version 10.0 and later in ApplicationServices.framework [32-bit only] but deprecated in 10.6
- * CarbonLib: in CarbonLib 1.0 and later
- * Non-Carbon CFM: in ATSUnicodeLib 8.5 and later
- }
- function ATSUUnderwriteAttributes( iSourceStyle: ATSUStyle; iDestinationStyle: ATSUStyle ): OSStatus; external name '_ATSUUnderwriteAttributes';
- (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_6 *)
- { ---------------------------------------------------------------------------- }
- { Empty ATSUI styles }
- { ---------------------------------------------------------------------------- }
- {
- * ATSUClearStyle() *** DEPRECATED ***
- *
- * Deprecated:
- * Use CoreText API and CFRelease instead.
- *
- * Summary:
- * Restores default values to a style object.
- *
- * Discussion:
- * Clears a style object of all style attributes (including any
- * application-defined attributes), font features, and font
- * variations and returns these values to their default settings. To
- * clear attributes, font features, or font variations individually,
- * use the functions ATSUClearAttributes, ATSUClearFontVariations,
- * or ATSUClearFontFeatures, respectively. Note that ATSUClearStyle
- * does not affect Reference constants.
- *
- * Parameters:
- *
- * iStyle:
- * The style to be cleared.
- *
- * Result:
- * On success, noErr is returned. See MacErrors.h for possible error
- * codes.
- *
- * Availability:
- * Mac OS X: in version 10.0 and later in ApplicationServices.framework [32-bit only] but deprecated in 10.6
- * CarbonLib: in CarbonLib 1.0 and later
- * Non-Carbon CFM: in ATSUnicodeLib 8.5 and later
- }
- function ATSUClearStyle( iStyle: ATSUStyle ): OSStatus; external name '_ATSUClearStyle';
- (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_6 *)
- {
- * ATSUStyleIsEmpty() *** DEPRECATED ***
- *
- * Deprecated:
- * Use CoreText API instead.
- *
- * Summary:
- * Indicates whether a style object contains only default values.
- *
- * Discussion:
- * You can call the ATSUStyleIsEmpty function to determine whether a
- * style object contains only default values for style attributes,
- * font features, and font variations. ATSUStyleIsEmpty does not
- * consider reference constants in its evaluation.
- *
- * Parameters:
- *
- * iStyle:
- * An ATSUStyle value specifying the style object to examine.
- *
- * oIsClear:
- * On return, the value is set to true if the style object
- * contains only default values for style attributes, font
- * features, and font variations. If false , the style object
- * contains one or more nondefault values for style attributes,
- * font features, or font variations. Reference constants do not
- * affect this result.
- *
- * Result:
- * On success, noErr is returned. See MacErrors.h for possible error
- * codes.
- *
- * Availability:
- * Mac OS X: in version 10.0 and later in ApplicationServices.framework [32-bit only] but deprecated in 10.6
- * CarbonLib: in CarbonLib 1.0 and later
- * Non-Carbon CFM: in ATSUnicodeLib 8.5 and later
- }
- function ATSUStyleIsEmpty( iStyle: ATSUStyle; var oIsClear: Boolean ): OSStatus; external name '_ATSUStyleIsEmpty';
- (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_6 *)
- { ---------------------------------------------------------------------------- }
- { ATSUI style attribute getters and setters }
- { ---------------------------------------------------------------------------- }
- {
- * ATSUCalculateBaselineDeltas() *** DEPRECATED ***
- *
- * Deprecated:
- * Use CoreText API instead.
- *
- * Summary:
- * Obtains the optimal baseline positions for glyphs in a style run.
- *
- * Discussion:
- * Depending on the writing system, a baseline may be above, below,
- * or through the centers of glyphs. In general, a style run has a
- * default baseline, to which all glyphs are visually aligned when
- * the text is laid out. For example, in a run of Roman text, the
- * default baseline is the Roman baseline, upon which glyphs sit
- * (except for descenders, which extend below the baseline). You can
- * call the ATSUCalculateBaselineDeltas function to obtain the
- * distances from a specified baseline type to that of other
- * baseline types for a given style object.
- * ATSUCalculateBaselineDeltas takes into account font and text size
- * when performing these calculations. ATSUI uses these distances to
- * determine the cross-stream shifting to apply when aligning glyphs
- * in a style run. You can use the resulting array to set or obtain
- * the optimal baseline positions of glyphs in a style run. You can
- * also set various baseline values to create special effects such
- * as drop capitals. The functions ATSUSetLineControls and
- * ATSUSetLayoutControls allow you to set baseline offset values at
- * the line or layout level, respectively, using the
- * kATSULineBaselineValuesTag control attribute tag.
- *
- * Parameters:
- *
- * iStyle:
- * An ATSUStyle value specifying the style object to examine.
- *
- * iBaselineClass:
- * A BslnBaselineClass constant identifying the primary baseline
- * from which to measure other baselines. See SFNTLayoutTypes.h
- * for an enumeration of possible values. Pass the constant
- * kBSLNNoBaselineOverride to use the standard baseline value from
- * the current font.
- *
- * oBaselineDeltas:
- * On return, an array that contains baseline offsets, specifying
- * distances measured in points, from the default baseline to each
- * of the other baseline types in the style object. Positive
- * values indicate baselines above the default baseline and
- * negative values indicate baselines below it. See
- * SFNTLayoutTypes.h for a description of the BslnBaselineRecord
- * type.
- *
- * Result:
- * On success, noErr is returned. See MacErrors.h for possible error
- * codes.
- *
- * Availability:
- * Mac OS X: in version 10.0 and later in ApplicationServices.framework [32-bit only] but deprecated in 10.6
- * CarbonLib: in CarbonLib 1.0 and later
- * Non-Carbon CFM: in ATSUnicodeLib 8.5 and later
- }
- function ATSUCalculateBaselineDeltas( iStyle: ATSUStyle; iBaselineClass: BslnBaselineClass; oBaselineDeltas: BslnBaselineRecord ): OSStatus; external name '_ATSUCalculateBaselineDeltas';
- (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_6 *)
- {$endc} {not TARGET_CPU_64}
- {
- * ATSUSetAttributes() *** DEPRECATED ***
- *
- * Deprecated:
- * Use CTFontDescriptorCreateWithNameAndSize,
- * CTFontDescriptorCreateWithAttributes, or
- * CTFontDescriptorCreateCopyWithAttributes instead.
- *
- * Summary:
- * Sets style attribute values in a style object.
- *
- * Discussion:
- * Style attributes are a collection of values and settings that
- * specify information about a style such as font, point size, and
- * color. To specify a style attribute, ATSUI uses a "triple"
- * consisting of (1) an attribute tag, (2) a value for that tag, and
- * (3) the size of the value. For a list of possible tags and their
- * default values, see the ATSUI documentation, or the definition of
- * ATSUAttributeTag elsewhere in this header file. When you call
- * ATSUSetAttributes, any style attributes that you do not set
- * retain their previous values. To set font features and font
- * variations, call the functions ATSUSetFontFeatures and
- * ATSUSetVariations, respectively.
- *
- * Parameters:
- *
- * iStyle:
- * A style in which to set attributes.
- *
- * iAttributeCount:
- * An ItemCount value specifying the number of attributes to set.
- * This value should correspond to the number of elements in the
- * iTag, iValueSize, and iValue arrays.
- *
- * iTag:
- * An array of attribute tags. The number of elements in this
- * array must not be less than iAttributeCount. Each element in
- * the array must contain a valid style attribute tag (see the
- * definition of ATSUAttributeTag for possible values).
- *
- * iValueSize:
- * An array of ByteCount values. The number of elements in this
- * array must not be less than iAttributeCount. Each ByteCount
- * value corresoponds to the size of an element referred to by a
- * pointer in the iValue array.
- *
- * iValue:
- * An array of pointers of type ATSUAttributeValuePtr. Each
- * pointer referrs to a value that corresponds to a tag specified
- * by the iTag array. The size of the data referred to is
- * determined by a corresponding element in the iValueSize array.
- * The number of elements in this array must not be less than
- * iAttributeCount.
- *
- * Result:
- * On success, noErr is returned. See MacErrors.h for possible error
- * codes.
- *
- * Availability:
- * Mac OS X: in version 10.0 and later in ApplicationServices.framework but deprecated in 10.6
- * CarbonLib: in CarbonLib 1.0 and later
- * Non-Carbon CFM: in ATSUnicodeLib 8.5 and later
- }
- function ATSUSetAttributes( iStyle: ATSUStyle; iAttributeCount: ItemCount; {const} iTag: {variable-size-array} ATSUAttributeTagPtr; {const} iValueSize: {variable-size-array} ByteCountPtr; {const} iValue: {variable-size-array} ATSUAttributeValuePtrPtr ): OSStatus; external name '_ATSUSetAttributes';
- (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_6 *)
- {$ifc not TARGET_CPU_64}
- {
- * ATSUGetAttribute() *** DEPRECATED ***
- *
- * Deprecated:
- * Use CTFontDescriptorCopyAttribute instead.
- *
- * Summary:
- * Obtains a single attribute value for a style object.
- *
- * Discussion:
- * The ATSUGetAttribute function obtains the value of a specified
- * style attribute for a given style object. Before calling
- * ATSUGetAttribute, you should call the function
- * ATSUGetAllAttributes to obtain an array of nondefault style
- * attribute tags and value sizes for the style object. You can then
- * pass ATSUGetAttribute the tag and value size for the attribute
- * value to obtain. This function may return kATSUNotSetErr for some
- * attributes that have not been set to a non-default via a call to
- * ATSUSetAttributes.
- *
- * Parameters:
- *
- * iStyle:
- * The style object you with to retrieve an attribute value from.
- *
- * iTag:
- * The tag you wish to obtain the value of.
- *
- * iExpectedValueSize:
- * The size of the buffer pointed to by oValue.
- *
- * oValue:
- * On input, a buffer you have allocated to retain the value of
- * the specified attribute. On return, the value of the requested
- * attribute will be placed here. You may pass NULL for this
- * parameter.
- *
- * oActualValueSize:
- * On return, the actual number of bytes written to oValue is
- * placed here. You may pass NULL for this parameter.
- *
- * Result:
- * On success, noErr is returned. See MacErrors.h for possible error
- * codes.
- *
- * Availability:
- * Mac OS X: in version 10.0 and later in ApplicationServices.framework [32-bit only] but deprecated in 10.6
- * CarbonLib: in CarbonLib 1.0 and later
- * Non-Carbon CFM: in ATSUnicodeLib 8.5 and later
- }
- function ATSUGetAttribute( iStyle: ATSUStyle; iTag: ATSUAttributeTag; iExpectedValueSize: ByteCount; oValue: ATSUAttributeValuePtr { can be NULL }; oActualValueSize: ByteCountPtr { can be NULL } ): OSStatus; external name '_ATSUGetAttribute';
- (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_6 *)
- {
- * ATSUGetAllAttributes() *** DEPRECATED ***
- *
- * Deprecated:
- * Use CTFontDescriptorCopyAttributes instead.
- *
- * Summary:
- * Obtains an array of style attribute tags and value sizes for a
- * style object.
- *
- * Discussion:
- * This function returns information as to which attributes have had
- * non-default values set in a particular ATSUStyle object. It will
- * also return the size in bytes of the values of these attributes.
- * Using this information, you can then call ATSUGetAttribute to
- * obtain the value of a given attribute. Typically you use the
- * function ATSUGetAllAttributes by calling it twice, as follows:
- * (1) Pass a reference to the style object to examine in the iStyle
- * parameter, a valid pointer to an ItemCount value in the
- * oTagValuePairCount parameter, NULL for the oAttributeInfoArray
- * parameter, and 0 for the iTagValuePairArraySize parameter.
- * ATSUGetAllAttributes returns the size of the tag and value-size
- * arrays in the oTagValuePairCount parameter. (2) Allocate enough
- * space for an array of the returned size, then call the
- * ATSUGetAllAttributes function again, passing a valid pointer in
- * the oAttributeInfoArray parameter. On return, the pointer refers
- * to an array of the style attribute tag and value-size pairs
- * contained in the style object.
- *
- * Parameters:
- *
- * iStyle:
- * The style object you wish to retrieve a list of attribute tags
- * from.
- *
- * oAttributeInfoArray:
- * On return, an array of ATSUAttributeInfo structures. Each
- * structure contains information about an attribute in iStyle
- * that has a non-default value. You must allocate space for this
- * array. If you are unsure how much space to allocate, you may
- * pass NULL for this parameter and use the oTagValuePairCount
- * parameter to determine how much space to allocate.
- *
- * iTagValuePairArraySize:
- * The size of the array you allocated and are passing in for the
- * oAttributeInfoArray parameter.
- *
- * oTagValuePairCount:
- * On return, the number of attributes whose information was
- * stored in the oAttributeInfoArray parameter.
- *
- * Result:
- * On success, noErr is returned. See MacErrors.h for possible error
- * codes.
- *
- * Availability:
- * Mac OS X: in version 10.0 and later in ApplicationServices.framework [32-bit only] but deprecated in 10.6
- * CarbonLib: in CarbonLib 1.0 and later
- * Non-Carbon CFM: in ATSUnicodeLib 8.5 and later
- }
- function ATSUGetAllAttributes( iStyle: ATSUStyle; oAttributeInfoArray: {variable-size-array} ATSUAttributeInfoPtr { can be NULL }; iTagValuePairArraySize: ItemCount; oTagValuePairCount: ItemCountPtr { can be NULL } ): OSStatus; external name '_ATSUGetAllAttributes';
- (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_6 *)
- {
- * ATSUClearAttributes() *** DEPRECATED ***
- *
- * Deprecated:
- * Use CoreText API and CFRelease instead.
- *
- * Summary:
- * Restores default values to the specified style attributes of a
- * style object.
- *
- * Discussion:
- * Removes those style attribute values identified by the tag
- * constants in the iTag array and replaces them with the default
- * values. For a list of possible tags and their default values, see
- * the ATSUI documentation, or the definition of ATSUAttributeTag
- * elsewhere in this header file. If you specify that any currently
- * unset attribute values be removed, ATSUClearAttributes does not
- * return an error. Note this function only deals with attributes.
- * To remove all previously set style attributes as well as font
- * features and font variations from a style object, call the
- * function ATSUClearStyle.
- *
- * Parameters:
- *
- * iStyle:
- * A style whose attributes you want to clear.
- *
- * iTagCount:
- * The number of tags you are passing in via the iTag parameter.
- * Pass kATSUClearAll to clear all attributes.
- *
- * iTag:
- * An array of ATSUAttributeTag indicating which attributes to
- * clear. You may pass NULL for this parameter if you are passing
- * kATSUClearAll for the iTagCount parameter.
- *
- * Result:
- * On success, noErr is returned. See MacErrors.h for possible error
- * codes.
- *
- * Availability:
- * Mac OS X: in version 10.0 and later in ApplicationServices.framework [32-bit only] but deprecated in 10.6
- * CarbonLib: in CarbonLib 1.0 and later
- * Non-Carbon CFM: in ATSUnicodeLib 8.5 and later
- }
- function ATSUClearAttributes( iStyle: ATSUStyle; iTagCount: ItemCount; {const} iTag: {variable-size-array} ATSUAttributeTagPtr { can be NULL } ): OSStatus; external name '_ATSUClearAttributes';
- (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_6 *)
- { ---------------------------------------------------------------------------- }
- { ATSUI basic text layout functions }
- { ---------------------------------------------------------------------------- }
- {
- * ATSUCreateTextLayout() *** DEPRECATED ***
- *
- * Deprecated:
- * Use CTTypesetterCreateWithAttributedString,
- * CTTypesetterCreateWithAttributedStringAndOptions,
- * CTLineCreateWithAttributedString, CTLineCreateTruncatedLine, or
- * CTLineCreateJustifiedLine instead.
- *
- * Summary:
- * Creates an opaque text layout object containing only default text
- * layout attributes.
- *
- * Discussion:
- * This function creates a empty text layout object that has no
- * styles or text buffer associated with it. Most ATSUI functions
- * that operate on text layout objects require that the objects be
- * associated with style information and text. To associate style
- * objects and text with an empty text layout object, you can call
- * the functions ATSUSetRunStyle and ATSUSetTextPointerLocation .
- * Or, to create a text layout object and associate style objects
- * and text with it at the same time, you can call the function
- * ATSUCreateTextLayoutWithTextPtr. To provide nondefault line or
- * layout attributes for a text layout object, you can call the
- * functions ATSUSetLineControls or ATSUSetLayoutControls . After
- * setting text attributes, call ATSUDrawText to draw the text. Text
- * layout objects are readily reusable and should be cached for
- * later use, if possible. You can reuse a text layout object even
- * if the text associated with it is altered. Call the functions
- * ATSUSetTextPointerLocation, ATSUTextDeleted, or ATSUTextInserted
- * to manage the altered text.
- *
- * Parameters:
- *
- * oTextLayout:
- * On return, the value refers to an empty text layout object.
- *
- * Result:
- * On success, noErr is returned. See MacErrors.h for possible error
- * codes.
- *
- * Availability:
- * Mac OS X: in version 10.0 and later in ApplicationServices.framework [32-bit only] but deprecated in 10.6
- * CarbonLib: in CarbonLib 1.0 and later
- * Non-Carbon CFM: in ATSUnicodeLib 8.5 and later
- }
- function ATSUCreateTextLayout( var oTextLayout: ATSUTextLayout ): OSStatus; external name '_ATSUCreateTextLayout';
- (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_6 *)
- {
- * ATSUCreateAndCopyTextLayout() *** DEPRECATED ***
- *
- * Deprecated:
- * Use CTTypesetterCreateWithAttributedString,
- * CTTypesetterCreateWithAttributedStringAndOptions,
- * CTLineCreateWithAttributedString, CTLineCreateTruncatedLine, or
- * CTLineCreateJustifiedLine instead.
- *
- * Summary:
- * Creates a copy of a text layout object.
- *
- * Discussion:
- * This function creates a copy of the source text layout object's
- * style runs (including references to the associated text buffer
- * and style objects), line attributes, layout attributes, and
- * layout caches. ATSUCreateAndCopyTextLayout does not copy
- * reference constants. To create a text layout object without
- * copying a source object, you can the function
- * ATSUCreateTextLayout or the function
- * ATSUCreateTextLayoutWithTextPtr.
- *
- * Parameters:
- *
- * iTextLayout:
- * The layout to be copied.
- *
- * oTextLayout:
- * On return, a reference to a layout object which is a copy of
- * iTextLayout.
- *
- * Result:
- * On success, noErr is returned. See MacErrors.h for possible error
- * codes.
- *
- * Availability:
- * Mac OS X: in version 10.0 and later in ApplicationServices.framework [32-bit only] but deprecated in 10.6
- * CarbonLib: in CarbonLib 1.0 and later
- * Non-Carbon CFM: in ATSUnicodeLib 8.6 and later
- }
- function ATSUCreateAndCopyTextLayout( iTextLayout: ATSUTextLayout; var oTextLayout: ATSUTextLayout ): OSStatus; external name '_ATSUCreateAndCopyTextLayout';
- (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_6 *)
- {$endc} {not TARGET_CPU_64}
- {
- * ATSUCreateTextLayoutWithTextPtr() *** DEPRECATED ***
- *
- * Deprecated:
- * Use CTTypesetterCreateWithAttributedString,
- * CTTypesetterCreateWithAttributedStringAndOptions,
- * CTLineCreateWithAttributedString, CTLineCreateTruncatedLine, or
- * CTLineCreateJustifiedLine instead.
- *
- * Summary:
- * Creates an opaque text layout object containing default text
- * layout attributes as well as associated text and text styles.
- *
- * Discussion:
- * This function creates a text layout object and associates the
- * specified text buffer and style runs with it. All layout
- * attributes are set to their default values. To provide nondefault
- * line or layout attributes for a text layout object, you can call
- * the functions ATSUSetLineControls or ATSUSetLayoutControls. After
- * setting text attributes, call ATSUDrawText to draw the text.
- * Because the only way that ATSUI interacts with text is via the
- * memory references you associate with a text layout object, you
- * are responsible for keeping these references updated through use
- * of the functions ATSUTextInserted, ATSUTextDeleted,
- * ATSUTextMoved, and ATSUSetTextPointerLocation. Note that, because
- * ATSUI objects retain state information, doing superfluous calling
- * can degrade performance. For example, you could call
- * ATSUSetTextPointerLocation rather than ATSUTextInserted when the
- * user inserts text, but there would be a performance penalty, as
- * all the layout caches are flushed when you call
- * ATSUSetTextPointerLocation , rather than just the affected ones.
- * Text layout objects are readily reusable and should themselves be
- * cached for later use, if possible. Text objects are thread-safe
- * starting with ATSUI version 2.4.
- *
- * Parameters:
- *
- * iText:
- * A text buffer containing UTF-16Ðencoded text. ATSUI associates
- * this buffer with the new text layout object and analyzes the
- * complete text of the buffer when obtaining the layout context
- * for the current text range. Thus, for paragraph-format text, if
- * you specify a buffer containing less than a complete paragraph,
- * some of ATSUI's layout results are not guaranteed to be
- * accurate. For example, with a buffer of less than a full
- * paragraph, ATSUI can neither reliably obtain the context for
- * bidirectional processing nor reliably generate accent
- * attachments and ligature formations for Roman text.
- *
- * iTextOffset:
- * The offset from the beginning of the text buffer to the first
- * character of the range to include in the layout. To indicate
- * that the specified text range starts at the beginning of the
- * text buffer, you can pass the constant kATSUFromTextBeginning.
- * To specify the entire text buffer, pass kATSUFromTextBeginning
- * in this parameter and kATSUToTextEnd in the iTextLength
- * parameter. For best results, use one layout for each paragraph
- * within the text buffer.
- *
- * iTextLength:
- * The length of the text range. Note that the sum of iTextOffset
- * and iTextLength must be less than or equal to the value of the
- * iTextTotalLength parameter. If you want the range of text to
- * extend to the end of the text buffer, you can pass the constant
- * kATSUToTextEnd. For best results, use one layout for each
- * paragraph within the text buffer.
- *
- * iTextTotalLength:
- * The length of the entire text buffer referred to by iText. This
- * value should be greater than or equal to the range of text
- * defined by the iTextLength parameter.
- *
- * iNumberOfRuns:
- * The number of text style runs you want to define within the
- * overall text range. The number of style objects and style run
- * lengths passed in the iStyles and iRunLengths parameters,
- * respectively, should be equal to the number of runs specified
- * here.
- *
- * iRunLengths:
- * An array providing ATSUI with the lengths of each of the text's
- * style runs. You can pass kATSUToTextEnd for the last style run
- * length if you want the style run to extend to the end of the
- * text range. If the sum of the style run lengths is less than
- * the total length of the text range, the remaining characters
- * are assigned to the last style run.
- *
- * iStyles:
- * An array of styles, each corresponding to a style run defined
- * in iRunLengths. The same ATSUStyle object may be referred to
- * more than once in this array. The number of elements in this
- * array must be equal to the value specified by the iNumberOfRuns
- * parameter.
- *
- * oTextLayout:
- * A valid pointer to an ATSUTextLayout value. On return, the
- * value refers to the newly created text layout object.
- *
- * Result:
- * On success, noErr is returned. See MacErrors.h for possible error
- * codes.
- *
- * Availability:
- * Mac OS X: in version 10.0 and later in ApplicationServices.framework but deprecated in 10.6
- * CarbonLib: in CarbonLib 1.0 and later
- * Non-Carbon CFM: in ATSUnicodeLib 8.5 and later
- }
- function ATSUCreateTextLayoutWithTextPtr( iText: ConstUniCharArrayPtr; iTextOffset: UniCharArrayOffset; iTextLength: UniCharCount; iTextTotalLength: UniCharCount; iNumberOfRuns: ItemCount; {const} iRunLengths: {variable-size-array} UniCharCountPtr; iStyles: {variable-size-array} ATSUStylePtr; var oTextLayout: ATSUTextLayout ): OSStatus; external name '_ATSUCreateTextLayoutWithTextPtr';
- (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_6 *)
- {
- * ATSUClearLayoutCache() *** DEPRECATED ***
- *
- * Deprecated:
- * Use CoreText API and CFRelease instead.
- *
- * Summary:
- * Clears the layout cache of a line or an entire text layout object.
- *
- * Discussion:
- * The layout cache contains all the layout information ATSUI
- * calculates and needs to draw a range of text in a text layout
- * object. This includes caret positions, the memory locations of
- * glyphs, and other information needed to lay out the glyphs. ATSUI
- * uses information in the layout cache to avoid laying out the text
- * again, thereby improving performance. When you clear the layout
- * cache of a line or block of text, ATSUI takes longer to redraw a
- * line, since it must perform the calculations that support glyph
- * layout again. You should call the function ATSUClearLayoutCache
- * when you need to decrease the amount of memory your application
- * uses. This function reclaims memory at the cost of optimal
- * performance. By default, the ATSUClearLayoutCache function
- * removes the layout cache of a single line. To clear the layout
- * cache for multiple lines, you should call ATSUClearLayoutCache
- * for each line. To clear the layout cache of an entire text layout
- * object, pass the constant kATSUFromTextBeginning in the
- * iLineStart parameter. Note that ATSUClearLayoutCache does not
- * produce a function error if lines do not have a layout cache. The
- * ATSUClearLayoutCache function flushes the layout cache but does
- * not alter previously set text layout attributes, soft line break
- * positions, or the text memory location. If you do not want to
- * retain these values, you should dispose of the text layout object
- * by calling the ATSUDisposeTextLayout function.
- *
- * Parameters:
- *
- * iTextLayout:
- * The layout for which to clear the layout caches.
- *
- * iLineStart:
- * The offset from the beginning of the text buffer to the
- * beginning of the line for which to discard the layout cache. If
- * the range of text spans multiple lines, you should call
- * ATSUClearLayoutCache for each line, passing the offset
- * corresponding to the beginning of the new line to draw with
- * each call. To clear the layout cache of the entire text layout
- * object, you can pass the constant kATSUFromTextBeginning.
- *
- * Result:
- * On success, noErr is returned. See MacErrors.h for possible error
- * codes.
- *
- * Availability:
- * Mac OS X: in version 10.0 and later in ApplicationServices.framework but deprecated in 10.6
- * CarbonLib: in CarbonLib 1.0 and later
- * Non-Carbon CFM: in ATSUnicodeLib 8.6 and later
- }
- function ATSUClearLayoutCache( iTextLayout: ATSUTextLayout; iLineStart: UniCharArrayOffset ): OSStatus; external name '_ATSUClearLayoutCache';
- (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_6 *)
- {
- * ATSUDisposeTextLayout() *** DEPRECATED ***
- *
- * Deprecated:
- * Use CoreText API and CFRelease instead.
- *
- * Summary:
- * Disposes of the memory associated with a text layout object.
- *
- * Discussion:
- * This function frees the memory associated with the specified text
- * layout object and its internal structures, including line and
- * layout control attributes, style runs, and soft line breaks.
- * ATSUDisposeTextLayout does not dispose of any memory that may be
- * allocated for the text buffer, style objects, or reference
- * constants associated with the text layout object. You are
- * responsible for doing so. For best performance, text layout
- * objects are readily reusable and should be cached for later use,
- * if possible. You can reuse a text layout object even if the text
- * associated with it is altered. Call the functions
- * ATSUSetTextPointerLocation, ATSUTextDeleted, or ATSUTextInserted
- * to manage the altered text, rather than disposing of the text
- * layout object and creating a new one.
- *
- * Parameters:
- *
- * iTextLayout:
- * The layout object to dispose of.
- *
- * Result:
- * On success, noErr is returned. See MacErrors.h for possible error
- * codes.
- *
- * Availability:
- * Mac OS X: in version 10.0 and later in ApplicationServices.framework but deprecated in 10.6
- * CarbonLib: in CarbonLib 1.0 and later
- * Non-Carbon CFM: in ATSUnicodeLib 8.5 and later
- }
- function ATSUDisposeTextLayout( iTextLayout: ATSUTextLayout ): OSStatus; external name '_ATSUDisposeTextLayout';
- (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_6 *)
- {
- * ATSUSetTextLayoutRefCon() *** DEPRECATED ***
- *
- * Deprecated:
- * Use CFAttributedStringSetAttributes instead.
- *
- * Summary:
- * Sets application-specific data for a text layout object.
- *
- * Discussion:
- * This function associates a reference constant (that is,
- * application-specific data) with a text layout object. You might
- * typically use ATSUSetTextLayoutRefCon to track user preferences
- * that can effect layout, for example. If you copy or clear a text
- * layout object containing a reference constant, the reference
- * constant is not copied or removed. When you dispose of a text
- * layout object that contains a reference constant, you are
- * responsible for freeing any memory allocated for the reference
- * constant. Calling the function ATSUDisposeTextLayout does not do
- * so.
- *
- * Parameters:
- *
- * iTextLayout:
- * A layout for which you wish to set a reference constant.
- *
- * iRefCon:
- * Any arbitrary 32-bit value you wish to store in association
- * with iTextLayout.
- *
- * Result:
- * On success, noErr is returned. See MacErrors.h for possible error
- * codes.
- *
- * Availability:
- * Mac OS X: in version 10.0 and later in ApplicationServices.framework but deprecated in 10.6
- * CarbonLib: in CarbonLib 1.0 and later
- * Non-Carbon CFM: in ATSUnicodeLib 8.5 and later
- }
- function ATSUSetTextLayoutRefCon( iTextLayout: ATSUTextLayout; iRefCon: URefCon ): OSStatus; external name '_ATSUSetTextLayoutRefCon';
- (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_6 *)
- {$ifc not TARGET_CPU_64}
- {
- * ATSUGetTextLayoutRefCon() *** DEPRECATED ***
- *
- * Deprecated:
- * Use CFAttributedStringSetAttributes instead.
- *
- * Summary:
- * Obtains application-specific data for a text layout object.
- *
- * Discussion:
- * This function obtains a reference constant (that is,
- * application-specific data) associated with a text layout object.
- * To associate a reference constant with a text layout object, call
- * the function ATSUSetTextLayoutRefCon.
- *
- * Parameters:
- *
- * iTextLayout:
- * A layout for which you wish to retreive the reference constant.
- *
- * oRefCon:
- * On return, the reference constant associated with iTextLayout.
- *
- * Result:
- * On success, noErr is returned. See MacErrors.h for possible error
- * codes.
- *
- * Availability:
- * Mac OS X: in version 10.0 and later in ApplicationServices.framework [32-bit only] but deprecated in 10.6
- * CarbonLib: in CarbonLib 1.0 and later
- * Non-Carbon CFM: in ATSUnicodeLib 8.5 and later
- }
- function ATSUGetTextLayoutRefCon( iTextLayout: ATSUTextLayout; var oRefCon: URefCon ): OSStatus; external name '_ATSUGetTextLayoutRefCon';
- (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_6 *)
- { ---------------------------------------------------------------------------- }
- { ATSUI text buffer manipulation }
- { ---------------------------------------------------------------------------- }
- {
- * ATSUSetTextPointerLocation() *** DEPRECATED ***
- *
- * Deprecated:
- * Use CoreText API instead.
- *
- * Summary:
- * Associates a text buffer with a text layout object or updates
- * previously associated text.
- *
- * Discussion:
- * For ATSUI to render your text, you must associate the text with
- * both a text layout object and style information. Some functions,
- * such as ATSUCreateTextLayoutWithTextPtr, create a text layout
- * object and associate text with it concurrently. However, if you
- * use the function ATSUCreateTextLayout to create a text layout
- * object, you must assign text to the object prior to attempting
- * most ATSUI operations. You can use the function
- * ATSUSetTextPointerLocation to associate text with a layout
- * object. When you call this function, you are both assigning a
- * text buffer to a text layout object and specifying the current
- * text subrange within the buffer to include in the layout. If
- * there is already text associated with a text layout object,
- * calling ATSUSetTextPointerLocation overrides the previously
- * associated text, as well as clearing the object's layout caches.
- * You would typically only call this function for a text layout
- * object with existing associated text if either (a) both the
- * buffer itself is relocated and a subrange of the buffer's text is
- * deleted or inserted or (b) when associating an entirely different
- * buffer with a text layout object. Note that, because ATSUI
- * objects retain state, doing superfluous calling can degrade
- * performance. For example, you could call
- * ATSUSetTextPointerLocation rather than ATSUTextInserted when the
- * user simply inserts a subrange of text within a text buffer, but
- * there would be a performance penalty, as all the layout caches
- * are flushed by ATSUSetTextPointerLocation, rather than just the
- * affected ones. Similarly, you should not call
- * ATSUSetTextPointerLocation, when an entire text buffer associated
- * with a text layout object is relocated, but no other changes have
- * occurred that would affect the buffer's current subrange.
- * Instead, you should call ATSUTextMoved, which is a more focused
- * function and therefore more efficient. After associating text
- * with a text layout object, use ATSUSetRunStyle to associate style
- * information with the text. You can then call the function
- * ATSUDrawText to display the text or a subrange of the text.
- *
- * Parameters:
- *
- * iTextLayout:
- * The layout object for which you wish to associate a text buffer.
- *
- * iText:
- * A pointer to a buffer of Unicode text in UTF-16 format. This is
- * the text that will be associated with iTextLayout.
- *
- * iTextOffset:
- * The starting offset of the subrange of the text buffer you wish
- * to associate with iTextLayout. To indicate that the specified
- * text range starts at the beginning of the text buffer, you can
- * pass the constant kATSUFromTextBeginning . To specify the
- * entire text buffer, pass kATSUFromTextBeginning in this
- * parameter and kATSUToTextEnd in the iTextLength parameter.
- *
- * iTextLength:
- * The length of the subrage of the text buffer you wish to
- * associate with iTextLayout. Note that the sum of iTextOffset
- * and iTextLength must be less than or equal to the value of the
- * iTextTotalLength parameter. If you want the range of text to
- * extend to the end of the text buffer, you can pass the constant
- * kATSUToTextEnd.
- *
- * iTextTotalLength:
- * The length of the entire text buffer. This value should be
- * greater than or equal to the range of text defined by the
- * iTextLength parameter.
- *
- * Result:
- * On success, noErr is returned. See MacErrors.h for possible error
- * codes.
- *
- * Availability:
- * Mac OS X: in version 10.0 and later in ApplicationServices.framework [32-bit only] but deprecated in 10.6
- * CarbonLib: in CarbonLib 1.0 and later
- * Non-Carbon CFM: in ATSUnicodeLib 8.5 and later
- }
- function ATSUSetTextPointerLocation( iTextLayout: ATSUTextLayout; iText: ConstUniCharArrayPtr; iTextOffset: UniCharArrayOffset; iTextLength: UniCharCount; iTextTotalLength: UniCharCount ): OSStatus; external name '_ATSUSetTextPointerLocation';
- (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_6 *)
- {
- * ATSUGetTextLocation() *** DEPRECATED ***
- *
- * Deprecated:
- * Use CoreText API instead.
- *
- * Summary:
- * Returns information about the Unicode text buffer associated with
- * a layout.
- *
- * Discussion:
- * For a given layout, ATSUGetTextLocation will return information
- * about the Unicode text buffer associated with it, including its
- * memory location, its size, and whether it is stored in a handle.
- * Note that since a layout may refer to a subrange within a text
- * buffer, parameters defining this subrange are included. oOffset
- * and oTextLength give information about the subrange, while oText
- * and oTextTotalLength give information about the entire text
- * buffer. You may pass NULL for any parameters you are not
- * interested in. Only iTextLayout is required.
- *
- * Parameters:
- *
- * iTextLayout:
- * A text layout whose text buffer you want information regarding.
- *
- * oText:
- * A pointer to data of any type. On return, the pointer is set to
- * either a pointer or a handle that refers to the text buffer for
- * the specified text layout object.
- *
- * oTextIsStoredInHandle:
- * On return, the value is set to true if the text buffer referred
- * to by the oText parameter is accessed by a handle; if false, a
- * pointer.
- *
- * oOffset:
- * On return, the offset from the beginning of the text buffer to
- * the first character of the layout's current text range.
- *
- * oTextLength:
- * On return, the value specifies the length of the layout's
- * current text range.
- *
- * oTextTotalLength:
- * On return, the total length of the text buffer. Note this is
- * not necessarily the same as the length of the layout's current
- * range. (A layout may refer to only a subrange within a text
- * buffer.)
- *
- * Result:
- * On success, noErr is returned. See MacErrors.h for possible error
- * codes.
- *
- * Availability:
- * Mac OS X: in version 10.0 and later in ApplicationServices.framework [32-bit only] but deprecated in 10.6
- * CarbonLib: in CarbonLib 1.0 and later
- * Non-Carbon CFM: in ATSUnicodeLib 8.5 and later
- }
- function ATSUGetTextLocation( iTextLayout: ATSUTextLayout; oText: UnivPtrPtr { can be NULL }; oTextIsStoredInHandle: BooleanPtr { can be NULL }; oOffset: UniCharArrayOffsetPtr { can be NULL }; oTextLength: UniCharCountPtr { can be NULL }; oTextTotalLength: UniCharCountPtr { can be NULL } ): OSStatus; external name '_ATSUGetTextLocation';
- (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_6 *)
- {
- * ATSUTextDeleted() *** DEPRECATED ***
- *
- * Deprecated:
- * Use CoreText API instead.
- *
- * Summary:
- * Informs ATSUI of the location and length of a text deletion.
- *
- * Discussion:
- * When you call the ATSUTextDeleted function to inform ATSUI of a
- * text deletion, it shortens the style run(s) containing the
- * deleted text by the amount of the deletion. If a style run
- * corresponds entirely to a range of deleted text, that style run
- * is removed. If the deletion point is between two style runs, the
- * first style run is shortened (or removed). The ATSUTextDeleted
- * function also shortens the total length of the text buffer
- * containing the deleted text by the amount of the deletion. That
- * is, it shifts the memory location of the text following the
- * deleted text by iDeletedRangeLength .ATSUTextDeleted also removes
- * any soft line breaks that fall within the deleted text and
- * updates affected drawing caches. The ATSUTextDeleted function
- * does not change the actual memory location of the affected text.
- * You are responsible for deleting the corresponding text is from
- * the text buffer. You are also responsible for calling the
- * function ATSUDisposeStyle to dispose of the memory associated
- * with any style runs that have been removed. Note that calling the
- * function ATSUTextDeleted automatically removes previously-set
- * soft line breaks if the line breaks are within the range of text
- * that is deleted.
- *
- * Parameters:
- *
- * iTextLayout:
- * The text layout containing the deleted text.
- *
- * iDeletedRangeStart:
- * The starting location of the deleted text. To specify a
- * deletion point at the beginning of the text buffer, you can
- * pass the constant kATSUFromTextBeginning. To specify that the
- * entire text buffer has been deleted, pass
- * kATSUFromTextBeginning in this parameter and kATSUToTextEnd in
- * the iDeletedRangeLength parameter.
- *
- * iDeletedRangeLength:
- * The length of the deleted text. To specify a deletion length
- * extending to the end of the text buffer, you can pass the
- * constant kATSUToTextEnd.
- *
- * Result:
- * On success, noErr is returned. See MacErrors.h for possible error
- * codes.
- *
- * Availability:
- * Mac OS X: in version 10.0 and later in ApplicationServices.framework [32-bit only] but deprecated in 10.6
- * CarbonLib: in CarbonLib 1.0 and later
- * Non-Carbon CFM: in ATSUnicodeLib 8.5 and later
- }
- function ATSUTextDeleted( iTextLayout: ATSUTextLayout; iDeletedRangeStart: UniCharArrayOffset; iDeletedRangeLength: UniCharCount ): OSStatus; external name '_ATSUTextDeleted';
- (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_6 *)
- {
- * ATSUTextInserted() *** DEPRECATED ***
- *
- * Deprecated:
- * Use CoreText API instead.
- *
- * Summary:
- * Informs ATSUI of the location and length of a text insertion.
- *
- * Discussion:
- * When you call the ATSUTextInserted function to inform ATSUI of a
- * text insertion, it extends the style run containing the insertion
- * point by the amount of the inserted text. If the insertion point
- * is between two style runs, the first style run is extended to
- * include the new text. The ATSUTextInserted function also extends
- * the total length of the text buffer containing the inserted text
- * by the amount of the inserted text. That is, it shifts the memory
- * location of the text following the inserted text by
- * iInsertionLength. ATSUTextInserted then updates drawing caches.
- * Note that the ATSUTextInserted function does not change the
- * actual memory location of the inserted text. You are responsible
- * for placing the inserted text into the text buffer at the
- * appropriate location. The ATSUTextInserted function does not
- * insert style runs or line breaks; to do so, call the functions
- * ATSUSetRunStyle and ATSUSetSoftLineBreak, respectively. Break
- * line operations should be redone after you call ATSUTextInserted.
- *
- * Parameters:
- *
- * iTextLayout:
- * The text layout in which the text insertion is taking place.
- *
- * iInsertionLocation:
- * The offset corresponding to the beginning of the inserted text.
- *
- * iInsertionLength:
- * The length of the inserted text.
- *
- * Result:
- * On success, noErr is returned. See MacErrors.h for possible error
- * codes.
- *
- * Availability:
- * Mac OS X: in version 10.0 and later in ApplicationServices.framework [32-bit only] but deprecated in 10.6
- * CarbonLib: in CarbonLib 1.0 and later
- * Non-Carbon CFM: in ATSUnicodeLib 8.5 and later
- }
- function ATSUTextInserted( iTextLayout: ATSUTextLayout; iInsertionLocation: UniCharArrayOffset; iInsertionLength: UniCharCount ): OSStatus; external name '_ATSUTextInserted';
- (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_6 *)
- {$endc} {not TARGET_CPU_64}
- {
- * ATSUTextMoved() *** DEPRECATED ***
- *
- * Deprecated:
- * Use CoreText API instead.
- *
- * Summary:
- * Informs ATSUI of the new memory location of relocated text.
- *
- * Discussion:
- * You should call the ATSUTextMoved function when a range of text
- * consisting of less than an entire text buffer has been moved. The
- * ATSUTextMoved function informs ATSUI of the new memory location
- * of the text. You are responsible for moving the text. The text
- * buffer should remain otherwise unchanged.
- *
- * Parameters:
- *
- * iTextLayout:
- * The text layout containing the moved text.
- *
- * iNewLocation:
- * The new memory location of the moved text.
- *
- * Result:
- * On success, noErr is returned. See MacErrors.h for possible error
- * codes.
- *
- * Availability:
- * Mac OS X: in version 10.0 and later in ApplicationServices.framework but deprecated in 10.6
- * CarbonLib: in CarbonLib 1.0 and later
- * Non-Carbon CFM: in ATSUnicodeLib 8.5 and later
- }
- function ATSUTextMoved( iTextLayout: ATSUTextLayout; iNewLocation: ConstUniCharArrayPtr ): OSStatus; external name '_ATSUTextMoved';
- (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_6 *)
- { ---------------------------------------------------------------------------- }
- { ATSUI layout controls }
- { ---------------------------------------------------------------------------- }
- {$ifc not TARGET_CPU_64}
- {
- * ATSUCopyLayoutControls() *** DEPRECATED ***
- *
- * Deprecated:
- * Use CTParagraphStyleCreate or CTLineGetPenOffsetForFlush instead.
- *
- * Summary:
- * Copies all layout control attribute settings from a source text
- * layout object to a destination text layout object.
- *
- * Discussion:
- * This function copies all layout control attribute values to a
- * destination text layout object from a source text layout object,
- * including any default (unset) values in the source object. For a
- * list of tags and their default values, see the definition of
- * ATSUAttributeTag. Reference constants and the contents of memory
- * referenced by pointers within custom layout attributes are not
- * copied. You are responsible for ensuring that this memory remains
- * valid until both the source and destination text layout objects
- * are disposed. To copy line control attribute values from one text
- * layout object to another, call the function ATSUCopyLineControls.
- *
- * Parameters:
- *
- * iSourceTextLayout:
- * The text layout to copy layout controls from.
- *
- * iDestTextLayout:
- * The text layout to copy layout controls to.
- *
- * Result:
- * On success, noErr is returned. See MacErrors.h for possible error
- * codes.
- *
- * Availability:
- * Mac OS X: in version 10.0 and later in ApplicationServices.framework [32-bit only] but deprecated in 10.6
- * CarbonLib: in CarbonLib 1.0 and later
- * Non-Carbon CFM: in ATSUnicodeLib 8.5 and later
- }
- function ATSUCopyLayoutControls( iSourceTextLayout: ATSUTextLayout; iDestTextLayout: ATSUTextLayout ): OSStatus; external name '_ATSUCopyLayoutControls';
- (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_6 *)
- {$endc} {not TARGET_CPU_64}
- {
- * ATSUSetLayoutControls() *** DEPRECATED ***
- *
- * Deprecated:
- * Use CoreText API and CFAttributedStringSetAttributes instead.
- *
- * Summary:
- * Sets layout control attribute values in a text layout object.
- *
- * Discussion:
- * When you use ATSUI to image your text, you can control the text's
- * display and formatting at a number of different levels: layout,
- * line, and run. The level affected by this function is the layout
- * level, which is that of the entire text range associated with
- * your text layout object. Attributes at this level affect the
- * width of the text area from margin to margin, the alignment of
- * the text, its justification, rotation, and direction, as well as
- * other layout options. See ATSUSetLineControls for information
- * about controling text and the line level. Similar to style
- * attributes, you use a "triple" to specify a line or layout
- * control attribute. That is, (1) an attribute tag, (2) the size
- * (in bytes) of the attribute value, and (3) the value of the
- * attribute it sets. Attribute tags are constants supplied by
- * ATSUI. Attribute values may be a scalar, a structure, or a
- * pointer. And as with style attributes, you can also create a
- * custom attribute for a line or layout attribute for which ATSUI
- * does not provide a tag. For a list of layout control tags defined
- * by ATSUI and their default values, see the definition of
- * ATSUAttributeTag.
- *
- * Parameters:
- *
- * iTextLayout:
- * The text layout in which to set layout-level controls.
- *
- * iAttributeCount:
- * The number of attributes to set. This value should correspond
- * to the number of elements in the iTag, iValueSize, and iValue
- * arrays.
- *
- * iTag:
- * An array of attribute tags to set. For a list of layout control
- * tags defined by ATSUI and their default values, see the
- * definition of ATSUAttributeTag.
- *
- * iValueSize:
- * An array of values indicating the sizes of the values pointed
- * to by the elements in the iValue array.
- *
- * iValue:
- * An array of attribute value pointers. Each value in the array
- * must correspond to a tag in the iTag array and be a legal value
- * for that tag.
- *
- * Result:
- * On success, noErr is returned. See MacErrors.h for possible error
- * codes.
- *
- * Availability:
- * Mac OS X: in version 10.0 and later in ApplicationServices.framework but deprecated in 10.6
- * CarbonLib: in CarbonLib 1.0 and later
- * Non-Carbon CFM: in ATSUnicodeLib 8.5 and later
- }
- function ATSUSetLayoutControls( iTextLayout: ATSUTextLayout; iAttributeCount: ItemCount; {const} iTag: {variable-size-array} ATSUAttributeTagPtr; {const} iValueSize: {variable-size-array} ByteCountPtr; {const} iValue: {variable-size-array} ATSUAttributeValuePtrPtr ): OSStatus; external name '_ATSUSetLayoutControls';
- (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_6 *)
- {$ifc not TARGET_CPU_64}
- {
- * ATSUGetLayoutControl() *** DEPRECATED ***
- *
- * Deprecated:
- * Use CoreText API and CFAttributedStringGetAttributes instead.
- *
- * Summary:
- * Obtains a single layout control attribute value for a text layout
- * object.
- *
- * Discussion:
- * Before calling ATSUGetLayoutControl, you should call the function
- * ATSUGetAllLayoutControls to obtain an array of nondefault layout
- * control attribute tags and value sizes for the text layout
- * object. You can then pass the tag and value size for the
- * attribute value to obtain to ATSUGetLayoutControl. Typically you
- * use the function ATSUGetLayoutControl by calling it twice, as
- * follows: (1) Pass a reference to the text layout object to
- * examine in the iTextLayout parameter, NULL for the oValue
- * parameter, 0 for the iExpectedValueSize parameter.
- * ATSUGetLayoutControl returns the actual size of the attribute
- * value in the oActualValueSize parameter. (2) Allocate enough
- * space for an array of the returned size, then call the
- * ATSUGetLayoutControl function again, passing a valid pointer in
- * the oValue parameter. On return, the pointer refers to the actual
- * attribute value contained in the text layout object. For a list
- * of layout control tags defined by ATSUI and their default values,
- * see the definition of ATSUAttributeTag.
- *
- * Parameters:
- *
- * iTextLayout:
- * The text layout for which you wish to obtain a single layout
- * control value.
- *
- * iTag:
- * An attribute tag specifying the layout control value you wish
- * to obtain. For a list of layout control tags defined by ATSUI
- * and their default values, see the definition of
- * ATSUAttributeTag.
- *
- * iExpectedValueSize:
- * The size in bytes of the buffer you have allocated for the
- * oValue parameter.
- *
- * oValue:
- * On return, the value assocaited with the layout tag specified
- * by the iTag parameter.
- *
- * oActualValueSize:
- * On return, the value contains the actual size (in bytes) of the
- * attribute value. You should examine this parameter if you are
- * unsure of the size of the attribute value being obtained, as in
- * the case of custom layout control attributes.
- *
- * Result:
- * On success, noErr is returned. See MacErrors.h for possible error
- * codes.
- *
- * Availability:
- * Mac OS X: in version 10.0 and later in ApplicationServices.framework [32-bit only] but deprecated in 10.6
- * CarbonLib: in CarbonLib 1.0 and later
- * Non-Carbon CFM: in ATSUnicodeLib 8.5 and later
- }
- function ATSUGetLayoutControl( iTextLayout: ATSUTextLayout; iTag: ATSUAttributeTag; iExpectedValueSize: ByteCount; oValue: ATSUAttributeValuePtr { can be NULL }; oActualValueSize: ByteCountPtr { can be NULL } ): OSStatus; external name '_ATSUGetLayoutControl';
- (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_6 *)
- {
- * ATSUGetAllLayoutControls() *** DEPRECATED ***
- *
- * Deprecated:
- * Use CoreText API and CFAttributedStringGetAttributes instead.
- *
- * Summary:
- * Obtains an array of non-default layout control attribute tags and
- * value sizes for a text layout object.
- *
- * Discussion:
- * This function function obtains all nondefault layout control
- * attribute tags and their values sizes for a text layout object.
- * You can pass a tag and value size pair obtained from
- * ATSUGetAllLayoutControls to the function ATSUGetLayoutControl to
- * determine the corresponding attribute value. Typically you use
- * the function ATSUGetAllLayoutControls by calling it twice, as
- * follows: (1) Pass a reference to the text layout object to
- * examine in the iTextLayout parameter, NULL for the
- * oAttributeInfoArray parameter, a pointer to an ItemCount value in
- * the oTagValuePairCount parameter, and 0 for the
- * iTagValuePairArraySize parameter. ATSUGetAllLayoutControls
- * returns the size of the tag and value size arrays in the
- * oTagValuePairCount parameter. (2) Allocate enough space for an
- * array of the returned size, then call the
- * ATSUGetAllLayoutControls function again, passing a valid pointer
- * in the oAttributeInfoArray parameter. On return, the pointer
- * refers to an array of the layout control attribute tag and value
- * size pairs contained in the text layout object.
- *
- * Parameters:
- *
- * iTextLayout:
- * The layout for which you wish to obtain the set of non-default
- * layout tags.
- *
- * oAttributeInfoArray:
- * On return, this array contains pairs of tags and value sizes
- * for the object's layout control attributes that are not at
- * default values. If you are uncertain of how much memory to
- * allocate for this parameter, see the Discussion.
- *
- * iTagValuePairArraySize:
- * A value specifying the maximum number of tag and value size
- * pairs to obtain for the text layout object. Typically, this is
- * equivalent to the number of ATSUAttributeInfo structures for
- * which you have allocated memory in the oAttributeInfoArray
- * parameter. To determine this value, see the Discussion.
- *
- * oTagValuePairCount:
- * On return, the value specifies the actual number of
- * ATSUAttributeInfo structures in the text layout object. This
- * may be greater than the value you specified in the
- * iTagValuePairArraySize parameter.
- *
- * Result:
- * On success, noErr is returned. See MacErrors.h for possible error
- * codes.
- *
- * Availability:
- * Mac OS X: in version 10.0 and later in ApplicationServices.framework [32-bit only] but deprecated in 10.6
- * CarbonLib: in CarbonLib 1.0 and later
- * Non-Carbon CFM: in ATSUnicodeLib 8.5 and later
- }
- function ATSUGetAllLayoutControls( iTextLayout: ATSUTextLayout; oAttributeInfoArray: {variable-size-array} ATSUAttributeInfoPtr; iTagValuePairArraySize: ItemCount; var oTagValuePairCount: ItemCount ): OSStatus; external name '_ATSUGetAllLayoutControls';
- (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_6 *)
- {
- * ATSUClearLayoutControls() *** DEPRECATED ***
- *
- * Deprecated:
- * Use CoreText API and CFAttributedStringSetAttributes instead.
- *
- * Summary:
- * Restores default values to the specified layout control
- * attributes of a text layout object.
- *
- * Discussion:
- * This function removes those layout control attribute values
- * identified by the tag constants in the iTag array and replaces
- * them with the default values. If you specify that any currently
- * unset attribute values be removed, the function does not return
- * an error. For a list of layout control tags defined by ATSUI and
- * their default values, see the definition of ATSUAttributeTag.
- *
- * Parameters:
- *
- * iTextLayout:
- * The text layout in which you wish to clear layout controls.
- *
- * iTagCount:
- * The number of tags you wish to clear. This value should
- * correspond to the nuumber of elements in the iTag array. Pass
- * kATSUClearAll for this parameter if you wish to clear all
- * layout controls.
- *
- * iTag:
- * An array of layout control tags to be cleared. For a list of
- * layout control tags defined by ATSUI and their default values,
- * see the definition of ATSUAttributeTag. You may pass NULL for
- * this parameter if you are passing kATSUClearAll for the
- * iTagCount parameter.
- *
- * Result:
- * On success, noErr is returned. See MacErrors.h for possible error
- * codes.
- *
- * Availability:
- * Mac OS X: in version 10.0 and later in ApplicationServices.framework [32-bit only] but deprecated in 10.6
- * CarbonLib: in CarbonLib 1.0 and later
- * Non-Carbon CFM: in ATSUnicodeLib 8.5 and later
- }
- function ATSUClearLayoutControls( iTextLayout: ATSUTextLayout; iTagCount: ItemCount; {const} iTag: {variable-size-array} ATSUAttributeTagPtr { can be NULL } ): OSStatus; external name '_ATSUClearLayoutControls';
- (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_6 *)
- { ---------------------------------------------------------------------------- }
- { ATSUI line controls }
- { ---------------------------------------------------------------------------- }
- {
- * ATSUCopyLineControls() *** DEPRECATED ***
- *
- * Deprecated:
- * Use CoreText API and CFAttributedStringSetAttributes instead.
- *
- * Summary:
- * Copies line control attribute settings from a line in a source
- * text layout object to a line in a destination text layout object.
- *
- * Discussion:
- * This function copies all line control attribute values to a line
- * in a destination text layout object from a line in a source text
- * layout object, including any default (unset) values in the source
- * line. Unset line control attributes are assigned the default
- * values. ATSUCopyLineControls does not copy the contents of memory
- * referenced by pointers within custom line attributes or within
- * reference constants. You are responsible for ensuring that this
- * memory remains valid until the source text layout object is
- * disposed.
- *
- * Parameters:
- *
- * iSourceTextLayout:
- * The text layout object from which to copy line control
- * attributes.
- *
- * iSourceLineStart:
- * The start of the line from which to copy line control
- * attributes.
- *
- * iDestTextLayout:
- * The text layout object for which to set line control
- * attributes. This can be the same text layout object passed in
- * the iSourceTextLayout parameter if you want to copy line
- * control attributes from one line to another within a text
- * layout object.
- *
- * iDestLineStart:
- * The start of the line to which to copy line control attributes.
- *
- * Result:
- * On success, noErr is returned. See MacErrors.h for possible error
- * codes.
- *
- * Availability:
- * Mac OS X: in version 10.0 and later in ApplicationServices.framework [32-bit only] but deprecated in 10.6
- * CarbonLib: in CarbonLib 1.0 and later
- * Non-Carbon CFM: in ATSUnicodeLib 8.6 and later
- }
- function ATSUCopyLineControls( iSourceTextLayout: ATSUTextLayout; iSourceLineStart: UniCharArrayOffset; iDestTextLayout: ATSUTextLayout; iDestLineStart: UniCharArrayOffset ): OSStatus; external name '_ATSUCopyLineControls';
- (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_6 *)
- {
- * ATSUSetLineControls() *** DEPRECATED ***
- *
- * Deprecated:
- * Use CoreText API and CFAttributedStringSetAttributes instead.
- *
- * Summary:
- * Sets one or more line control values for a specified line in a
- * text layout.
- *
- * Discussion:
- * When you use ATSUI to image your text, you can control the text's
- * display and formatting at a number of different levels: layout,
- * line, and run. The level affected by this function is the line
- * level. These attributes are similar to those that you can apply
- * on a full-layout basis, but each affects only an individual text
- * line. Note that setting line control attributes overrides the
- * corresponding layout-level settings. Also, from a performance
- * standpoint, it is preferable to work from the layout level and
- * not specify such controls line by line unless necessary. Lines
- * are determined by soft breaks that may be set in your layout. You
- * can specify a line by giving a starting offset into the text
- * buffer. Attributes at this level affect the width of the text
- * area from margin to margin, the alignment of the text, its
- * justification, rotation, and direction, as well as other layout
- * options. Similar to style attributes, you use a "triple" to
- * specify a line or layout control attribute. That is, (1) an
- * attribute tag, (2) the size (in bytes) of the attribute value,
- * and (3) the value of the attribute it sets. Attribute tags are
- * constants supplied by ATSUI. Attribute values may be a scalar, a
- * structure, or a pointer. And as with style attributes, you can
- * also create a custom attribute for a line or layout attribute for
- * which ATSUI does not provide a tag. For a list of line control
- * tags defined by ATSUI and their default values, see the
- * definition of ATSUAttributeTag.
- *
- * Parameters:
- *
- * iTextLayout:
- * The layout in which you wish to set line controls.
- *
- * iLineStart:
- * The starting offset of the line for which you wish to set
- * controls.
- *
- * iAttributeCount:
- * The number of attributes to set. This value should correspond
- * to the number of elements in the iTag, iValueSize, and iValue
- * arrays.
- *
- * iTag:
- * An array of attribute tags to set. For a list of line control
- * tags defined by ATSUI and their default values, see the
- * definition of ATSUAttributeTag.
- *
- * iValueSize:
- * An array of values indicating the sizes of the values pointed
- * to by the elements in the iValue array.
- *
- * iValue:
- * An array of attribute value pointers. Each value in the array
- * must correspond to a tag in the iTag array and be a legal value
- * for that tag.
- *
- * Result:
- * On success, noErr is returned. See MacErrors.h for possible error
- * codes.
- *
- * Availability:
- * Mac OS X: in version 10.0 and later in ApplicationServices.framework [32-bit only] but deprecated in 10.6
- * CarbonLib: in CarbonLib 1.0 and later
- * Non-Carbon CFM: in ATSUnicodeLib 8.6 and later
- }
- function ATSUSetLineControls( iTextLayout: ATSUTextLayout; iLineStart: UniCharArrayOffset; iAttributeCount: ItemCount; {const} iTag: {variable-size-array} ATSUAttributeTagPtr; {const} iValueSize: {variable-size-array} ByteCountPtr; {const} iValue: {variable-size-array} ATSUAttributeValuePtrPtr ): OSStatus; external name '_ATSUSetLineControls';
- (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_6 *)
- {
- * ATSUGetLineControl() *** DEPRECATED ***
- *
- * Deprecated:
- * Use CoreText API and CFAttributedStringSetAttributes instead.
- *
- * Summary:
- * Obtains a single line control attribute value for a line in a
- * text layout object.
- *
- * Discussion:
- * Before calling ATSUGetLineControl, you should call the function
- * ATSUGetAllLineControls to obtain an array of nondefault line
- * control attribute tags and value sizes for the line. You can then
- * pass the tag and value size for the attribute value to obtain to
- * ATSUGetLineControl. Typically you use the function
- * ATSUGetLineControl by calling it twice, as follows: (1) Pass a
- * reference to the text layout object to examine in the iTextLayout
- * parameter, NULL for the oValue parameter, 0 for the
- * iExpectedValueSize parameter. ATSUGetLineControl returns the
- * actual size of the attribute value in the oActualValueSize
- * parameter. (2) Allocate enough space for an array of the returned
- * size, then call the ATSUGetLineControl function again, passing a
- * valid pointer in the oValue parameter. On return, the pointer
- * refers to the actual attribute value contained for the line in
- * the text layout object.
- *
- * Parameters:
- *
- * iTextLayout:
- * The text layout for which to obtain a line control value.
- *
- * iLineStart:
- * The start of the line for which to obtain a line control value.
- *
- * iTag:
- * A tag specifying the line control value to be obtained. For a
- * list of line control tags defined by ATSUI and their default
- * values, see the definition of ATSUAttributeTag.
- *
- * iExpectedValueSize:
- * The expected size (in bytes) of the value to obtain.
- *
- * oValue:
- * On return, the actual attribute value. If you are uncertain of
- * how much memory to allocate, see the Discussion.
- *
- * oActualValueSize:
- * On return, the value contains the actual size (in bytes) of the
- * attribute value. You should examine this parameter if you are
- * unsure of the size of the attribute value being obtained, as in
- * the case of custom line control attributes.
- *
- * Result:
- * On success, noErr is returned. See MacErrors.h for possible error
- * codes.
- *
- * Availability:
- * Mac OS X: in version 10.0 and later in ApplicationServices.framework [32-bit only] but deprecated in 10.6
- * CarbonLib: in CarbonLib 1.0 and later
- * Non-Carbon CFM: in ATSUnicodeLib 8.6 and later
- }
- function ATSUGetLineControl( iTextLayout: ATSUTextLayout; iLineStart: UniCharArrayOffset; iTag: ATSUAttributeTag; iExpectedValueSize: ByteCount; oValue: ATSUAttributeValuePtr { can be NULL }; oActualValueSize: ByteCountPtr { can be NULL } ): OSStatus; external name '_ATSUGetLineControl';
- (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_6 *)
- {
- * ATSUGetAllLineControls() *** DEPRECATED ***
- *
- * Deprecated:
- * Use CoreText API and CFAttributedStringGetAttributes instead.
- *
- * Summary:
- * Obtains an array of line control attribute tags and value sizes
- * for a line in a text layout object.
- *
- * Discussion:
- * This function obtains all nondefault line control attribute tags
- * and their values sizes for a line in a text layout object. You
- * can pass a tag and value size pair obtained from
- * ATSUGetAllLineControls to the function ATSUGetLineControl to
- * determine the corresponding attribute value. Typically you use
- * the function ATSUGetAllLineControls by calling it twice, as
- * follows: (1) Pass a reference to the text layout object to
- * examine in the iTextLayout parameter, the appropriate
- * UniCharArrayOffset value in the iLineStart parameter, NULL for
- * the oAttributeInfoArray parameter, a pointer to an ItemCount
- * value in the oTagValuePairCount parameter, and 0 for the
- * iTagValuePairArraySize parameter. ATSUGetAllLineControls returns
- * the size of the tag and value size arrays in the
- * oTagValuePairCount parameter. (2) Allocate enough space for an
- * array of the returned size, then call the ATSUGetAllLineControls
- * function again, passing a valid pointer in the
- * oAttributeInfoArray parameter. On return, the pointer refers to
- * an array of the line control attribute tag and value size pairs
- * contained in the specified line. To obtain the nondefault layout
- * control attribute tags and value sizes for a text layout object,
- * call the function ATSUGetAllLayoutControls.
- *
- * Parameters:
- *
- * iTextLayout:
- * The layout for which you wish to obtain line control
- * information.
- *
- * iLineStart:
- * The beginning of the line for which you wish to obtain line
- * control information.
- *
- * oAttributeInfoArray:
- * On return, this array contains pairs of tags and value sizes
- * for the object's line control attributes that are not at
- * default values. If you are uncertain of how much memory to
- * allocate for this array, see the Discussion.
- *
- * iTagValuePairArraySize:
- * The size of of the array you allocated for the
- * oAttributeInfoArray parameter.
- *
- * oTagValuePairCount:
- * On return, the value specifies the actual number of
- * ATSUAttributeInfo structures in the line. This may be greater
- * than the value you specified in the iTagValuePairArraySize
- * parameter.
- *
- * Result:
- * On success, noErr is returned. See MacErrors.h for possible error
- * codes.
- *
- * Availability:
- * Mac OS X: in version 10.0 and later in ApplicationServices.framework [32-bit only] but deprecated in 10.6
- * CarbonLib: in CarbonLib 1.0 and later
- * Non-Carbon CFM: in ATSUnicodeLib 8.6 and later
- }
- function ATSUGetAllLineControls( iTextLayout: ATSUTextLayout; iLineStart: UniCharArrayOffset; oAttributeInfoArray: {variable-size-array} ATSUAttributeInfoPtr { can be NULL }; iTagValuePairArraySize: ItemCount; oTagValuePairCount: ItemCountPtr { can be NULL } ): OSStatus; external name '_ATSUGetAllLineControls';
- (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_6 *)
- {
- * ATSUClearLineControls() *** DEPRECATED ***
- *
- * Deprecated:
- * Use CoreText API and CFAttributedStringSetAttributes instead.
- *
- * Summary:
- * Restores default values to the specified line control attributes
- * of a text layout object.
- *
- * Discussion:
- * This function removes those line control attribute values
- * identified by the tag constants in the iTag array and replaces
- * them with the default values. If you specify that any currently
- * unset attribute values be removed, the function does not return
- * an error. For a list of line control tags defined by ATSUI and
- * their default values, see the definition of ATSUAttributeTag.
- *
- * Parameters:
- *
- * iTextLayout:
- * The text layout in which you wish to clear line controls.
- *
- * iLineStart:
- * The start of the line in which to clear line controls.
- *
- * iTagCount:
- * The number of tags you wish to clear. This value should
- * correspond to the nuumber of elements in the iTag array. Pass
- * kATSUClearAll to clear all line controls.
- *
- * iTag:
- * An array of line control tags to be cleared. For a list of line
- * control tags defined by ATSUI and their default values, see the
- * definition of ATSUAttributeTag. You may pass NULL for this
- * parameter if you are passing kATSUClearAll for the iTagCount
- * parameter.
- *
- * Result:
- * On success, noErr is returned. See MacErrors.h for possible error
- * codes.
- *
- * Availability:
- * Mac OS X: in version 10.0 and later in ApplicationServices.framework [32-bit only] but deprecated in 10.6
- * CarbonLib: in CarbonLib 1.0 and later
- * Non-Carbon CFM: in ATSUnicodeLib 8.6 and later
- }
- function ATSUClearLineControls( iTextLayout: ATSUTextLayout; iLineStart: UniCharArrayOffset; iTagCount: ItemCount; {const} iTag: {variable-size-array} ATSUAttributeTagPtr { can be NULL } ): OSStatus; external name '_ATSUClearLineControls';
- (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_6 *)
- { ---------------------------------------------------------------------------- }
- { ATSUI style run processing }
- { ---------------------------------------------------------------------------- }
- {$endc} {not TARGET_CPU_64}
- {
- * ATSUSetRunStyle() *** DEPRECATED ***
- *
- * Deprecated:
- * Use CoreText API and CFAttributedStringSetAttributes instead.
- *
- * Summary:
- * Defines a style run by associating style information with a run
- * of text.
- *
- * Discussion:
- * A text run consists of one or more characters that are contiguous
- * in memory. If you associate these characters with a distinct
- * style, you define a style run. You can use the ATSUSetRunStyle
- * function to define a style run, by associating a style object
- * with a run of text in a text layout object. Each text run must be
- * assigned a style object, which may or may not differ from other
- * style objects assigned to other text runs in a given text layout
- * object. After calling ATSUSetRunStyle, you can call the function
- * ATSUDrawText to display the styled text. When you call
- * ATSUDrawText, if you have not previously assigned styles to all
- * the characters you request to be drawn, ATSUI automatically does
- * so. Specifically, ATSUI extends the first style it locates
- * immediately prior (in storage order) to the unstyled characters
- * to include those unassigned characters. If the unstyled
- * characters are at the beginning of the text stream, ATSUI finds
- * the first style run in the stream and extends it backward to the
- * first character. You should call ATSUSetRunStyle whenever you
- * create a new text layout object without any associated styles, as
- * by using the function ATSUCreateTextLayout. You should also call
- * ATSUSetRunStyle to assign a style to a text run in response to a
- * user action, such as when the user selects a run of text and
- * changes the font. You do not need to call ATSUSetRunStyle when
- * you change style attributes or text layout attributes. In such
- * cases, ATSUI automatically updates the layout of the text as
- * appropriate.
- *
- * Parameters:
- *
- * iTextLayout:
- * The layout in which you wish to set the style run.
- *
- * iStyle:
- * The style to be assigned to the run of characters.
- *
- * iRunStart:
- * The start of the run of characters. To specify the beginning of
- * the text buffer, pass kATSUFromTextBeginning for this parameter.
- *
- * iRunLength:
- * The end of the run of characters. To specify a run that
- * continues to the end of the text buffer, pass kATSUToTextEnd
- * for this parameter.
- *
- * Result:
- * On success, noErr is returned. See MacErrors.h for possible error
- * codes.
- *
- * Availability:
- * Mac OS X: in version 10.0 and later in ApplicationServices.framework but deprecated in 10.6
- * CarbonLib: in CarbonLib 1.0 and later
- * Non-Carbon CFM: in ATSUnicodeLib 8.5 and later
- }
- function ATSUSetRunStyle( iTextLayout: ATSUTextLayout; iStyle: ATSUStyle; iRunStart: UniCharArrayOffset; iRunLength: UniCharCount ): OSStatus; external name '_ATSUSetRunStyle';
- (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_6 *)
- {$ifc not TARGET_CPU_64}
- {
- * ATSUGetRunStyle() *** DEPRECATED ***
- *
- * Deprecated:
- * Use CTLineGetGlyphRuns instead.
- *
- * Summary:
- * Obtains style run information for a character offset in a run of
- * text.
- *
- * Discussion:
- * You can use the ATSUGetRunStyle function to obtain the style
- * object assigned to a given text offset. ATSUGetRunStyle also
- * produces the encompassing text range that shares the style object
- * with the offset. Note that the style object contains those
- * previously set style attributes, font features, and font
- * variations that are continuous for the range of text that
- * includes the specified text offset. If you want to obtain all
- * shared style information for a style run, including any unset
- * attributes, call the function ATSUGetContinuousAttributes
- * instead. If only one style run is set in the text layout object,
- * and it does not cover the entire text layout object,
- * ATSUGetRunStyle uses the style run information for the iOffset
- * parameter to set the style run information for the remaining text.
- *
- * Parameters:
- *
- * iTextLayout:
- * The layout for which to obtain style run information.
- *
- * iOffset:
- * The beginning character for which you want to obtain style run
- * information.
- *
- * oStyle:
- * On return, the style object assigned to the range of text
- * containing the character at iOffset. Note that if you pass an
- * offset in the iOffset parameter that is at a style run
- * boundary, ATSUGetRunStyle produces style run information for
- * the following, not preceding, style run.
- *
- * oRunStart:
- * On return, the offset from the beginning of the text buffer to
- * the first character of the style run containing the character
- * at iOffset. Note that the entire style run does not necessarily
- * share the same unset attribute values as the character at
- * iOffset.
- *
- * oRunLength:
- * On return, the length of the style run containing the character
- * at iOffset.
- *
- * Result:
- * On success, noErr is returned. See MacErrors.h for possible error
- * codes.
- *
- * Availability:
- * Mac OS X: in version 10.0 and later in ApplicationServices.framework [32-bit only] but deprecated in 10.6
- * CarbonLib: in CarbonLib 1.0 and later
- * Non-Carbon CFM: in ATSUnicodeLib 8.5 and later
- }
- function ATSUGetRunStyle( iTextLayout: ATSUTextLayout; iOffset: UniCharArrayOffset; var oStyle: ATSUStyle; var oRunStart: UniCharArrayOffset; var oRunLength: UniCharCount ): OSStatus; external name '_ATSUGetRunStyle';
- (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_6 *)
- {
- * ATSUGetContinuousAttributes() *** DEPRECATED ***
- *
- * Deprecated:
- * Use CTParagraphStyleCreate instead.
- *
- * Summary:
- * Obtains the style attribute values that are continuous over a
- * given text range.
- *
- * Discussion:
- * This function examines the specified text range to obtain the
- * style attribute values (including those at default values) that
- * remain consistent for the entire text range. You should call
- * ATSUGetContinuousAttributes to determine the style information
- * that remains constant over text that has been selected by the
- * user.
- *
- * Parameters:
- *
- * iTextLayout:
- * The layout for which you wish to obtain style run information.
- *
- * iOffset:
- * The starting character for which to examine style run
- * attributes. To specify the beginning of the text buffer, pass
- * kATSUFromTextBeginning for this parameter.
- *
- * iLength:
- * The length of the range of characters to examine. To specify a
- * range that continues to the end of the text buffer, pass
- * kATSUToTextEnd for this parameter.
- *
- * oStyle:
- * On return, a style object containing those attributes which are
- * the same for the entire text range specified by the iOffset and
- * iLength parameters.
- *
- * Result:
- * On success, noErr is returned. See MacErrors.h for possible error
- * codes.
- *
- * Availability:
- * Mac OS X: in version 10.0 and later in ApplicationServices.framework [32-bit only] but deprecated in 10.6
- * CarbonLib: in CarbonLib 1.0 and later
- * Non-Carbon CFM: in ATSUnicodeLib 8.5 and later
- }
- function ATSUGetContinuousAttributes( iTextLayout: ATSUTextLayout; iOffset: UniCharArrayOffset; iLength: UniCharCount; oStyle: ATSUStyle ): OSStatus; external name '_ATSUGetContinuousAttributes';
- (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_6 *)
- { ---------------------------------------------------------------------------- }
- { ATSUI tab support }
- { ---------------------------------------------------------------------------- }
- {
- * ATSUSetTabArray() *** DEPRECATED ***
- *
- * Deprecated:
- * Use CTParagraphStyleCreate instead.
- *
- * Summary:
- * Sets a tab ruler for a text layout object.
- *
- * Discussion:
- * When a tab ruler is set for a text layout object, ATSUI
- * automatically aligns text such that any tabs characters in the
- * text are laid out to follow the tab ruler's specifications. If
- * you want to use tabs in your text and you also want to use the
- * function ATSUBatchBreakLines, then you must set tabs by calling
- * the function ATSUSetTabArray. See the definition of ATSUTab for
- * more information about setting up a tab ruler.
- *
- * Parameters:
- *
- * iTextLayout:
- * The layout in which to set the tab array.
- *
- * iTabs:
- * An array of tabstops. See the definition of ATSUTab for more
- * inforamation about specifying tabs.
- *
- * iTabCount:
- * The number of tab stops in the iTabs array.
- *
- * Result:
- * On success, noErr is returned. See MacErrors.h for possible error
- * codes.
- *
- * Availability:
- * Mac OS X: in version 10.2 and later in ApplicationServices.framework [32-bit only] but deprecated in 10.6
- * CarbonLib: not available in CarbonLib 1.x, is available on Mac OS X version 10.2 and later
- * Non-Carbon CFM: not available
- }
- function ATSUSetTabArray( iTextLayout: ATSUTextLayout; {const} iTabs: {variable-size-array} ATSUTabPtr; iTabCount: ItemCount ): OSStatus; external name '_ATSUSetTabArray';
- (* AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_6 *)
- {
- * ATSUGetTabArray() *** DEPRECATED ***
- *
- * Deprecated:
- * Use CTParagraphStyleCreate instead.
- *
- * Summary:
- * Retrieves the tab ruler associated with a text layout object.
- *
- * Discussion:
- * This function can be used to retrieve all the tabs that were
- * previously set for a text layout object, using the function
- * ATSUSetTabArray . All the returned tabs will be in order of
- * position along the line.Typically you use the ATSUGetTabArray
- * function by calling it twice, as follows: (1) Pass NULL for the
- * oTabs parameter, 0 for the iMaxTabCount parameter, and valid
- * values for the other parameters. The ATSUGetTabArray function
- * returns the actual number of tabs in the oTabCount parameter. (2)
- * Allocate enough space for a buffer of the returned size, then
- * call the function again, passing a valid pointer to the buffer in
- * the oTabs parameter. On return, the buffer contains the tab
- * values in order of position along the line from left to right.
- *
- * Parameters:
- *
- * iTextLayout:
- * The text layout for which to retrieve the tab ruler.
- *
- * iMaxTabCount:
- * The size of the array you have allocated for the oTabs
- * parameter. If you are unsure what to pass for this parameter,
- * see the Discussion.
- *
- * oTabs:
- * On return, an array of ATSUTab structures specifying the
- * currently set tab ruler for this layout.
- *
- * oTabCount:
- * On return, the number of tabs currently set in this layout.
- * Note that this may be greater than the value you have passed
- * for iMaxTabCount.
- *
- * Result:
- * On success, noErr is returned. See MacErrors.h for possible error
- * codes.
- *
- * Availability:
- * Mac OS X: in version 10.2 and later in ApplicationServices.framework [32-bit only] but deprecated in 10.6
- * CarbonLib: not available in CarbonLib 1.x, is available on Mac OS X version 10.2 and later
- * Non-Carbon CFM: not available
- }
- function ATSUGetTabArray( iTextLayout: ATSUTextLayout; iMaxTabCount: ItemCount; oTabs: {variable-size-array} ATSUTabPtr { can be NULL }; oTabCount: ItemCountPtr { can be NULL } ): OSStatus; external name '_ATSUGetTabArray';
- (* AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_6 *)
- { ---------------------------------------------------------------------------- }
- { ATSUI font fallback object functions }
- { ---------------------------------------------------------------------------- }
- {
- * ATSUCreateFontFallbacks() *** DEPRECATED ***
- *
- * Deprecated:
- * Use CTFontDescriptorCreateCopyWithAttributes instead.
- *
- * Summary:
- * Creates an opaque object that can be set to contain a font list
- * and a font-search method.
- *
- * Discussion:
- * After using this fucntion to create an ATSUFontFallbacks object,
- * you can then use ATSUSetObjFontFallbacks to set the fallback
- * method for this object, and then use the
- * kATSULineFontFallbacksTag to apply the object to a layout. You
- * may then either call ATSUMatchFontsToText to manually perform
- * font substitution, or call ATSUSetTransientFontMatching to
- * perform automatic font subtitution.
- *
- * Parameters:
- *
- * oFontFallback:
- * On return, a reference to a newly created ATSUFontFallbacks
- * object. You are responsible for freeing this object with
- * ATSUDisposeFontFallbacks.
- *
- * Result:
- * On success, noErr is returned. See MacErrors.h for possible error
- * codes.
- *
- * Availability:
- * Mac OS X: in version 10.1 and later in ApplicationServices.framework [32-bit only] but deprecated in 10.6
- * CarbonLib: not available in CarbonLib 1.x, is available on Mac OS X version 10.1 and later
- * Non-Carbon CFM: not available
- }
- function ATSUCreateFontFallbacks( var oFontFallback: ATSUFontFallbacks ): OSStatus; external name '_ATSUCreateFontFallbacks';
- (* AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_6 *)
- {
- * ATSUDisposeFontFallbacks() *** DEPRECATED ***
- *
- * Deprecated:
- * Use CTFontDescriptorCreateCopyWithAttributes instead.
- *
- * Summary:
- * Disposes of an ATSUDisposeFontFallbacks object.
- *
- * Discussion:
- * This function will only dispose of the ATSUDisposeFontFallbacks
- * itself. If you have allocated an array of ATSUFontIDs for use
- * with this ATSUFontFallbacks object, you are responsible for
- * freeing it separately.
- *
- * Parameters:
- *
- * iFontFallbacks:
- * The ATSUFontFallbacks object to be disposed of.
- *
- * Result:
- * On success, noErr is returned. See MacErrors.h for possible error
- * codes.
- *
- * Availability:
- * Mac OS X: in version 10.1 and later in ApplicationServices.framework [32-bit only] but deprecated in 10.6
- * CarbonLib: not available in CarbonLib 1.x, is available on Mac OS X version 10.1 and later
- * Non-Carbon CFM: not available
- }
- function ATSUDisposeFontFallbacks( iFontFallbacks: ATSUFontFallbacks ): OSStatus; external name '_ATSUDisposeFontFallbacks';
- (* AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_6 *)
- {
- * ATSUSetObjFontFallbacks() *** DEPRECATED ***
- *
- * Deprecated:
- * Use CTFontDescriptorCreateCopyWithAttributes instead.
- *
- * Summary:
- * Assigns a font-search method and a font list to a font fallback
- * object.
- *
- * Discussion:
- * This function allows you to define the settings for a font
- * fallback object. These settings determine the method ATSUI uses
- * to perform font fallbacks, as well as the font search list, if
- * one is needed. Not all fallback methods require a search list.
- * See the definition of ATSUFontFallbackMethod for more infomation
- * about the different font fallback methods. Once you have called
- * this function, you typically will want to associate the font
- * fallback object with a text layout using ATSUSetLayoutControls
- * and the kATSULineFontFallbacksTag attribute.
- *
- * Parameters:
- *
- * iFontFallbacks:
- * The fallback object for which you wish to set or change
- * settings.
- *
- * iFontFallbacksCount:
- * The number of fonts contained in the iFonts array. Some font
- * fallbacks methods do not require such a list. In such cases,
- * you may pass zero for this paramter.
- *
- * iFonts:
- * A list of fonts for ATSUI to search through when performing
- * fallbacks. Some font fallbacks methods do not require such a
- * list. In such cases, you may pass NULL for this parameter.
- *
- * iFontFallbackMethod:
- * The font fallback method for ATSUI to use. See the definition
- * of ATSUFontFallbackMethod for a list of possible constants to
- * pass in for this paramater. Note that some fallback modes
- * require a list of fonts for ATSUI to search. In such cases, use
- * the iFonts and iFontFallbacksCount parameters to specify this
- * list.
- *
- * Result:
- * On success, noErr is returned. See MacErrors.h for possible error
- * codes.
- *
- * Availability:
- * Mac OS X: in version 10.1 and later in ApplicationServices.framework [32-bit only] but deprecated in 10.6
- * CarbonLib: not available in CarbonLib 1.x, is available on Mac OS X version 10.1 and later
- * Non-Carbon CFM: not available
- }
- function ATSUSetObjFontFallbacks( iFontFallbacks: ATSUFontFallbacks; iFontFallbacksCount: ItemCount; {const} iFonts: {variable-size-array} ATSUFontIDPtr { can be NULL }; iFontFallbackMethod: ATSUFontFallbackMethod ): OSStatus; external name '_ATSUSetObjFontFallbacks';
- (* AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_6 *)
- {
- * ATSUGetObjFontFallbacks() *** DEPRECATED ***
- *
- * Deprecated:
- * Use CTFontDescriptorCreateCopyWithAttributes instead.
- *
- * Summary:
- * Returns information about the current settings in an
- * ATSUFontFallbacks object.
- *
- * Discussion:
- * Information returned includes the font-search method, and the
- * font search list, if one is set. Note that some font fallback
- * modes do not have a client-specified search list. You must
- * allocate space for this list.
- *
- * Parameters:
- *
- * iFontFallbacks:
- * The font fallback object you want to know the current settings
- * of.
- *
- * iMaxFontFallbacksCount:
- * For this parameter, pass in the size of the array you are
- * passing in for the oFonts parameter.
- *
- * oFonts:
- * On input, a buffer you have allocated for storing the font
- * search list. On return, ATSUGetObjFontFallbacks will populate
- * the list up to iMaxFontFallbacksCount items.
- *
- * oFontFallbackMethod:
- * On return, the font fallback method currently set for this
- * object. See the definition of ATSUFontFallbackMethod for more
- * information regarding the different font fallback modes.
- *
- * oActualFallbacksCount:
- * On return, the size of the font search list. You can use this
- * parameter to determine how much space to allocate for the
- * oFonts parameter.
- *
- * Result:
- * On success, noErr is returned. See MacErrors.h for possible error
- * codes.
- *
- * Availability:
- * Mac OS X: in version 10.1 and later in ApplicationServices.framework [32-bit only] but deprecated in 10.6
- * CarbonLib: not available in CarbonLib 1.x, is available on Mac OS X version 10.1 and later
- * Non-Carbon CFM: not available
- }
- function ATSUGetObjFontFallbacks( iFontFallbacks: ATSUFontFallbacks; iMaxFontFallbacksCount: ItemCount; oFonts: {variable-size-array} ATSUFontIDPtr { can be NULL }; var oFontFallbackMethod: ATSUFontFallbackMethod; oActualFallbacksCount: ItemCountPtr { can be NULL } ): OSStatus; external name '_ATSUGetObjFontFallbacks';
- (* AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_6 *)
- { ---------------------------------------------------------------------------- }
- { ATSUI font matching }
- { ---------------------------------------------------------------------------- }
- {$endc} {not TARGET_CPU_64}
- {
- * ATSUMatchFontsToText() *** DEPRECATED ***
- *
- * Deprecated:
- * Use CTFontCreateForString instead.
- *
- * Summary:
- * Examines a text range for characters that cannot be drawn with
- * the current font and suggests a substitute font, if necessary.
- *
- * Discussion:
- * When you call the ATSUMatchFontsToText function, ATSUI scans the
- * given range of text for characters that cannot be drawn with the
- * currently assigned font. When ATSUI finds such a character, it
- * identifies a substitute font for drawing the character. ATSUI
- * then continues scanning the text range for subsequent characters
- * that cannot be drawn, stopping when it finds a character that can
- * be drawn with the currently assigned font, or finds a character
- * that cannot be drawn with either the currently assigned font or
- * the substitute font, or reaches the end of the text range you
- * have specified. ATSUI's default behavior for finding a substitute
- * font is to recommend the first valid font that it finds when
- * scanning the fonts in the user's system. ATSUI first searches in
- * the standard application fonts for various languages. If that
- * fails, ATSUI searches through the remaining fonts on the system
- * in the order in which the Font Manager returns the fonts. After
- * ATSUI has searched all the fonts in the system, any unmatched
- * text is drawn using the last-resort font. That is, missing glyphs
- * are represented by and empty box to indicate to the user that a
- * valid font for that character is not installed on their system.
- * You can alter ATSUI's default search behavior by calling the
- * function ATSUCreateFontFallbacks and defining your own font
- * fallback settings for the text layout object. Because ATSUI does
- * not necessarily completely scan the text range you specify with
- * each call to ATSUMatchFontsToText, if ATSUI does find any
- * characters that cannot be rendered with their current font, you
- * should call ATSUMatchFontsToText again and update the input range
- * to check that all the subsequent characters in the range can be
- * drawn. For that reason, you should call ATSUMatchFontsToText from
- * within a loop to assure that the entire range of text is checked.
- * Note that calling ATSUMatchFontsToText does not cause the
- * suggested font substitution to be performed. If you want ATSUI to
- * perform font substitution automatically, you can call the
- * function ATSUSetTransientFontMatching.
- *
- * Parameters:
- *
- * iTextLayout:
- * The text layout object to examine.
- *
- * iTextStart:
- * The first character of the range to examine. To start at the
- * beginning of the text buffer, pass the constant
- * kATSUFromTextBeginning.
- *
- * iTextLength:
- * The length of the text range to examine. If you want the range
- * of text to extend to the end of the text buffer, you can pass
- * the constant kATSUToTextEnd.
- *
- * oFontID:
- * On return, the value provides a font ID for the suggested
- * substitute font or kATSUInvalidFontID, if no substitute font is
- * available.
- *
- * oChangedOffset:
- * On return, this value specifies the offset from the beginning
- * of the text buffer to the first character that cannot be drawn
- * with the current font.
- *
- * oChangedLength:
- * On return, this value specifies the length of the text range
- * that cannot be drawn with the current font.
- *
- * Result:
- * The result code noErr indicates that all the characters in the
- * given range can be rendered with their current font(s) and no
- * font substitution is needed. If you receive either of the result
- * codes kATSUFontsMatched or kATSUFontsNotMatched, you should
- * update the input range and call ATSUMatchFontsToText again to
- * ensure that all the characters in the range can be drawn. See
- * MacErrors.h for other possible error codes.
- *
- * Availability:
- * Mac OS X: in version 10.0 and later in ApplicationServices.framework but deprecated in 10.6
- * CarbonLib: in CarbonLib 1.0 and later
- * Non-Carbon CFM: in ATSUnicodeLib 8.5 and later
- }
- function ATSUMatchFontsToText( iTextLayout: ATSUTextLayout; iTextStart: UniCharArrayOffset; iTextLength: UniCharCount; var oFontID: ATSUFontID; var oChangedOffset: UniCharArrayOffset; var oChangedLength: UniCharCount ): OSStatus; external name '_ATSUMatchFontsToText';
- (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_6 *)
- {
- * ATSUSetTransientFontMatching() *** DEPRECATED ***
- *
- * Deprecated:
- * Use CoreText API instead.
- *
- * Summary:
- * Sets the current transient font matching state for a given layout.
- *
- * Discussion:
- * Transient font matching allows ATSUI to automatically substitute
- * glyphs from other fonts if the specified styles do not contain
- * glyphs for all the characters in the text. You can change the
- * behavior of this font substitution by calling the function
- * ATSUCreateFontFallbacks and defining your own font fallback
- * settings for the text layout object.
- *
- * Parameters:
- *
- * iTextLayout:
- * A layout for which to set the current transient font matching
- * state.
- *
- * iTransientFontMatching:
- * A boolean value indicating if the current transient font
- * matching state to set.
- *
- * Result:
- * On success, noErr is returned. See MacErrors.h for possible error
- * codes.
- *
- * Availability:
- * Mac OS X: in version 10.0 and later in ApplicationServices.framework but deprecated in 10.6
- * CarbonLib: in CarbonLib 1.0 and later
- * Non-Carbon CFM: in ATSUnicodeLib 8.5 and later
- }
- function ATSUSetTransientFontMatching( iTextLayout: ATSUTextLayout; iTransientFontMatching: Boolean ): OSStatus; external name '_ATSUSetTransientFontMatching';
- (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_6 *)
- {$ifc not TARGET_CPU_64}
- {
- * ATSUGetTransientFontMatching() *** DEPRECATED ***
- *
- * Deprecated:
- * Use CoreText API instead.
- *
- * Summary:
- * Obtains the current transient font matching state for a given
- * layout.
- *
- * Discussion:
- * Transient font matching allows ATSUI to automatically substitute
- * glyphs from other fonts if the specified styles do not contain
- * glyphs for all the characters in the text. You can change the
- * behavior of this font substitution by calling the function
- * ATSUCreateFontFallbacks and defining your own font fallback
- * settings for the text layout object.
- *
- * Parameters:
- *
- * iTextLayout:
- * A layout for which to obtain the current transient font
- * matching state.
- *
- * oTransientFontMatching:
- * On return, a boolean value indicating the current transient
- * font matching state.
- *
- * Result:
- * On success, noErr is returned. See MacErrors.h for possible error
- * codes.
- *
- * Availability:
- * Mac OS X: in version 10.0 and later in ApplicationServices.framework [32-bit only] but deprecated in 10.6
- * CarbonLib: in CarbonLib 1.0 and later
- * Non-Carbon CFM: in ATSUnicodeLib 8.5 and later
- }
- function ATSUGetTransientFontMatching( iTextLayout: ATSUTextLayout; var oTransientFontMatching: Boolean ): OSStatus; external name '_ATSUGetTransientFontMatching';
- (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_6 *)
- { Functions listed beyond this point are either deprecated or not recommended }
- { ---------------------------------------------------------------------------- }
- { ATSUI global font fallback functions }
- { ---------------------------------------------------------------------------- }
- {
- * ATSUSetFontFallbacks() *** DEPRECATED ***
- *
- * Deprecated:
- * Use CoreText API instead.
- *
- * Summary:
- * Sets font fallback behavior on a global basis.
- *
- * Discussion:
- * Control of font fallback behavior on a global basis is no longer
- * recommended. Object based font fallbacks are preferred. See the
- * functions ATSUCreateFontFallbacks, ATSUDisposeFontFallbacks,
- * ATSUSetObjFontFallbacks, and ATSUGetObjFontFallbacks, as well as
- * the kATSULineFontFallbacksTag attribute for more information
- * about object based font fallbacks.
- *
- * Result:
- * On success, noErr is returned. See MacErrors.h for possible error
- * codes.
- *
- * Availability:
- * Mac OS X: in version 10.0 and later in ApplicationServices.framework [32-bit only] but deprecated in 10.3
- * CarbonLib: in CarbonLib 1.0 and later
- * Non-Carbon CFM: in ATSUnicodeLib 8.6 and later
- }
- function ATSUSetFontFallbacks( iFontFallbacksCount: ItemCount; {const} iFontIDs: {variable-size-array} ATSUFontIDPtr; iFontFallbackMethod: ATSUFontFallbackMethod ): OSStatus; external name '_ATSUSetFontFallbacks';
- (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_3 *)
- {
- * ATSUGetFontFallbacks() *** DEPRECATED ***
- *
- * Deprecated:
- * Use CoreText API instead.
- *
- * Summary:
- * Gets the current global font fallback behavior.
- *
- * Discussion:
- * Control of font fallback behavior on a global basis is no longer
- * recommended. Object based font fallbacks are preferred. See the
- * functions ATSUCreateFontFallbacks, ATSUDisposeFontFallbacks,
- * ATSUSetObjFontFallbacks, and ATSUGetObjFontFallbacks, as well as
- * the kATSULineFontFallbacksTag attribute for more information
- * about object based font fallbacks.
- *
- * Result:
- * On success, noErr is returned. See MacErrors.h for possible error
- * codes.
- *
- * Availability:
- * Mac OS X: in version 10.0 and later in ApplicationServices.framework [32-bit only] but deprecated in 10.3
- * CarbonLib: in CarbonLib 1.0 and later
- * Non-Carbon CFM: in ATSUnicodeLib 8.6 and later
- }
- function ATSUGetFontFallbacks( iMaxFontFallbacksCount: ItemCount; oFontIDs: {variable-size-array} ATSUFontIDPtr; var oFontFallbackMethod: ATSUFontFallbackMethod; var oActualFallbacksCount: ItemCount ): OSStatus; external name '_ATSUGetFontFallbacks';
- (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_3 *)
- { ---------------------------------------------------------------------------- }
- { Handle-based functions }
- { ---------------------------------------------------------------------------- }
- {
- * ATSUCreateTextLayoutWithTextHandle() *** DEPRECATED ***
- *
- * Deprecated:
- * Use CTTypesetterCreateWithAttributedString,
- * CTTypesetterCreateWithAttributedStringAndOptions,
- * CTLineCreateWithAttributedString, CTLineCreateTruncatedLine, or
- * CTLineCreateJustifiedLine instead.
- *
- * Discussion:
- * This function is no longer recommended. Please use
- * ATSUCreateTextLayoutWithTextPtr instead.
- *
- * Availability:
- * Mac OS X: in version 10.0 and later in ApplicationServices.framework [32-bit only] but deprecated in 10.0
- * CarbonLib: in CarbonLib 1.0 and later
- * Non-Carbon CFM: in ATSUnicodeLib 8.5 and later
- }
- function ATSUCreateTextLayoutWithTextHandle( iText: UniCharArrayHandle; iTextOffset: UniCharArrayOffset; iTextLength: UniCharCount; iTextTotalLength: UniCharCount; iNumberOfRuns: ItemCount; {const} iRunLengths: {variable-size-array} UniCharCountPtr; iStyles: {variable-size-array} ATSUStylePtr; var oTextLayout: ATSUTextLayout ): OSStatus; external name '_ATSUCreateTextLayoutWithTextHandle';
- (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED *)
- {
- * ATSUSetTextHandleLocation() *** DEPRECATED ***
- *
- * Deprecated:
- * Use CoreText API and CFAttributedStringSetAttributes instead.
- *
- * Discussion:
- * This function is no longer recommended. Please use
- * ATSUSetTextPointerLocation instead.
- *
- * Availability:
- * Mac OS X: in version 10.0 and later in ApplicationServices.framework [32-bit only] but deprecated in 10.0
- * CarbonLib: in CarbonLib 1.0 and later
- * Non-Carbon CFM: in ATSUnicodeLib 8.5 and later
- }
- function ATSUSetTextHandleLocation( iTextLayout: ATSUTextLayout; iText: UniCharArrayHandle; iTextOffset: UniCharArrayOffset; iTextLength: UniCharCount; iTextTotalLength: UniCharCount ): OSStatus; external name '_ATSUSetTextHandleLocation';
- (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED *)
- { ---------------------------------------------------------------------------- }
- { ATSUI idle processing (deprecated) }
- { ---------------------------------------------------------------------------- }
- {
- * ATSUIdle() *** DEPRECATED ***
- *
- * Deprecated:
- * No longer needed on MacOS X.
- *
- * Summary:
- * Performs background processing.
- *
- * Discussion:
- * Current versions of ATSUI do not implement background processing
- * for text layout objects. In Mac OS X, the function ATSUIdle does
- * nothing.
- *
- * Availability:
- * Mac OS X: in version 10.0 and later in ApplicationServices.framework [32-bit only] but deprecated in 10.0
- * CarbonLib: in CarbonLib 1.0 and later
- * Non-Carbon CFM: in ATSUnicodeLib 8.5 and later
- }
- function ATSUIdle( iTextLayout: ATSUTextLayout ): OSStatus; external name '_ATSUIdle';
- (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED *)
- {$endc} {not TARGET_CPU_64}
- {$endc} {TARGET_OS_MAC}
- {$ifc not defined MACOSALLINCLUDE or not MACOSALLINCLUDE}
- end.
- {$endc} {not MACOSALLINCLUDE}
|