Skip to content

Commit

Permalink
method to create CTFont from descriptor
Browse files Browse the repository at this point in the history
  • Loading branch information
odrobnik committed Mar 17, 2011
1 parent 26dc318 commit feb1899
Show file tree
Hide file tree
Showing 2 changed files with 41 additions and 1 deletion.
5 changes: 5 additions & 0 deletions Classes/DTCoreTextFontDescriptor.h
Original file line number Diff line number Diff line change
Expand Up @@ -30,15 +30,20 @@
}

+ (DTCoreTextFontDescriptor *)fontDescriptorWithFontAttributes:(NSDictionary *)attributes;
+ (DTCoreTextFontDescriptor *)fontDescriptorForCTFont:(CTFontRef)ctFont;

- (id)initWithFontAttributes:(NSDictionary *)attributes;
- (id)initWithCTFont:(CTFontRef)ctFont;

- (void)setFontAttributes:(NSDictionary *)newAttributes;

- (void)normalize;

- (CTFontSymbolicTraits)symbolicTraits;
- (NSDictionary *)fontAttributes;

- (CTFontRef)newMatchingFont;

@property (nonatomic, copy) NSString *fontFamily;
@property (nonatomic, copy) NSString *fontName;

Expand Down
37 changes: 36 additions & 1 deletion Classes/DTCoreTextFontDescriptor.m
Original file line number Diff line number Diff line change
Expand Up @@ -17,16 +17,40 @@ + (DTCoreTextFontDescriptor *)fontDescriptorWithFontAttributes:(NSDictionary *)a
return [[[DTCoreTextFontDescriptor alloc] initWithFontAttributes:attributes] autorelease];
}

+ (DTCoreTextFontDescriptor *)fontDescriptorForCTFont:(CTFontRef)ctFont
{
return [[[DTCoreTextFontDescriptor alloc] initWithCTFont:ctFont] autorelease];
}

- (id)initWithFontAttributes:(NSDictionary *)attributes
{
if (self = [super init])
self = [super init];
if (self)
{
[self setFontAttributes:attributes];
}

return self;
}

- (id)initWithCTFont:(CTFontRef)ctFont
{
self = [super init];
if (self)
{
CTFontDescriptorRef fd = CTFontCopyFontDescriptor(ctFont);
CFDictionaryRef dict = CTFontDescriptorCopyAttributes(fd);

[self setFontAttributes:(id)dict];

CFRelease(dict);
CFRelease(fd);
}

return self;
}


- (void)dealloc
{
[fontFamily release];
Expand Down Expand Up @@ -181,6 +205,17 @@ - (void)normalize

}


- (CTFontRef)newMatchingFont
{
NSDictionary *fontAttributes = [self fontAttributes];
CTFontDescriptorRef fontDesc = CTFontDescriptorCreateWithAttributes((CFDictionaryRef)fontAttributes);
CTFontRef font = CTFontCreateWithFontDescriptor(fontDesc, self.pointSize, NULL);
CFRelease(fontDesc);

return font;
}

#pragma mark Copying

- (id)copyWithZone:(NSZone *)zone
Expand Down

0 comments on commit feb1899

Please sign in to comment.