Chromium Code Reviews| 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..2003f169ef2160bac97769b3f68a5e5ed404a783 100644 |
| --- a/ui/gfx/platform_font_mac.mm |
| +++ b/ui/gfx/platform_font_mac.mm |
| @@ -65,38 +65,44 @@ 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]; |
|
tapted
2016/03/23 23:00:06
Without a BUG= I can't grok the wider plan for thi
Mikus
2016/03/24 07:31:25
Done.
msw
2016/03/25 01:41:31
Please cite the bug you filed in the BUG= line of
tapted
2016/03/27 23:10:01
The bug still doesn't describe the _need_ for the
|
| if (traits & NSFontItalicTrait) |
| font_style_ |= Font::ITALIC; |
| if (traits & NSFontBoldTrait) |
| - font_style_ |= Font::BOLD; |
| + font_weight_ = Font::BOLD; |
|
tapted
2016/03/23 23:00:06
Font::Weight::BOLD? - what you have shouldn't comp
Mikus
2016/03/24 07:31:25
Done.
|
| + else |
| + font_weight_ = Font::NORMAL; |
| CalculateMetricsAndInitRenderParams(); |
| } |
| -PlatformFontMac::PlatformFontMac(const std::string& font_name, |
| - int font_size) |
| +PlatformFontMac::PlatformFontMac(const std::string& font_name, int font_size) |
| : native_font_([NSFontWithSpec(font_name, font_size, Font::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 +125,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 +154,13 @@ NativeFont PlatformFontMac::GetNativeFont() const { |
| PlatformFontMac::PlatformFontMac(const std::string& font_name, |
| int font_size, |
| - int font_style) |
| + int font_style, |
| + Font::Weight font_weight) |
| : native_font_([NSFontWithSpec(font_name, font_size, font_style) retain]), |
| font_name_(font_name), |
| font_size_(font_size), |
| - font_style_(font_style) { |
| + font_style_(font_style), |
| + font_weight_(font_weight) { |
| CalculateMetricsAndInitRenderParams(); |
| } |
| @@ -186,6 +198,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); |
| } |