OLD | NEW |
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 "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/string_number_conversions.h" | 9 #include "base/string_number_conversions.h" |
10 #include "base/string_util.h" | 10 #include "base/string_util.h" |
(...skipping 71 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
82 find_text_ = new SearchTextfieldView(); | 82 find_text_ = new SearchTextfieldView(); |
83 find_text_->set_id(VIEW_ID_FIND_IN_PAGE_TEXT_FIELD); | 83 find_text_->set_id(VIEW_ID_FIND_IN_PAGE_TEXT_FIELD); |
84 find_text_->SetFont(rb.GetFont(ResourceBundle::BaseFont)); | 84 find_text_->SetFont(rb.GetFont(ResourceBundle::BaseFont)); |
85 find_text_->set_default_width_in_chars(kDefaultCharWidth); | 85 find_text_->set_default_width_in_chars(kDefaultCharWidth); |
86 find_text_->SetController(this); | 86 find_text_->SetController(this); |
87 find_text_->SetAccessibleName(l10n_util::GetStringUTF16(IDS_ACCNAME_FIND)); | 87 find_text_->SetAccessibleName(l10n_util::GetStringUTF16(IDS_ACCNAME_FIND)); |
88 AddChildView(find_text_); | 88 AddChildView(find_text_); |
89 | 89 |
90 match_count_text_ = new views::Label(); | 90 match_count_text_ = new views::Label(); |
91 match_count_text_->SetFont(rb.GetFont(ResourceBundle::BaseFont)); | 91 match_count_text_->SetFont(rb.GetFont(ResourceBundle::BaseFont)); |
92 match_count_text_->SetColor(kTextColorMatchCount); | |
93 match_count_text_->SetHorizontalAlignment(views::Label::ALIGN_CENTER); | 92 match_count_text_->SetHorizontalAlignment(views::Label::ALIGN_CENTER); |
94 AddChildView(match_count_text_); | 93 AddChildView(match_count_text_); |
95 | 94 |
96 // Create a focus forwarder view which sends focus to find_text_. | 95 // Create a focus forwarder view which sends focus to find_text_. |
97 focus_forwarder_view_ = new FocusForwarderView(find_text_); | 96 focus_forwarder_view_ = new FocusForwarderView(find_text_); |
98 AddChildView(focus_forwarder_view_); | 97 AddChildView(focus_forwarder_view_); |
99 | 98 |
100 find_previous_button_ = new views::ImageButton(this); | 99 find_previous_button_ = new views::ImageButton(this); |
101 find_previous_button_->set_tag(FIND_PREVIOUS_TAG); | 100 find_previous_button_->set_tag(FIND_PREVIOUS_TAG); |
102 find_previous_button_->set_focusable(true); | 101 find_previous_button_->set_focusable(true); |
(...skipping 73 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
176 result.number_of_matches() != -1 && result.active_match_ordinal() != -1; | 175 result.number_of_matches() != -1 && result.active_match_ordinal() != -1; |
177 | 176 |
178 // http://crbug.com/34970: some IMEs get confused if we change the text | 177 // http://crbug.com/34970: some IMEs get confused if we change the text |
179 // composed by them. To avoid this problem, we should check the IME status and | 178 // composed by them. To avoid this problem, we should check the IME status and |
180 // update the text only when the IME is not composing text. | 179 // update the text only when the IME is not composing text. |
181 if (find_text_->text() != find_text && !find_text_->IsIMEComposing()) { | 180 if (find_text_->text() != find_text && !find_text_->IsIMEComposing()) { |
182 find_text_->SetText(find_text); | 181 find_text_->SetText(find_text); |
183 find_text_->SelectAll(); | 182 find_text_->SelectAll(); |
184 } | 183 } |
185 | 184 |
186 if (!find_text.empty() && have_valid_range) { | 185 if (find_text.empty() || !have_valid_range) { |
187 match_count_text_->SetText( | |
188 l10n_util::GetStringFUTF16(IDS_FIND_IN_PAGE_COUNT, | |
189 base::IntToString16(result.active_match_ordinal()), | |
190 base::IntToString16(result.number_of_matches()))); | |
191 | |
192 UpdateMatchCountAppearance(result.number_of_matches() == 0 && | |
193 result.final_update()); | |
194 } else { | |
195 // If there was no text entered, we don't show anything in the result count | 186 // If there was no text entered, we don't show anything in the result count |
196 // area. | 187 // area. |
197 match_count_text_->SetText(string16()); | 188 ClearMatchCount(); |
| 189 return; |
| 190 } |
198 | 191 |
199 UpdateMatchCountAppearance(false); | 192 match_count_text_->SetText(l10n_util::GetStringFUTF16(IDS_FIND_IN_PAGE_COUNT, |
200 } | 193 base::IntToString16(result.active_match_ordinal()), |
| 194 base::IntToString16(result.number_of_matches()))); |
| 195 |
| 196 UpdateMatchCountAppearance(result.number_of_matches() == 0 && |
| 197 result.final_update()); |
201 | 198 |
202 // The match_count label may have increased/decreased in size so we need to | 199 // The match_count label may have increased/decreased in size so we need to |
203 // do a layout and repaint the dialog so that the find text field doesn't | 200 // do a layout and repaint the dialog so that the find text field doesn't |
204 // partially overlap the match-count label when it increases on no matches. | 201 // partially overlap the match-count label when it increases on no matches. |
205 Layout(); | 202 Layout(); |
206 SchedulePaint(); | 203 SchedulePaint(); |
207 } | 204 } |
208 | 205 |
209 void FindBarView::ClearMatchCount() { | 206 void FindBarView::ClearMatchCount() { |
210 match_count_text_->SetText(string16()); | 207 match_count_text_->SetText(string16()); |
(...skipping 236 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
447 } | 444 } |
448 } | 445 } |
449 | 446 |
450 return false; | 447 return false; |
451 } | 448 } |
452 | 449 |
453 void FindBarView::UpdateMatchCountAppearance(bool no_match) { | 450 void FindBarView::UpdateMatchCountAppearance(bool no_match) { |
454 if (no_match) { | 451 if (no_match) { |
455 match_count_text_->set_background( | 452 match_count_text_->set_background( |
456 views::Background::CreateSolidBackground(kBackgroundColorNoMatch)); | 453 views::Background::CreateSolidBackground(kBackgroundColorNoMatch)); |
457 match_count_text_->SetColor(kTextColorNoMatch); | 454 match_count_text_->SetEnabledColor(kTextColorNoMatch); |
458 } else { | 455 } else { |
459 match_count_text_->set_background( | 456 match_count_text_->set_background( |
460 views::Background::CreateSolidBackground(kBackgroundColorMatch)); | 457 views::Background::CreateSolidBackground(kBackgroundColorMatch)); |
461 match_count_text_->SetColor(kTextColorMatchCount); | 458 match_count_text_->SetEnabledColor(kTextColorMatchCount); |
462 } | 459 } |
| 460 match_count_text_->SetBackgroundColor( |
| 461 match_count_text_->background()->get_color()); |
463 } | 462 } |
464 | 463 |
465 bool FindBarView::FocusForwarderView::OnMousePressed( | 464 bool FindBarView::FocusForwarderView::OnMousePressed( |
466 const views::MouseEvent& event) { | 465 const views::MouseEvent& event) { |
467 if (view_to_focus_on_mousedown_) { | 466 if (view_to_focus_on_mousedown_) { |
468 view_to_focus_on_mousedown_->ClearSelection(); | 467 view_to_focus_on_mousedown_->ClearSelection(); |
469 view_to_focus_on_mousedown_->RequestFocus(); | 468 view_to_focus_on_mousedown_->RequestFocus(); |
470 } | 469 } |
471 return true; | 470 return true; |
472 } | 471 } |
(...skipping 17 matching lines...) Expand all Loading... |
490 | 489 |
491 void FindBarView::OnThemeChanged() { | 490 void FindBarView::OnThemeChanged() { |
492 ResourceBundle& rb = ResourceBundle::GetSharedInstance(); | 491 ResourceBundle& rb = ResourceBundle::GetSharedInstance(); |
493 if (GetThemeProvider()) { | 492 if (GetThemeProvider()) { |
494 close_button_->SetBackground( | 493 close_button_->SetBackground( |
495 GetThemeProvider()->GetColor(ThemeService::COLOR_TAB_TEXT), | 494 GetThemeProvider()->GetColor(ThemeService::COLOR_TAB_TEXT), |
496 rb.GetBitmapNamed(IDR_CLOSE_BAR), | 495 rb.GetBitmapNamed(IDR_CLOSE_BAR), |
497 rb.GetBitmapNamed(IDR_CLOSE_BAR_MASK)); | 496 rb.GetBitmapNamed(IDR_CLOSE_BAR_MASK)); |
498 } | 497 } |
499 } | 498 } |
OLD | NEW |