Index: chrome/browser/ui/cocoa/autofill/autofill_notification_controller.mm |
diff --git a/chrome/browser/ui/cocoa/autofill/autofill_notification_controller.mm b/chrome/browser/ui/cocoa/autofill/autofill_notification_controller.mm |
index 4c1529896677f06190b5bcf84c08fd2057d54dbc..e78b94f6a9bb4d428334fe14a6eeb1f37342021c 100644 |
--- a/chrome/browser/ui/cocoa/autofill/autofill_notification_controller.mm |
+++ b/chrome/browser/ui/cocoa/autofill/autofill_notification_controller.mm |
@@ -14,6 +14,7 @@ |
#include "chrome/browser/ui/autofill/autofill_dialog_view_delegate.h" |
#include "chrome/browser/ui/chrome_style.h" |
#include "chrome/browser/ui/cocoa/autofill/autofill_dialog_constants.h" |
+#import "chrome/browser/ui/cocoa/autofill/autofill_tooltip_controller.h" |
#import "chrome/browser/ui/cocoa/hyperlink_text_view.h" |
#include "grit/theme_resources.h" |
#include "skia/ext/skia_utils_mac.h" |
@@ -141,16 +142,16 @@ |
// (2) this way, the sizing computation can be cached. |
[checkbox_ sizeToFit]; |
- tooltipIcon_.reset([[NSImageView alloc] initWithFrame:NSZeroRect]); |
- [tooltipIcon_ setImage: |
+ tooltipController_.reset([[AutofillTooltipController alloc] init]); |
+ [tooltipController_ setImage: |
ui::ResourceBundle::GetSharedInstance().GetNativeImageNamed( |
IDR_AUTOFILL_TOOLTIP_ICON).ToNSImage()]; |
- [tooltipIcon_ setFrameSize:[[tooltipIcon_ image] size]]; |
- [tooltipIcon_ setToolTip: |
+ [tooltipController_ setMessage: |
base::SysUTF16ToNSString(notification->tooltip_text())]; |
- [tooltipIcon_ setHidden:[[tooltipIcon_ toolTip] length] == 0]; |
+ [[tooltipController_ view] setHidden: |
+ [[tooltipController_ message] length] == 0]; |
- [view setSubviews:@[textview_, checkbox_, tooltipIcon_]]; |
+ [view setSubviews:@[ textview_, checkbox_, [tooltipController_ view] ]]; |
} |
return self; |
} |
@@ -176,14 +177,16 @@ |
return checkbox_; |
} |
-- (NSImageView*)tooltipIcon { |
- return tooltipIcon_; |
+- (NSView*)tooltipView { |
+ return [tooltipController_ view]; |
} |
- (NSSize)preferredSizeForWidth:(CGFloat)width { |
width -= 2 * chrome_style::kHorizontalPadding; |
- if (![tooltipIcon_ isHidden]) |
- width -= [tooltipIcon_ frame].size.width + chrome_style::kHorizontalPadding; |
+ if (![[tooltipController_ view] isHidden]) { |
+ width -= NSWidth([[tooltipController_ view] frame]) + |
+ chrome_style::kHorizontalPadding; |
+ } |
// TODO(isherman): Restore the DCHECK below once I figure out why it causes |
// unit tests to fail. |
//DCHECK_GT(width, 0); |
@@ -235,20 +238,21 @@ |
NSRect labelFrame = NSInsetRect(bounds, |
chrome_style::kHorizontalPadding, |
autofill::kNotificationPadding); |
- if (![tooltipIcon_ isHidden]) { |
+ NSView* tooltipView = [tooltipController_ view]; |
+ if (![tooltipView isHidden]) { |
labelFrame.size.width -= |
- [tooltipIcon_ frame].size.width + chrome_style::kHorizontalPadding; |
+ NSWidth([tooltipView frame]) + chrome_style::kHorizontalPadding; |
} |
NSView* label = [checkbox_ isHidden] ? textview_.get() : checkbox_.get(); |
[label setFrame:labelFrame]; |
- if (![tooltipIcon_ isHidden]) { |
+ if (![tooltipView isHidden]) { |
NSPoint tooltipOrigin = |
NSMakePoint( |
NSMaxX(labelFrame) + chrome_style::kHorizontalPadding, |
- NSMidY(labelFrame) - (NSHeight([tooltipIcon_ frame]) / 2.0)); |
- [tooltipIcon_ setFrameOrigin:tooltipOrigin]; |
+ NSMidY(labelFrame) - (NSHeight([tooltipView frame]) / 2.0)); |
+ [tooltipView setFrameOrigin:tooltipOrigin]; |
} |
} |