Index: chrome/browser/ui/cocoa/validation_message_bubble_cocoa.mm |
diff --git a/chrome/browser/ui/cocoa/validation_message_bubble_cocoa.mm b/chrome/browser/ui/cocoa/validation_message_bubble_cocoa.mm |
index 15ff425fcefc84f1a04d6ec2dac34967592117a4..b176a26e6969ea82670fbf5da9e4b2896c86d0cb 100644 |
--- a/chrome/browser/ui/cocoa/validation_message_bubble_cocoa.mm |
+++ b/chrome/browser/ui/cocoa/validation_message_bubble_cocoa.mm |
@@ -2,6 +2,8 @@ |
// Use of this source code is governed by a BSD-style license that can be |
// found in the LICENSE file. |
+#include "chrome/browser/ui/cocoa/validation_message_bubble_cocoa.h" |
+ |
#include "base/mac/foundation_util.h" |
#include "base/memory/scoped_ptr.h" |
#include "base/strings/sys_string_conversions.h" |
@@ -9,8 +11,9 @@ |
#import "chrome/browser/ui/cocoa/info_bubble_window.h" |
#import "chrome/browser/ui/cocoa/validation_message_bubble_controller.h" |
#include "chrome/browser/ui/validation_message_bubble.h" |
-#include "content/public/browser/render_widget_host.h" |
+#include "content/public/browser/render_view_host.h" |
#include "content/public/browser/render_widget_host_view.h" |
+#include "content/public/browser/web_contents.h" |
#include "grit/theme_resources.h" |
#import "third_party/google_toolbox_for_mac/src/AppKit/GTMUILocalizerAndLayoutTweaker.h" |
#import "ui/base/cocoa/base_view.h" |
@@ -134,8 +137,6 @@ anchoredAt:(NSPoint)anchorPoint |
// ---------------------------------------------------------------- |
-namespace { |
- |
// Converts |anchor_in_root_view| in rwhv coordinates to cocoa screen |
// coordinates, and returns an NSPoint at the center of the bottom side of the |
// converted rectangle. |
@@ -149,45 +150,25 @@ NSPoint GetAnchorPoint(content::RenderWidgetHost* widget_host, |
return [[view window] convertBaseToScreen:point]; |
} |
-class ValidationMessageBubbleCocoa : public chrome::ValidationMessageBubble { |
- public: |
- ValidationMessageBubbleCocoa(content::RenderWidgetHost* widget_host, |
- const gfx::Rect& anchor_in_root_view, |
- const base::string16& main_text, |
- const base::string16& sub_text) { |
- controller_.reset([[[ValidationMessageBubbleController alloc] |
- init:[widget_host->GetView()->GetNativeView() window] |
- anchoredAt:GetAnchorPoint(widget_host, anchor_in_root_view) |
- mainText:main_text |
- subText:sub_text] retain]); |
- } |
- |
- ~ValidationMessageBubbleCocoa() override { [controller_.get() close]; } |
- |
- void SetPositionRelativeToAnchor( |
- content::RenderWidgetHost* widget_host, |
- const gfx::Rect& anchor_in_root_view) override { |
- [controller_.get() |
- setAnchorPoint:GetAnchorPoint(widget_host, anchor_in_root_view)]; |
- } |
- |
- private: |
- base::scoped_nsobject<ValidationMessageBubbleController> controller_; |
-}; |
- |
-} |
- |
-// ---------------------------------------------------------------- |
- |
-namespace chrome { |
- |
-scoped_ptr<ValidationMessageBubble> ValidationMessageBubble::CreateAndShow( |
- content::RenderWidgetHost* widget_host, |
+ValidationMessageBubbleCocoa::ValidationMessageBubbleCocoa( |
+ content::WebContents* web_contents, |
const gfx::Rect& anchor_in_root_view, |
const base::string16& main_text, |
const base::string16& sub_text) { |
- return scoped_ptr<ValidationMessageBubble>(new ValidationMessageBubbleCocoa( |
- widget_host, anchor_in_root_view, main_text, sub_text)).Pass(); |
+ content::RenderWidgetHost* widget_host = web_contents->GetRenderViewHost(); |
+ controller_.reset([[[ValidationMessageBubbleController alloc] |
+ init:[widget_host->GetView()->GetNativeView() window] |
+ anchoredAt:GetAnchorPoint(widget_host, anchor_in_root_view) |
+ mainText:main_text |
+ subText:sub_text] retain]); |
+} |
+ |
+ValidationMessageBubbleCocoa::~ValidationMessageBubbleCocoa() { |
+ [controller_ close]; |
} |
+void ValidationMessageBubbleCocoa::SetPositionRelativeToAnchor( |
+ content::RenderWidgetHost* widget_host, |
+ const gfx::Rect& anchor_in_root_view) { |
+ [controller_ setAnchorPoint:GetAnchorPoint(widget_host, anchor_in_root_view)]; |
} |