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

Side by Side Diff: chrome/browser/views/status_bubble_views.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/status_bubble_views.h" 5 #include "chrome/browser/views/status_bubble_views.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 8
9 #include "app/linear_animation.h" 9 #include "app/linear_animation.h"
10 #include "app/l10n_util.h" 10 #include "app/l10n_util.h"
11 #include "app/resource_bundle.h" 11 #include "app/resource_bundle.h"
12 #include "app/text_elider.h" 12 #include "app/text_elider.h"
13 #include "base/i18n/rtl.h" 13 #include "base/i18n/rtl.h"
14 #include "base/message_loop.h" 14 #include "base/message_loop.h"
15 #include "base/string_util.h" 15 #include "base/string_util.h"
16 #include "chrome/browser/browser_theme_provider.h" 16 #include "chrome/browser/browser_theme_provider.h"
17 #include "gfx/canvas.h" 17 #include "gfx/canvas_skia.h"
18 #include "gfx/point.h" 18 #include "gfx/point.h"
19 #include "googleurl/src/gurl.h" 19 #include "googleurl/src/gurl.h"
20 #include "grit/generated_resources.h" 20 #include "grit/generated_resources.h"
21 #include "grit/theme_resources.h" 21 #include "grit/theme_resources.h"
22 #include "net/base/net_util.h" 22 #include "net/base/net_util.h"
23 #include "third_party/skia/include/core/SkPaint.h" 23 #include "third_party/skia/include/core/SkPaint.h"
24 #include "third_party/skia/include/core/SkPath.h" 24 #include "third_party/skia/include/core/SkPath.h"
25 #include "third_party/skia/include/core/SkRect.h" 25 #include "third_party/skia/include/core/SkRect.h"
26 #include "views/controls/label.h" 26 #include "views/controls/label.h"
27 #include "views/controls/scrollbar/native_scroll_bar.h" 27 #include "views/controls/scrollbar/native_scroll_bar.h"
(...skipping 379 matching lines...) Expand 10 before | Expand all | Expand 10 after
407 int height = popup_bounds.height(); 407 int height = popup_bounds.height();
408 SkRect rect; 408 SkRect rect;
409 rect.set(0, 0, 409 rect.set(0, 0,
410 SkIntToScalar(width), 410 SkIntToScalar(width),
411 SkIntToScalar(height)); 411 SkIntToScalar(height));
412 SkPath shadow_path; 412 SkPath shadow_path;
413 shadow_path.addRoundRect(rect, rad, SkPath::kCW_Direction); 413 shadow_path.addRoundRect(rect, rad, SkPath::kCW_Direction);
414 SkPaint shadow_paint; 414 SkPaint shadow_paint;
415 shadow_paint.setFlags(SkPaint::kAntiAlias_Flag); 415 shadow_paint.setFlags(SkPaint::kAntiAlias_Flag);
416 shadow_paint.setColor(kShadowColor); 416 shadow_paint.setColor(kShadowColor);
417 canvas->drawPath(shadow_path, shadow_paint); 417 canvas->AsCanvasSkia()->drawPath(shadow_path, shadow_paint);
418 418
419 // Draw the bubble. 419 // Draw the bubble.
420 rect.set(SkIntToScalar(kShadowThickness), 420 rect.set(SkIntToScalar(kShadowThickness),
421 SkIntToScalar(kShadowThickness), 421 SkIntToScalar(kShadowThickness),
422 SkIntToScalar(width - kShadowThickness), 422 SkIntToScalar(width - kShadowThickness),
423 SkIntToScalar(height - kShadowThickness)); 423 SkIntToScalar(height - kShadowThickness));
424 SkPath path; 424 SkPath path;
425 path.addRoundRect(rect, rad, SkPath::kCW_Direction); 425 path.addRoundRect(rect, rad, SkPath::kCW_Direction);
426 canvas->drawPath(path, paint); 426 canvas->AsCanvasSkia()->drawPath(path, paint);
427 427
428 // Draw highlight text and then the text body. In order to make sure the text 428 // Draw highlight text and then the text body. In order to make sure the text
429 // is aligned to the right on RTL UIs, we mirror the text bounds if the 429 // is aligned to the right on RTL UIs, we mirror the text bounds if the
430 // locale is RTL. 430 // locale is RTL.
431 int text_width = std::min(views::Label::font().GetStringWidth(text_), 431 int text_width = std::min(views::Label::font().GetStringWidth(text_),
432 width - (kShadowThickness * 2) - kTextPositionX - kTextHorizPadding); 432 width - (kShadowThickness * 2) - kTextPositionX - kTextHorizPadding);
433 int text_height = height - (kShadowThickness * 2); 433 int text_height = height - (kShadowThickness * 2);
434 gfx::Rect body_bounds(kShadowThickness + kTextPositionX, 434 gfx::Rect body_bounds(kShadowThickness + kTextPositionX,
435 kShadowThickness, 435 kShadowThickness,
436 std::max(0, text_width), 436 std::max(0, text_width),
(...skipping 398 matching lines...) Expand 10 before | Expand all | Expand 10 after
835 835
836 void StatusBubbleViews::SetBubbleWidth(int width) { 836 void StatusBubbleViews::SetBubbleWidth(int width) {
837 size_.set_width(width); 837 size_.set_width(width);
838 SetBounds(position_.x(), position_.y(), size_.width(), size_.height()); 838 SetBounds(position_.x(), position_.y(), size_.width(), size_.height());
839 } 839 }
840 840
841 void StatusBubbleViews::CancelExpandTimer() { 841 void StatusBubbleViews::CancelExpandTimer() {
842 if (!expand_timer_factory_.empty()) 842 if (!expand_timer_factory_.empty())
843 expand_timer_factory_.RevokeAll(); 843 expand_timer_factory_.RevokeAll();
844 } 844 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698