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

Side by Side Diff: chrome/browser/ui/views/find_bar_view.cc

Issue 1408223008: [MD] Share button code between find bar and download shelf (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: one more place Created 5 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
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 "chrome/browser/ui/views/find_bar_view.h" 5 #include "chrome/browser/ui/views/find_bar_view.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 8
9 #include "base/strings/string_number_conversions.h" 9 #include "base/strings/string_number_conversions.h"
10 #include "base/strings/string_util.h" 10 #include "base/strings/string_util.h"
11 #include "base/strings/utf_string_conversions.h" 11 #include "base/strings/utf_string_conversions.h"
12 #include "chrome/browser/profiles/profile.h" 12 #include "chrome/browser/profiles/profile.h"
13 #include "chrome/browser/themes/theme_properties.h" 13 #include "chrome/browser/themes/theme_properties.h"
14 #include "chrome/browser/ui/find_bar/find_bar_controller.h" 14 #include "chrome/browser/ui/find_bar/find_bar_controller.h"
15 #include "chrome/browser/ui/find_bar/find_bar_state.h" 15 #include "chrome/browser/ui/find_bar/find_bar_state.h"
16 #include "chrome/browser/ui/find_bar/find_bar_state_factory.h" 16 #include "chrome/browser/ui/find_bar/find_bar_state_factory.h"
17 #include "chrome/browser/ui/find_bar/find_notification_details.h" 17 #include "chrome/browser/ui/find_bar/find_notification_details.h"
18 #include "chrome/browser/ui/find_bar/find_tab_helper.h" 18 #include "chrome/browser/ui/find_bar/find_tab_helper.h"
19 #include "chrome/browser/ui/view_ids.h" 19 #include "chrome/browser/ui/view_ids.h"
20 #include "chrome/browser/ui/views/bar_control_button.h"
20 #include "chrome/browser/ui/views/find_bar_host.h" 21 #include "chrome/browser/ui/views/find_bar_host.h"
21 #include "chrome/browser/ui/views/frame/browser_view.h" 22 #include "chrome/browser/ui/views/frame/browser_view.h"
22 #include "chrome/grit/generated_resources.h" 23 #include "chrome/grit/generated_resources.h"
23 #include "grit/theme_resources.h" 24 #include "grit/theme_resources.h"
24 #include "third_party/skia/include/core/SkPaint.h" 25 #include "third_party/skia/include/core/SkPaint.h"
25 #include "ui/base/ime/input_method.h" 26 #include "ui/base/ime/input_method.h"
26 #include "ui/base/ime/text_input_flags.h" 27 #include "ui/base/ime/text_input_flags.h"
27 #include "ui/base/l10n/l10n_util.h" 28 #include "ui/base/l10n/l10n_util.h"
28 #include "ui/base/resource/material_design/material_design_controller.h" 29 #include "ui/base/resource/material_design/material_design_controller.h"
29 #include "ui/base/resource/resource_bundle.h" 30 #include "ui/base/resource/resource_bundle.h"
30 #include "ui/base/theme_provider.h" 31 #include "ui/base/theme_provider.h"
31 #include "ui/events/event.h" 32 #include "ui/events/event.h"
32 #include "ui/gfx/canvas.h" 33 #include "ui/gfx/canvas.h"
33 #include "ui/gfx/color_palette.h" 34 #include "ui/gfx/color_palette.h"
34 #include "ui/gfx/paint_vector_icon.h" 35 #include "ui/gfx/paint_vector_icon.h"
35 #include "ui/gfx/vector_icons_public.h" 36 #include "ui/gfx/vector_icons_public.h"
36 #include "ui/native_theme/common_theme.h" 37 #include "ui/native_theme/common_theme.h"
37 #include "ui/native_theme/native_theme.h" 38 #include "ui/native_theme/native_theme.h"
38 #include "ui/resources/grit/ui_resources.h" 39 #include "ui/resources/grit/ui_resources.h"
39 #include "ui/views/animation/ink_drop_animation_controller.h"
40 #include "ui/views/animation/ink_drop_animation_controller_factory.h"
41 #include "ui/views/animation/ink_drop_host.h"
42 #include "ui/views/background.h" 40 #include "ui/views/background.h"
43 #include "ui/views/border.h" 41 #include "ui/views/border.h"
44 #include "ui/views/bubble/bubble_border.h" 42 #include "ui/views/bubble/bubble_border.h"
45 #include "ui/views/controls/button/image_button.h" 43 #include "ui/views/controls/button/image_button.h"
46 #include "ui/views/controls/label.h" 44 #include "ui/views/controls/label.h"
47 #include "ui/views/controls/separator.h" 45 #include "ui/views/controls/separator.h"
48 #include "ui/views/layout/box_layout.h" 46 #include "ui/views/layout/box_layout.h"
49 #include "ui/views/painter.h" 47 #include "ui/views/painter.h"
50 #include "ui/views/view_targeter.h" 48 #include "ui/views/view_targeter.h"
51 #include "ui/views/widget/widget.h" 49 #include "ui/views/widget/widget.h"
52 50
53 namespace { 51 namespace {
54 52
55 // The margins around the UI controls, derived from assets and design specs. 53 // The margins around the UI controls, derived from assets and design specs.
56 const int kMarginLeftOfCloseButton = 3; 54 const int kMarginLeftOfCloseButton = 3;
57 const int kMarginRightOfCloseButton = 7; 55 const int kMarginRightOfCloseButton = 7;
58 const int kMarginLeftOfMatchCountLabel = 3; 56 const int kMarginLeftOfMatchCountLabel = 3;
59 const int kMarginRightOfMatchCountLabel = 1; 57 const int kMarginRightOfMatchCountLabel = 1;
60 const int kMarginLeftOfFindTextfield = 12; 58 const int kMarginLeftOfFindTextfield = 12;
61 const int kMarginVerticalFindTextfield = 6; 59 const int kMarginVerticalFindTextfield = 6;
62 60
63 // Constants for the MD layout, all in dp. 61 // Constants for the MD layout, all in dp.
64 // The horizontal and vertical insets for the bar. 62 // The horizontal and vertical insets for the bar.
65 const int kInteriorPadding = 8; 63 const int kInteriorPadding = 8;
66 // Default spacing between child views. 64 // Default spacing between child views.
67 const int kInterChildSpacing = 4; 65 const int kInterChildSpacing = 4;
68 // Additional spacing around the separator. 66 // Additional spacing around the separator.
69 const int kSeparatorLeftSpacing = 12 - kInterChildSpacing; 67 const int kSeparatorLeftSpacing = 12 - kInterChildSpacing;
70 const int kSeparatorRightSpacing = 8 - kInterChildSpacing; 68 const int kSeparatorRightSpacing = 8 - kInterChildSpacing;
71 // Extra space around the buttons to increase their event target size.
72 const int kButtonExtraTouchSize = 4;
73 69
74 // The margins around the match count label (We add extra space so that the 70 // The margins around the match count label (We add extra space so that the
75 // background highlight extends beyond just the text). 71 // background highlight extends beyond just the text).
76 const int kMatchCountExtraWidth = 9; 72 const int kMatchCountExtraWidth = 9;
77 73
78 // Minimum width for the match count label. 74 // Minimum width for the match count label.
79 const int kMatchCountMinWidth = 30; 75 const int kMatchCountMinWidth = 30;
80 76
81 // The text color for the match count label. 77 // The text color for the match count label.
82 const SkColor kTextColorMatchCount = SkColorSetRGB(178, 178, 178); 78 const SkColor kTextColorMatchCount = SkColorSetRGB(178, 178, 178);
83 79
84 // The text color for the match count label when no matches are found. 80 // The text color for the match count label when no matches are found.
85 const SkColor kTextColorNoMatch = SK_ColorBLACK; 81 const SkColor kTextColorNoMatch = SK_ColorBLACK;
86 82
87 // The background color of the match count label when results are found. 83 // The background color of the match count label when results are found.
88 const SkColor kBackgroundColorMatch = SkColorSetARGB(0, 255, 255, 255); 84 const SkColor kBackgroundColorMatch = SkColorSetARGB(0, 255, 255, 255);
89 85
90 // The background color of the match count label when no results are found. 86 // The background color of the match count label when no results are found.
91 const SkColor kBackgroundColorNoMatch = SkColorSetRGB(255, 102, 102); 87 const SkColor kBackgroundColorNoMatch = SkColorSetRGB(255, 102, 102);
92 88
93 // The color of the match count label for Material Design.
94 const SkColor kMatchTextColorMD = SkColorSetRGB(0x96, 0x96, 0x96);
95
96 // Color of the vertical separator between match count and buttons. (MD only.)
97 const SkColor kSeparatorColor = SkColorSetARGB(0x26, 0, 0, 0);
98
99 // The default number of average characters that the text box will be. This 89 // The default number of average characters that the text box will be. This
100 // number brings the width on a "regular fonts" system to about 300px. 90 // number brings the width on a "regular fonts" system to about 300px.
101 const int kDefaultCharWidth = 43; 91 const int kDefaultCharWidth = 43;
102 92
103 class FindBarButton : public views::ImageButton, public views::InkDropHost {
104 public:
105 explicit FindBarButton(views::ButtonListener* listener);
106 ~FindBarButton() override;
107
108 private:
109 void Layout() override;
110 void AddInkDropLayer(ui::Layer* ink_drop_layer) override;
111 void RemoveInkDropLayer(ui::Layer* ink_drop_layer) override;
112 bool OnMousePressed(const ui::MouseEvent& event) override;
113 void OnGestureEvent(ui::GestureEvent* event) override;
114 void OnMouseReleased(const ui::MouseEvent& event) override;
115 void NotifyClick(const ui::Event& event) override;
116
117 // Animation controller for the ink drop ripple effect.
118 scoped_ptr<views::InkDropAnimationController> ink_drop_animation_controller_;
119
120 DISALLOW_COPY_AND_ASSIGN(FindBarButton);
121 };
122
123 // The match count label is like a normal label, but can process events (which 93 // The match count label is like a normal label, but can process events (which
124 // makes it easier to forward events to the text input --- see 94 // makes it easier to forward events to the text input --- see
125 // FindBarView::TargetForRect). 95 // FindBarView::TargetForRect).
126 class MatchCountLabel : public views::Label { 96 class MatchCountLabel : public views::Label {
127 public: 97 public:
128 MatchCountLabel() {} 98 MatchCountLabel() {}
129 ~MatchCountLabel() override {} 99 ~MatchCountLabel() override {}
130 100
131 // views::Label overrides: 101 // views::Label overrides:
132 bool CanProcessEventsWithinSubtree() const override { return true; } 102 bool CanProcessEventsWithinSubtree() const override { return true; }
133 103
134 private: 104 private:
135 DISALLOW_COPY_AND_ASSIGN(MatchCountLabel); 105 DISALLOW_COPY_AND_ASSIGN(MatchCountLabel);
136 }; 106 };
137 107
138 } // namespace 108 } // namespace
139 109
140 //////////////////////////////////////////////////////////////////////////////// 110 ////////////////////////////////////////////////////////////////////////////////
141 // FindBarButton, public:
142
143 FindBarButton::FindBarButton(views::ButtonListener* listener)
144 : views::ImageButton(listener),
145 ink_drop_animation_controller_(
146 views::InkDropAnimationControllerFactory::
147 CreateInkDropAnimationController(this)) {
148 const int kInkDropLargeSize = 32;
149 const int kInkDropLargeCornerRadius = 4;
150 const int kInkDropSmallSize = 24;
151 const int kInkDropSmallCornerRadius = 2;
152
153 ink_drop_animation_controller_->SetInkDropSize(
154 gfx::Size(kInkDropLargeSize, kInkDropLargeSize),
155 kInkDropLargeCornerRadius,
156 gfx::Size(kInkDropSmallSize, kInkDropSmallSize),
157 kInkDropSmallCornerRadius);
158 }
159
160 FindBarButton::~FindBarButton() {}
161
162 ////////////////////////////////////////////////////////////////////////////////
163 // FindBarButton, private:
164
165 void FindBarButton::Layout() {
166 ImageButton::Layout();
167
168 ink_drop_animation_controller_->SetInkDropCenter(
169 GetLocalBounds().CenterPoint());
170 }
171
172 void FindBarButton::AddInkDropLayer(ui::Layer* ink_drop_layer) {
173 SetPaintToLayer(true);
174 SetFillsBoundsOpaquely(false);
175 layer()->Add(ink_drop_layer);
176 layer()->StackAtBottom(ink_drop_layer);
177 }
178
179 void FindBarButton::RemoveInkDropLayer(ui::Layer* ink_drop_layer) {
180 layer()->Remove(ink_drop_layer);
181 SetFillsBoundsOpaquely(true);
182 SetPaintToLayer(false);
183 }
184
185 bool FindBarButton::OnMousePressed(const ui::MouseEvent& event) {
186 if (IsTriggerableEvent(event)) {
187 ink_drop_animation_controller_->AnimateToState(
188 views::InkDropState::ACTION_PENDING);
189 }
190
191 return ImageButton::OnMousePressed(event);
192 }
193
194 void FindBarButton::OnGestureEvent(ui::GestureEvent* event) {
195 views::InkDropState ink_drop_state = views::InkDropState::HIDDEN;
196 switch (event->type()) {
197 case ui::ET_GESTURE_TAP_DOWN:
198 ink_drop_state = views::InkDropState::ACTION_PENDING;
199 // The ui::ET_GESTURE_TAP_DOWN event needs to be marked as handled so
200 // that subsequent events for the gesture are sent to |this|.
201 event->SetHandled();
202 break;
203 case ui::ET_GESTURE_LONG_PRESS:
204 ink_drop_state = views::InkDropState::SLOW_ACTION_PENDING;
205 break;
206 case ui::ET_GESTURE_TAP:
207 ink_drop_state = views::InkDropState::QUICK_ACTION;
208 break;
209 case ui::ET_GESTURE_LONG_TAP:
210 ink_drop_state = views::InkDropState::SLOW_ACTION;
211 break;
212 case ui::ET_GESTURE_END:
213 case ui::ET_GESTURE_TAP_CANCEL:
214 ink_drop_state = views::InkDropState::HIDDEN;
215 break;
216 default:
217 return;
218 }
219 ink_drop_animation_controller_->AnimateToState(ink_drop_state);
220
221 ImageButton::OnGestureEvent(event);
222 }
223
224 void FindBarButton::OnMouseReleased(const ui::MouseEvent& event) {
225 if (!HitTestPoint(event.location()))
226 ink_drop_animation_controller_->AnimateToState(views::InkDropState::HIDDEN);
227
228 ImageButton::OnMouseReleased(event);
229 }
230
231 void FindBarButton::NotifyClick(const ui::Event& event) {
232 ink_drop_animation_controller_->AnimateToState(
233 views::InkDropState::QUICK_ACTION);
234
235 ImageButton::NotifyClick(event);
236 }
237
238 ////////////////////////////////////////////////////////////////////////////////
239 // FindBarView, public: 111 // FindBarView, public:
240 112
241 FindBarView::FindBarView(FindBarHost* host) 113 FindBarView::FindBarView(FindBarHost* host)
242 : DropdownBarView(host), 114 : DropdownBarView(host),
243 find_text_(NULL), 115 find_text_(nullptr),
244 match_count_text_(NULL), 116 match_count_text_(nullptr),
245 focus_forwarder_view_(NULL), 117 focus_forwarder_view_(nullptr),
246 find_previous_button_(NULL), 118 separator_(nullptr),
247 find_next_button_(NULL), 119 find_previous_button_(nullptr),
248 close_button_(NULL) { 120 find_next_button_(nullptr),
121 close_button_(nullptr) {
249 find_text_ = new views::Textfield; 122 find_text_ = new views::Textfield;
250 find_text_->set_id(VIEW_ID_FIND_IN_PAGE_TEXT_FIELD); 123 find_text_->set_id(VIEW_ID_FIND_IN_PAGE_TEXT_FIELD);
251 find_text_->set_default_width_in_chars(kDefaultCharWidth); 124 find_text_->set_default_width_in_chars(kDefaultCharWidth);
252 find_text_->set_controller(this); 125 find_text_->set_controller(this);
253 find_text_->SetAccessibleName(l10n_util::GetStringUTF16(IDS_ACCNAME_FIND)); 126 find_text_->SetAccessibleName(l10n_util::GetStringUTF16(IDS_ACCNAME_FIND));
254 find_text_->SetTextInputFlags(ui::TEXT_INPUT_FLAG_AUTOCORRECT_OFF); 127 find_text_->SetTextInputFlags(ui::TEXT_INPUT_FLAG_AUTOCORRECT_OFF);
255 AddChildView(find_text_); 128 AddChildView(find_text_);
256 129
257 find_previous_button_ = new FindBarButton(this); 130 if (ui::MaterialDesignController::IsModeMaterial()) {
131 BarControlButton* find_previous = new BarControlButton(this);
132 find_previous->SetIcon(
133 gfx::VectorIconId::FIND_PREV,
134 base::Bind(&FindBarView::GetTextColorForIcon, base::Unretained(this)));
135 BarControlButton* find_next = new BarControlButton(this);
136 find_next->SetIcon(
137 gfx::VectorIconId::FIND_NEXT,
138 base::Bind(&FindBarView::GetTextColorForIcon, base::Unretained(this)));
139 BarControlButton* close = new BarControlButton(this);
140 close->SetIcon(
141 gfx::VectorIconId::BAR_CLOSE,
142 base::Bind(&FindBarView::GetTextColorForIcon, base::Unretained(this)));
143
144 find_previous_button_ = find_previous;
145 find_next_button_ = find_next;
146 close_button_ = close;
147 } else {
148 find_previous_button_ = new views::ImageButton(this);
149 find_next_button_ = new views::ImageButton(this);
150 close_button_ = new views::ImageButton(this);
151 }
152
258 find_previous_button_->set_tag(FIND_PREVIOUS_TAG); 153 find_previous_button_->set_tag(FIND_PREVIOUS_TAG);
259 find_previous_button_->SetFocusable(true); 154 find_previous_button_->SetFocusable(true);
260 find_previous_button_->set_request_focus_on_press(false); 155 find_previous_button_->set_request_focus_on_press(false);
261 find_previous_button_->SetTooltipText( 156 find_previous_button_->SetTooltipText(
262 l10n_util::GetStringUTF16(IDS_FIND_IN_PAGE_PREVIOUS_TOOLTIP)); 157 l10n_util::GetStringUTF16(IDS_FIND_IN_PAGE_PREVIOUS_TOOLTIP));
263 find_previous_button_->SetAccessibleName( 158 find_previous_button_->SetAccessibleName(
264 l10n_util::GetStringUTF16(IDS_ACCNAME_PREVIOUS)); 159 l10n_util::GetStringUTF16(IDS_ACCNAME_PREVIOUS));
265 AddChildView(find_previous_button_); 160 AddChildView(find_previous_button_);
266 161
267 find_next_button_ = new FindBarButton(this);
268 find_next_button_->set_tag(FIND_NEXT_TAG); 162 find_next_button_->set_tag(FIND_NEXT_TAG);
269 find_next_button_->SetFocusable(true); 163 find_next_button_->SetFocusable(true);
270 find_next_button_->set_request_focus_on_press(false); 164 find_next_button_->set_request_focus_on_press(false);
271 find_next_button_->SetTooltipText( 165 find_next_button_->SetTooltipText(
272 l10n_util::GetStringUTF16(IDS_FIND_IN_PAGE_NEXT_TOOLTIP)); 166 l10n_util::GetStringUTF16(IDS_FIND_IN_PAGE_NEXT_TOOLTIP));
273 find_next_button_->SetAccessibleName( 167 find_next_button_->SetAccessibleName(
274 l10n_util::GetStringUTF16(IDS_ACCNAME_NEXT)); 168 l10n_util::GetStringUTF16(IDS_ACCNAME_NEXT));
275 AddChildView(find_next_button_); 169 AddChildView(find_next_button_);
276 170
277 close_button_ = new FindBarButton(this);
278 close_button_->set_tag(CLOSE_TAG); 171 close_button_->set_tag(CLOSE_TAG);
279 close_button_->SetFocusable(true); 172 close_button_->SetFocusable(true);
280 close_button_->set_request_focus_on_press(false); 173 close_button_->set_request_focus_on_press(false);
281 close_button_->SetTooltipText( 174 close_button_->SetTooltipText(
282 l10n_util::GetStringUTF16(IDS_FIND_IN_PAGE_CLOSE_TOOLTIP)); 175 l10n_util::GetStringUTF16(IDS_FIND_IN_PAGE_CLOSE_TOOLTIP));
283 close_button_->SetAccessibleName( 176 close_button_->SetAccessibleName(
284 l10n_util::GetStringUTF16(IDS_ACCNAME_CLOSE)); 177 l10n_util::GetStringUTF16(IDS_ACCNAME_CLOSE));
285 close_button_->SetAnimationDuration(0); 178 close_button_->SetAnimationDuration(0);
286 AddChildView(close_button_); 179 AddChildView(close_button_);
287 180
(...skipping 360 matching lines...) Expand 10 before | Expand all | Expand 10 after
648 // The background color is not used since there's no arrow. 541 // The background color is not used since there's no arrow.
649 SetBorder(make_scoped_ptr(new views::BubbleBorder( 542 SetBorder(make_scoped_ptr(new views::BubbleBorder(
650 views::BubbleBorder::NONE, views::BubbleBorder::SMALL_SHADOW, 543 views::BubbleBorder::NONE, views::BubbleBorder::SMALL_SHADOW,
651 SK_ColorGREEN))); 544 SK_ColorGREEN)));
652 545
653 match_count_text_ = new MatchCountLabel(); 546 match_count_text_ = new MatchCountLabel();
654 match_count_text_->SetEventTargeter( 547 match_count_text_->SetEventTargeter(
655 make_scoped_ptr(new views::ViewTargeter(this))); 548 make_scoped_ptr(new views::ViewTargeter(this)));
656 AddChildViewAt(match_count_text_, 1); 549 AddChildViewAt(match_count_text_, 1);
657 550
658 views::Separator* separator = 551 separator_ = new views::Separator(views::Separator::VERTICAL);
659 new views::Separator(views::Separator::VERTICAL); 552 separator_->SetBorder(views::Border::CreateEmptyBorder(
660 separator->SetColor(kSeparatorColor);
661 separator->SetBorder(views::Border::CreateEmptyBorder(
662 0, kSeparatorLeftSpacing, 0, kSeparatorRightSpacing)); 553 0, kSeparatorLeftSpacing, 0, kSeparatorRightSpacing));
663 AddChildViewAt(separator, 2); 554 AddChildViewAt(separator_, 2);
664 555
665 find_text_->SetBorder(views::Border::NullBorder()); 556 find_text_->SetBorder(views::Border::NullBorder());
666 557
667 struct {
668 views::ImageButton* button;
669 gfx::VectorIconId id;
670 } button_images[] = {
671 {find_previous_button_, gfx::VectorIconId::FIND_PREV},
672 {find_next_button_, gfx::VectorIconId::FIND_NEXT},
673 {close_button_, gfx::VectorIconId::BAR_CLOSE},
674 };
675
676 for (size_t i = 0; i < arraysize(button_images); ++i) {
677 views::ImageButton* button = button_images[i].button;
678 button->SetBorder(views::Border::CreateEmptyBorder(
679 kButtonExtraTouchSize, kButtonExtraTouchSize, kButtonExtraTouchSize,
680 kButtonExtraTouchSize));
681 button->SetImageAlignment(views::ImageButton::ALIGN_CENTER,
682 views::ImageButton::ALIGN_MIDDLE);
683
684 gfx::ImageSkia image =
685 gfx::CreateVectorIcon(button_images[i].id, 16, gfx::kChromeIconGrey);
686 button->SetImage(views::CustomButton::STATE_NORMAL, &image);
687 image = gfx::CreateVectorIcon(button_images[i].id, 16,
688 SkColorSetA(gfx::kChromeIconGrey, 0xff / 2));
689 button->SetImage(views::CustomButton::STATE_DISABLED, &image);
690 }
691
692 views::BoxLayout* manager = 558 views::BoxLayout* manager =
693 new views::BoxLayout(views::BoxLayout::kHorizontal, kInteriorPadding, 559 new views::BoxLayout(views::BoxLayout::kHorizontal, kInteriorPadding,
694 kInteriorPadding, kInterChildSpacing); 560 kInteriorPadding, kInterChildSpacing);
695 SetLayoutManager(manager); 561 SetLayoutManager(manager);
696 manager->SetFlexForView(find_text_, 1); 562 manager->SetFlexForView(find_text_, 1);
697 } 563 }
698 564
699 void FindBarView::Find(const base::string16& search_text) { 565 void FindBarView::Find(const base::string16& search_text) {
700 FindBarController* controller = find_bar_host()->GetFindBarController(); 566 FindBarController* controller = find_bar_host()->GetFindBarController();
701 DCHECK(controller); 567 DCHECK(controller);
(...skipping 72 matching lines...) Expand 10 before | Expand all | Expand 10 after
774 GetThemeProvider()->GetColor(ThemeProperties::COLOR_TAB_TEXT), 640 GetThemeProvider()->GetColor(ThemeProperties::COLOR_TAB_TEXT),
775 rb.GetImageSkiaNamed(IDR_CLOSE_1), 641 rb.GetImageSkiaNamed(IDR_CLOSE_1),
776 rb.GetImageSkiaNamed(IDR_CLOSE_1_MASK)); 642 rb.GetImageSkiaNamed(IDR_CLOSE_1_MASK));
777 } 643 }
778 } 644 }
779 645
780 void FindBarView::OnNativeThemeChanged(const ui::NativeTheme* theme) { 646 void FindBarView::OnNativeThemeChanged(const ui::NativeTheme* theme) {
781 if (!ui::MaterialDesignController::IsModeMaterial()) 647 if (!ui::MaterialDesignController::IsModeMaterial())
782 return; 648 return;
783 649
784 SkColor color = 650 SkColor bg_color = theme->GetSystemColor(
785 theme->GetSystemColor(ui::NativeTheme::kColorId_DialogBackground); 651 ui::NativeTheme::kColorId_TextfieldDefaultBackground);
786 set_background(views::Background::CreateSolidBackground(color)); 652 set_background(views::Background::CreateSolidBackground(bg_color));
787 match_count_text_->SetBackgroundColor(color); 653 match_count_text_->SetBackgroundColor(bg_color);
788 match_count_text_->SetEnabledColor(kMatchTextColorMD); 654
655 SkColor text_color =
656 theme->GetSystemColor(ui::NativeTheme::kColorId_TextfieldDefaultColor);
657 match_count_text_->SetEnabledColor(SkColorSetA(text_color, 0x69));
658 separator_->SetColor(SkColorSetA(text_color, 0x26));
789 } 659 }
660
661 SkColor FindBarView::GetTextColorForIcon() {
662 return GetNativeTheme()->GetSystemColor(
663 ui::NativeTheme::kColorId_TextfieldDefaultColor);
664 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698