| 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/numerics/safe_conversions.h" | 8 #include "base/numerics/safe_conversions.h" |
| 8 #include "chrome/grit/generated_resources.h" | 9 #include "chrome/grit/generated_resources.h" |
| 9 #include "ui/base/l10n/l10n_util.h" | 10 #include "ui/base/l10n/l10n_util.h" |
| 10 #include "ui/base/resource/resource_bundle.h" | 11 #include "ui/base/resource/resource_bundle.h" |
| 11 #include "ui/gfx/color_palette.h" | 12 #include "ui/gfx/color_palette.h" |
| 12 #include "ui/gfx/geometry/point.h" | 13 #include "ui/gfx/geometry/point.h" |
| 13 #include "ui/gfx/geometry/rect.h" | 14 #include "ui/gfx/geometry/rect.h" |
| 14 #include "ui/gfx/image/image_skia.h" | 15 #include "ui/gfx/image/image_skia.h" |
| 15 #include "ui/gfx/paint_vector_icon.h" | 16 #include "ui/gfx/paint_vector_icon.h" |
| 16 #include "ui/gfx/vector_icons_public.h" | 17 #include "ui/gfx/vector_icons_public.h" |
| (...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 79 IDS_BLUETOOTH_DEVICE_CHOOSER_TURN_ON_BLUETOOTH_LINK_TEXT); | 80 IDS_BLUETOOTH_DEVICE_CHOOSER_TURN_ON_BLUETOOTH_LINK_TEXT); |
| 80 size_t offset = 0; | 81 size_t offset = 0; |
| 81 base::string16 text = l10n_util::GetStringFUTF16( | 82 base::string16 text = l10n_util::GetStringFUTF16( |
| 82 IDS_BLUETOOTH_DEVICE_CHOOSER_TURN_ADAPTER_OFF, link_text, &offset); | 83 IDS_BLUETOOTH_DEVICE_CHOOSER_TURN_ADAPTER_OFF, link_text, &offset); |
| 83 turn_adapter_off_help_ = new views::StyledLabel(text, this); | 84 turn_adapter_off_help_ = new views::StyledLabel(text, this); |
| 84 turn_adapter_off_help_->AddStyleRange( | 85 turn_adapter_off_help_->AddStyleRange( |
| 85 gfx::Range(0, link_text.size()), | 86 gfx::Range(0, link_text.size()), |
| 86 views::StyledLabel::RangeStyleInfo::CreateForLink()); | 87 views::StyledLabel::RangeStyleInfo::CreateForLink()); |
| 87 turn_adapter_off_help_->SetVisible(false); | 88 turn_adapter_off_help_->SetVisible(false); |
| 88 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()); |
| 89 } | 94 } |
| 90 | 95 |
| 91 ChooserContentView::~ChooserContentView() { | 96 ChooserContentView::~ChooserContentView() { |
| 92 chooser_controller_->set_view(nullptr); | 97 chooser_controller_->set_view(nullptr); |
| 93 table_view_->SetObserver(nullptr); | 98 table_view_->SetObserver(nullptr); |
| 94 table_view_->SetModel(nullptr); | 99 table_view_->SetModel(nullptr); |
| 95 } | 100 } |
| 96 | 101 |
| 97 gfx::Size ChooserContentView::GetPreferredSize() const { | 102 gfx::Size ChooserContentView::GetPreferredSize() const { |
| 98 return gfx::Size(kChooserWidth, kChooserHeight); | 103 return gfx::Size(kChooserWidth, kChooserHeight); |
| (...skipping 145 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 244 | 249 |
| 245 if (GetWidget() && GetWidget()->GetRootView()) | 250 if (GetWidget() && GetWidget()->GetRootView()) |
| 246 GetWidget()->GetRootView()->Layout(); | 251 GetWidget()->GetRootView()->Layout(); |
| 247 } | 252 } |
| 248 | 253 |
| 249 void ChooserContentView::StyledLabelLinkClicked(views::StyledLabel* label, | 254 void ChooserContentView::StyledLabelLinkClicked(views::StyledLabel* label, |
| 250 const gfx::Range& range, | 255 const gfx::Range& range, |
| 251 int event_flags) { | 256 int event_flags) { |
| 252 if (label == turn_adapter_off_help_) { | 257 if (label == turn_adapter_off_help_) { |
| 253 chooser_controller_->OpenAdapterOffHelpUrl(); | 258 chooser_controller_->OpenAdapterOffHelpUrl(); |
| 254 } else if (label == footnote_link_) { | 259 } else if (label == footnote_link_.get()) { |
| 255 if (range == help_text_range_) | 260 if (range == help_text_range_) |
| 256 chooser_controller_->OpenHelpCenterUrl(); | 261 chooser_controller_->OpenHelpCenterUrl(); |
| 257 else if (range == re_scan_text_range_) | 262 else if (range == re_scan_text_range_) |
| 258 chooser_controller_->RefreshOptions(); | 263 chooser_controller_->RefreshOptions(); |
| 259 else | 264 else |
| 260 NOTREACHED(); | 265 NOTREACHED(); |
| 261 } else { | 266 } else { |
| 262 NOTREACHED(); | 267 NOTREACHED(); |
| 263 } | 268 } |
| 264 } | 269 } |
| 265 | 270 |
| 266 base::string16 ChooserContentView::GetWindowTitle() const { | 271 base::string16 ChooserContentView::GetWindowTitle() const { |
| 267 return chooser_controller_->GetTitle(); | 272 return chooser_controller_->GetTitle(); |
| 268 } | 273 } |
| 269 | 274 |
| 270 base::string16 ChooserContentView::GetDialogButtonLabel( | 275 base::string16 ChooserContentView::GetDialogButtonLabel( |
| 271 ui::DialogButton button) const { | 276 ui::DialogButton button) const { |
| 272 return button == ui::DIALOG_BUTTON_OK | 277 return button == ui::DIALOG_BUTTON_OK |
| 273 ? chooser_controller_->GetOkButtonLabel() | 278 ? chooser_controller_->GetOkButtonLabel() |
| 274 : l10n_util::GetStringUTF16(IDS_DEVICE_CHOOSER_CANCEL_BUTTON_TEXT); | 279 : l10n_util::GetStringUTF16(IDS_DEVICE_CHOOSER_CANCEL_BUTTON_TEXT); |
| 275 } | 280 } |
| 276 | 281 |
| 277 bool ChooserContentView::IsDialogButtonEnabled(ui::DialogButton button) const { | 282 bool ChooserContentView::IsDialogButtonEnabled(ui::DialogButton button) const { |
| 278 return button != ui::DIALOG_BUTTON_OK || | 283 return button != ui::DIALOG_BUTTON_OK || |
| 279 !table_view_->selection_model().empty(); | 284 !table_view_->selection_model().empty(); |
| 280 } | 285 } |
| 281 | 286 |
| 282 views::StyledLabel* ChooserContentView::CreateFootnoteView() { | |
| 283 footnote_link_ = new views::StyledLabel(help_text_, this); | |
| 284 footnote_link_->AddStyleRange( | |
| 285 help_text_range_, views::StyledLabel::RangeStyleInfo::CreateForLink()); | |
| 286 return footnote_link_; | |
| 287 } | |
| 288 | |
| 289 void ChooserContentView::Accept() { | 287 void ChooserContentView::Accept() { |
| 290 chooser_controller_->Select(table_view_->selection_model().active()); | 288 chooser_controller_->Select(table_view_->selection_model().active()); |
| 291 } | 289 } |
| 292 | 290 |
| 293 void ChooserContentView::Cancel() { | 291 void ChooserContentView::Cancel() { |
| 294 chooser_controller_->Cancel(); | 292 chooser_controller_->Cancel(); |
| 295 } | 293 } |
| 296 | 294 |
| 297 void ChooserContentView::Close() { | 295 void ChooserContentView::Close() { |
| 298 chooser_controller_->Close(); | 296 chooser_controller_->Close(); |
| 299 } | 297 } |
| 300 | 298 |
| 301 void ChooserContentView::UpdateTableView() { | 299 void ChooserContentView::UpdateTableView() { |
| 302 if (chooser_controller_->NumOptions() == 0) { | 300 if (chooser_controller_->NumOptions() == 0) { |
| 303 table_view_->OnModelChanged(); | 301 table_view_->OnModelChanged(); |
| 304 table_view_->SetEnabled(false); | 302 table_view_->SetEnabled(false); |
| 305 } else { | 303 } else { |
| 306 table_view_->SetEnabled(true); | 304 table_view_->SetEnabled(true); |
| 307 } | 305 } |
| 308 } | 306 } |
| 309 | 307 |
| 310 void ChooserContentView::SetGetHelpAndReScanLink() { | 308 void ChooserContentView::SetGetHelpAndReScanLink() { |
| 311 footnote_link_->SetText(help_and_re_scan_text_); | 309 footnote_link_->SetText(help_and_re_scan_text_); |
| 312 footnote_link_->AddStyleRange( | 310 footnote_link_->AddStyleRange( |
| 313 help_text_range_, views::StyledLabel::RangeStyleInfo::CreateForLink()); | 311 help_text_range_, views::StyledLabel::RangeStyleInfo::CreateForLink()); |
| 314 footnote_link_->AddStyleRange( | 312 footnote_link_->AddStyleRange( |
| 315 re_scan_text_range_, views::StyledLabel::RangeStyleInfo::CreateForLink()); | 313 re_scan_text_range_, views::StyledLabel::RangeStyleInfo::CreateForLink()); |
| 316 } | 314 } |
| OLD | NEW |