diff --git a/rdf/content/src/nsIXULContent.h b/content/xul/content/public/nsIXULContent.h similarity index 100% rename from rdf/content/src/nsIXULContent.h rename to content/xul/content/public/nsIXULContent.h diff --git a/rdf/content/public/MANIFEST b/rdf/content/public/MANIFEST index a5b10c0892e5..094c96e6fdc3 100644 --- a/rdf/content/public/MANIFEST +++ b/rdf/content/public/MANIFEST @@ -11,3 +11,4 @@ nsIXULKeyListener.h nsIXULPopupListener.h nsIXULPrototypeCache.h nsIXULPrototypeDocument.h +nsIXULContent.h diff --git a/rdf/content/public/Makefile.in b/rdf/content/public/Makefile.in index 6ff20795c952..7d4733d9b648 100644 --- a/rdf/content/public/Makefile.in +++ b/rdf/content/public/Makefile.in @@ -42,6 +42,7 @@ EXPORTS = \ nsIXULPopupListener.h \ nsIXULPrototypeCache.h \ nsIXULPrototypeDocument.h \ + nsIXULContent.h \ $(NULL) EXPORTS := $(addprefix $(srcdir)/, $(EXPORTS)) diff --git a/rdf/content/public/makefile.win b/rdf/content/public/makefile.win index 2f42ca016f31..587131a8e135 100644 --- a/rdf/content/public/makefile.win +++ b/rdf/content/public/makefile.win @@ -38,6 +38,7 @@ EXPORTS = \ nsIXULDocument.h \ nsIXULPrototypeCache.h \ nsIXULPrototypeDocument.h \ + nsIXULContent.h \ $(NULL) include <$(DEPTH)/config/rules.mak> diff --git a/rdf/content/public/nsIXULContent.h b/rdf/content/public/nsIXULContent.h new file mode 100644 index 000000000000..3c54e6f8ccb3 --- /dev/null +++ b/rdf/content/public/nsIXULContent.h @@ -0,0 +1,116 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- + * + * The contents of this file are subject to the Netscape Public + * License Version 1.1 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.mozilla.org/NPL/ + * + * Software distributed under the License is distributed on an "AS + * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + * implied. See the License for the specific language governing + * rights and limitations under the License. + * + * The Original Code is Mozilla Communicator client code. + * + * The Initial Developer of the Original Code is Netscape Communications + * Corporation. Portions created by Netscape are + * Copyright (C) 1998 Netscape Communications Corporation. All + * Rights Reserved. + * + * Contributor(s): + */ + +/* + + Private interface to XUL content. + +*/ + +#ifndef nsIXULContent_h__ +#define nsIXULContent_h__ + +#include "nsISupports.h" +class nsIAtom; +class nsString; + +// {39C5ECC0-5C47-11d3-BE36-00104BDE6048} +#define NS_IXULCONTENT_IID \ +{ 0x39c5ecc0, 0x5c47, 0x11d3, { 0xbe, 0x36, 0x0, 0x10, 0x4b, 0xde, 0x60, 0x48 } } + + +class nsIXULContent : public nsISupports +{ +public: + static const nsIID& GetIID() { static nsIID iid = NS_IXULCONTENT_IID; return iid; } + + /** + * Peek at a XUL element's child count without forcing children to be + * instantiated. + */ + NS_IMETHOD PeekChildCount(PRInt32& aCount) const = 0; + + /** + * These flags are used to maintain bookkeeping information for partially- + * constructed content. + * + * eChildrenMustBeRebuilt + * The element's children are invalid or unconstructed, and should + * be reconstructed. + * + * eTemplateContentsBuilt + * Child content that is built from a XUL template has been + * constructed. + * + * eContainerContentsBuilt + * Child content that is built by following the ``containment'' + * property in a XUL template has been built. + */ + enum { + eChildrenMustBeRebuilt = 0x1, + eTemplateContentsBuilt = 0x2, + eContainerContentsBuilt = 0x4 + }; + + /** + * Get the element's anonymous state + */ + NS_IMETHOD GetAnonymousState(PRBool& aState) = 0; + + /** + * Mark an element as being anonymous or not. + */ + NS_IMETHOD SetAnonymousState(PRBool aState) = 0; + + /** + * Set one or more ``lazy state'' flags. + * @aFlags a mask of flags to set + */ + NS_IMETHOD SetLazyState(PRInt32 aFlags) = 0; + + /** + * Clear one or more ``lazy state'' flags. + * @aFlags a mask of flags to clear + */ + NS_IMETHOD ClearLazyState(PRInt32 aFlags) = 0; + + /** + * Get the value of a single ``lazy state'' flag. + * @aFlag a flag to test + * @aResult the result + */ + NS_IMETHOD GetLazyState(PRInt32 aFlag, PRBool& aResult) = 0; + + /** + * Add a script event listener to the element. + */ + NS_IMETHOD AddScriptEventListener(nsIAtom* aName, const nsString& aValue, REFNSIID aIID) = 0; + + /** + * Evil rotten hack to make mailnews work. They assume that we + * keep a reference to their resource objects. If you think you + * should call this method, think again. You shouldn't. + */ + NS_IMETHOD ForceElementToOwnResource(PRBool aForce) = 0; +}; + +#endif // nsIXULContent_h__