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 |