| 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/numerics/safe_conversions.h" | 7 #include "base/numerics/safe_conversions.h" |
| 8 #include "chrome/grit/generated_resources.h" | 8 #include "chrome/grit/generated_resources.h" |
| 9 #include "ui/base/l10n/l10n_util.h" | 9 #include "ui/base/l10n/l10n_util.h" |
| 10 #include "ui/base/resource/resource_bundle.h" | 10 #include "ui/base/resource/resource_bundle.h" |
| (...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 53 table_view_->SetObserver(table_view_observer); | 53 table_view_->SetObserver(table_view_observer); |
| 54 table_view_->SetEnabled(chooser_controller_->NumOptions() > 0); | 54 table_view_->SetEnabled(chooser_controller_->NumOptions() > 0); |
| 55 | 55 |
| 56 table_parent_ = table_view_->CreateParentIfNecessary(); | 56 table_parent_ = table_view_->CreateParentIfNecessary(); |
| 57 AddChildView(table_parent_); | 57 AddChildView(table_parent_); |
| 58 | 58 |
| 59 throbber_ = new views::Throbber(); | 59 throbber_ = new views::Throbber(); |
| 60 throbber_->SetVisible(false); | 60 throbber_->SetVisible(false); |
| 61 AddChildView(throbber_); | 61 AddChildView(throbber_); |
| 62 | 62 |
| 63 turn_adapter_off_help_ = new views::Link( | 63 base::string16 link_text = l10n_util::GetStringUTF16( |
| 64 l10n_util::GetStringUTF16(IDS_BLUETOOTH_DEVICE_CHOOSER_TURN_ADAPTER_OFF)); | 64 IDS_BLUETOOTH_DEVICE_CHOOSER_TURN_ON_BLUETOOTH_LINK_TEXT); |
| 65 turn_adapter_off_help_->SetHandlesTooltips(false); | 65 size_t offset = 0; |
| 66 turn_adapter_off_help_->SetUnderline(false); | 66 base::string16 text = l10n_util::GetStringFUTF16( |
| 67 turn_adapter_off_help_->SetMultiLine(true); | 67 IDS_BLUETOOTH_DEVICE_CHOOSER_TURN_ADAPTER_OFF, link_text, &offset); |
| 68 turn_adapter_off_help_->SetHorizontalAlignment(gfx::ALIGN_LEFT); | 68 turn_adapter_off_help_ = new views::StyledLabel(text, this); |
| 69 turn_adapter_off_help_->set_listener(this); | 69 turn_adapter_off_help_->AddStyleRange( |
| 70 gfx::Range(0, link_text.size()), |
| 71 views::StyledLabel::RangeStyleInfo::CreateForLink()); |
| 70 turn_adapter_off_help_->SetVisible(false); | 72 turn_adapter_off_help_->SetVisible(false); |
| 71 AddChildView(turn_adapter_off_help_); | 73 AddChildView(turn_adapter_off_help_); |
| 72 } | 74 } |
| 73 | 75 |
| 74 ChooserContentView::~ChooserContentView() { | 76 ChooserContentView::~ChooserContentView() { |
| 75 chooser_controller_->set_view(nullptr); | 77 chooser_controller_->set_view(nullptr); |
| 76 table_view_->SetObserver(nullptr); | 78 table_view_->SetObserver(nullptr); |
| 77 table_view_->SetModel(nullptr); | 79 table_view_->SetModel(nullptr); |
| 78 turn_adapter_off_help_->set_listener(nullptr); | |
| 79 if (discovery_state_) | 80 if (discovery_state_) |
| 80 discovery_state_->set_listener(nullptr); | 81 discovery_state_->set_listener(nullptr); |
| 81 } | 82 } |
| 82 | 83 |
| 83 gfx::Size ChooserContentView::GetPreferredSize() const { | 84 gfx::Size ChooserContentView::GetPreferredSize() const { |
| 84 return gfx::Size(kChooserWidth, kChooserHeight); | 85 return gfx::Size(kChooserWidth, kChooserHeight); |
| 85 } | 86 } |
| 86 | 87 |
| 87 void ChooserContentView::Layout() { | 88 void ChooserContentView::Layout() { |
| 88 gfx::Rect rect(GetContentsBounds()); | 89 gfx::Rect rect(GetContentsBounds()); |
| (...skipping 125 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 214 | 215 |
| 215 discovery_state_->SetText(chooser_controller_->GetStatus()); | 216 discovery_state_->SetText(chooser_controller_->GetStatus()); |
| 216 // When refreshing, disable |discovery_state_| to show it as a text label. | 217 // When refreshing, disable |discovery_state_| to show it as a text label. |
| 217 // When complete, enable |discovery_state_| to show it as a link. | 218 // When complete, enable |discovery_state_| to show it as a link. |
| 218 discovery_state_->SetEnabled(!refreshing); | 219 discovery_state_->SetEnabled(!refreshing); |
| 219 } | 220 } |
| 220 | 221 |
| 221 void ChooserContentView::LinkClicked(views::Link* source, int event_flags) { | 222 void ChooserContentView::LinkClicked(views::Link* source, int event_flags) { |
| 222 if (source == discovery_state_) | 223 if (source == discovery_state_) |
| 223 chooser_controller_->RefreshOptions(); | 224 chooser_controller_->RefreshOptions(); |
| 224 else if (source == turn_adapter_off_help_) | |
| 225 chooser_controller_->OpenAdapterOffHelpUrl(); | |
| 226 else | 225 else |
| 227 NOTREACHED(); | 226 NOTREACHED(); |
| 228 } | 227 } |
| 229 | 228 |
| 230 void ChooserContentView::StyledLabelLinkClicked(views::StyledLabel* label, | 229 void ChooserContentView::StyledLabelLinkClicked(views::StyledLabel* label, |
| 231 const gfx::Range& range, | 230 const gfx::Range& range, |
| 232 int event_flags) { | 231 int event_flags) { |
| 233 chooser_controller_->OpenHelpCenterUrl(); | 232 if (label == turn_adapter_off_help_) |
| 233 chooser_controller_->OpenAdapterOffHelpUrl(); |
| 234 else if (label == help_link_) |
| 235 chooser_controller_->OpenHelpCenterUrl(); |
| 236 else |
| 237 NOTREACHED(); |
| 234 } | 238 } |
| 235 | 239 |
| 236 base::string16 ChooserContentView::GetWindowTitle() const { | 240 base::string16 ChooserContentView::GetWindowTitle() const { |
| 237 return chooser_controller_->GetTitle(); | 241 return chooser_controller_->GetTitle(); |
| 238 } | 242 } |
| 239 | 243 |
| 240 base::string16 ChooserContentView::GetDialogButtonLabel( | 244 base::string16 ChooserContentView::GetDialogButtonLabel( |
| 241 ui::DialogButton button) const { | 245 ui::DialogButton button) const { |
| 242 return button == ui::DIALOG_BUTTON_OK | 246 return button == ui::DIALOG_BUTTON_OK |
| 243 ? chooser_controller_->GetOkButtonLabel() | 247 ? chooser_controller_->GetOkButtonLabel() |
| (...skipping 15 matching lines...) Expand all Loading... |
| 259 discovery_state_->set_listener(this); | 263 discovery_state_->set_listener(this); |
| 260 return discovery_state_; | 264 return discovery_state_; |
| 261 } | 265 } |
| 262 | 266 |
| 263 views::StyledLabel* ChooserContentView::CreateFootnoteView() { | 267 views::StyledLabel* ChooserContentView::CreateFootnoteView() { |
| 264 base::string16 link = | 268 base::string16 link = |
| 265 l10n_util::GetStringUTF16(IDS_DEVICE_CHOOSER_GET_HELP_LINK_TEXT); | 269 l10n_util::GetStringUTF16(IDS_DEVICE_CHOOSER_GET_HELP_LINK_TEXT); |
| 266 size_t offset = 0; | 270 size_t offset = 0; |
| 267 base::string16 text = l10n_util::GetStringFUTF16( | 271 base::string16 text = l10n_util::GetStringFUTF16( |
| 268 IDS_DEVICE_CHOOSER_FOOTNOTE_TEXT, link, &offset); | 272 IDS_DEVICE_CHOOSER_FOOTNOTE_TEXT, link, &offset); |
| 269 styled_label_ = new views::StyledLabel(text, this); | 273 help_link_ = new views::StyledLabel(text, this); |
| 270 styled_label_->AddStyleRange( | 274 help_link_->AddStyleRange( |
| 271 gfx::Range(offset, offset + link.length()), | 275 gfx::Range(offset, offset + link.length()), |
| 272 views::StyledLabel::RangeStyleInfo::CreateForLink()); | 276 views::StyledLabel::RangeStyleInfo::CreateForLink()); |
| 273 return styled_label_; | 277 return help_link_; |
| 274 } | 278 } |
| 275 | 279 |
| 276 void ChooserContentView::Accept() { | 280 void ChooserContentView::Accept() { |
| 277 chooser_controller_->Select(table_view_->selection_model().active()); | 281 chooser_controller_->Select(table_view_->selection_model().active()); |
| 278 } | 282 } |
| 279 | 283 |
| 280 void ChooserContentView::Cancel() { | 284 void ChooserContentView::Cancel() { |
| 281 chooser_controller_->Cancel(); | 285 chooser_controller_->Cancel(); |
| 282 } | 286 } |
| 283 | 287 |
| 284 void ChooserContentView::Close() { | 288 void ChooserContentView::Close() { |
| 285 chooser_controller_->Close(); | 289 chooser_controller_->Close(); |
| 286 } | 290 } |
| 287 | 291 |
| 288 void ChooserContentView::UpdateTableView() { | 292 void ChooserContentView::UpdateTableView() { |
| 289 if (chooser_controller_->NumOptions() == 0) { | 293 if (chooser_controller_->NumOptions() == 0) { |
| 290 table_view_->OnModelChanged(); | 294 table_view_->OnModelChanged(); |
| 291 table_view_->SetEnabled(false); | 295 table_view_->SetEnabled(false); |
| 292 } else { | 296 } else { |
| 293 table_view_->SetEnabled(true); | 297 table_view_->SetEnabled(true); |
| 294 } | 298 } |
| 295 } | 299 } |
| OLD | NEW |