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 <stddef.h> | 7 #include <stddef.h> |
8 | 8 |
9 #include <utility> | 9 #include <utility> |
10 | 10 |
(...skipping 216 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
227 void LabelButton::SetFocusPainter(std::unique_ptr<Painter> focus_painter) { | 227 void LabelButton::SetFocusPainter(std::unique_ptr<Painter> focus_painter) { |
228 focus_painter_ = std::move(focus_painter); | 228 focus_painter_ = std::move(focus_painter); |
229 } | 229 } |
230 | 230 |
231 gfx::Size LabelButton::GetPreferredSize() const { | 231 gfx::Size LabelButton::GetPreferredSize() const { |
232 if (cached_preferred_size_valid_) | 232 if (cached_preferred_size_valid_) |
233 return cached_preferred_size_; | 233 return cached_preferred_size_; |
234 | 234 |
235 // Use a temporary label copy for sizing to avoid calculation side-effects. | 235 // Use a temporary label copy for sizing to avoid calculation side-effects. |
236 Label label(GetText(), {label_->font_list()}); | 236 Label label(GetText(), {label_->font_list()}); |
| 237 label.SetLineHeight(label_->line_height()); |
237 label.SetShadows(label_->shadows()); | 238 label.SetShadows(label_->shadows()); |
238 | 239 |
239 if (style_ == STYLE_BUTTON && PlatformStyle::kDefaultLabelButtonHasBoldFont) { | 240 if (style_ == STYLE_BUTTON && PlatformStyle::kDefaultLabelButtonHasBoldFont) { |
240 // Some text appears wider when rendered normally than when rendered bold. | 241 // Some text appears wider when rendered normally than when rendered bold. |
241 // Accommodate the widest, as buttons may show bold and shouldn't resize. | 242 // Accommodate the widest, as buttons may show bold and shouldn't resize. |
242 const int current_width = label.GetPreferredSize().width(); | 243 const int current_width = label.GetPreferredSize().width(); |
243 label.SetFontList(cached_bold_font_list_); | 244 label.SetFontList(cached_bold_font_list_); |
244 if (label.GetPreferredSize().width() < current_width) | 245 if (label.GetPreferredSize().width() < current_width) |
245 label.SetFontList(label_->font_list()); | 246 label.SetFontList(label_->font_list()); |
246 } | 247 } |
(...skipping 353 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
600 : PlatformStyle::TextColorForButton(button_state_colors_, *this); | 601 : PlatformStyle::TextColorForButton(button_state_colors_, *this); |
601 if (state() != STATE_DISABLED && label_->enabled_color() != color) | 602 if (state() != STATE_DISABLED && label_->enabled_color() != color) |
602 label_->SetEnabledColor(color); | 603 label_->SetEnabledColor(color); |
603 } | 604 } |
604 | 605 |
605 bool LabelButton::UseFloodFillInkDrop() const { | 606 bool LabelButton::UseFloodFillInkDrop() const { |
606 return !GetText().empty(); | 607 return !GetText().empty(); |
607 } | 608 } |
608 | 609 |
609 } // namespace views | 610 } // namespace views |
OLD | NEW |