| OLD | NEW |
| 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/canvas_skia.h" | 5 #include "ui/gfx/canvas_skia.h" |
| 6 | 6 |
| 7 #include <limits> | 7 #include <limits> |
| 8 | 8 |
| 9 #include "base/i18n/rtl.h" | 9 #include "base/i18n/rtl.h" |
| 10 #include "base/logging.h" | 10 #include "base/logging.h" |
| (...skipping 532 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 543 gradient_width, &tail_part, &solid_part); | 543 gradient_width, &tail_part, &solid_part); |
| 544 | 544 |
| 545 // Grow |display_rect| by |offset_x|. | 545 // Grow |display_rect| by |offset_x|. |
| 546 gfx::Rect text_rect(gfx::Point(), display_rect.size()); | 546 gfx::Rect text_rect(gfx::Point(), display_rect.size()); |
| 547 if (!is_rtl) | 547 if (!is_rtl) |
| 548 text_rect.set_x(text_rect.x() - offset_x); | 548 text_rect.set_x(text_rect.x() - offset_x); |
| 549 text_rect.set_width(text_rect.width() + offset_x); | 549 text_rect.set_width(text_rect.width() + offset_x); |
| 550 | 550 |
| 551 // Create a temporary bitmap to draw the gradient to. | 551 // Create a temporary bitmap to draw the gradient to. |
| 552 scoped_ptr<SkCanvas> gradient_canvas(skia::CreateBitmapCanvas( | 552 scoped_ptr<SkCanvas> gradient_canvas(skia::CreateBitmapCanvas( |
| 553 display_rect.width(), display_rect.height(), false)); | 553 display_rect.width(), display_rect.height(), |
| 554 skia::PlatformDevice::FLAGS_NONE)); |
| 554 | 555 |
| 555 { | 556 { |
| 556 skia::ScopedPlatformPaint scoped_platform_paint(canvas_); | 557 skia::ScopedPlatformPaint scoped_platform_paint(canvas_); |
| 557 HDC hdc = scoped_platform_paint.GetPlatformSurface(); | 558 HDC hdc = scoped_platform_paint.GetPlatformSurface(); |
| 558 if (is_truncating_head) | 559 if (is_truncating_head) |
| 559 DrawTextGradientPart(hdc, gradient_canvas.get(), text, color, | 560 DrawTextGradientPart(hdc, gradient_canvas.get(), text, color, |
| 560 font.GetNativeFont(), text_rect, head_part, is_rtl, | 561 font.GetNativeFont(), text_rect, head_part, is_rtl, |
| 561 flags); | 562 flags); |
| 562 if (is_truncating_tail) | 563 if (is_truncating_tail) |
| 563 DrawTextGradientPart(hdc, gradient_canvas.get(), text, color, | 564 DrawTextGradientPart(hdc, gradient_canvas.get(), text, color, |
| 564 font.GetNativeFont(), text_rect, tail_part, !is_rtl, | 565 font.GetNativeFont(), text_rect, tail_part, !is_rtl, |
| 565 flags); | 566 flags); |
| 566 } | 567 } |
| 567 | 568 |
| 568 // Draw the solid part. | 569 // Draw the solid part. |
| 569 canvas_->save(SkCanvas::kClip_SaveFlag); | 570 canvas_->save(SkCanvas::kClip_SaveFlag); |
| 570 ClipRect(solid_part); | 571 ClipRect(solid_part); |
| 571 DrawStringInt(text, font, color, | 572 DrawStringInt(text, font, color, |
| 572 text_rect.x(), text_rect.y(), | 573 text_rect.x(), text_rect.y(), |
| 573 text_rect.width(), text_rect.height(), | 574 text_rect.width(), text_rect.height(), |
| 574 flags); | 575 flags); |
| 575 canvas_->restore(); | 576 canvas_->restore(); |
| 576 canvas_->restore(); | 577 canvas_->restore(); |
| 577 } | 578 } |
| 578 | 579 |
| 579 } // namespace gfx | 580 } // namespace gfx |
| OLD | NEW |