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

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

Issue 340003002: Revert of views: Move MenuButton from TextButton to LabelButton. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: 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/button/menu_button.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) {
104 label_->set_halo_color(color);
105 }
106
107 bool LabelButton::GetTextMultiLine() const { 103 bool LabelButton::GetTextMultiLine() const {
108 return label_->is_multi_line(); 104 return label_->is_multi_line();
109 } 105 }
110 106
111 void LabelButton::SetTextMultiLine(bool text_multi_line) { 107 void LabelButton::SetTextMultiLine(bool text_multi_line) {
112 label_->SetMultiLine(text_multi_line); 108 label_->SetMultiLine(text_multi_line);
113 } 109 }
114 110
115 const gfx::FontList& LabelButton::GetFontList() const { 111 const gfx::FontList& LabelButton::GetFontList() const {
116 return label_->font_list(); 112 return label_->font_list();
(...skipping 102 matching lines...) Expand 10 before | Expand all | Expand 10 after
219 size.set_height(std::min(max_size_.height(), size.height())); 215 size.set_height(std::min(max_size_.height(), size.height()));
220 return size; 216 return size;
221 } 217 }
222 218
223 void LabelButton::Layout() { 219 void LabelButton::Layout() {
224 gfx::HorizontalAlignment adjusted_alignment = GetHorizontalAlignment(); 220 gfx::HorizontalAlignment adjusted_alignment = GetHorizontalAlignment();
225 if (base::i18n::IsRTL() && adjusted_alignment != gfx::ALIGN_CENTER) 221 if (base::i18n::IsRTL() && adjusted_alignment != gfx::ALIGN_CENTER)
226 adjusted_alignment = (adjusted_alignment == gfx::ALIGN_LEFT) ? 222 adjusted_alignment = (adjusted_alignment == gfx::ALIGN_LEFT) ?
227 gfx::ALIGN_RIGHT : gfx::ALIGN_LEFT; 223 gfx::ALIGN_RIGHT : gfx::ALIGN_LEFT;
228 224
229 gfx::Rect child_area(GetChildAreaBounds()); 225 gfx::Rect child_area(GetLocalBounds());
230 child_area.Inset(GetInsets()); 226 child_area.Inset(GetInsets());
231 227
232 gfx::Size image_size(image_->GetPreferredSize()); 228 gfx::Size image_size(image_->GetPreferredSize());
233 image_size.SetToMin(child_area.size()); 229 image_size.SetToMin(child_area.size());
234 230
235 // The label takes any remaining width after sizing the image, unless both 231 // The label takes any remaining width after sizing the image, unless both
236 // views are centered. In that case, using the tighter preferred label width 232 // views are centered. In that case, using the tighter preferred label width
237 // avoids wasted space within the label that would look like awkward padding. 233 // avoids wasted space within the label that would look like awkward padding.
238 gfx::Size label_size(child_area.size()); 234 gfx::Size label_size(child_area.size());
239 if (!image_size.IsEmpty() && !label_size.IsEmpty()) { 235 if (!image_size.IsEmpty() && !label_size.IsEmpty()) {
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
272 268
273 scoped_ptr<LabelButtonBorder> LabelButton::CreateDefaultBorder() const { 269 scoped_ptr<LabelButtonBorder> LabelButton::CreateDefaultBorder() const {
274 return scoped_ptr<LabelButtonBorder>(new LabelButtonBorder(style_)); 270 return scoped_ptr<LabelButtonBorder>(new LabelButtonBorder(style_));
275 } 271 }
276 272
277 void LabelButton::SetBorder(scoped_ptr<Border> border) { 273 void LabelButton::SetBorder(scoped_ptr<Border> border) {
278 border_is_themed_border_ = false; 274 border_is_themed_border_ = false;
279 View::SetBorder(border.Pass()); 275 View::SetBorder(border.Pass());
280 } 276 }
281 277
282 gfx::Rect LabelButton::GetChildAreaBounds() {
283 return GetLocalBounds();
284 }
285
286 void LabelButton::OnPaint(gfx::Canvas* canvas) { 278 void LabelButton::OnPaint(gfx::Canvas* canvas) {
287 View::OnPaint(canvas); 279 View::OnPaint(canvas);
288 Painter::PaintFocusPainter(this, canvas, focus_painter_.get()); 280 Painter::PaintFocusPainter(this, canvas, focus_painter_.get());
289 } 281 }
290 282
291 void LabelButton::OnFocus() { 283 void LabelButton::OnFocus() {
292 View::OnFocus(); 284 View::OnFocus();
293 // Typically the border renders differently when focused. 285 // Typically the border renders differently when focused.
294 SchedulePaint(); 286 SchedulePaint();
295 } 287 }
(...skipping 71 matching lines...) Expand 10 before | Expand all | Expand 10 after
367 // Don't override borders set by others. 359 // Don't override borders set by others.
368 if (!border_is_themed_border_) 360 if (!border_is_themed_border_)
369 return; 361 return;
370 362
371 scoped_ptr<LabelButtonBorder> label_button_border = CreateDefaultBorder(); 363 scoped_ptr<LabelButtonBorder> label_button_border = CreateDefaultBorder();
372 364
373 #if defined(OS_LINUX) && !defined(OS_CHROMEOS) 365 #if defined(OS_LINUX) && !defined(OS_CHROMEOS)
374 views::LinuxUI* linux_ui = views::LinuxUI::instance(); 366 views::LinuxUI* linux_ui = views::LinuxUI::instance();
375 if (linux_ui) { 367 if (linux_ui) {
376 SetBorder(linux_ui->CreateNativeBorder( 368 SetBorder(linux_ui->CreateNativeBorder(
377 this, label_button_border.Pass())); 369 this, label_button_border.PassAs<Border>()));
378 } else 370 } else
379 #endif 371 #endif
380 { 372 {
381 SetBorder(label_button_border.PassAs<Border>()); 373 SetBorder(label_button_border.PassAs<Border>());
382 } 374 }
383 375
384 border_is_themed_border_ = true; 376 border_is_themed_border_ = true;
385 } 377 }
386 378
387 void LabelButton::StateChanged() { 379 void LabelButton::StateChanged() {
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after
437 return ui::NativeTheme::kNormal; 429 return ui::NativeTheme::kNormal;
438 } 430 }
439 431
440 ui::NativeTheme::State LabelButton::GetForegroundThemeState( 432 ui::NativeTheme::State LabelButton::GetForegroundThemeState(
441 ui::NativeTheme::ExtraParams* params) const { 433 ui::NativeTheme::ExtraParams* params) const {
442 GetExtraParams(params); 434 GetExtraParams(params);
443 return ui::NativeTheme::kHovered; 435 return ui::NativeTheme::kHovered;
444 } 436 }
445 437
446 } // namespace views 438 } // namespace views
OLDNEW
« no previous file with comments | « ui/views/controls/button/label_button.h ('k') | ui/views/controls/button/menu_button.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698