// 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 NativeWidget { public: virtual ~NativeWidget() {} private: friend class Widget; virtual internal::NativeWidgetPrivate* AsNativeWidgetPrivate() = 0; }; } // namespace views #endif // VIEWS_WIDGET_NATIVE_WIDGET_H_