Home | History | Annotate | Download | only in widget
      1 // Copyright (c) 2011 The Chromium Authors. All rights reserved.
      2 // Use of this source code is governed by a BSD-style license that can be
      3 // found in the LICENSE file.
      4 
      5 #ifndef UI_VIEWS_WIDGET_NATIVE_WIDGET_H_
      6 #define UI_VIEWS_WIDGET_NATIVE_WIDGET_H_
      7 
      8 #include "ui/views/widget/widget.h"
      9 
     10 namespace views {
     11 namespace internal {
     12 class NativeWidgetPrivate;
     13 }
     14 
     15 ////////////////////////////////////////////////////////////////////////////////
     16 // NativeWidget interface
     17 //
     18 //  An interface that serves as the public API base for the
     19 //  internal::NativeWidget interface that Widget uses to communicate with a
     20 //  backend-specific native widget implementation. This is the only component of
     21 //  this interface that is publicly visible, and exists solely for exposure via
     22 //  Widget's native_widget() accessor, which code occasionally static_casts to
     23 //  a known implementation in platform-specific code.
     24 //
     25 class VIEWS_EXPORT NativeWidget {
     26  public:
     27   virtual ~NativeWidget() {}
     28 
     29  private:
     30   friend class Widget;
     31 
     32   virtual internal::NativeWidgetPrivate* AsNativeWidgetPrivate() = 0;
     33 };
     34 
     35 }  // namespace views
     36 
     37 #endif  // UI_VIEWS_WIDGET_NATIVE_WIDGET_H_
     38