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

Side by Side Diff: chrome/browser/views/bubble_border.cc

Issue 2825018: Canvas refactoring part 3.... (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: '' Created 10 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 | Annotate | Revision Log
OLDNEW
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
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 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698