From 7f1b396ce85c3f45f25362a9db7d1977fed586fe Mon Sep 17 00:00:00 2001 From: Alexander Ljungberg Date: Sun, 15 Jul 2012 23:39:29 +0100 Subject: [PATCH] `CPFontManager weightOfFont:` and `traitsOfFont:`. --- AppKit/CPFontManager.j | 12 ++++++++++++ Tests/AppKit/CPFontManagerTest.j | 20 ++++++++++++++++++++ 2 files changed, 32 insertions(+) diff --git a/AppKit/CPFontManager.j b/AppKit/CPFontManager.j index a55839fd6..09cf92a41 100644 --- a/AppKit/CPFontManager.j +++ b/AppKit/CPFontManager.j @@ -148,6 +148,18 @@ var CPSharedFontManager = nil, return _isMultiple; } +- (int)weightOfFont:(CPFont)aFont +{ + // TODO Weight 5 is a normal of book weight and 9 and above is bold, but it would be nice to be more + // precise than that. + return [aFont isBold] ? 9 : 5; +} + +- (CPFontTraitMask)traitsOfFont:(CPFont)aFont +{ + return ([aFont isBold] ? CPBoldFontMask : 0) | ([aFont isItalic] ? CPItalicFontMask : 0); +} + - (CPFont)convertFont:(CPFont)aFont { if (!_activeChange) diff --git a/Tests/AppKit/CPFontManagerTest.j b/Tests/AppKit/CPFontManagerTest.j index 795789912..13dd8d316 100644 --- a/Tests/AppKit/CPFontManagerTest.j +++ b/Tests/AppKit/CPFontManagerTest.j @@ -37,6 +37,26 @@ [self assertTrue:[fontManager isMultiple]]; } +- (void)testWeightOfFont_ +{ + var fontManager = [CPFontManager sharedFontManager]; + + [self assert:[fontManager weightOfFont:fontA] equals:5 message:@"standard font weight"]; + + fontB = [CPFont boldFontWithName:@"Helvetica" size:12.0 italic:YES]; + [self assert:[fontManager weightOfFont:fontB] equals:9 message:@"bold font weight"]; + +} + +- (void)testTraitsOfFont_ +{ + var fontManager = [CPFontManager sharedFontManager]; + fontB = [CPFont boldFontWithName:@"Helvetica" size:12.0 italic:YES]; + + [self assert:[fontManager traitsOfFont:fontA] equals:0 message:@"fontA traits"]; + [self assert:[fontManager traitsOfFont:fontB] equals:CPBoldFontMask | CPItalicFontMask message:@"fontB traits"]; +} + - (void)testAddFontTrait_ { var fontManager = [CPFontManager sharedFontManager];