| 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/default_search_view.h" | 5 #include "chrome/browser/ui/views/default_search_view.h" |
| 6 | 6 |
| 7 #include <string> | 7 #include <string> |
| 8 | 8 |
| 9 #include "base/utf_string_conversions.h" | 9 #include "base/utf_string_conversions.h" |
| 10 #include "chrome/browser/profiles/profile.h" | 10 #include "chrome/browser/profiles/profile.h" |
| 11 #include "chrome/browser/search_engines/template_url.h" | 11 #include "chrome/browser/search_engines/template_url.h" |
| 12 #include "chrome/browser/search_engines/template_url_service.h" | 12 #include "chrome/browser/search_engines/template_url_service.h" |
| 13 #include "chrome/browser/search_engines/template_url_service_factory.h" |
| 13 #include "chrome/browser/search_engines/template_url_prepopulate_data.h" | 14 #include "chrome/browser/search_engines/template_url_prepopulate_data.h" |
| 15 #include "chrome/browser/themes/theme_service.h" |
| 14 #include "chrome/browser/ui/tab_contents/tab_contents_wrapper.h" | 16 #include "chrome/browser/ui/tab_contents/tab_contents_wrapper.h" |
| 15 #include "chrome/browser/ui/views/constrained_window_views.h" | 17 #include "chrome/browser/ui/views/constrained_window_views.h" |
| 16 #include "content/browser/tab_contents/tab_contents.h" | 18 #include "content/browser/tab_contents/tab_contents.h" |
| 17 #include "grit/generated_resources.h" | 19 #include "grit/generated_resources.h" |
| 18 #include "grit/locale_settings.h" | 20 #include "grit/locale_settings.h" |
| 19 #include "grit/theme_resources.h" | 21 #include "grit/theme_resources.h" |
| 20 #include "ui/base/message_box_flags.h" | 22 #include "ui/base/message_box_flags.h" |
| 21 #include "ui/base/l10n/l10n_util.h" | 23 #include "ui/base/l10n/l10n_util.h" |
| 22 #include "ui/base/resource/resource_bundle.h" | 24 #include "ui/base/resource/resource_bundle.h" |
| 23 #include "ui/gfx/canvas.h" | 25 #include "ui/gfx/canvas.h" |
| (...skipping 29 matching lines...) Expand all Loading... |
| 53 *logo_id = built_in_data->logo_id(); | 55 *logo_id = built_in_data->logo_id(); |
| 54 } else { | 56 } else { |
| 55 *short_name = UTF8ToWide(url.host()).c_str(); | 57 *short_name = UTF8ToWide(url.host()).c_str(); |
| 56 *logo_id = kNoSearchEngineLogo; | 58 *logo_id = kNoSearchEngineLogo; |
| 57 } | 59 } |
| 58 } | 60 } |
| 59 | 61 |
| 60 views::Label* CreateProviderLabel(int message_id) { | 62 views::Label* CreateProviderLabel(int message_id) { |
| 61 views::Label* choice_label = | 63 views::Label* choice_label = |
| 62 new views::Label(l10n_util::GetStringUTF16(message_id)); | 64 new views::Label(l10n_util::GetStringUTF16(message_id)); |
| 63 choice_label->SetColor(SK_ColorBLACK); | 65 choice_label->SetBackgroundColor(SK_ColorWHITE); |
| 66 choice_label->SetEnabledColor(SK_ColorBLACK); |
| 64 choice_label->SetFont( | 67 choice_label->SetFont( |
| 65 choice_label->font().DeriveFont(1, gfx::Font::NORMAL)); | 68 choice_label->font().DeriveFont(1, gfx::Font::NORMAL)); |
| 66 return choice_label; | 69 return choice_label; |
| 67 } | 70 } |
| 68 | 71 |
| 69 views::View* CreateProviderLogo( | 72 views::View* CreateProviderLogo( |
| 70 int logo_id, | 73 int logo_id, |
| 71 const std::wstring& short_name) { | 74 const std::wstring& short_name) { |
| 72 views::View* logo_view = NULL; | 75 views::View* logo_view = NULL; |
| 73 | 76 |
| 74 // The width for the "logo" element when text is displayed. | 77 // The width for the "logo" element when text is displayed. |
| 75 const int kTextLogoWidth = 132; | 78 const int kTextLogoWidth = 132; |
| 76 | 79 |
| 77 bool use_images = false; | 80 bool use_images = false; |
| 78 #if defined(GOOGLE_CHROME_BUILD) | 81 #if defined(GOOGLE_CHROME_BUILD) |
| 79 use_images = true; | 82 use_images = true; |
| 80 #endif | 83 #endif |
| 81 | 84 |
| 82 if (use_images && logo_id != kNoSearchEngineLogo) { | 85 if (use_images && logo_id != kNoSearchEngineLogo) { |
| 83 views::ImageView* logo_image = new views::ImageView(); | 86 views::ImageView* logo_image = new views::ImageView(); |
| 84 SkBitmap* logo_bmp = | 87 SkBitmap* logo_bmp = |
| 85 ResourceBundle::GetSharedInstance().GetBitmapNamed(logo_id); | 88 ResourceBundle::GetSharedInstance().GetBitmapNamed(logo_id); |
| 86 logo_image->SetImage(logo_bmp); | 89 logo_image->SetImage(logo_bmp); |
| 87 logo_image->SetTooltipText(WideToUTF16Hack(short_name)); | 90 logo_image->SetTooltipText(WideToUTF16Hack(short_name)); |
| 88 logo_view = logo_image; | 91 logo_view = logo_image; |
| 89 } else { | 92 } else { |
| 90 // No logo -- show a text label. | 93 // No logo -- show a text label. |
| 91 views::Label* logo_label = new views::Label(short_name); | 94 views::Label* logo_label = new views::Label(short_name); |
| 92 logo_label->SetColor(SK_ColorDKGRAY); | 95 logo_label->SetBackgroundColor(SK_ColorWHITE); |
| 96 logo_label->SetEnabledColor(SK_ColorDKGRAY); |
| 93 logo_label->SetFont(logo_label->font().DeriveFont(3, gfx::Font::BOLD)); | 97 logo_label->SetFont(logo_label->font().DeriveFont(3, gfx::Font::BOLD)); |
| 94 logo_label->SetHorizontalAlignment(views::Label::ALIGN_CENTER); | 98 logo_label->SetHorizontalAlignment(views::Label::ALIGN_CENTER); |
| 95 // Tooltip text provides accessibility for low-vision users. | 99 // Tooltip text provides accessibility for low-vision users. |
| 96 logo_label->SetTooltipText(WideToUTF16Hack(short_name)); | 100 logo_label->SetTooltipText(WideToUTF16Hack(short_name)); |
| 97 logo_view = logo_label; | 101 logo_view = logo_label; |
| 98 } | 102 } |
| 99 | 103 |
| 100 return logo_view; | 104 return logo_view; |
| 101 } | 105 } |
| 102 views::View* CreateProviderChoiceButton( | 106 views::View* CreateProviderChoiceButton( |
| 103 views::ButtonListener* listener, | 107 views::ButtonListener* listener, |
| 104 int message_id, | 108 int message_id, |
| 105 const std::wstring& short_name) { | 109 const std::wstring& short_name) { |
| 106 return new views::NativeTextButton(listener, UTF16ToWide( | 110 return new views::NativeTextButton(listener, UTF16ToWide( |
| 107 l10n_util::GetStringFUTF16(message_id, WideToUTF16(short_name)))); | 111 l10n_util::GetStringFUTF16(message_id, WideToUTF16(short_name)))); |
| 108 } | 112 } |
| 109 | 113 |
| 110 } // namespace | 114 } // namespace |
| 111 | 115 |
| 112 // static | 116 // static |
| 113 void DefaultSearchView::Show(TabContents* tab_contents, | 117 void DefaultSearchView::Show(TabContents* tab_contents, |
| 114 TemplateURL* default_url, | 118 TemplateURL* proposed_default_turl, |
| 115 TemplateURLService* template_url_service) { | 119 Profile* profile) { |
| 116 scoped_ptr<TemplateURL> template_url(default_url); | 120 TemplateURLService* template_url_service = |
| 117 if (!template_url_service->CanMakeDefault(default_url) || | 121 TemplateURLServiceFactory::GetForProfile(profile); |
| 118 default_url->url()->GetHost().empty()) | 122 if (template_url_service->CanMakeDefault(proposed_default_turl) && |
| 119 return; | 123 !proposed_default_turl->url()->GetHost().empty()) { |
| 120 | 124 // When the window closes, it will delete itself. |
| 121 // When the window closes, it will delete itself. | 125 new DefaultSearchView(tab_contents, proposed_default_turl, |
| 122 new DefaultSearchView(tab_contents, template_url.release(), | 126 template_url_service, profile->GetPrefs()); |
| 123 template_url_service); | 127 } else { |
| 128 delete proposed_default_turl; |
| 129 } |
| 124 } | 130 } |
| 125 | 131 |
| 126 DefaultSearchView::~DefaultSearchView() { | 132 DefaultSearchView::~DefaultSearchView() { |
| 127 } | 133 } |
| 128 | 134 |
| 129 void DefaultSearchView::OnPaint(gfx::Canvas* canvas) { | 135 void DefaultSearchView::OnPaint(gfx::Canvas* canvas) { |
| 130 // Fill in behind the background image with the standard gray toolbar color. | 136 // Fill in behind the background image with the standard gray toolbar color. |
| 131 canvas->FillRectInt(SkColorSetRGB(237, 238, 237), 0, 0, width(), | 137 canvas->FillRectInt(GetThemeProvider()->GetColor(ThemeService::COLOR_TOOLBAR), |
| 132 background_image_->height()); | 138 0, 0, width(), background_image_->height()); |
| 133 // The rest of the dialog background should be white. | 139 // The rest of the dialog background should be white. |
| 134 DCHECK(height() > background_image_->height()); | 140 DCHECK(height() > background_image_->height()); |
| 135 canvas->FillRectInt(SK_ColorWHITE, 0, background_image_->height(), width(), | 141 canvas->FillRectInt(SK_ColorWHITE, 0, background_image_->height(), width(), |
| 136 height() - background_image_->height()); | 142 height() - background_image_->height()); |
| 137 } | 143 } |
| 138 | 144 |
| 139 void DefaultSearchView::ButtonPressed(views::Button* sender, | 145 void DefaultSearchView::ButtonPressed(views::Button* sender, |
| 140 const views::Event& event) { | 146 const views::Event& event) { |
| 141 views::DialogClientView* client = GetDialogClientView(); | 147 views::DialogClientView* client = GetDialogClientView(); |
| 142 if (sender == proposed_provider_button_) | 148 if (sender == proposed_provider_button_) |
| (...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 176 views::Widget* DefaultSearchView::GetWidget() { | 182 views::Widget* DefaultSearchView::GetWidget() { |
| 177 return View::GetWidget(); | 183 return View::GetWidget(); |
| 178 } | 184 } |
| 179 | 185 |
| 180 const views::Widget* DefaultSearchView::GetWidget() const { | 186 const views::Widget* DefaultSearchView::GetWidget() const { |
| 181 return View::GetWidget(); | 187 return View::GetWidget(); |
| 182 } | 188 } |
| 183 | 189 |
| 184 DefaultSearchView::DefaultSearchView(TabContents* tab_contents, | 190 DefaultSearchView::DefaultSearchView(TabContents* tab_contents, |
| 185 TemplateURL* proposed_default_turl, | 191 TemplateURL* proposed_default_turl, |
| 186 TemplateURLService* template_url_service) | 192 TemplateURLService* template_url_service, |
| 193 PrefService* prefs) |
| 187 : background_image_(NULL), | 194 : background_image_(NULL), |
| 188 default_provider_button_(NULL), | 195 default_provider_button_(NULL), |
| 189 proposed_provider_button_(NULL), | 196 proposed_provider_button_(NULL), |
| 190 proposed_turl_(proposed_default_turl), | 197 proposed_turl_(proposed_default_turl), |
| 191 template_url_service_(template_url_service) { | 198 template_url_service_(template_url_service) { |
| 192 Profile* profile = | |
| 193 Profile::FromBrowserContext(tab_contents->browser_context()); | |
| 194 PrefService* prefs = profile->GetPrefs(); | |
| 195 SetupControls(prefs); | 199 SetupControls(prefs); |
| 196 | 200 |
| 197 // Show the dialog. | 201 // Show the dialog. |
| 198 TabContentsWrapper* wrapper = | 202 new ConstrainedWindowViews( |
| 199 TabContentsWrapper::GetCurrentWrapperForContents(tab_contents); | 203 TabContentsWrapper::GetCurrentWrapperForContents(tab_contents), this); |
| 200 new ConstrainedWindowViews(wrapper, this); | |
| 201 } | 204 } |
| 202 | 205 |
| 203 void DefaultSearchView::SetupControls(PrefService* prefs) { | 206 void DefaultSearchView::SetupControls(PrefService* prefs) { |
| 204 using views::ColumnSet; | |
| 205 using views::GridLayout; | |
| 206 using views::ImageView; | |
| 207 using views::Label; | |
| 208 | |
| 209 // Column set id's. | 207 // Column set id's. |
| 210 const int kWholeDialogViewSetId = 0; | 208 const int kWholeDialogViewSetId = 0; |
| 211 const int kPaddedWholeDialogViewSetId = 1; | 209 const int kPaddedWholeDialogViewSetId = 1; |
| 212 const int kChoicesViewSetId = 2; | 210 const int kChoicesViewSetId = 2; |
| 213 | 211 |
| 214 // Set up the information for the proposed default. | 212 // Set up the information for the proposed default. |
| 215 std::wstring proposed_short_name; | 213 std::wstring proposed_short_name; |
| 216 int proposed_logo_id = kNoSearchEngineLogo; | 214 int proposed_logo_id = kNoSearchEngineLogo; |
| 217 GetShortNameAndLogoId(prefs, | 215 GetShortNameAndLogoId(prefs, |
| 218 proposed_turl_.get(), | 216 proposed_turl_.get(), |
| 219 &proposed_short_name, | 217 &proposed_short_name, |
| 220 &proposed_logo_id); | 218 &proposed_logo_id); |
| 221 if (proposed_logo_id != kNoSearchEngineLogo) | 219 if (proposed_logo_id != kNoSearchEngineLogo) |
| 222 proposed_turl_->set_logo_id(proposed_logo_id); | 220 proposed_turl_->set_logo_id(proposed_logo_id); |
| 223 | 221 |
| 224 | 222 |
| 225 // Set up the information for the current default. | 223 // Set up the information for the current default. |
| 226 std::wstring default_short_name; | 224 std::wstring default_short_name; |
| 227 int default_logo_id = kNoSearchEngineLogo; | 225 int default_logo_id = kNoSearchEngineLogo; |
| 228 GetShortNameAndLogoId(prefs, | 226 GetShortNameAndLogoId(prefs, |
| 229 template_url_service_->GetDefaultSearchProvider(), | 227 template_url_service_->GetDefaultSearchProvider(), |
| 230 &default_short_name, | 228 &default_short_name, |
| 231 &default_logo_id); | 229 &default_logo_id); |
| 232 | 230 |
| 233 // Now set-up the dialog contents. | 231 // Now set-up the dialog contents. |
| 234 GridLayout* layout = new views::GridLayout(this); | 232 views::GridLayout* layout = new views::GridLayout(this); |
| 235 layout->SetInsets(0, 0, views::kPanelVertMargin, 0); | 233 layout->SetInsets(0, 0, views::kPanelVertMargin, 0); |
| 236 SetLayoutManager(layout); | 234 SetLayoutManager(layout); |
| 237 | 235 |
| 238 // Add a column set that spans the whole dialog. | 236 // Add a column set that spans the whole dialog. |
| 239 ColumnSet* whole_dialog_column_set = | 237 views::ColumnSet* whole_dialog_column_set = |
| 240 layout->AddColumnSet(kWholeDialogViewSetId); | 238 layout->AddColumnSet(kWholeDialogViewSetId); |
| 241 whole_dialog_column_set->AddColumn(GridLayout::LEADING, GridLayout::LEADING, | 239 whole_dialog_column_set->AddColumn(views::GridLayout::LEADING, |
| 242 1, GridLayout::FIXED, | 240 views::GridLayout::LEADING, 1, views::GridLayout::FIXED, |
| 243 views::Widget::GetLocalizedContentsWidth( | 241 views::Widget::GetLocalizedContentsWidth(IDS_DEFAULT_SEARCH_WIDTH_CHARS), |
| 244 IDS_DEFAULT_SEARCH_WIDTH_CHARS), | 242 0); |
| 245 0); | |
| 246 | 243 |
| 247 // Add a column set that spans the whole dialog but obeying padding. | 244 // Add a column set that spans the whole dialog but obeying padding. |
| 248 ColumnSet* padded_whole_dialog_column_set = | 245 views::ColumnSet* padded_whole_dialog_column_set = |
| 249 layout->AddColumnSet(kPaddedWholeDialogViewSetId); | 246 layout->AddColumnSet(kPaddedWholeDialogViewSetId); |
| 250 padded_whole_dialog_column_set->AddPaddingColumn(1, views::kPanelVertMargin); | 247 padded_whole_dialog_column_set->AddPaddingColumn(1, views::kPanelVertMargin); |
| 251 padded_whole_dialog_column_set->AddColumn( | 248 padded_whole_dialog_column_set->AddColumn(views::GridLayout::LEADING, |
| 252 GridLayout::LEADING, GridLayout::LEADING, | 249 views::GridLayout::LEADING, 1, views::GridLayout::USE_PREF, 0, 0); |
| 253 1, GridLayout::USE_PREF, 0, 0); | |
| 254 padded_whole_dialog_column_set->AddPaddingColumn(1, views::kPanelVertMargin); | 250 padded_whole_dialog_column_set->AddPaddingColumn(1, views::kPanelVertMargin); |
| 255 | 251 |
| 256 // Add a column set for the search engine choices. | 252 // Add a column set for the search engine choices. |
| 257 ColumnSet* choices_column_set = layout->AddColumnSet(kChoicesViewSetId); | 253 views::ColumnSet* choices_column_set = |
| 254 layout->AddColumnSet(kChoicesViewSetId); |
| 258 choices_column_set->AddPaddingColumn(1, views::kPanelVertMargin); | 255 choices_column_set->AddPaddingColumn(1, views::kPanelVertMargin); |
| 259 choices_column_set->AddColumn(GridLayout::CENTER, GridLayout::CENTER, | 256 choices_column_set->AddColumn(views::GridLayout::CENTER, |
| 260 1, GridLayout::USE_PREF, 0, 0); | 257 views::GridLayout::CENTER, 1, views::GridLayout::USE_PREF, 0, 0); |
| 261 choices_column_set->AddPaddingColumn( | 258 choices_column_set->AddPaddingColumn( |
| 262 1, views::kRelatedControlHorizontalSpacing); | 259 1, views::kRelatedControlHorizontalSpacing); |
| 263 choices_column_set->AddColumn(GridLayout::CENTER, GridLayout::CENTER, | 260 choices_column_set->AddColumn(views::GridLayout::CENTER, |
| 264 1, GridLayout::USE_PREF, 0, 0); | 261 views::GridLayout::CENTER, 1, views::GridLayout::USE_PREF, 0, 0); |
| 265 choices_column_set->LinkColumnSizes(0, 2, -1); | 262 choices_column_set->LinkColumnSizes(0, 2, -1); |
| 266 choices_column_set->AddPaddingColumn(1, views::kPanelVertMargin); | 263 choices_column_set->AddPaddingColumn(1, views::kPanelVertMargin); |
| 267 | 264 |
| 268 // Add the "search box" image. | 265 // Add the "search box" image. |
| 269 layout->StartRow(0, kWholeDialogViewSetId); | 266 layout->StartRow(0, kWholeDialogViewSetId); |
| 270 ResourceBundle& rb = ResourceBundle::GetSharedInstance(); | 267 ResourceBundle& rb = ResourceBundle::GetSharedInstance(); |
| 271 background_image_ = new ImageView(); | 268 background_image_ = new views::ImageView(); |
| 272 background_image_->SetImage(rb.GetBitmapNamed(IDR_SEARCH_ENGINE_DIALOG_TOP)); | 269 background_image_->SetImage(rb.GetBitmapNamed(IDR_SEARCH_ENGINE_DIALOG_TOP)); |
| 273 background_image_->EnableCanvasFlippingForRTLUI(true); | 270 background_image_->EnableCanvasFlippingForRTLUI(true); |
| 274 ImageView::Alignment horizontal_alignment = | 271 views::ImageView::Alignment horizontal_alignment = base::i18n::IsRTL() ? |
| 275 base::i18n::IsRTL() ? ImageView::LEADING : ImageView::TRAILING; | 272 views::ImageView::LEADING : views::ImageView::TRAILING; |
| 276 background_image_->SetHorizontalAlignment(horizontal_alignment); | 273 background_image_->SetHorizontalAlignment(horizontal_alignment); |
| 277 layout->AddView(background_image_); | 274 layout->AddView(background_image_); |
| 278 | 275 |
| 279 // Add text informing the user about the requested default change. | 276 // Add text informing the user about the requested default change. |
| 280 layout->StartRowWithPadding(0, kPaddedWholeDialogViewSetId, | 277 layout->StartRowWithPadding(0, kPaddedWholeDialogViewSetId, |
| 281 1, views::kLabelToControlVerticalSpacing); | 278 1, views::kLabelToControlVerticalSpacing); |
| 282 Label* summary_label = new Label(l10n_util::GetStringFUTF16( | 279 views::Label* summary_label = new views::Label(l10n_util::GetStringFUTF16( |
| 283 IDS_DEFAULT_SEARCH_SUMMARY, | 280 IDS_DEFAULT_SEARCH_SUMMARY, WideToUTF16(proposed_short_name))); |
| 284 WideToUTF16(proposed_short_name))); | 281 summary_label->SetBackgroundColor(SK_ColorWHITE); |
| 285 summary_label->SetColor(SK_ColorBLACK); | 282 summary_label->SetEnabledColor(SK_ColorBLACK); |
| 286 summary_label->SetFont( | 283 summary_label->SetFont( |
| 287 summary_label->font().DeriveFont(1, gfx::Font::NORMAL)); | 284 summary_label->font().DeriveFont(1, gfx::Font::NORMAL)); |
| 288 summary_label->SetHorizontalAlignment(Label::ALIGN_LEFT); | 285 summary_label->SetHorizontalAlignment(views::Label::ALIGN_LEFT); |
| 289 layout->AddView(summary_label); | 286 layout->AddView(summary_label); |
| 290 | 287 |
| 291 // Add the labels for the tops of the choices. | 288 // Add the labels for the tops of the choices. |
| 292 layout->StartRowWithPadding(0, kChoicesViewSetId, | 289 layout->StartRowWithPadding(0, kChoicesViewSetId, |
| 293 0, views::kRelatedControlVerticalSpacing); | 290 0, views::kRelatedControlVerticalSpacing); |
| 294 layout->AddView(CreateProviderLabel(IDS_DEFAULT_SEARCH_LABEL_CURRENT)); | 291 layout->AddView(CreateProviderLabel(IDS_DEFAULT_SEARCH_LABEL_CURRENT)); |
| 295 layout->AddView(CreateProviderLabel(IDS_DEFAULT_SEARCH_LABEL_PROPOSED)); | 292 layout->AddView(CreateProviderLabel(IDS_DEFAULT_SEARCH_LABEL_PROPOSED)); |
| 296 | 293 |
| 297 // Add the logos. | 294 // Add the logos. |
| 298 layout->StartRowWithPadding(0, kChoicesViewSetId, | 295 layout->StartRowWithPadding(0, kChoicesViewSetId, |
| 299 0, views::kRelatedControlVerticalSpacing); | 296 0, views::kRelatedControlVerticalSpacing); |
| 300 layout->AddView(CreateProviderLogo(default_logo_id, default_short_name)); | 297 layout->AddView(CreateProviderLogo(default_logo_id, default_short_name)); |
| 301 layout->AddView(CreateProviderLogo(proposed_logo_id, proposed_short_name)); | 298 layout->AddView(CreateProviderLogo(proposed_logo_id, proposed_short_name)); |
| 302 | 299 |
| 303 // Add the buttons. | 300 // Add the buttons. |
| 304 layout->StartRowWithPadding(0, kChoicesViewSetId, | 301 layout->StartRowWithPadding(0, kChoicesViewSetId, |
| 305 0, views::kRelatedControlVerticalSpacing); | 302 0, views::kRelatedControlVerticalSpacing); |
| 306 default_provider_button_ = CreateProviderChoiceButton( | 303 default_provider_button_ = CreateProviderChoiceButton( |
| 307 this, | 304 this, |
| 308 IDS_DEFAULT_SEARCH_PROMPT_CURRENT, | 305 IDS_DEFAULT_SEARCH_PROMPT_CURRENT, |
| 309 default_short_name); | 306 default_short_name); |
| 310 layout->AddView(default_provider_button_); | 307 layout->AddView(default_provider_button_); |
| 311 proposed_provider_button_ = CreateProviderChoiceButton( | 308 proposed_provider_button_ = CreateProviderChoiceButton( |
| 312 this, | 309 this, |
| 313 IDS_DEFAULT_SEARCH_PROMPT_PROPOSED, | 310 IDS_DEFAULT_SEARCH_PROMPT_PROPOSED, |
| 314 proposed_short_name); | 311 proposed_short_name); |
| 315 layout->AddView(proposed_provider_button_); | 312 layout->AddView(proposed_provider_button_); |
| 316 } | 313 } |
| OLD | NEW |