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

Side by Side Diff: chrome/browser/views/first_run_search_engine_view.cc

Issue 3007032: Minor fixes of search engine dialog (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: '' Created 10 years, 4 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 | « chrome/browser/search_engines/template_url_prepopulate_data.cc ('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) 2010 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2010 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/views/first_run_search_engine_view.h" 5 #include "chrome/browser/views/first_run_search_engine_view.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 #include <map> 8 #include <map>
9 9
10 #include "app/l10n_util.h" 10 #include "app/l10n_util.h"
(...skipping 135 matching lines...) Expand 10 before | Expand all | Expand 10 after
146 146
147 // We only watch the search engine model change once, on load. Remove 147 // We only watch the search engine model change once, on load. Remove
148 // observer so we don't try to redraw if engines change under us. 148 // observer so we don't try to redraw if engines change under us.
149 search_engines_model_->RemoveObserver(this); 149 search_engines_model_->RemoveObserver(this);
150 150
151 // Add search engines in search_engines_model_ to buttons list. The 151 // Add search engines in search_engines_model_ to buttons list. The
152 // first three will always be from prepopulated data. 152 // first three will always be from prepopulated data.
153 std::vector<const TemplateURL*> template_urls = 153 std::vector<const TemplateURL*> template_urls =
154 search_engines_model_->GetTemplateURLs(); 154 search_engines_model_->GetTemplateURLs();
155 155
156 // If we have fewer than three search engines, signal that the search engine 156 // If we have fewer than two search engines, end search engine dialog
157 // experiment is over, leaving imported default search engine setting intact. 157 // immediately, leaving imported default search engine setting intact.
158 if (template_urls.size() < 3) 158 if (template_urls.size() < 2) {
159 MessageLoop::current()->Quit();
159 return; 160 return;
161 }
160 162
161 std::vector<const TemplateURL*>::iterator search_engine_iter; 163 std::vector<const TemplateURL*>::iterator search_engine_iter;
162 164
163 // Is user's default search engine included in first three prepopulated 165 // Is user's default search engine included in first three prepopulated
164 // set? If not, we need to expand the dialog to include a fourth engine. 166 // set? If not, we need to expand the dialog to include a fourth engine.
165 const TemplateURL* default_search_engine = 167 const TemplateURL* default_search_engine =
166 search_engines_model_->GetDefaultSearchProvider(); 168 search_engines_model_->GetDefaultSearchProvider();
167 // If the user's default choice is not in the first three search engines 169 // If the user's default choice is not in the first three search engines
168 // in template_urls, store it in |default_choice| and provide it as a 170 // in template_urls, store it in |default_choice| and provide it as a
169 // fourth option. 171 // fourth option.
170 SearchEngineChoice* default_choice = NULL; 172 SearchEngineChoice* default_choice = NULL;
171 173
172 // First, see if we have 4 logos to show (in which case we use small logos). 174 // First, see if we have 4 logos to show (in which case we use small logos).
173 // We show 4 logos when the default search engine the user has chosen is 175 // We show 4 logos when the default search engine the user has chosen is
174 // not one of the first three prepopulated engines. 176 // not one of the first three prepopulated engines.
175 if (template_urls.size() > 3) { 177 if (template_urls.size() > 3) {
176 for (search_engine_iter = template_urls.begin() + 3; 178 for (search_engine_iter = template_urls.begin() + 3;
177 search_engine_iter != template_urls.end(); 179 search_engine_iter != template_urls.end();
178 ++search_engine_iter) { 180 ++search_engine_iter) {
179 if (default_search_engine == *search_engine_iter) { 181 if (default_search_engine == *search_engine_iter) {
180 default_choice = new SearchEngineChoice(this, *search_engine_iter, 182 default_choice = new SearchEngineChoice(this, *search_engine_iter,
181 true); 183 true);
182 } 184 }
183 } 185 }
184 } 186 }
185 187
186 // Now that we know what size the logos should be, create new search engine 188 // Now that we know what size the logos should be, create new search engine
187 // choices for the view: 189 // choices for the view. If there are 2 search engines, only show 2
190 // choices; for 3 or more, show 3 (unless the default is not one of the
191 // top 3, in which case show 4).
188 for (search_engine_iter = template_urls.begin(); 192 for (search_engine_iter = template_urls.begin();
189 search_engine_iter < template_urls.begin() + 3; 193 search_engine_iter < template_urls.begin() +
194 (template_urls.size() < 3 ? 2 : 3);
190 ++search_engine_iter) { 195 ++search_engine_iter) {
191 // Push first three engines into buttons: 196 // Push first three engines into buttons:
192 SearchEngineChoice* choice = new SearchEngineChoice(this, 197 SearchEngineChoice* choice = new SearchEngineChoice(this,
193 *search_engine_iter, default_choice != NULL); 198 *search_engine_iter, default_choice != NULL);
194 search_engine_choices_.push_back(choice); 199 search_engine_choices_.push_back(choice);
195 AddChildView(choice->GetView()); // The logo or text view. 200 AddChildView(choice->GetView()); // The logo or text view.
196 AddChildView(choice); // The button associated with the choice. 201 AddChildView(choice); // The button associated with the choice.
197 } 202 }
198 // Push the default choice to the fourth position. 203 // Push the default choice to the fourth position.
199 if (default_choice) { 204 if (default_choice) {
(...skipping 128 matching lines...) Expand 10 before | Expand all | Expand 10 after
328 kPanelHorizMargin + logo_padding, next_v_space, logo_width, 333 kPanelHorizMargin + logo_padding, next_v_space, logo_width,
329 logo_height); 334 logo_height);
330 335
331 int next_h_space = search_engine_choices_[0]->GetView()->x() + 336 int next_h_space = search_engine_choices_[0]->GetView()->x() +
332 logo_width + logo_padding; 337 logo_width + logo_padding;
333 search_engine_choices_[1]->SetChoiceViewBounds( 338 search_engine_choices_[1]->SetChoiceViewBounds(
334 next_h_space, next_v_space, logo_width, logo_height); 339 next_h_space, next_v_space, logo_width, logo_height);
335 340
336 next_h_space = search_engine_choices_[1]->GetView()->x() + logo_width + 341 next_h_space = search_engine_choices_[1]->GetView()->x() + logo_width +
337 logo_padding; 342 logo_padding;
338 search_engine_choices_[2]->SetChoiceViewBounds( 343 if (num_choices > 2) {
339 next_h_space, next_v_space, logo_width, logo_height); 344 search_engine_choices_[2]->SetChoiceViewBounds(
345 next_h_space, next_v_space, logo_width, logo_height);
346 }
340 347
341 if (num_choices > 3) { 348 if (num_choices > 3) {
342 next_h_space = search_engine_choices_[2]->GetView()->x() + logo_width + 349 next_h_space = search_engine_choices_[2]->GetView()->x() + logo_width +
343 logo_padding; 350 logo_padding;
344 search_engine_choices_[3]->SetChoiceViewBounds( 351 search_engine_choices_[3]->SetChoiceViewBounds(
345 next_h_space, next_v_space, logo_width, logo_height); 352 next_h_space, next_v_space, logo_width, logo_height);
346 } 353 }
347 354
348 next_v_space = search_engine_choices_[0]->GetView()->y() + logo_height + 355 next_v_space = search_engine_choices_[0]->GetView()->y() + logo_height +
349 kVertSpacing; 356 kVertSpacing;
350 357
351 // The buttons for search engine selection: 358 // The buttons for search engine selection:
352 int button_padding = logo_padding + logo_width / 2 - button_width / 2; 359 int button_padding = logo_padding + logo_width / 2 - button_width / 2;
353 360
354 search_engine_choices_[0]->SetBounds(kPanelHorizMargin + button_padding, 361 search_engine_choices_[0]->SetBounds(kPanelHorizMargin + button_padding,
355 next_v_space, button_width, 362 next_v_space, button_width,
356 button_height); 363 button_height);
357 364
358 next_h_space = search_engine_choices_[0]->x() + logo_width + logo_padding; 365 next_h_space = search_engine_choices_[0]->x() + logo_width + logo_padding;
359 search_engine_choices_[1]->SetBounds(next_h_space, next_v_space, 366 search_engine_choices_[1]->SetBounds(next_h_space, next_v_space,
360 button_width, button_height); 367 button_width, button_height);
361 next_h_space = search_engine_choices_[1]->x() + logo_width + logo_padding; 368 next_h_space = search_engine_choices_[1]->x() + logo_width + logo_padding;
362 search_engine_choices_[2]->SetBounds(next_h_space, next_v_space, 369 if (num_choices > 2) {
363 button_width, button_height); 370 search_engine_choices_[2]->SetBounds(next_h_space, next_v_space,
371 button_width, button_height);
372 }
364 373
365 if (num_choices > 3) { 374 if (num_choices > 3) {
366 next_h_space = search_engine_choices_[2]->x() + logo_width + 375 next_h_space = search_engine_choices_[2]->x() + logo_width +
367 logo_padding; 376 logo_padding;
368 search_engine_choices_[3]->SetBounds(next_h_space, next_v_space, 377 search_engine_choices_[3]->SetBounds(next_h_space, next_v_space,
369 button_width, button_height); 378 button_width, button_height);
370 } 379 }
371 } // if (search_engine_choices.size() > 0) 380 } // if (search_engine_choices.size() > 0)
372 } 381 }
373 382
374 std::wstring FirstRunSearchEngineView::GetWindowTitle() const { 383 std::wstring FirstRunSearchEngineView::GetWindowTitle() const {
375 return l10n_util::GetString(IDS_FIRSTRUN_DLG_TITLE); 384 return l10n_util::GetString(IDS_FIRSTRUN_DLG_TITLE);
376 } 385 }
OLDNEW
« no previous file with comments | « chrome/browser/search_engines/template_url_prepopulate_data.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698