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

Side by Side Diff: ui/views/controls/button/label_button.cc

Issue 1819753003: Allow various font weights in gfx. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Add a lost comment and modify a render text unittest to not test black because of test env font con… Created 4 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
« no previous file with comments | « ui/gfx/text_constants.h ('k') | ui/views/controls/button/label_button_unittest.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 <stddef.h> 7 #include <stddef.h>
8 8
9 #include <utility> 9 #include <utility>
10 10
(...skipping 14 matching lines...) Expand all
25 #include "ui/views/controls/button/label_button_border.h" 25 #include "ui/views/controls/button/label_button_border.h"
26 #include "ui/views/painter.h" 26 #include "ui/views/painter.h"
27 #include "ui/views/style/platform_style.h" 27 #include "ui/views/style/platform_style.h"
28 #include "ui/views/window/dialog_delegate.h" 28 #include "ui/views/window/dialog_delegate.h"
29 29
30 namespace { 30 namespace {
31 31
32 // The default spacing between the icon and text. 32 // The default spacing between the icon and text.
33 const int kSpacing = 5; 33 const int kSpacing = 5;
34 34
35 gfx::Font::Weight GetValueBolderThan(gfx::Font::Weight weight) {
36 if (weight < gfx::Font::Weight::BOLD)
37 return gfx::Font::Weight::BOLD;
38 switch (weight) {
39 case gfx::Font::Weight::BOLD:
40 return gfx::Font::Weight::EXTRA_BOLD;
41 case gfx::Font::Weight::EXTRA_BOLD:
42 case gfx::Font::Weight::BLACK:
43 return gfx::Font::Weight::BLACK;
44 default:
45 NOTREACHED();
46 }
47 return gfx::Font::Weight::INVALID;
48 }
49
35 const gfx::FontList& GetDefaultNormalFontList() { 50 const gfx::FontList& GetDefaultNormalFontList() {
36 static base::LazyInstance<gfx::FontList>::Leaky font_list = 51 static base::LazyInstance<gfx::FontList>::Leaky font_list =
37 LAZY_INSTANCE_INITIALIZER; 52 LAZY_INSTANCE_INITIALIZER;
38 return font_list.Get(); 53 return font_list.Get();
39 } 54 }
40 55
41 const gfx::FontList& GetDefaultBoldFontList() { 56 const gfx::FontList& GetDefaultBoldFontList() {
42 if (!views::PlatformStyle::kDefaultLabelButtonHasBoldFont) 57 if (!views::PlatformStyle::kDefaultLabelButtonHasBoldFont)
43 return GetDefaultNormalFontList(); 58 return GetDefaultNormalFontList();
44 59
45 static base::LazyInstance<gfx::FontList>::Leaky font_list = 60 static base::LazyInstance<gfx::FontList>::Leaky font_list =
46 LAZY_INSTANCE_INITIALIZER; 61 LAZY_INSTANCE_INITIALIZER;
47 if ((font_list.Get().GetFontStyle() & gfx::Font::BOLD) == 0) { 62
48 font_list.Get() = font_list.Get(). 63 static const gfx::Font::Weight default_bold_weight =
49 DeriveWithStyle(font_list.Get().GetFontStyle() | gfx::Font::BOLD); 64 font_list.Get().GetFontWeight();
50 DCHECK_NE(font_list.Get().GetFontStyle() & gfx::Font::BOLD, 0); 65
51 } 66 font_list.Get() = font_list.Get().DeriveWithWeight(
67 GetValueBolderThan(default_bold_weight));
68 DCHECK_GE(font_list.Get().GetFontWeight(), gfx::Font::Weight::BOLD);
69
52 return font_list.Get(); 70 return font_list.Get();
53 } 71 }
54 72
55 // Ink drop container view that does not capture any events. 73 // Ink drop container view that does not capture any events.
56 class InkDropContainerView : public views::View { 74 class InkDropContainerView : public views::View {
57 public: 75 public:
58 InkDropContainerView() {} 76 InkDropContainerView() {}
59 77
60 // View: 78 // View:
61 bool CanProcessEventsWithinSubtree() const override { 79 bool CanProcessEventsWithinSubtree() const override {
(...skipping 96 matching lines...) Expand 10 before | Expand all | Expand 10 after
158 label_->SetSubpixelRenderingEnabled(enabled); 176 label_->SetSubpixelRenderingEnabled(enabled);
159 } 177 }
160 178
161 const gfx::FontList& LabelButton::GetFontList() const { 179 const gfx::FontList& LabelButton::GetFontList() const {
162 return label_->font_list(); 180 return label_->font_list();
163 } 181 }
164 182
165 void LabelButton::SetFontList(const gfx::FontList& font_list) { 183 void LabelButton::SetFontList(const gfx::FontList& font_list) {
166 cached_normal_font_list_ = font_list; 184 cached_normal_font_list_ = font_list;
167 if (PlatformStyle::kDefaultLabelButtonHasBoldFont) { 185 if (PlatformStyle::kDefaultLabelButtonHasBoldFont) {
168 cached_bold_font_list_ = 186 cached_bold_font_list_ = font_list.DeriveWithWeight(
169 font_list.DeriveWithStyle(font_list.GetFontStyle() | gfx::Font::BOLD); 187 GetValueBolderThan(font_list.GetFontWeight()));
170 if (is_default_) { 188 if (is_default_) {
171 label_->SetFontList(cached_bold_font_list_); 189 label_->SetFontList(cached_bold_font_list_);
172 return; 190 return;
173 } 191 }
174 } 192 }
175 label_->SetFontList(cached_normal_font_list_); 193 label_->SetFontList(cached_normal_font_list_);
176 } 194 }
177 195
178 void LabelButton::SetElideBehavior(gfx::ElideBehavior elide_behavior) { 196 void LabelButton::SetElideBehavior(gfx::ElideBehavior elide_behavior) {
179 label_->SetElideBehavior(elide_behavior); 197 label_->SetElideBehavior(elide_behavior);
(...skipping 391 matching lines...) Expand 10 before | Expand all | Expand 10 after
571 void LabelButton::ResetLabelEnabledColor() { 589 void LabelButton::ResetLabelEnabledColor() {
572 const SkColor color = 590 const SkColor color =
573 explicitly_set_colors_[state()] 591 explicitly_set_colors_[state()]
574 ? button_state_colors_[state()] 592 ? button_state_colors_[state()]
575 : PlatformStyle::TextColorForButton(button_state_colors_, *this); 593 : PlatformStyle::TextColorForButton(button_state_colors_, *this);
576 if (state() != STATE_DISABLED && label_->enabled_color() != color) 594 if (state() != STATE_DISABLED && label_->enabled_color() != color)
577 label_->SetEnabledColor(color); 595 label_->SetEnabledColor(color);
578 } 596 }
579 597
580 } // namespace views 598 } // namespace views
OLDNEW
« no previous file with comments | « ui/gfx/text_constants.h ('k') | ui/views/controls/button/label_button_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698