Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(205)

Side by Side Diff: chrome/browser/ui/views/chooser_content_view.cc

Issue 2478863003: Fix the Web Bluetooth chooser when it is used on Chrome apps on non-Mac (Closed)
Patch Set: initialize pointer to be nullptr Created 4 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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
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
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 }
OLDNEW
« no previous file with comments | « chrome/browser/ui/views/chooser_content_view.h ('k') | chrome/browser/ui/views/chooser_content_view_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698