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

Side by Side Diff: chrome/browser/chromeos/drop_shadow_label.cc

Issue 8890049: [Aura] Implement views-based applist. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: fix win_aura Created 9 years 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
(Empty)
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.
4
5 #include "chrome/browser/chromeos/drop_shadow_label.h"
6
7 #include "base/utf_string_conversions.h"
8 #include "ui/gfx/canvas.h"
9 #include "ui/gfx/color_utils.h"
10
11 using views::Label;
12
13 namespace chromeos {
14
15 static const int kDefaultDropShadowSize = 2;
16
17 DropShadowLabel::DropShadowLabel() : drop_shadow_size_(kDefaultDropShadowSize) {
18 }
19
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();
25 }
26 }
27
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);
47 }
48 }
49
50 canvas->DrawStringInt(text, font(), text_color, text_bounds.x(),
51 text_bounds.y(), text_bounds.width(), text_bounds.height(), flags);
52
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);
58 }
59 }
60
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;
66 }
67
68 } // namespace chromeos
OLDNEW
« no previous file with comments | « chrome/browser/chromeos/drop_shadow_label.h ('k') | chrome/browser/ui/views/aura/app_list/app_list_model_builder.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698