Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(407)

Side by Side Diff: ui/gfx/render_text_mac.mm

Issue 2943823002: Remove gfx::DIAGONAL_STRIKE and supporting code. (Closed)
Patch Set: Created 3 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « ui/gfx/render_text_mac.h ('k') | ui/gfx/render_text_unittest.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "ui/gfx/render_text_mac.h" 5 #include "ui/gfx/render_text_mac.h"
6 6
7 #import <AppKit/AppKit.h> 7 #import <AppKit/AppKit.h>
8 #include <ApplicationServices/ApplicationServices.h> 8 #include <ApplicationServices/ApplicationServices.h>
9 #include <CoreText/CoreText.h> 9 #include <CoreText/CoreText.h>
10 10
(...skipping 242 matching lines...) Expand 10 before | Expand all | Expand 10 after
253 renderer->SetForegroundColor(run.foreground); 253 renderer->SetForegroundColor(run.foreground);
254 renderer->SetTextSize(CTFontGetSize(run.ct_font)); 254 renderer->SetTextSize(CTFontGetSize(run.ct_font));
255 255
256 // The painter adds its own ref. So don't |release()| it from the ref ptr in 256 // The painter adds its own ref. So don't |release()| it from the ref ptr in
257 // TextRun. 257 // TextRun.
258 renderer->SetTypeface(run.typeface); 258 renderer->SetTypeface(run.typeface);
259 259
260 renderer->DrawPosText(&run.glyph_positions[0], &run.glyphs[0], 260 renderer->DrawPosText(&run.glyph_positions[0], &run.glyphs[0],
261 run.glyphs.size()); 261 run.glyphs.size());
262 renderer->DrawDecorations(run.origin.x(), run.origin.y(), run.width, 262 renderer->DrawDecorations(run.origin.x(), run.origin.y(), run.width,
263 run.underline, run.strike, run.diagonal_strike); 263 run.underline, run.strike);
264 } 264 }
265
266 renderer->EndDiagonalStrike();
267 } 265 }
268 266
269 RenderTextMac::TextRun::TextRun() 267 RenderTextMac::TextRun::TextRun()
270 : ct_run(NULL), 268 : ct_run(NULL),
271 origin(SkPoint::Make(0, 0)), 269 origin(SkPoint::Make(0, 0)),
272 width(0), 270 width(0),
273 foreground(SK_ColorBLACK), 271 foreground(SK_ColorBLACK),
274 underline(false), 272 underline(false),
275 strike(false), 273 strike(false) {}
276 diagonal_strike(false) {}
277 274
278 RenderTextMac::TextRun::TextRun(TextRun&& other) = default; 275 RenderTextMac::TextRun::TextRun(TextRun&& other) = default;
279 276
280 RenderTextMac::TextRun::~TextRun() {} 277 RenderTextMac::TextRun::~TextRun() {}
281 278
282 float RenderTextMac::GetLayoutTextWidth() { 279 float RenderTextMac::GetLayoutTextWidth() {
283 base::ScopedCFTypeRef<CFMutableArrayRef> attributes_owner; 280 base::ScopedCFTypeRef<CFMutableArrayRef> attributes_owner;
284 base::ScopedCFTypeRef<CTLineRef> line( 281 base::ScopedCFTypeRef<CTLineRef> line(
285 EnsureLayoutInternal(layout_text(), &attributes_owner)); 282 EnsureLayoutInternal(layout_text(), &attributes_owner));
286 SkScalar baseline; 283 SkScalar baseline;
(...skipping 150 matching lines...) Expand 10 before | Expand all | Expand 10 after
437 CTRunGetPositions(ct_run, empty_cf_range, &positions[0]); 434 CTRunGetPositions(ct_run, empty_cf_range, &positions[0]);
438 positions_ptr = &positions[0]; 435 positions_ptr = &positions[0];
439 } 436 }
440 for (size_t glyph = 0; glyph < glyph_count; glyph++) { 437 for (size_t glyph = 0; glyph < glyph_count; glyph++) {
441 SkPoint* point = &run->glyph_positions[glyph]; 438 SkPoint* point = &run->glyph_positions[glyph];
442 point->set(x + SkDoubleToScalar(positions_ptr[glyph].x), 439 point->set(x + SkDoubleToScalar(positions_ptr[glyph].x),
443 y + SkDoubleToScalar(positions_ptr[glyph].y)); 440 y + SkDoubleToScalar(positions_ptr[glyph].y));
444 } 441 }
445 442
446 // TODO(asvitkine): Style boundaries are not necessarily per-run. Handle 443 // TODO(asvitkine): Style boundaries are not necessarily per-run. Handle
447 // this better. Also, support strike and diagonal_strike. 444 // this better. Also, support strike.
448 CFDictionaryRef attributes = CTRunGetAttributes(ct_run); 445 CFDictionaryRef attributes = CTRunGetAttributes(ct_run);
449 CTFontRef ct_font = base::mac::GetValueFromDictionary<CTFontRef>( 446 CTFontRef ct_font = base::mac::GetValueFromDictionary<CTFontRef>(
450 attributes, kCTFontAttributeName); 447 attributes, kCTFontAttributeName);
451 run->ct_font.reset(ct_font, base::scoped_policy::RETAIN); 448 run->ct_font.reset(ct_font, base::scoped_policy::RETAIN);
452 run->typeface.reset(SkCreateTypefaceFromCTFont(ct_font)); 449 run->typeface.reset(SkCreateTypefaceFromCTFont(ct_font));
453 450
454 const CGColorRef foreground = base::mac::GetValueFromDictionary<CGColorRef>( 451 const CGColorRef foreground = base::mac::GetValueFromDictionary<CGColorRef>(
455 attributes, kCTForegroundColorAttributeName); 452 attributes, kCTForegroundColorAttributeName);
456 if (foreground) 453 if (foreground)
457 run->foreground = skia::CGColorRefToSkColor(foreground); 454 run->foreground = skia::CGColorRefToSkColor(foreground);
(...skipping 22 matching lines...) Expand all
480 // TODO(karandeepb): This is not invoked on any codepath currently. Style the 477 // TODO(karandeepb): This is not invoked on any codepath currently. Style the
481 // returned text if need be. 478 // returned text if need be.
482 if (obscured()) 479 if (obscured())
483 return false; 480 return false;
484 481
485 decorated_text->text = GetTextFromRange(range); 482 decorated_text->text = GetTextFromRange(range);
486 return true; 483 return true;
487 } 484 }
488 485
489 } // namespace gfx 486 } // namespace gfx
OLDNEW
« no previous file with comments | « ui/gfx/render_text_mac.h ('k') | ui/gfx/render_text_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698