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

Side by Side Diff: chrome/browser/ui/cocoa/chooser_content_view_cocoa.mm

Issue 2439453006: Make "to allow pairing" not be a link in the WebBluetooth chooser (Closed)
Patch Set: make "to allow pairing" not be a link in the WebBluetooth chooser Created 4 years, 2 months 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 #import "chrome/browser/ui/cocoa/chooser_content_view_cocoa.h" 5 #import "chrome/browser/ui/cocoa/chooser_content_view_cocoa.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 8
9 #include "base/macros.h" 9 #include "base/macros.h"
10 #include "base/strings/sys_string_conversions.h" 10 #include "base/strings/sys_string_conversions.h"
(...skipping 219 matching lines...) Expand 10 before | Expand all | Expand 10 after
230 return pairedStatus_.get(); 230 return pairedStatus_.get();
231 } 231 }
232 232
233 @end 233 @end
234 234
235 class ChooserContentViewController : public ChooserController::View { 235 class ChooserContentViewController : public ChooserController::View {
236 public: 236 public:
237 ChooserContentViewController(ChooserContentViewCocoa* chooser_content_view, 237 ChooserContentViewController(ChooserContentViewCocoa* chooser_content_view,
238 ChooserController* chooser_controller, 238 ChooserController* chooser_controller,
239 NSButton* adapter_off_help_button, 239 NSButton* adapter_off_help_button,
240 NSTextField* adapter_off_message,
240 NSTableView* table_view, 241 NSTableView* table_view,
241 SpinnerView* spinner, 242 SpinnerView* spinner,
242 NSTextField* status, 243 NSTextField* status,
243 NSButton* rescan_button); 244 NSButton* rescan_button);
244 ~ChooserContentViewController() override; 245 ~ChooserContentViewController() override;
245 246
246 // ChooserController::View: 247 // ChooserController::View:
247 void OnOptionsInitialized() override; 248 void OnOptionsInitialized() override;
248 void OnOptionAdded(size_t index) override; 249 void OnOptionAdded(size_t index) override;
249 void OnOptionRemoved(size_t index) override; 250 void OnOptionRemoved(size_t index) override;
250 void OnOptionUpdated(size_t index) override; 251 void OnOptionUpdated(size_t index) override;
251 void OnAdapterEnabledChanged(bool enabled) override; 252 void OnAdapterEnabledChanged(bool enabled) override;
252 void OnRefreshStateChanged(bool refreshing) override; 253 void OnRefreshStateChanged(bool refreshing) override;
253 254
254 void UpdateTableView(); 255 void UpdateTableView();
255 256
256 private: 257 private:
257 ChooserContentViewCocoa* chooser_content_view_; 258 ChooserContentViewCocoa* chooser_content_view_;
258 ChooserController* chooser_controller_; 259 ChooserController* chooser_controller_;
259 NSButton* adapter_off_help_button_; 260 NSButton* adapter_off_help_button_;
261 NSTextField* adapter_off_message_;
260 NSTableView* table_view_; 262 NSTableView* table_view_;
261 SpinnerView* spinner_; 263 SpinnerView* spinner_;
262 NSTextField* status_; 264 NSTextField* status_;
263 NSButton* rescan_button_; 265 NSButton* rescan_button_;
264 266
265 DISALLOW_COPY_AND_ASSIGN(ChooserContentViewController); 267 DISALLOW_COPY_AND_ASSIGN(ChooserContentViewController);
266 }; 268 };
267 269
268 ChooserContentViewController::ChooserContentViewController( 270 ChooserContentViewController::ChooserContentViewController(
269 ChooserContentViewCocoa* chooser_content_view, 271 ChooserContentViewCocoa* chooser_content_view,
270 ChooserController* chooser_controller, 272 ChooserController* chooser_controller,
271 NSButton* adapter_off_help_button, 273 NSButton* adapter_off_help_button,
274 NSTextField* adapter_off_message,
272 NSTableView* table_view, 275 NSTableView* table_view,
273 SpinnerView* spinner, 276 SpinnerView* spinner,
274 NSTextField* status, 277 NSTextField* status,
275 NSButton* rescan_button) 278 NSButton* rescan_button)
276 : chooser_content_view_(chooser_content_view), 279 : chooser_content_view_(chooser_content_view),
277 chooser_controller_(chooser_controller), 280 chooser_controller_(chooser_controller),
278 adapter_off_help_button_(adapter_off_help_button), 281 adapter_off_help_button_(adapter_off_help_button),
282 adapter_off_message_(adapter_off_message),
279 table_view_(table_view), 283 table_view_(table_view),
280 spinner_(spinner), 284 spinner_(spinner),
281 status_(status), 285 status_(status),
282 rescan_button_(rescan_button) { 286 rescan_button_(rescan_button) {
283 DCHECK(chooser_controller_); 287 DCHECK(chooser_controller_);
284 DCHECK(adapter_off_help_button_); 288 DCHECK(adapter_off_help_button_);
289 DCHECK(adapter_off_message_);
285 DCHECK(table_view_); 290 DCHECK(table_view_);
286 DCHECK(spinner_); 291 DCHECK(spinner_);
287 DCHECK(status_); 292 DCHECK(status_);
288 DCHECK(rescan_button_); 293 DCHECK(rescan_button_);
289 chooser_controller_->set_view(this); 294 chooser_controller_->set_view(this);
290 } 295 }
291 296
292 ChooserContentViewController::~ChooserContentViewController() { 297 ChooserContentViewController::~ChooserContentViewController() {
293 chooser_controller_->set_view(nullptr); 298 chooser_controller_->set_view(nullptr);
294 } 299 }
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
327 } 332 }
328 333
329 void ChooserContentViewController::OnAdapterEnabledChanged(bool enabled) { 334 void ChooserContentViewController::OnAdapterEnabledChanged(bool enabled) {
330 // No row is selected since the adapter status has changed. 335 // No row is selected since the adapter status has changed.
331 // This will also disable the OK button if it was enabled because 336 // This will also disable the OK button if it was enabled because
332 // of a previously selected row. 337 // of a previously selected row.
333 [table_view_ deselectAll:nil]; 338 [table_view_ deselectAll:nil];
334 UpdateTableView(); 339 UpdateTableView();
335 [table_view_ setHidden:enabled ? NO : YES]; 340 [table_view_ setHidden:enabled ? NO : YES];
336 [adapter_off_help_button_ setHidden:enabled ? YES : NO]; 341 [adapter_off_help_button_ setHidden:enabled ? YES : NO];
342 [adapter_off_message_ setHidden:enabled ? YES : NO];
337 343
338 [spinner_ setHidden:YES]; 344 [spinner_ setHidden:YES];
339 345
340 [status_ setHidden:YES]; 346 [status_ setHidden:YES];
341 // When adapter is enabled, show |rescan_button_|; otherwise hide it. 347 // When adapter is enabled, show |rescan_button_|; otherwise hide it.
342 [rescan_button_ setHidden:enabled ? NO : YES]; 348 [rescan_button_ setHidden:enabled ? NO : YES];
343 349
344 [chooser_content_view_ updateView]; 350 [chooser_content_view_ updateView];
345 } 351 }
346 352
(...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after
412 418
413 if ((self = [super initWithFrame:chooserFrame])) { 419 if ((self = [super initWithFrame:chooserFrame])) {
414 chooserController_ = std::move(chooserController); 420 chooserController_ = std::move(chooserController);
415 421
416 // Create the views. 422 // Create the views.
417 // Title. 423 // Title.
418 titleView_ = [self createChooserTitle:chooserTitle]; 424 titleView_ = [self createChooserTitle:chooserTitle];
419 titleHeight_ = NSHeight([titleView_ frame]); 425 titleHeight_ = NSHeight([titleView_ frame]);
420 426
421 // Adapter turned off help button. 427 // Adapter turned off help button.
422 adapterOffHelpButton_ = 428 adapterOffHelpButton_ = [self
423 [self createHyperlinkButtonWithText: 429 createHyperlinkButtonWithText:
424 l10n_util::GetNSString( 430 l10n_util::GetNSString(
425 IDS_BLUETOOTH_DEVICE_CHOOSER_TURN_ADAPTER_OFF)]; 431 IDS_BLUETOOTH_DEVICE_CHOOSER_TURN_ON_BLUETOOTH_LINK_TEXT)];
432 CGFloat adapterOffHelpButtonWidth = NSWidth([adapterOffHelpButton_ frame]);
426 CGFloat adapterOffHelpButtonHeight = 433 CGFloat adapterOffHelpButtonHeight =
427 NSHeight([adapterOffHelpButton_ frame]); 434 NSHeight([adapterOffHelpButton_ frame]);
428 435
436 // Adapter turned off message.
437 adapterOffMessage_ = CreateLabel(l10n_util::GetNSStringF(
438 IDS_BLUETOOTH_DEVICE_CHOOSER_TURN_ADAPTER_OFF, base::string16()));
439
429 // Status. 440 // Status.
430 status_ = CreateLabel( 441 status_ = CreateLabel(
431 l10n_util::GetNSString(IDS_BLUETOOTH_DEVICE_CHOOSER_SCANNING)); 442 l10n_util::GetNSString(IDS_BLUETOOTH_DEVICE_CHOOSER_SCANNING));
432 CGFloat statusWidth = kChooserWidth / 2 - kMarginX; 443 CGFloat statusWidth = kChooserWidth / 2 - kMarginX;
433 // The height is arbitrary as it will be adjusted later. 444 // The height is arbitrary as it will be adjusted later.
434 [status_ setFrameSize:NSMakeSize(statusWidth, 0.0f)]; 445 [status_ setFrameSize:NSMakeSize(statusWidth, 0.0f)];
435 [GTMUILocalizerAndLayoutTweaker sizeToFitFixedWidthTextField:status_]; 446 [GTMUILocalizerAndLayoutTweaker sizeToFitFixedWidthTextField:status_];
436 statusHeight_ = NSHeight([status_ frame]); 447 statusHeight_ = NSHeight([status_ frame]);
437 448
438 // Re-scan button. 449 // Re-scan button.
(...skipping 82 matching lines...) Expand 10 before | Expand all | Expand 10 after
521 adapterOffHelpButtonHeight - 532 adapterOffHelpButtonHeight -
522 kAdapterOffHelpLinkPadding; 533 kAdapterOffHelpLinkPadding;
523 [adapterOffHelpButton_ 534 [adapterOffHelpButton_
524 setFrameOrigin:NSMakePoint(adapterOffHelpButtonOriginX, 535 setFrameOrigin:NSMakePoint(adapterOffHelpButtonOriginX,
525 adapterOffHelpButtonOriginY)]; 536 adapterOffHelpButtonOriginY)];
526 [adapterOffHelpButton_ setTarget:self]; 537 [adapterOffHelpButton_ setTarget:self];
527 [adapterOffHelpButton_ setAction:@selector(onAdapterOffHelp:)]; 538 [adapterOffHelpButton_ setAction:@selector(onAdapterOffHelp:)];
528 [adapterOffHelpButton_ setHidden:YES]; 539 [adapterOffHelpButton_ setHidden:YES];
529 [self addSubview:adapterOffHelpButton_]; 540 [self addSubview:adapterOffHelpButton_];
530 541
542 // Adapter turned off message.
543 CGFloat adapterOffMessageOriginX = adapterOffHelpButtonOriginX +
544 adapterOffHelpButtonWidth -
545 kHorizontalPadding / 2;
546 CGFloat adapterOffMessageOriginY = adapterOffHelpButtonOriginY;
547 [adapterOffMessage_ setFrameOrigin:NSMakePoint(adapterOffMessageOriginX,
548 adapterOffMessageOriginY)];
549 [adapterOffMessage_ setHidden:YES];
550 [self addSubview:adapterOffMessage_];
551
531 // ScollView and Spinner. Only one of them is shown. 552 // ScollView and Spinner. Only one of them is shown.
532 [scrollView_ setDocumentView:tableView_]; 553 [scrollView_ setDocumentView:tableView_];
533 [self addSubview:scrollView_]; 554 [self addSubview:scrollView_];
534 [spinner_ setHidden:YES]; 555 [spinner_ setHidden:YES];
535 [self addSubview:spinner_]; 556 [self addSubview:spinner_];
536 557
537 // Status text field and Re-scan button. At most one of them is shown. 558 // Status text field and Re-scan button. At most one of them is shown.
538 [self addSubview:status_]; 559 [self addSubview:status_];
539 [status_ setHidden:YES]; 560 [status_ setHidden:YES];
540 561
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after
591 buttonRowHeight = 612 buttonRowHeight =
592 std::max(rescanButtonHeight_, 613 std::max(rescanButtonHeight_,
593 std::max(connectButtonHeight_, cancelButtonHeight_)); 614 std::max(connectButtonHeight_, cancelButtonHeight_));
594 rescanButtonShown_ = {[self calculateScrollViewFrame:buttonRowHeight], 615 rescanButtonShown_ = {[self calculateScrollViewFrame:buttonRowHeight],
595 [self calculateConnectButtonOrigin:buttonRowHeight], 616 [self calculateConnectButtonOrigin:buttonRowHeight],
596 [self calculateCancelButtonOrigin:buttonRowHeight]}; 617 [self calculateCancelButtonOrigin:buttonRowHeight]};
597 rescanButtonOrigin_ = [self calculateRescanButtonOrigin:buttonRowHeight]; 618 rescanButtonOrigin_ = [self calculateRescanButtonOrigin:buttonRowHeight];
598 619
599 chooserContentViewController_.reset(new ChooserContentViewController( 620 chooserContentViewController_.reset(new ChooserContentViewController(
600 self, chooserController_.get(), adapterOffHelpButton_.get(), 621 self, chooserController_.get(), adapterOffHelpButton_.get(),
601 tableView_.get(), spinner_.get(), status_.get(), rescanButton_.get())); 622 adapterOffMessage_.get(), tableView_.get(), spinner_.get(),
623 status_.get(), rescanButton_.get()));
602 } 624 }
603 625
604 return self; 626 return self;
605 } 627 }
606 628
607 - (base::scoped_nsobject<NSTextField>)createChooserTitle:(NSString*)title { 629 - (base::scoped_nsobject<NSTextField>)createChooserTitle:(NSString*)title {
608 base::scoped_nsobject<NSTextField> titleView( 630 base::scoped_nsobject<NSTextField> titleView(
609 [[NSTextField alloc] initWithFrame:NSZeroRect]); 631 [[NSTextField alloc] initWithFrame:NSZeroRect]);
610 [titleView setDrawsBackground:NO]; 632 [titleView setDrawsBackground:NO];
611 [titleView setBezeled:NO]; 633 [titleView setBezeled:NO];
(...skipping 294 matching lines...) Expand 10 before | Expand all | Expand 10 after
906 return [tableRowView text]; 928 return [tableRowView text];
907 } 929 }
908 930
909 - (NSTextField*)tableRowViewPairedStatus:(NSInteger)row { 931 - (NSTextField*)tableRowViewPairedStatus:(NSInteger)row {
910 ChooserContentTableRowView* tableRowView = 932 ChooserContentTableRowView* tableRowView =
911 [tableView_ viewAtColumn:0 row:row makeIfNecessary:YES]; 933 [tableView_ viewAtColumn:0 row:row makeIfNecessary:YES];
912 return [tableRowView pairedStatus]; 934 return [tableRowView pairedStatus];
913 } 935 }
914 936
915 @end 937 @end
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698