| Index: ui/gfx/platform_font_mac.mm
|
| diff --git a/ui/gfx/platform_font_mac.mm b/ui/gfx/platform_font_mac.mm
|
| index 3129489e5005deb08c4352be1f0eb34c7a5ebac1..1df9e6922196b6df791b3a67db9e676490783a2e 100644
|
| --- a/ui/gfx/platform_font_mac.mm
|
| +++ b/ui/gfx/platform_font_mac.mm
|
| @@ -22,9 +22,11 @@ namespace {
|
| // Returns an autoreleased NSFont created with the passed-in specifications.
|
| NSFont* NSFontWithSpec(const std::string& font_name,
|
| int font_size,
|
| - int font_style) {
|
| + int font_style,
|
| + Font::Weight font_weight) {
|
| NSFontSymbolicTraits trait_bits = 0;
|
| - if (font_style & Font::BOLD)
|
| + // TODO(mboc): Add support for other weights as well.
|
| + if (font_weight >= Font::Weight::BOLD)
|
| trait_bits |= NSFontBoldTrait;
|
| if (font_style & Font::ITALIC)
|
| trait_bits |= NSFontItalicTrait;
|
| @@ -65,38 +67,45 @@ PlatformFontMac::PlatformFontMac(NativeFont native_font)
|
| : native_font_([native_font retain]),
|
| font_name_(base::SysNSStringToUTF8([native_font_ familyName])),
|
| font_size_([native_font_ pointSize]),
|
| - font_style_(Font::NORMAL) {
|
| + font_style_(Font::NORMAL),
|
| + font_weight_(Font::Weight::NORMAL) {
|
| NSFontSymbolicTraits traits = [[native_font fontDescriptor] symbolicTraits];
|
| if (traits & NSFontItalicTrait)
|
| font_style_ |= Font::ITALIC;
|
| if (traits & NSFontBoldTrait)
|
| - font_style_ |= Font::BOLD;
|
| + font_weight_ = Font::Weight::BOLD;
|
|
|
| CalculateMetricsAndInitRenderParams();
|
| }
|
|
|
| -PlatformFontMac::PlatformFontMac(const std::string& font_name,
|
| - int font_size)
|
| - : native_font_([NSFontWithSpec(font_name, font_size, Font::NORMAL) retain]),
|
| +PlatformFontMac::PlatformFontMac(const std::string& font_name, int font_size)
|
| + : native_font_([NSFontWithSpec(font_name,
|
| + font_size,
|
| + Font::NORMAL,
|
| + Font::Weight::NORMAL) retain]),
|
| font_name_(font_name),
|
| font_size_(font_size),
|
| - font_style_(Font::NORMAL) {
|
| + font_style_(Font::NORMAL),
|
| + font_weight_(Font::Weight::NORMAL) {
|
| CalculateMetricsAndInitRenderParams();
|
| }
|
|
|
| ////////////////////////////////////////////////////////////////////////////////
|
| // PlatformFontMac, PlatformFont implementation:
|
|
|
| -Font PlatformFontMac::DeriveFont(int size_delta, int style) const {
|
| - if (native_font_ && style == font_style_) {
|
| +Font PlatformFontMac::DeriveFont(int size_delta,
|
| + int style,
|
| + Font::Weight weight) const {
|
| + if (native_font_ && style == font_style_ && weight == font_weight_) {
|
| // System fonts have special attributes starting with 10.11. They should be
|
| // requested using the same descriptor to preserve these attributes.
|
| - return Font(new PlatformFontMac(
|
| - [NSFont fontWithDescriptor:[native_font_ fontDescriptor]
|
| - size:font_size_ + size_delta]));
|
| + return Font(new PlatformFontMac([NSFont
|
| + fontWithDescriptor:[native_font_ fontDescriptor]
|
| + size:font_size_ + size_delta]));
|
| }
|
|
|
| - return Font(new PlatformFontMac(font_name_, font_size_ + size_delta, style));
|
| + return Font(
|
| + new PlatformFontMac(font_name_, font_size_ + size_delta, style, weight));
|
| }
|
|
|
| int PlatformFontMac::GetHeight() {
|
| @@ -119,6 +128,10 @@ int PlatformFontMac::GetStyle() const {
|
| return font_style_;
|
| }
|
|
|
| +Font::Weight PlatformFontMac::GetWeight() const {
|
| + return font_weight_;
|
| +}
|
| +
|
| const std::string& PlatformFontMac::GetFontName() const {
|
| return font_name_;
|
| }
|
| @@ -144,11 +157,15 @@ NativeFont PlatformFontMac::GetNativeFont() const {
|
|
|
| PlatformFontMac::PlatformFontMac(const std::string& font_name,
|
| int font_size,
|
| - int font_style)
|
| - : native_font_([NSFontWithSpec(font_name, font_size, font_style) retain]),
|
| + int font_style,
|
| + Font::Weight font_weight)
|
| + : native_font_(
|
| + [NSFontWithSpec(font_name, font_size, font_style, font_weight)
|
| + retain]),
|
| font_name_(font_name),
|
| font_size_(font_size),
|
| - font_style_(font_style) {
|
| + font_style_(font_style),
|
| + font_weight_(font_weight) {
|
| CalculateMetricsAndInitRenderParams();
|
| }
|
|
|
| @@ -186,6 +203,7 @@ void PlatformFontMac::CalculateMetricsAndInitRenderParams() {
|
| query.families.push_back(font_name_);
|
| query.pixel_size = font_size_;
|
| query.style = font_style_;
|
| + query.weight = font_weight_;
|
| render_params_ = gfx::GetFontRenderParams(query, NULL);
|
| }
|
|
|
|
|