Index: views/widget/native_widget.h |
diff --git a/views/widget/native_widget.h b/views/widget/native_widget.h |
new file mode 100644 |
index 0000000000000000000000000000000000000000..9289fde20b7b0a396e7d919ada93728ae62fe114 |
--- /dev/null |
+++ b/views/widget/native_widget.h |
@@ -0,0 +1,38 @@ |
+// Copyright (c) 2011 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. |
+ |
+#ifndef VIEWS_WIDGET_NATIVE_WIDGET_H_ |
+#define VIEWS_WIDGET_NATIVE_WIDGET_H_ |
+#pragma once |
+ |
+#include "views/widget/widget.h" |
+ |
+namespace views { |
+namespace internal { |
+class NativeWidgetPrivate; |
+} |
+ |
+//////////////////////////////////////////////////////////////////////////////// |
+// NativeWidget interface |
+// |
+// An interface that serves as the public API base for the |
+// internal::NativeWidget interface that Widget uses to communicate with a |
+// backend-specific native widget implementation. This is the only component of |
+// this interface that is publicly visible, and exists solely for exposure via |
+// Widget's native_widget() accessor, which code occasionally static_casts to |
+// a known implementation in platform-specific code. |
+// |
+class VIEWS_EXPORT NativeWidget { |
+ public: |
+ virtual ~NativeWidget() {} |
+ |
+ private: |
+ friend class Widget; |
+ |
+ virtual internal::NativeWidgetPrivate* AsNativeWidgetPrivate() = 0; |
+}; |
+ |
+} // namespace views |
+ |
+#endif // VIEWS_WIDGET_NATIVE_WIDGET_H_ |