OLD | NEW |
1 // Copyright 2016 The Chromium Authors. All rights reserved. | 1 // Copyright 2016 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/chooser_content_view.h" | 5 #include "chrome/browser/ui/views/chooser_content_view.h" |
6 | 6 |
7 #include "base/memory/ptr_util.h" | 7 #include "base/memory/ptr_util.h" |
8 #include "base/numerics/safe_conversions.h" | 8 #include "base/numerics/safe_conversions.h" |
9 #include "chrome/grit/generated_resources.h" | 9 #include "chrome/grit/generated_resources.h" |
10 #include "ui/base/l10n/l10n_util.h" | 10 #include "ui/base/l10n/l10n_util.h" |
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
57 help_text_range_ = gfx::Range(offsets[0], offsets[0] + help_text_.size()); | 57 help_text_range_ = gfx::Range(offsets[0], offsets[0] + help_text_.size()); |
58 re_scan_text_range_ = | 58 re_scan_text_range_ = |
59 gfx::Range(offsets[1], offsets[1] + re_scan_text.size()); | 59 gfx::Range(offsets[1], offsets[1] + re_scan_text.size()); |
60 chooser_controller_->set_view(this); | 60 chooser_controller_->set_view(this); |
61 std::vector<ui::TableColumn> table_columns; | 61 std::vector<ui::TableColumn> table_columns; |
62 table_columns.push_back(ui::TableColumn()); | 62 table_columns.push_back(ui::TableColumn()); |
63 table_view_ = new views::TableView( | 63 table_view_ = new views::TableView( |
64 this, table_columns, | 64 this, table_columns, |
65 chooser_controller_->ShouldShowIconBeforeText() ? views::ICON_AND_TEXT | 65 chooser_controller_->ShouldShowIconBeforeText() ? views::ICON_AND_TEXT |
66 : views::TEXT_ONLY, | 66 : views::TEXT_ONLY, |
67 true /* single_selection */); | 67 !chooser_controller_->AllowMultipleSelection() /* single_selection */); |
68 table_view_->set_select_on_remove(false); | 68 table_view_->set_select_on_remove(false); |
69 table_view_->SetObserver(table_view_observer); | 69 table_view_->SetObserver(table_view_observer); |
70 table_view_->SetEnabled(chooser_controller_->NumOptions() > 0); | 70 table_view_->SetEnabled(chooser_controller_->NumOptions() > 0); |
71 | 71 |
72 table_parent_ = table_view_->CreateParentIfNecessary(); | 72 table_parent_ = table_view_->CreateParentIfNecessary(); |
73 AddChildView(table_parent_); | 73 AddChildView(table_parent_); |
74 | 74 |
75 throbber_ = new views::Throbber(); | 75 throbber_ = new views::Throbber(); |
76 throbber_->SetVisible(false); | 76 throbber_->SetVisible(false); |
77 AddChildView(throbber_); | 77 AddChildView(throbber_); |
(...skipping 200 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
278 ? chooser_controller_->GetOkButtonLabel() | 278 ? chooser_controller_->GetOkButtonLabel() |
279 : l10n_util::GetStringUTF16(IDS_DEVICE_CHOOSER_CANCEL_BUTTON_TEXT); | 279 : l10n_util::GetStringUTF16(IDS_DEVICE_CHOOSER_CANCEL_BUTTON_TEXT); |
280 } | 280 } |
281 | 281 |
282 bool ChooserContentView::IsDialogButtonEnabled(ui::DialogButton button) const { | 282 bool ChooserContentView::IsDialogButtonEnabled(ui::DialogButton button) const { |
283 return button != ui::DIALOG_BUTTON_OK || | 283 return button != ui::DIALOG_BUTTON_OK || |
284 !table_view_->selection_model().empty(); | 284 !table_view_->selection_model().empty(); |
285 } | 285 } |
286 | 286 |
287 void ChooserContentView::Accept() { | 287 void ChooserContentView::Accept() { |
288 chooser_controller_->Select(table_view_->selection_model().active()); | 288 std::vector<size_t> indices( |
| 289 table_view_->selection_model().selected_indices().begin(), |
| 290 table_view_->selection_model().selected_indices().end()); |
| 291 chooser_controller_->Select(indices); |
289 } | 292 } |
290 | 293 |
291 void ChooserContentView::Cancel() { | 294 void ChooserContentView::Cancel() { |
292 chooser_controller_->Cancel(); | 295 chooser_controller_->Cancel(); |
293 } | 296 } |
294 | 297 |
295 void ChooserContentView::Close() { | 298 void ChooserContentView::Close() { |
296 chooser_controller_->Close(); | 299 chooser_controller_->Close(); |
297 } | 300 } |
298 | 301 |
299 void ChooserContentView::UpdateTableView() { | 302 void ChooserContentView::UpdateTableView() { |
300 if (chooser_controller_->NumOptions() == 0) { | 303 if (chooser_controller_->NumOptions() == 0) { |
301 table_view_->OnModelChanged(); | 304 table_view_->OnModelChanged(); |
302 table_view_->SetEnabled(false); | 305 table_view_->SetEnabled(false); |
303 } else { | 306 } else { |
304 table_view_->SetEnabled(true); | 307 table_view_->SetEnabled(true); |
305 } | 308 } |
306 } | 309 } |
307 | 310 |
308 void ChooserContentView::SetGetHelpAndReScanLink() { | 311 void ChooserContentView::SetGetHelpAndReScanLink() { |
309 footnote_link_->SetText(help_and_re_scan_text_); | 312 footnote_link_->SetText(help_and_re_scan_text_); |
310 footnote_link_->AddStyleRange( | 313 footnote_link_->AddStyleRange( |
311 help_text_range_, views::StyledLabel::RangeStyleInfo::CreateForLink()); | 314 help_text_range_, views::StyledLabel::RangeStyleInfo::CreateForLink()); |
312 footnote_link_->AddStyleRange( | 315 footnote_link_->AddStyleRange( |
313 re_scan_text_range_, views::StyledLabel::RangeStyleInfo::CreateForLink()); | 316 re_scan_text_range_, views::StyledLabel::RangeStyleInfo::CreateForLink()); |
314 } | 317 } |
OLD | NEW |