126 if (
self = [super
init])
131 [_attributes addEntriesFromDictionary:attributes];
146 var attrib = [_attributes copy];
148 [attrib addEntriesFromDictionary:attributes];
161 var attrib = [_attributes copy];
177 var attrib = [_attributes copy];
181 forKey:CPFontSymbolicTrait];
184 forKey:CPFontSymbolicTrait] forKey:CPFontTraitsAttribute];
189 - (id)objectForKey:(
id)aKey
191 return [_attributes objectForKey:aKey];
201 var value = [_attributes objectForKey:CPFontSizeAttribute];
203 return value ? [value floatValue] : 0.0;
206 - (CPFontSymbolicTraits)symbolicTraits
208 var traits = [_attributes objectForKey:CPFontTraitsAttribute];
210 return (traits && [traits objectForKey:
CPFontSymbolicTrait]) ? [[traits objectForKey:CPFontSymbolicTrait] unsignedIntValue] : 0;
237 [aCoder encodeObject:_attributes forKey:CPFontDescriptorAttributesKey];
242 var _wrapNameRegEx =
new RegExp(/(\w+\s+\w+)(,*)/g);
256 var traitsAttributes = [_attributes objectForKey:CPFontTraitsAttribute];
258 if (traitsAttributes)
262 return [traitsAttributes objectForKey:CPFontWeightTrait];
273 return [_attributes objectForKey:CPFontSizeAttribute] ? [[_attributes objectForKey:CPFontSizeAttribute] intValue] +
"px" :
@"";
281 aName += [_attributes objectForKey:CPFontNameAttribute].replace(_wrapNameRegEx,
'"$1"$2');
288 aName +=
@", sans-serif";
299 return @"small-caps";