Return backed up TemplateURL on default search change
[chromium-blink-merge.git] / chrome / browser / chromeos / drop_shadow_label.cc
blob54243ec0206d8d2bab9e9934612db920905f9ebc
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 #include "chrome/browser/chromeos/drop_shadow_label.h"
7 #include "base/utf_string_conversions.h"
8 #include "ui/gfx/canvas.h"
9 #include "ui/gfx/color_utils.h"
11 using views::Label;
13 namespace chromeos {
15 static const int kDefaultDropShadowSize = 2;
17 DropShadowLabel::DropShadowLabel() : drop_shadow_size_(kDefaultDropShadowSize) {
20 void DropShadowLabel::SetDropShadowSize(int drop_shadow_size) {
21 if (drop_shadow_size != drop_shadow_size_) {
22 drop_shadow_size_ = drop_shadow_size;
23 invalidate_text_size();
24 SchedulePaint();
28 void DropShadowLabel::PaintText(gfx::Canvas* canvas,
29 const string16& text,
30 const gfx::Rect& text_bounds,
31 int flags) {
32 SkColor text_color = enabled() ? enabled_color() : disabled_color();
33 if (drop_shadow_size_ > 0) {
34 const float kShadowOpacity = 0.2;
35 const SkColor shadow_color =
36 SkColorSetA(SK_ColorBLACK, kShadowOpacity * SkColorGetA(text_color));
37 for (int i = 0; i < drop_shadow_size_; i++) {
38 canvas->DrawStringInt(text, font(), shadow_color,
39 text_bounds.x() + i, text_bounds.y(),
40 text_bounds.width(), text_bounds.height(), flags);
41 canvas->DrawStringInt(text, font(), shadow_color,
42 text_bounds.x() + i, text_bounds.y() + i,
43 text_bounds.width(), text_bounds.height(), flags);
44 canvas->DrawStringInt(text, font(), shadow_color,
45 text_bounds.x(), text_bounds.y() + i,
46 text_bounds.width(), text_bounds.height(), flags);
50 canvas->DrawStringInt(text, font(), text_color, text_bounds.x(),
51 text_bounds.y(), text_bounds.width(), text_bounds.height(), flags);
53 if (HasFocus() || paint_as_focused()) {
54 gfx::Rect focus_bounds = text_bounds;
55 focus_bounds.Inset(-Label::kFocusBorderPadding,
56 -Label::kFocusBorderPadding);
57 canvas->DrawFocusRect(focus_bounds);
61 gfx::Size DropShadowLabel::GetTextSize() const {
62 gfx::Size text_size = Label::GetTextSize();
63 text_size.SetSize(text_size.width() + drop_shadow_size_,
64 text_size.height() + drop_shadow_size_);
65 return text_size;
68 } // namespace chromeos