| 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 69 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 80 IDS_BLUETOOTH_DEVICE_CHOOSER_TURN_ON_BLUETOOTH_LINK_TEXT); | 80 IDS_BLUETOOTH_DEVICE_CHOOSER_TURN_ON_BLUETOOTH_LINK_TEXT); |
| 81 size_t offset = 0; | 81 size_t offset = 0; |
| 82 base::string16 text = l10n_util::GetStringFUTF16( | 82 base::string16 text = l10n_util::GetStringFUTF16( |
| 83 IDS_BLUETOOTH_DEVICE_CHOOSER_TURN_ADAPTER_OFF, link_text, &offset); | 83 IDS_BLUETOOTH_DEVICE_CHOOSER_TURN_ADAPTER_OFF, link_text, &offset); |
| 84 turn_adapter_off_help_ = new views::StyledLabel(text, this); | 84 turn_adapter_off_help_ = new views::StyledLabel(text, this); |
| 85 turn_adapter_off_help_->AddStyleRange( | 85 turn_adapter_off_help_->AddStyleRange( |
| 86 gfx::Range(0, link_text.size()), | 86 gfx::Range(0, link_text.size()), |
| 87 views::StyledLabel::RangeStyleInfo::CreateForLink()); | 87 views::StyledLabel::RangeStyleInfo::CreateForLink()); |
| 88 turn_adapter_off_help_->SetVisible(false); | 88 turn_adapter_off_help_->SetVisible(false); |
| 89 AddChildView(turn_adapter_off_help_); | 89 AddChildView(turn_adapter_off_help_); |
| 90 footnote_link_ = base::MakeUnique<views::StyledLabel>(help_text_, this); | |
| 91 footnote_link_->set_owned_by_client(); | |
| 92 footnote_link_->AddStyleRange( | |
| 93 help_text_range_, views::StyledLabel::RangeStyleInfo::CreateForLink()); | |
| 94 } | 90 } |
| 95 | 91 |
| 96 ChooserContentView::~ChooserContentView() { | 92 ChooserContentView::~ChooserContentView() { |
| 97 chooser_controller_->set_view(nullptr); | 93 chooser_controller_->set_view(nullptr); |
| 98 table_view_->SetObserver(nullptr); | 94 table_view_->SetObserver(nullptr); |
| 99 table_view_->SetModel(nullptr); | 95 table_view_->SetModel(nullptr); |
| 100 } | 96 } |
| 101 | 97 |
| 102 gfx::Size ChooserContentView::GetPreferredSize() const { | 98 gfx::Size ChooserContentView::GetPreferredSize() const { |
| 103 return gfx::Size(kChooserWidth, kChooserHeight); | 99 return gfx::Size(kChooserWidth, kChooserHeight); |
| (...skipping 99 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 203 UpdateTableView(); | 199 UpdateTableView(); |
| 204 table_view_->SetVisible(enabled); | 200 table_view_->SetVisible(enabled); |
| 205 turn_adapter_off_help_->SetVisible(!enabled); | 201 turn_adapter_off_help_->SetVisible(!enabled); |
| 206 | 202 |
| 207 throbber_->Stop(); | 203 throbber_->Stop(); |
| 208 throbber_->SetVisible(false); | 204 throbber_->SetVisible(false); |
| 209 | 205 |
| 210 if (enabled) { | 206 if (enabled) { |
| 211 SetGetHelpAndReScanLink(); | 207 SetGetHelpAndReScanLink(); |
| 212 } else { | 208 } else { |
| 209 DCHECK(footnote_link_); |
| 213 footnote_link_->SetText(help_text_); | 210 footnote_link_->SetText(help_text_); |
| 214 footnote_link_->AddStyleRange( | 211 footnote_link_->AddStyleRange( |
| 215 help_text_range_, views::StyledLabel::RangeStyleInfo::CreateForLink()); | 212 help_text_range_, views::StyledLabel::RangeStyleInfo::CreateForLink()); |
| 216 } | 213 } |
| 217 | 214 |
| 218 if (GetWidget() && GetWidget()->GetRootView()) | 215 if (GetWidget() && GetWidget()->GetRootView()) |
| 219 GetWidget()->GetRootView()->Layout(); | 216 GetWidget()->GetRootView()->Layout(); |
| 220 } | 217 } |
| 221 | 218 |
| 222 void ChooserContentView::OnRefreshStateChanged(bool refreshing) { | 219 void ChooserContentView::OnRefreshStateChanged(bool refreshing) { |
| (...skipping 10 matching lines...) Expand all Loading... |
| 233 bool throbber_visible = | 230 bool throbber_visible = |
| 234 refreshing && (chooser_controller_->NumOptions() == 0); | 231 refreshing && (chooser_controller_->NumOptions() == 0); |
| 235 table_view_->SetVisible(!throbber_visible); | 232 table_view_->SetVisible(!throbber_visible); |
| 236 throbber_->SetVisible(throbber_visible); | 233 throbber_->SetVisible(throbber_visible); |
| 237 if (throbber_visible) | 234 if (throbber_visible) |
| 238 throbber_->Start(); | 235 throbber_->Start(); |
| 239 else | 236 else |
| 240 throbber_->Stop(); | 237 throbber_->Stop(); |
| 241 | 238 |
| 242 if (refreshing) { | 239 if (refreshing) { |
| 240 DCHECK(footnote_link_); |
| 243 footnote_link_->SetText(help_and_scanning_text_); | 241 footnote_link_->SetText(help_and_scanning_text_); |
| 244 footnote_link_->AddStyleRange( | 242 footnote_link_->AddStyleRange( |
| 245 help_text_range_, views::StyledLabel::RangeStyleInfo::CreateForLink()); | 243 help_text_range_, views::StyledLabel::RangeStyleInfo::CreateForLink()); |
| 246 } else { | 244 } else { |
| 247 SetGetHelpAndReScanLink(); | 245 SetGetHelpAndReScanLink(); |
| 248 } | 246 } |
| 249 | 247 |
| 250 if (GetWidget() && GetWidget()->GetRootView()) | 248 if (GetWidget() && GetWidget()->GetRootView()) |
| 251 GetWidget()->GetRootView()->Layout(); | 249 GetWidget()->GetRootView()->Layout(); |
| 252 } | 250 } |
| (...skipping 24 matching lines...) Expand all Loading... |
| 277 return button == ui::DIALOG_BUTTON_OK | 275 return button == ui::DIALOG_BUTTON_OK |
| 278 ? chooser_controller_->GetOkButtonLabel() | 276 ? chooser_controller_->GetOkButtonLabel() |
| 279 : l10n_util::GetStringUTF16(IDS_DEVICE_CHOOSER_CANCEL_BUTTON_TEXT); | 277 : l10n_util::GetStringUTF16(IDS_DEVICE_CHOOSER_CANCEL_BUTTON_TEXT); |
| 280 } | 278 } |
| 281 | 279 |
| 282 bool ChooserContentView::IsDialogButtonEnabled(ui::DialogButton button) const { | 280 bool ChooserContentView::IsDialogButtonEnabled(ui::DialogButton button) const { |
| 283 return button != ui::DIALOG_BUTTON_OK || | 281 return button != ui::DIALOG_BUTTON_OK || |
| 284 !table_view_->selection_model().empty(); | 282 !table_view_->selection_model().empty(); |
| 285 } | 283 } |
| 286 | 284 |
| 285 views::StyledLabel* ChooserContentView::footnote_link() { |
| 286 if (chooser_controller_->ShouldShowFootnoteView()) { |
| 287 footnote_link_ = base::MakeUnique<views::StyledLabel>(help_text_, this); |
| 288 footnote_link_->set_owned_by_client(); |
| 289 footnote_link_->AddStyleRange( |
| 290 help_text_range_, views::StyledLabel::RangeStyleInfo::CreateForLink()); |
| 291 } |
| 292 |
| 293 return footnote_link_.get(); |
| 294 } |
| 295 |
| 287 void ChooserContentView::Accept() { | 296 void ChooserContentView::Accept() { |
| 288 std::vector<size_t> indices( | 297 std::vector<size_t> indices( |
| 289 table_view_->selection_model().selected_indices().begin(), | 298 table_view_->selection_model().selected_indices().begin(), |
| 290 table_view_->selection_model().selected_indices().end()); | 299 table_view_->selection_model().selected_indices().end()); |
| 291 chooser_controller_->Select(indices); | 300 chooser_controller_->Select(indices); |
| 292 } | 301 } |
| 293 | 302 |
| 294 void ChooserContentView::Cancel() { | 303 void ChooserContentView::Cancel() { |
| 295 chooser_controller_->Cancel(); | 304 chooser_controller_->Cancel(); |
| 296 } | 305 } |
| 297 | 306 |
| 298 void ChooserContentView::Close() { | 307 void ChooserContentView::Close() { |
| 299 chooser_controller_->Close(); | 308 chooser_controller_->Close(); |
| 300 } | 309 } |
| 301 | 310 |
| 302 void ChooserContentView::UpdateTableView() { | 311 void ChooserContentView::UpdateTableView() { |
| 303 if (chooser_controller_->NumOptions() == 0) { | 312 if (chooser_controller_->NumOptions() == 0) { |
| 304 table_view_->OnModelChanged(); | 313 table_view_->OnModelChanged(); |
| 305 table_view_->SetEnabled(false); | 314 table_view_->SetEnabled(false); |
| 306 } else { | 315 } else { |
| 307 table_view_->SetEnabled(true); | 316 table_view_->SetEnabled(true); |
| 308 } | 317 } |
| 309 } | 318 } |
| 310 | 319 |
| 311 void ChooserContentView::SetGetHelpAndReScanLink() { | 320 void ChooserContentView::SetGetHelpAndReScanLink() { |
| 321 DCHECK(footnote_link_); |
| 312 footnote_link_->SetText(help_and_re_scan_text_); | 322 footnote_link_->SetText(help_and_re_scan_text_); |
| 313 footnote_link_->AddStyleRange( | 323 footnote_link_->AddStyleRange( |
| 314 help_text_range_, views::StyledLabel::RangeStyleInfo::CreateForLink()); | 324 help_text_range_, views::StyledLabel::RangeStyleInfo::CreateForLink()); |
| 315 footnote_link_->AddStyleRange( | 325 footnote_link_->AddStyleRange( |
| 316 re_scan_text_range_, views::StyledLabel::RangeStyleInfo::CreateForLink()); | 326 re_scan_text_range_, views::StyledLabel::RangeStyleInfo::CreateForLink()); |
| 317 } | 327 } |
| OLD | NEW |