Index: ui/views_core/bridged_view_mac.mm |
diff --git a/ui/views_core/bridged_view_mac.mm b/ui/views_core/bridged_view_mac.mm |
new file mode 100644 |
index 0000000000000000000000000000000000000000..aac95930faffd8d57ad2254804b3ac1832d0e16a |
--- /dev/null |
+++ b/ui/views_core/bridged_view_mac.mm |
@@ -0,0 +1,43 @@ |
+// Copyright 2013 The Chromium Authors. All rights reserved. |
+// Use of this source code is governed by a BSD-style license that can be |
+// found in the LICENSE file. |
+ |
+#import "ui/views_core/bridged_view_mac.h" |
+ |
+#import <Cocoa/Cocoa.h> |
+ |
+#include "base/memory/scoped_ptr.h" |
+#include "ui/views/view.h" |
+#include "ui/views_core/bridged_view_impl_mac.h" |
+ |
+namespace views { |
+ |
+BridgedViewBase::BridgedViewBase() {} |
+ |
+BridgedViewBase::BridgedViewBase(views::View* view) { |
+ ResetView(view); |
+} |
+ |
+void BridgedViewBase::ResetView(views::View* view) { |
+ [bridged_view_ clearView]; |
+ bridged_view_.reset(); |
+ if (!view) |
+ return; |
+ |
+ scoped_ptr<View> viewToHost(view); |
+ bridged_view_.reset([[BridgedViewImpl alloc] initWithView:viewToHost.Pass()]); |
+} |
+ |
+BridgedViewBase::~BridgedViewBase() { |
+ ResetView(NULL); |
+} |
+ |
+NSView* BridgedViewBase::GetNSView() { |
+ return bridged_view_; |
+} |
+ |
+View* BridgedViewBase::GetView() { |
+ return [bridged_view_ view]; |
+} |
+ |
+} // namespace views |