Index: ui/gfx/render_text_mac.mm |
diff --git a/ui/gfx/render_text_mac.mm b/ui/gfx/render_text_mac.mm |
index 3a6d01b9f3ad84bf581e59276e0670b11e6124be..377145ae9c99f1057e2c768e784c45432ace0ff9 100644 |
--- a/ui/gfx/render_text_mac.mm |
+++ b/ui/gfx/render_text_mac.mm |
@@ -65,8 +65,11 @@ namespace gfx { |
namespace internal { |
-skia::RefPtr<SkTypeface> CreateSkiaTypeface(const gfx::Font& font, int style) { |
- gfx::Font font_with_style = font.Derive(0, style); |
+skia::RefPtr<SkTypeface> CreateSkiaTypeface(const gfx::Font& font, |
+ bool italic, |
+ gfx::Font::Weight weight) { |
+ // TODO(mboc): This accepts style, not italic. |
msw
2016/03/25 01:33:10
You'll need to fix this before landing.
Mikus
2016/03/25 11:49:00
Done.
|
+ gfx::Font font_with_style = font.Derive(0, italic, weight); |
if (!font_with_style.GetNativeFont()) |
return nullptr; |
return skia::AdoptRef(SkCreateTypefaceFromCTFont( |
@@ -211,13 +214,15 @@ void RenderTextMac::DrawVisualText(internal::SkiaTextRenderer* renderer) { |
CTFontRef ct_font = static_cast<CTFontRef>(run.font.GetNativeFont()); |
renderer->SetTextSize(CTFontGetSize(ct_font)); |
- int font_style = Font::NORMAL; |
+ // TODO(mboc): Apply font weights. |
+ bool italic = false; |
msw
2016/03/25 01:33:10
nit: inline the flag check into init (and move thi
Mikus
2016/03/25 11:49:00
Done.
|
+ Font::Weight font_weight = Font::Weight::NORMAL; |
CTFontSymbolicTraits traits = CTFontGetSymbolicTraits(ct_font); |
if (traits & kCTFontBoldTrait) |
- font_style |= Font::BOLD; |
+ font_weight = Font::Weight::BOLD; |
if (traits & kCTFontItalicTrait) |
- font_style |= Font::ITALIC; |
- renderer->SetFontWithStyle(run.font, font_style); |
+ italic = true; |
+ renderer->SetFont(run.font, italic, font_weight); |
renderer->DrawPosText(&run.glyph_positions[0], &run.glyphs[0], |
run.glyphs.size()); |
@@ -308,7 +313,7 @@ base::ScopedCFTypeRef<CFMutableArrayRef> RenderTextMac::ApplyStyles( |
CFArrayCreateMutable(NULL, 0, &kCFTypeArrayCallBacks)); |
// https://developer.apple.com/library/mac/#documentation/Carbon/Reference/CoreText_StringAttributes_Ref/Reference/reference.html |
- internal::StyleIterator style(colors(), baselines(), styles()); |
+ internal::StyleIterator style(colors(), baselines(), weights(), styles()); |
const size_t layout_text_length = CFAttributedStringGetLength(attr_string); |
for (size_t i = 0, end = 0; i < layout_text_length; i = end) { |
end = TextIndexToGivenTextIndex(text, style.GetRange().end()); |
@@ -328,8 +333,8 @@ base::ScopedCFTypeRef<CFMutableArrayRef> RenderTextMac::ApplyStyles( |
CFArrayAppendValue(attributes, underline_value); |
} |
- const int traits = (style.style(BOLD) ? kCTFontBoldTrait : 0) | |
- (style.style(ITALIC) ? kCTFontItalicTrait : 0); |
+ // TODO(mboc): Apply font weights below. |
msw
2016/03/25 01:33:10
You'll need to fix this before landing.
Mikus
2016/03/25 11:49:00
Done for Bold, the rest will be done in a followup
|
+ const int traits = (style.style(ITALIC) ? kCTFontItalicTrait : 0); |
if (traits != 0) { |
base::ScopedCFTypeRef<CTFontRef> styled_font = |
CopyFontWithSymbolicTraits(font, traits); |