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

Unified Diff: chrome/browser/ui/cocoa/chooser_content_view_cocoa.mm

Issue 2354023003: Add help link when Bluetooth adapter is off for WebBluetooth chooser on Mac (Closed)
Patch Set: rebase Created 4 years, 3 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 side-by-side diff with in-line comments
Download patch
Index: chrome/browser/ui/cocoa/chooser_content_view_cocoa.mm
diff --git a/chrome/browser/ui/cocoa/chooser_content_view_cocoa.mm b/chrome/browser/ui/cocoa/chooser_content_view_cocoa.mm
index c0030750b591c449c97352ca402ac007382f6569..dcf94cb9a6a0592e9e5377fd76d9460f3f6f5f61 100644
--- a/chrome/browser/ui/cocoa/chooser_content_view_cocoa.mm
+++ b/chrome/browser/ui/cocoa/chooser_content_view_cocoa.mm
@@ -60,6 +60,9 @@ const CGFloat kSeparatorHeight = 1.0f;
const CGFloat kTableRowViewHorizontalPadding = 5.0f;
const CGFloat kTableRowViewVerticalPadding = 1.0f;
+// Distance between the adapter off help link and the scroll view boundaries.
+const CGFloat kAdapterOffHelpLinkPadding = 5.0f;
+
// The lookup table for signal strength level image.
const int kSignalStrengthLevelImageIds[5] = {IDR_SIGNAL_0_BAR, IDR_SIGNAL_1_BAR,
IDR_SIGNAL_2_BAR, IDR_SIGNAL_3_BAR,
@@ -233,6 +236,7 @@ class ChooserContentViewController : public ChooserController::View {
public:
ChooserContentViewController(ChooserContentViewCocoa* chooser_content_view,
ChooserController* chooser_controller,
+ NSButton* adapter_off_help_button,
NSTableView* table_view,
SpinnerView* spinner,
NSTextField* status,
@@ -252,6 +256,7 @@ class ChooserContentViewController : public ChooserController::View {
private:
ChooserContentViewCocoa* chooser_content_view_;
ChooserController* chooser_controller_;
+ NSButton* adapter_off_help_button_;
NSTableView* table_view_;
SpinnerView* spinner_;
NSTextField* status_;
@@ -263,17 +268,20 @@ class ChooserContentViewController : public ChooserController::View {
ChooserContentViewController::ChooserContentViewController(
ChooserContentViewCocoa* chooser_content_view,
ChooserController* chooser_controller,
+ NSButton* adapter_off_help_button,
NSTableView* table_view,
SpinnerView* spinner,
NSTextField* status,
NSButton* rescan_button)
: chooser_content_view_(chooser_content_view),
chooser_controller_(chooser_controller),
+ adapter_off_help_button_(adapter_off_help_button),
table_view_(table_view),
spinner_(spinner),
status_(status),
rescan_button_(rescan_button) {
DCHECK(chooser_controller_);
+ DCHECK(adapter_off_help_button_);
DCHECK(table_view_);
DCHECK(spinner_);
DCHECK(status_);
@@ -324,7 +332,8 @@ void ChooserContentViewController::OnAdapterEnabledChanged(bool enabled) {
// of a previously selected row.
[table_view_ deselectAll:nil];
UpdateTableView();
- [table_view_ setHidden:NO];
+ [table_view_ setHidden:enabled ? NO : YES];
+ [adapter_off_help_button_ setHidden:enabled ? YES : NO];
[spinner_ setHidden:YES];
@@ -409,6 +418,14 @@ void ChooserContentViewController::UpdateTableView() {
titleView_ = [self createChooserTitle:chooserTitle];
titleHeight_ = NSHeight([titleView_ frame]);
+ // Adapter turned off help button.
+ adapterOffHelpButton_ =
+ [self createHyperlinkButtonWithText:
+ l10n_util::GetNSString(
+ IDS_BLUETOOTH_DEVICE_CHOOSER_TURN_ADAPTER_OFF)];
+ CGFloat adapterOffHelpButtonHeight =
+ NSHeight([adapterOffHelpButton_ frame]);
+
// Status.
status_ = CreateLabel(
l10n_util::GetNSString(IDS_BLUETOOTH_DEVICE_CHOOSER_SCANNING));
@@ -460,6 +477,7 @@ void ChooserContentViewController::UpdateTableView() {
[scrollView_ setHasVerticalScroller:YES];
[scrollView_ setHasHorizontalScroller:YES];
[scrollView_ setAutohidesScrollers:YES];
+ [scrollView_ setDrawsBackground:NO];
// TableView.
tableView_.reset([[NSTableView alloc] initWithFrame:NSZeroRect]);
@@ -497,6 +515,19 @@ void ChooserContentViewController::UpdateTableView() {
[titleView_ setFrameOrigin:NSMakePoint(titleOriginX, titleOriginY)];
[self addSubview:titleView_];
+ // Adapter turned off help button.
+ CGFloat adapterOffHelpButtonOriginX = kMarginX + kAdapterOffHelpLinkPadding;
+ CGFloat adapterOffHelpButtonOriginY = titleOriginY - kVerticalPadding -
+ adapterOffHelpButtonHeight -
+ kAdapterOffHelpLinkPadding;
+ [adapterOffHelpButton_
+ setFrameOrigin:NSMakePoint(adapterOffHelpButtonOriginX,
+ adapterOffHelpButtonOriginY)];
+ [adapterOffHelpButton_ setTarget:self];
+ [adapterOffHelpButton_ setAction:@selector(onAdapterOffHelp:)];
+ [adapterOffHelpButton_ setHidden:YES];
+ [self addSubview:adapterOffHelpButton_];
+
// ScollView and Spinner. Only one of them is shown.
[scrollView_ setDocumentView:tableView_];
[self addSubview:scrollView_];
@@ -566,8 +597,8 @@ void ChooserContentViewController::UpdateTableView() {
rescanButtonOrigin_ = [self calculateRescanButtonOrigin:buttonRowHeight];
chooserContentViewController_.reset(new ChooserContentViewController(
- self, chooserController_.get(), tableView_.get(), spinner_.get(),
- status_.get(), rescanButton_.get()));
+ self, chooserController_.get(), adapterOffHelpButton_.get(),
+ tableView_.get(), spinner_.get(), status_.get(), rescanButton_.get()));
}
return self;
@@ -735,6 +766,10 @@ void ChooserContentViewController::UpdateTableView() {
[cancelButton_ setFrameOrigin:frameAndOrigin.cancel_button_origin];
}
+- (NSButton*)adapterOffHelpButton {
+ return adapterOffHelpButton_.get();
+}
+
- (NSTableView*)tableView {
return tableView_.get();
}
@@ -803,6 +838,10 @@ void ChooserContentViewController::UpdateTableView() {
chooserController_->Close();
}
+- (void)onAdapterOffHelp:(id)sender {
+ chooserController_->OpenAdapterOffHelpUrl();
+}
+
- (void)onRescan:(id)sender {
chooserController_->RefreshOptions();
}

Powered by Google App Engine
This is Rietveld 408576698