| OLD | NEW |
| 1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2010 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 "chrome/browser/views/bubble_border.h" | 5 #include "chrome/browser/views/bubble_border.h" |
| 6 | 6 |
| 7 #include "app/resource_bundle.h" | 7 #include "app/resource_bundle.h" |
| 8 #include "base/logging.h" | 8 #include "base/logging.h" |
| 9 #include "gfx/canvas.h" | 9 #include "gfx/canvas_skia.h" |
| 10 #include "gfx/path.h" | 10 #include "gfx/path.h" |
| 11 #include "grit/theme_resources.h" | 11 #include "grit/theme_resources.h" |
| 12 #include "third_party/skia/include/core/SkBitmap.h" | 12 #include "third_party/skia/include/core/SkBitmap.h" |
| 13 | 13 |
| 14 // static | 14 // static |
| 15 SkBitmap* BubbleBorder::left_ = NULL; | 15 SkBitmap* BubbleBorder::left_ = NULL; |
| 16 SkBitmap* BubbleBorder::top_left_ = NULL; | 16 SkBitmap* BubbleBorder::top_left_ = NULL; |
| 17 SkBitmap* BubbleBorder::top_ = NULL; | 17 SkBitmap* BubbleBorder::top_ = NULL; |
| 18 SkBitmap* BubbleBorder::top_right_ = NULL; | 18 SkBitmap* BubbleBorder::top_right_ = NULL; |
| 19 SkBitmap* BubbleBorder::right_ = NULL; | 19 SkBitmap* BubbleBorder::right_ = NULL; |
| (...skipping 391 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 411 gfx::Path path; | 411 gfx::Path path; |
| 412 path.incReserve(4); | 412 path.incReserve(4); |
| 413 path.moveTo(SkIntToScalar(tip_x), SkIntToScalar(tip_y)); | 413 path.moveTo(SkIntToScalar(tip_x), SkIntToScalar(tip_y)); |
| 414 path.lineTo(SkIntToScalar(tip_x + shift_x), | 414 path.lineTo(SkIntToScalar(tip_x + shift_x), |
| 415 SkIntToScalar(tip_y + shift_y)); | 415 SkIntToScalar(tip_y + shift_y)); |
| 416 if (is_horizontal) | 416 if (is_horizontal) |
| 417 path.lineTo(SkIntToScalar(tip_x - shift_x), SkIntToScalar(tip_y + shift_y)); | 417 path.lineTo(SkIntToScalar(tip_x - shift_x), SkIntToScalar(tip_y + shift_y)); |
| 418 else | 418 else |
| 419 path.lineTo(SkIntToScalar(tip_x + shift_x), SkIntToScalar(tip_y - shift_y)); | 419 path.lineTo(SkIntToScalar(tip_x + shift_x), SkIntToScalar(tip_y - shift_y)); |
| 420 path.close(); | 420 path.close(); |
| 421 canvas->drawPath(path, paint); | 421 canvas->AsCanvasSkia()->drawPath(path, paint); |
| 422 } | 422 } |
| 423 | 423 |
| 424 ///////////////////////// | 424 ///////////////////////// |
| 425 | 425 |
| 426 void BubbleBackground::Paint(gfx::Canvas* canvas, views::View* view) const { | 426 void BubbleBackground::Paint(gfx::Canvas* canvas, views::View* view) const { |
| 427 // The border of this view creates an anti-aliased round-rect region for the | 427 // The border of this view creates an anti-aliased round-rect region for the |
| 428 // contents, which we need to fill with the background color. | 428 // contents, which we need to fill with the background color. |
| 429 // NOTE: This doesn't handle an arrow location of "NONE", which has square top | 429 // NOTE: This doesn't handle an arrow location of "NONE", which has square top |
| 430 // corners. | 430 // corners. |
| 431 SkPaint paint; | 431 SkPaint paint; |
| 432 paint.setAntiAlias(true); | 432 paint.setAntiAlias(true); |
| 433 paint.setStyle(SkPaint::kFill_Style); | 433 paint.setStyle(SkPaint::kFill_Style); |
| 434 paint.setColor(border_->background_color()); | 434 paint.setColor(border_->background_color()); |
| 435 gfx::Path path; | 435 gfx::Path path; |
| 436 gfx::Rect bounds(view->GetLocalBounds(false)); | 436 gfx::Rect bounds(view->GetLocalBounds(false)); |
| 437 SkRect rect; | 437 SkRect rect; |
| 438 rect.set(SkIntToScalar(bounds.x()), SkIntToScalar(bounds.y()), | 438 rect.set(SkIntToScalar(bounds.x()), SkIntToScalar(bounds.y()), |
| 439 SkIntToScalar(bounds.right()), SkIntToScalar(bounds.bottom())); | 439 SkIntToScalar(bounds.right()), SkIntToScalar(bounds.bottom())); |
| 440 SkScalar radius = SkIntToScalar(BubbleBorder::GetCornerRadius()); | 440 SkScalar radius = SkIntToScalar(BubbleBorder::GetCornerRadius()); |
| 441 path.addRoundRect(rect, radius, radius); | 441 path.addRoundRect(rect, radius, radius); |
| 442 canvas->drawPath(path, paint); | 442 canvas->AsCanvasSkia()->drawPath(path, paint); |
| 443 } | 443 } |
| OLD | NEW |