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

Side by Side Diff: views/controls/button/text_button.cc

Issue 8439015: Make infobar controls focusable by default. (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: '' Created 9 years, 1 month 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 | « views/controls/button/text_button.h ('k') | no next file » | 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) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 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 "views/controls/button/text_button.h" 5 #include "views/controls/button/text_button.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 8
9 #include "base/logging.h" 9 #include "base/logging.h"
10 #include "grit/ui_resources.h" 10 #include "grit/ui_resources.h"
(...skipping 16 matching lines...) Expand all
27 // The min size in DLUs comes from 27 // The min size in DLUs comes from
28 // http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnwue/html/c h14e.asp 28 // http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnwue/html/c h14e.asp
29 static const int kMinWidthDLUs = 50; 29 static const int kMinWidthDLUs = 50;
30 static const int kMinHeightDLUs = 14; 30 static const int kMinHeightDLUs = 14;
31 #endif 31 #endif
32 32
33 33
34 // Default space between the icon and text. 34 // Default space between the icon and text.
35 static const int kDefaultIconTextSpacing = 5; 35 static const int kDefaultIconTextSpacing = 5;
36 36
37 // Preferred padding between text and edge 37 // Preferred padding between text and edge.
38 static const int kPreferredPaddingHorizontal = 6; 38 static const int kPreferredPaddingHorizontal = 6;
39 static const int kPreferredPaddingVertical = 5; 39 static const int kPreferredPaddingVertical = 5;
40 40
41 // Preferred padding between text and edge for NativeTheme border 41 // Preferred padding between text and edge for NativeTheme border.
42 static const int kPreferredNativeThemePaddingHorizontal = 12; 42 static const int kPreferredNativeThemePaddingHorizontal = 12;
43 static const int kPreferredNativeThemePaddingVertical = 5; 43 static const int kPreferredNativeThemePaddingVertical = 5;
44 44
45 // By default the focus rect is drawn at the border of the view.
46 // For a button, we inset the focus rect by 3 pixels so that it
47 // doesn't draw on top of the button's border. This roughly matches
48 // how the Windows native focus rect for buttons looks. A subclass
49 // that draws a button with different padding may need to
50 // override OnPaintFocusBorder and do something different.
51 static const int kFocusRectInset = 3;
52
45 // Default background color for buttons. 53 // Default background color for buttons.
46 const SkColor kBackgroundColor = SkColorSetRGB(0xde, 0xde, 0xde); 54 const SkColor kBackgroundColor = SkColorSetRGB(0xde, 0xde, 0xde);
47 55
48 #if defined(USE_AURA) 56 #if defined(USE_AURA)
49 // static 57 // static
50 const SkColor TextButtonBase::kEnabledColor = SkColorSetRGB(0x44, 0x44, 0x44); 58 const SkColor TextButtonBase::kEnabledColor = SkColorSetRGB(0x44, 0x44, 0x44);
51 // static 59 // static
52 const SkColor TextButtonBase::kHighlightColor = SkColorSetRGB(0, 0, 0); 60 const SkColor TextButtonBase::kHighlightColor = SkColorSetRGB(0, 0, 0);
53 // static 61 // static
54 const SkColor TextButtonBase::kDisabledColor = SkColorSetRGB(0x99, 0x99, 0x99); 62 const SkColor TextButtonBase::kDisabledColor = SkColorSetRGB(0x99, 0x99, 0x99);
(...skipping 682 matching lines...) Expand 10 before | Expand all | Expand 10 after
737 } 745 }
738 746
739 void TextButton::set_ignore_minimum_size(bool ignore_minimum_size) { 747 void TextButton::set_ignore_minimum_size(bool ignore_minimum_size) {
740 ignore_minimum_size_ = ignore_minimum_size; 748 ignore_minimum_size_ = ignore_minimum_size;
741 } 749 }
742 750
743 std::string TextButton::GetClassName() const { 751 std::string TextButton::GetClassName() const {
744 return kViewClassName; 752 return kViewClassName;
745 } 753 }
746 754
755 void TextButton::OnPaintFocusBorder(gfx::Canvas* canvas) {
756 if ((IsFocusable() || IsAccessibilityFocusableInRootView()) && HasFocus()) {
757 gfx::Rect rect(GetLocalBounds());
758 rect.Inset(kFocusRectInset, kFocusRectInset);
759 canvas->DrawFocusRect(rect);
760 }
761 }
762
747 gfx::NativeTheme::Part TextButton::GetThemePart() const { 763 gfx::NativeTheme::Part TextButton::GetThemePart() const {
748 return gfx::NativeTheme::kPushButton; 764 return gfx::NativeTheme::kPushButton;
749 } 765 }
750 766
751 void TextButton::GetExtraParams(gfx::NativeTheme::ExtraParams* params) const { 767 void TextButton::GetExtraParams(gfx::NativeTheme::ExtraParams* params) const {
752 TextButtonBase::GetExtraParams(params); 768 TextButtonBase::GetExtraParams(params);
753 params->button.is_default = is_default_; 769 params->button.is_default = is_default_;
754 } 770 }
755 771
756 gfx::Rect TextButton::GetTextBounds() const { 772 gfx::Rect TextButton::GetTextBounds() const {
(...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after
818 gfx::Size NativeTextButton::GetMinimumSize() { 834 gfx::Size NativeTextButton::GetMinimumSize() {
819 return GetPreferredSize(); 835 return GetPreferredSize();
820 } 836 }
821 837
822 std::string NativeTextButton::GetClassName() const { 838 std::string NativeTextButton::GetClassName() const {
823 return kViewClassName; 839 return kViewClassName;
824 } 840 }
825 841
826 void NativeTextButton::OnPaintFocusBorder(gfx::Canvas* canvas) { 842 void NativeTextButton::OnPaintFocusBorder(gfx::Canvas* canvas) {
827 #if defined(OS_WIN) 843 #if defined(OS_WIN)
828 // On windows, make sure the focus border is inset wrt the entire button so
829 // that the native text button appears more like a windows button.
830 if ((IsFocusable() || IsAccessibilityFocusableInRootView()) && HasFocus()) { 844 if ((IsFocusable() || IsAccessibilityFocusableInRootView()) && HasFocus()) {
831 gfx::Rect rect(GetLocalBounds()); 845 gfx::Rect rect(GetLocalBounds());
832 rect.Inset(3, 3); 846 rect.Inset(kFocusRectInset, kFocusRectInset);
833 canvas->DrawFocusRect(rect); 847 canvas->DrawFocusRect(rect);
834 } 848 }
835 #else 849 #else
836 TextButton::OnPaintFocusBorder(canvas); 850 TextButton::OnPaintFocusBorder(canvas);
837 #endif 851 #endif
838 } 852 }
839 853
840 void NativeTextButton::GetExtraParams( 854 void NativeTextButton::GetExtraParams(
841 gfx::NativeTheme::ExtraParams* params) const { 855 gfx::NativeTheme::ExtraParams* params) const {
842 TextButton::GetExtraParams(params); 856 TextButton::GetExtraParams(params);
843 params->button.has_border = true; 857 params->button.has_border = true;
844 } 858 }
845 859
846 } // namespace views 860 } // namespace views
OLDNEW
« no previous file with comments | « views/controls/button/text_button.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698