michael@0: /* -*- Mode: C++; tab-width: 3; indent-tabs-mode: nil; c-basic-offset: 2 -*- michael@0: * michael@0: * This Source Code Form is subject to the terms of the Mozilla Public michael@0: * License, v. 2.0. If a copy of the MPL was not distributed with this michael@0: * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ michael@0: michael@0: #ifndef nsPIWindowRoot_h__ michael@0: #define nsPIWindowRoot_h__ michael@0: michael@0: #include "nsISupports.h" michael@0: #include "mozilla/dom/EventTarget.h" michael@0: michael@0: class nsPIDOMWindow; michael@0: class nsIControllers; michael@0: class nsIController; michael@0: michael@0: #define NS_IWINDOWROOT_IID \ michael@0: { 0x3f71f50c, 0xa7e0, 0x43bc, \ michael@0: { 0xac, 0x25, 0x4d, 0xbb, 0x88, 0x7b, 0x21, 0x09 } } michael@0: michael@0: class nsPIWindowRoot : public mozilla::dom::EventTarget michael@0: { michael@0: public: michael@0: NS_DECLARE_STATIC_IID_ACCESSOR(NS_IWINDOWROOT_IID) michael@0: michael@0: virtual nsPIDOMWindow* GetWindow()=0; michael@0: michael@0: // get and set the node that is the context of a popup menu michael@0: virtual nsIDOMNode* GetPopupNode() = 0; michael@0: virtual void SetPopupNode(nsIDOMNode* aNode) = 0; michael@0: michael@0: virtual nsresult GetControllerForCommand(const char *aCommand, michael@0: nsIController** aResult) = 0; michael@0: virtual nsresult GetControllers(nsIControllers** aResult) = 0; michael@0: michael@0: virtual void SetParentTarget(mozilla::dom::EventTarget* aTarget) = 0; michael@0: virtual mozilla::dom::EventTarget* GetParentTarget() = 0; michael@0: virtual nsIDOMWindow* GetOwnerGlobal() MOZ_OVERRIDE = 0; michael@0: }; michael@0: michael@0: NS_DEFINE_STATIC_IID_ACCESSOR(nsPIWindowRoot, NS_IWINDOWROOT_IID) michael@0: michael@0: #endif // nsPIWindowRoot_h__