Jump to content

Core Text: Difference between revisions

From Wikipedia, the free encyclopedia
Content deleted Content added
Kycook (talk | contribs)
Added inclusion in iPad
Line 1: Line 1:
{{Refimprove|date=September 2007}}
{{Refimprove|date=September 2007}}
'''Core Text''' is a [[Core Foundation]] style [[API]] in [[Mac OS X]], first introduced in [[Mac OS X v10.4|Mac OS X 10.4 Tiger]] and made public in [[Mac OS X v10.5|Mac OS X 10.5 Leopard]]. Written in C, it replaces the text rendering abilities of the now-deprecated [[QuickDraw]] and [[ATSUI]] frameworks in previous versions of Mac OS X. According to Apple, Core Text is "designed for high performance and ease of use" and its layout API is "simple, consistent, and tightly integrated with Core Foundation, Core Graphics, and Cocoa."<ref>[http://developer.apple.com/documentation/Carbon/Conceptual/CoreText_Programming/Introduction/Introduction.html Core Text Programming Guide: Core Text Overview<!-- Bot generated title -->]</ref>
'''Core Text''' is a [[Core Foundation]] style [[API]] in [[Mac OS X]], first introduced in [[Mac OS X v10.4|Mac OS X 10.4 Tiger]], made public in [[Mac OS X v10.5|Mac OS X 10.5 Leopard]] and introduced for the [[iPad]] with iPhone SDK 3.2 . Written in C, it replaces the text rendering abilities of the now-deprecated [[QuickDraw]] and [[ATSUI]] frameworks in previous versions of Mac OS X. According to Apple, Core Text is "designed for high performance and ease of use" and its layout API is "simple, consistent, and tightly integrated with Core Foundation, Core Graphics, and Cocoa."<ref>[http://developer.apple.com/documentation/Carbon/Conceptual/CoreText_Programming/Introduction/Introduction.html Core Text Programming Guide: Core Text Overview<!-- Bot generated title -->]</ref>


== Features ==
== Features ==

Revision as of 22:00, 27 January 2010

Core Text is a Core Foundation style API in Mac OS X, first introduced in Mac OS X 10.4 Tiger, made public in Mac OS X 10.5 Leopard and introduced for the iPad with iPhone SDK 3.2 . Written in C, it replaces the text rendering abilities of the now-deprecated QuickDraw and ATSUI frameworks in previous versions of Mac OS X. According to Apple, Core Text is "designed for high performance and ease of use" and its layout API is "simple, consistent, and tightly integrated with Core Foundation, Core Graphics, and Cocoa."[1]

Features

Core Text provides the following opaque types:

  • CTFramesetter - creates CTFrame objects from given attributed string object and CGPath object using CTTypesetter.
  • CTTypesetter - performs line layouts; e.g., line breaking
  • CTFrame - represents an array of lines (i.e., CTLine objects).
  • CTLine - represents an array of glyph runs.
  • CTRun - an ordered collection of glyphs sharing the same attribute.
  • CTFont - represents a font.

Example

The following code displays the text "Hello, World!" to the given graphics context.

// Prepare font
CTFontRef font = CTFontCreateWithName(CFSTR("Times"), 48, NULL);

// Create an attributed string
CFStringRef keys[] = { kCTFontAttributeName };
CFTypeRef values[] = { font };
CFDictionaryRef attr = CFDictionaryCreate(NULL, (const void **)&keys, (const void **)&values,
					  sizeof(keys) / sizeof(keys[0]), &kCFTypeDictionaryKeyCallBacks, &kCFTypeDictionaryValueCallBacks);
CFAttributedStringRef attrString = CFAttributedStringCreate(NULL, CFSTR("Hello, World!"), attr);
CFRelease(attr);

// Draw the string
CTLineRef line = CTLineCreateWithAttributedString(attrString);
CGContextSetTextMatrix(context, CGAffineTransformIdentity);
CGContextSetTextPosition(context, 10, 20);
CTLineDraw(line, context);

// Clean up
CFRelease(line);
CFRelease(attrString);
CFRelease(font);

References