/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
/* This Source Code Form is subject to the terms of the Mozilla Public
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */

#include "nsISupports.idl"

interface nsIWidget;

[ptr] native NSWindowPtr(NSWindow);

//
// nsPIWidgetCocoa
//
// A private interface (unfrozen, private to the widget implementation) that
// gives us access to some extra features on a widget/window.
//
[uuid(f75ff69e-3a51-419e-bd29-042f804bc2ed)]
interface nsPIWidgetCocoa : nsISupports
{
  void SendSetZLevelEvent();

  // Find the displayed child sheet (if aShown) or a child sheet that
  // wants to be displayed (if !aShown)
  nsIWidget GetChildSheet(in boolean aShown);
  
  // Get the parent widget (if any) StandardCreate() was called with.
  nsIWidget GetRealParent();
  
  // If the object implementing this interface is a sheet, this will return the
  // native NSWindow it is attached to
  readonly attribute NSWindowPtr sheetWindowParent;

  // True if window is a sheet
  readonly attribute boolean isSheet;
  
}; // nsPIWidgetCocoa