// 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_
