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

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

Issue 343853002: Fix new avatar button appearance regressions. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Remove unused label halo code; update example. Created 6 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 | Annotate | Revision Log
« no previous file with comments | « ui/views/controls/button/label_button.h ('k') | ui/views/controls/label.h » ('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 "base/logging.h" 7 #include "base/logging.h"
8 #include "grit/ui_resources.h" 8 #include "grit/ui_resources.h"
9 #include "ui/base/resource/resource_bundle.h" 9 #include "ui/base/resource/resource_bundle.h"
10 #include "ui/gfx/animation/throb_animation.h" 10 #include "ui/gfx/animation/throb_animation.h"
(...skipping 82 matching lines...) Expand 10 before | Expand all | Expand 10 after
93 93
94 void LabelButton::SetTextColor(ButtonState for_state, SkColor color) { 94 void LabelButton::SetTextColor(ButtonState for_state, SkColor color) {
95 button_state_colors_[for_state] = color; 95 button_state_colors_[for_state] = color;
96 if (for_state == STATE_DISABLED) 96 if (for_state == STATE_DISABLED)
97 label_->SetDisabledColor(color); 97 label_->SetDisabledColor(color);
98 else if (for_state == state()) 98 else if (for_state == state())
99 label_->SetEnabledColor(color); 99 label_->SetEnabledColor(color);
100 explicitly_set_colors_[for_state] = true; 100 explicitly_set_colors_[for_state] = true;
101 } 101 }
102 102
103 void LabelButton::SetHaloColor(SkColor color) { 103 void LabelButton::SetTextShadows(const gfx::ShadowValues& shadows) {
104 label_->set_halo_color(color); 104 label_->set_shadows(shadows);
105 }
106
107 void LabelButton::SetTextSubpixelRenderingEnabled(bool enabled) {
108 label_->set_subpixel_rendering_enabled(enabled);
105 } 109 }
106 110
107 bool LabelButton::GetTextMultiLine() const { 111 bool LabelButton::GetTextMultiLine() const {
108 return label_->is_multi_line(); 112 return label_->is_multi_line();
109 } 113 }
110 114
111 void LabelButton::SetTextMultiLine(bool text_multi_line) { 115 void LabelButton::SetTextMultiLine(bool text_multi_line) {
112 label_->SetMultiLine(text_multi_line); 116 label_->SetMultiLine(text_multi_line);
113 } 117 }
114 118
(...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after
173 OnNativeThemeChanged(GetNativeTheme()); 177 OnNativeThemeChanged(GetNativeTheme());
174 } 178 }
175 179
176 void LabelButton::SetFocusPainter(scoped_ptr<Painter> focus_painter) { 180 void LabelButton::SetFocusPainter(scoped_ptr<Painter> focus_painter) {
177 focus_painter_ = focus_painter.Pass(); 181 focus_painter_ = focus_painter.Pass();
178 } 182 }
179 183
180 gfx::Size LabelButton::GetPreferredSize() const { 184 gfx::Size LabelButton::GetPreferredSize() const {
181 // Use a temporary label copy for sizing to avoid calculation side-effects. 185 // Use a temporary label copy for sizing to avoid calculation side-effects.
182 Label label(GetText(), cached_normal_font_list_); 186 Label label(GetText(), cached_normal_font_list_);
187 label.set_shadows(label_->shadows());
183 label.SetMultiLine(GetTextMultiLine()); 188 label.SetMultiLine(GetTextMultiLine());
184 189
185 if (style() == STYLE_BUTTON) { 190 if (style() == STYLE_BUTTON) {
186 // Some text appears wider when rendered normally than when rendered bold. 191 // Some text appears wider when rendered normally than when rendered bold.
187 // Accommodate the widest, as buttons may show bold and shouldn't resize. 192 // Accommodate the widest, as buttons may show bold and shouldn't resize.
188 const int current_width = label.GetPreferredSize().width(); 193 const int current_width = label.GetPreferredSize().width();
189 label.SetFontList(cached_bold_font_list_); 194 label.SetFontList(cached_bold_font_list_);
190 if (label.GetPreferredSize().width() < current_width) 195 if (label.GetPreferredSize().width() < current_width)
191 label.SetFontList(cached_normal_font_list_); 196 label.SetFontList(cached_normal_font_list_);
192 } 197 }
(...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after
252 image_origin.Offset(0, (child_area.height() - image_size.height()) / 2); 257 image_origin.Offset(0, (child_area.height() - image_size.height()) / 2);
253 if (adjusted_alignment == gfx::ALIGN_CENTER) { 258 if (adjusted_alignment == gfx::ALIGN_CENTER) {
254 const int total_width = image_size.width() + label_size.width() + 259 const int total_width = image_size.width() + label_size.width() +
255 ((image_size.width() > 0 && label_size.width() > 0) ? kSpacing : 0); 260 ((image_size.width() > 0 && label_size.width() > 0) ? kSpacing : 0);
256 image_origin.Offset((child_area.width() - total_width) / 2, 0); 261 image_origin.Offset((child_area.width() - total_width) / 2, 0);
257 } else if (adjusted_alignment == gfx::ALIGN_RIGHT) { 262 } else if (adjusted_alignment == gfx::ALIGN_RIGHT) {
258 image_origin.Offset(child_area.width() - image_size.width(), 0); 263 image_origin.Offset(child_area.width() - image_size.width(), 0);
259 } 264 }
260 265
261 gfx::Point label_origin(child_area.origin()); 266 gfx::Point label_origin(child_area.origin());
262 if (!image_size.IsEmpty() &&adjusted_alignment != gfx::ALIGN_RIGHT) 267 if (!image_size.IsEmpty() && adjusted_alignment != gfx::ALIGN_RIGHT)
263 label_origin.set_x(image_origin.x() + image_size.width() + kSpacing); 268 label_origin.set_x(image_origin.x() + image_size.width() + kSpacing);
264 269
265 image_->SetBoundsRect(gfx::Rect(image_origin, image_size)); 270 image_->SetBoundsRect(gfx::Rect(image_origin, image_size));
266 label_->SetBoundsRect(gfx::Rect(label_origin, label_size)); 271 label_->SetBoundsRect(gfx::Rect(label_origin, label_size));
267 } 272 }
268 273
269 const char* LabelButton::GetClassName() const { 274 const char* LabelButton::GetClassName() const {
270 return kViewClassName; 275 return kViewClassName;
271 } 276 }
272 277
(...skipping 164 matching lines...) Expand 10 before | Expand all | Expand 10 after
437 return ui::NativeTheme::kNormal; 442 return ui::NativeTheme::kNormal;
438 } 443 }
439 444
440 ui::NativeTheme::State LabelButton::GetForegroundThemeState( 445 ui::NativeTheme::State LabelButton::GetForegroundThemeState(
441 ui::NativeTheme::ExtraParams* params) const { 446 ui::NativeTheme::ExtraParams* params) const {
442 GetExtraParams(params); 447 GetExtraParams(params);
443 return ui::NativeTheme::kHovered; 448 return ui::NativeTheme::kHovered;
444 } 449 }
445 450
446 } // namespace views 451 } // namespace views
OLDNEW
« no previous file with comments | « ui/views/controls/button/label_button.h ('k') | ui/views/controls/label.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698