OLD | NEW |
---|---|
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 "ui/views/controls/button/label_button.h" | 5 #include "ui/views/controls/button/label_button.h" |
6 | 6 |
7 #include "base/logging.h" | 7 #include "base/logging.h" |
8 #include "ui/gfx/animation/throb_animation.h" | 8 #include "ui/gfx/animation/throb_animation.h" |
9 #include "ui/gfx/canvas.h" | 9 #include "ui/gfx/canvas.h" |
10 #include "ui/gfx/font_list.h" | 10 #include "ui/gfx/font_list.h" |
(...skipping 12 matching lines...) Expand all Loading... | |
23 | 23 |
24 // The default spacing between the icon and text. | 24 // The default spacing between the icon and text. |
25 const int kSpacing = 5; | 25 const int kSpacing = 5; |
26 | 26 |
27 #if !(defined(OS_LINUX) && !defined(OS_CHROMEOS)) | 27 #if !(defined(OS_LINUX) && !defined(OS_CHROMEOS)) |
28 // Default text and shadow colors for STYLE_BUTTON. | 28 // Default text and shadow colors for STYLE_BUTTON. |
29 const SkColor kStyleButtonTextColor = SK_ColorBLACK; | 29 const SkColor kStyleButtonTextColor = SK_ColorBLACK; |
30 const SkColor kStyleButtonShadowColor = SK_ColorWHITE; | 30 const SkColor kStyleButtonShadowColor = SK_ColorWHITE; |
31 #endif | 31 #endif |
32 | 32 |
33 const gfx::FontList& GetDefaultNormalFontList() { | |
34 static const gfx::FontList kNormalFontList = gfx::FontList(); | |
sky
2014/09/15 19:15:34
Style guide says no statics like this. I think the
msw
2014/09/15 20:51:42
Done.
| |
35 return kNormalFontList; | |
36 } | |
37 | |
38 const gfx::FontList& GetDefaultBoldFontList() { | |
39 static const gfx::FontList kBoldFontList = gfx::FontList(). | |
40 DeriveWithStyle(gfx::FontList().GetFontStyle() | gfx::Font::BOLD); | |
41 return kBoldFontList; | |
42 } | |
43 | |
33 } // namespace | 44 } // namespace |
34 | 45 |
35 namespace views { | 46 namespace views { |
36 | 47 |
37 // static | 48 // static |
38 const int LabelButton::kHoverAnimationDurationMs = 170; | 49 const int LabelButton::kHoverAnimationDurationMs = 170; |
39 | 50 |
40 // static | 51 // static |
41 const char LabelButton::kViewClassName[] = "LabelButton"; | 52 const char LabelButton::kViewClassName[] = "LabelButton"; |
42 | 53 |
43 LabelButton::LabelButton(ButtonListener* listener, const base::string16& text) | 54 LabelButton::LabelButton(ButtonListener* listener, const base::string16& text) |
44 : CustomButton(listener), | 55 : CustomButton(listener), |
45 image_(new ImageView()), | 56 image_(new ImageView()), |
46 label_(new Label()), | 57 label_(new Label()), |
58 cached_normal_font_list_(GetDefaultNormalFontList()), | |
59 cached_bold_font_list_(GetDefaultBoldFontList()), | |
47 button_state_images_(), | 60 button_state_images_(), |
48 button_state_colors_(), | 61 button_state_colors_(), |
49 explicitly_set_colors_(), | 62 explicitly_set_colors_(), |
50 is_default_(false), | 63 is_default_(false), |
51 style_(STYLE_TEXTBUTTON), | 64 style_(STYLE_TEXTBUTTON), |
52 border_is_themed_border_(true), | 65 border_is_themed_border_(true), |
53 image_label_spacing_(kSpacing) { | 66 image_label_spacing_(kSpacing) { |
54 SetAnimationDuration(kHoverAnimationDurationMs); | 67 SetAnimationDuration(kHoverAnimationDurationMs); |
55 SetText(text); | 68 SetText(text); |
56 SetFontList(gfx::FontList()); | |
57 | 69 |
58 AddChildView(image_); | 70 AddChildView(image_); |
59 image_->set_interactive(false); | 71 image_->set_interactive(false); |
60 | 72 |
61 AddChildView(label_); | 73 AddChildView(label_); |
74 label_->SetFontList(cached_normal_font_list_); | |
62 label_->SetAutoColorReadabilityEnabled(false); | 75 label_->SetAutoColorReadabilityEnabled(false); |
63 label_->SetHorizontalAlignment(gfx::ALIGN_LEFT); | 76 label_->SetHorizontalAlignment(gfx::ALIGN_LEFT); |
64 | 77 |
65 // Initialize the colors, border, and layout. | 78 // Initialize the colors, border, and layout. |
66 SetStyle(style_); | 79 SetStyle(style_); |
67 | 80 |
68 SetAccessibleName(text); | 81 SetAccessibleName(text); |
69 } | 82 } |
70 | 83 |
71 LabelButton::~LabelButton() {} | 84 LabelButton::~LabelButton() {} |
(...skipping 417 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
489 GetExtraParams(params); | 502 GetExtraParams(params); |
490 return ui::NativeTheme::kHovered; | 503 return ui::NativeTheme::kHovered; |
491 } | 504 } |
492 | 505 |
493 void LabelButton::ResetCachedPreferredSize() { | 506 void LabelButton::ResetCachedPreferredSize() { |
494 cached_preferred_size_valid_ = false; | 507 cached_preferred_size_valid_ = false; |
495 cached_preferred_size_= gfx::Size(); | 508 cached_preferred_size_= gfx::Size(); |
496 } | 509 } |
497 | 510 |
498 } // namespace views | 511 } // namespace views |
OLD | NEW |