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 70 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
81 | 81 |
82 // The default number of average characters that the text box will be. This | 82 // The default number of average characters that the text box will be. This |
83 // number brings the width on a "regular fonts" system to about 300px. | 83 // number brings the width on a "regular fonts" system to about 300px. |
84 static const int kDefaultCharWidth = 43; | 84 static const int kDefaultCharWidth = 43; |
85 | 85 |
86 //////////////////////////////////////////////////////////////////////////////// | 86 //////////////////////////////////////////////////////////////////////////////// |
87 // FindBarView, public: | 87 // FindBarView, public: |
88 | 88 |
89 FindBarView::FindBarView(FindBarHost* host) | 89 FindBarView::FindBarView(FindBarHost* host) |
90 : DropdownBarView(host), | 90 : DropdownBarView(host), |
91 #if defined(OS_LINUX) | |
92 ignore_contents_changed_(false), | |
93 #endif | |
94 find_text_(NULL), | 91 find_text_(NULL), |
95 match_count_text_(NULL), | 92 match_count_text_(NULL), |
96 focus_forwarder_view_(NULL), | 93 focus_forwarder_view_(NULL), |
97 find_previous_button_(NULL), | 94 find_previous_button_(NULL), |
98 find_next_button_(NULL), | 95 find_next_button_(NULL), |
99 close_button_(NULL) { | 96 close_button_(NULL) { |
100 SetID(VIEW_ID_FIND_IN_PAGE); | 97 SetID(VIEW_ID_FIND_IN_PAGE); |
101 ResourceBundle& rb = ResourceBundle::GetSharedInstance(); | 98 ResourceBundle& rb = ResourceBundle::GetSharedInstance(); |
102 | 99 |
103 find_text_ = new SearchTextfieldView(); | 100 find_text_ = new SearchTextfieldView(); |
(...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
172 // Background images for the Find edit box. | 169 // Background images for the Find edit box. |
173 kBackground = rb.GetBitmapNamed(IDR_FIND_BOX_BACKGROUND); | 170 kBackground = rb.GetBitmapNamed(IDR_FIND_BOX_BACKGROUND); |
174 kBackground_left = rb.GetBitmapNamed(IDR_FIND_BOX_BACKGROUND_LEFT); | 171 kBackground_left = rb.GetBitmapNamed(IDR_FIND_BOX_BACKGROUND_LEFT); |
175 } | 172 } |
176 } | 173 } |
177 | 174 |
178 FindBarView::~FindBarView() { | 175 FindBarView::~FindBarView() { |
179 } | 176 } |
180 | 177 |
181 void FindBarView::SetFindText(const string16& find_text) { | 178 void FindBarView::SetFindText(const string16& find_text) { |
182 #if defined(OS_LINUX) | |
183 ignore_contents_changed_ = true; | |
184 #endif | |
185 find_text_->SetText(find_text); | 179 find_text_->SetText(find_text); |
186 #if defined(OS_LINUX) | |
187 ignore_contents_changed_ = false; | |
188 #endif | |
189 } | 180 } |
190 | 181 |
191 string16 FindBarView::GetFindText() const { | 182 string16 FindBarView::GetFindText() const { |
192 return find_text_->text(); | 183 return find_text_->text(); |
193 } | 184 } |
194 | 185 |
195 string16 FindBarView::GetFindSelectedText() const { | 186 string16 FindBarView::GetFindSelectedText() const { |
196 return find_text_->GetSelectedText(); | 187 return find_text_->GetSelectedText(); |
197 } | 188 } |
198 | 189 |
(...skipping 263 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
462 NOTREACHED() << L"Unknown button"; | 453 NOTREACHED() << L"Unknown button"; |
463 break; | 454 break; |
464 } | 455 } |
465 } | 456 } |
466 | 457 |
467 //////////////////////////////////////////////////////////////////////////////// | 458 //////////////////////////////////////////////////////////////////////////////// |
468 // FindBarView, views::TextfieldController implementation: | 459 // FindBarView, views::TextfieldController implementation: |
469 | 460 |
470 void FindBarView::ContentsChanged(views::Textfield* sender, | 461 void FindBarView::ContentsChanged(views::Textfield* sender, |
471 const string16& new_contents) { | 462 const string16& new_contents) { |
472 #if defined(OS_LINUX) | |
473 // On gtk setting the text in the find view causes a notification. | |
474 if (ignore_contents_changed_) | |
475 return; | |
476 #endif | |
477 | |
478 FindBarController* controller = find_bar_host()->GetFindBarController(); | 463 FindBarController* controller = find_bar_host()->GetFindBarController(); |
479 DCHECK(controller); | 464 DCHECK(controller); |
480 // We must guard against a NULL tab_contents, which can happen if the text | 465 // We must guard against a NULL tab_contents, which can happen if the text |
481 // in the Find box is changed right after the tab is destroyed. Otherwise, it | 466 // in the Find box is changed right after the tab is destroyed. Otherwise, it |
482 // can lead to crashes, as exposed by automation testing in issue 8048. | 467 // can lead to crashes, as exposed by automation testing in issue 8048. |
483 if (!controller->tab_contents()) | 468 if (!controller->tab_contents()) |
484 return; | 469 return; |
485 FindTabHelper* find_tab_helper = | 470 FindTabHelper* find_tab_helper = |
486 controller->tab_contents()->find_tab_helper(); | 471 controller->tab_contents()->find_tab_helper(); |
487 | 472 |
(...skipping 82 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
570 | 555 |
571 void FindBarView::OnThemeChanged() { | 556 void FindBarView::OnThemeChanged() { |
572 ResourceBundle& rb = ResourceBundle::GetSharedInstance(); | 557 ResourceBundle& rb = ResourceBundle::GetSharedInstance(); |
573 if (GetThemeProvider()) { | 558 if (GetThemeProvider()) { |
574 close_button_->SetBackground( | 559 close_button_->SetBackground( |
575 GetThemeProvider()->GetColor(ThemeService::COLOR_TAB_TEXT), | 560 GetThemeProvider()->GetColor(ThemeService::COLOR_TAB_TEXT), |
576 rb.GetBitmapNamed(IDR_CLOSE_BAR), | 561 rb.GetBitmapNamed(IDR_CLOSE_BAR), |
577 rb.GetBitmapNamed(IDR_CLOSE_BAR_MASK)); | 562 rb.GetBitmapNamed(IDR_CLOSE_BAR_MASK)); |
578 } | 563 } |
579 } | 564 } |
OLD | NEW |