mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-12 04:45:45 +00:00
New file, not part of the build.
This commit is contained in:
parent
efd308526b
commit
717b547dfd
178
dom/public/nsIDOMClassInfo.h
Normal file
178
dom/public/nsIDOMClassInfo.h
Normal file
@ -0,0 +1,178 @@
|
||||
/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*-
|
||||
*
|
||||
* 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) 2001 Netscape Communications Corporation. All
|
||||
* Rights Reserved.
|
||||
*
|
||||
* Contributor(s):
|
||||
* Johnny Stenback <jst@netscape.com> (original author)
|
||||
*/
|
||||
#ifndef nsIDOMClassInfo_h___
|
||||
#define nsIDOMClassInfo_h___
|
||||
|
||||
#include "nsIClassInfo.h"
|
||||
#include "nsVoidArray.h"
|
||||
|
||||
typedef void (*GetDOMClassIIDsFnc)(nsVoidArray& aArray);
|
||||
|
||||
class nsIDOMClassInfo : public nsIClassInfo
|
||||
{
|
||||
public:
|
||||
enum nsDOMClassInfoID {
|
||||
|
||||
// Core classes
|
||||
eDocument_id,
|
||||
eDocumentType_id,
|
||||
eDOMImplementation_id,
|
||||
eDocumentFragment_id,
|
||||
eElement_id,
|
||||
eAttr_id,
|
||||
eText_id,
|
||||
eComment_id,
|
||||
eCDATASection_id,
|
||||
eProcessingInstruction_id,
|
||||
eEntity_id,
|
||||
eEntityReference_id,
|
||||
eNotation_id,
|
||||
eNodeList_id,
|
||||
eNamedNodeMap_id,
|
||||
|
||||
// Event classes
|
||||
eEvent_id,
|
||||
|
||||
// HTML classes
|
||||
eHTMLDocument_id,
|
||||
eHTMLCollection_id,
|
||||
eHTMLOptionCollection_id,
|
||||
eHTMLFormControlCollection_id,
|
||||
|
||||
// HTML element classes
|
||||
eHTMLAnchorElement_id,
|
||||
eHTMLAppletElement_id,
|
||||
eHTMLAreaElement_id,
|
||||
eHTMLBRElement_id,
|
||||
eHTMLBaseElement_id,
|
||||
eHTMLBaseFontElement_id,
|
||||
eHTMLBodyElement_id,
|
||||
eHTMLButtonElement_id,
|
||||
eHTMLDListElement_id,
|
||||
eHTMLDelElement_id,
|
||||
eHTMLDirectoryElement_id,
|
||||
eHTMLDivElement_id,
|
||||
eHTMLEmbedElement_id,
|
||||
eHTMLFieldSetElement_id,
|
||||
eHTMLFontElement_id,
|
||||
eHTMLFormElement_id,
|
||||
eHTMLFrameElement_id,
|
||||
eHTMLFrameSetElement_id,
|
||||
eHTMLHRElement_id,
|
||||
eHTMLHeadElement_id,
|
||||
eHTMLHeadingElement_id,
|
||||
eHTMLHtmlElement_id,
|
||||
eHTMLIFrameElement_id,
|
||||
eHTMLImageElement_id,
|
||||
eHTMLInputElement_id,
|
||||
eHTMLInsElement_id,
|
||||
eHTMLIsIndexElement_id,
|
||||
eHTMLLIElement_id,
|
||||
eHTMLLabelElement_id,
|
||||
eHTMLLegendElement_id,
|
||||
eHTMLLinkElement_id,
|
||||
eHTMLMapElement_id,
|
||||
eHTMLMenuElement_id,
|
||||
eHTMLMetaElement_id,
|
||||
eHTMLModElement_id,
|
||||
eHTMLOListElement_id,
|
||||
eHTMLObjectElement_id,
|
||||
eHTMLOptGroupElement_id,
|
||||
eHTMLOptionElement_id,
|
||||
eHTMLParagraphElement_id,
|
||||
eHTMLParamElement_id,
|
||||
eHTMLPreElement_id,
|
||||
eHTMLQuoteElement_id,
|
||||
eHTMLScriptElement_id,
|
||||
eHTMLSelectElement_id,
|
||||
eHTMLSpacerElement_id,
|
||||
eHTMLSpanElement_id,
|
||||
eHTMLStyleElement_id,
|
||||
eHTMLTableCaptionElement_id,
|
||||
eHTMLTableCellElement_id,
|
||||
eHTMLTableColElement_id,
|
||||
eHTMLTableColGroupElement_id,
|
||||
eHTMLTableElement_id,
|
||||
eHTMLTableRowElement_id,
|
||||
eHTMLTableSectionElement_id,
|
||||
eHTMLTextAreaElement_id,
|
||||
eHTMLTitleElement_id,
|
||||
eHTMLUListElement_id,
|
||||
eHTMLUnknownElement_id,
|
||||
eHTMLWBRElement_id,
|
||||
|
||||
// CSS classes
|
||||
eCSSStyleRule_id,
|
||||
eCSSRuleList_id,
|
||||
eMediaList_id,
|
||||
eStyleSheetList_id,
|
||||
eCSSStyleSheet_id,
|
||||
eCSSStyleDeclaration_id,
|
||||
eComputedCSSStyleDeclaration_id,
|
||||
eROCSSPrimitiveValue_id,
|
||||
|
||||
// Range classes
|
||||
eRange_id,
|
||||
eSelection_id,
|
||||
|
||||
// XUL classes
|
||||
eXULDocument_id,
|
||||
eXULElement_id,
|
||||
eXULTreeElement_id,
|
||||
eXULCommandDispatcher_id,
|
||||
eXULNodeList_id,
|
||||
eXULNamedNodeMap_id,
|
||||
eXULAttr_id,
|
||||
eXULPDGlobalObject_id,
|
||||
|
||||
eDOMClassInfoIDCount // This one better be the last one in this list
|
||||
};
|
||||
|
||||
nsISupports* GetClassInfoInstance(nsDOMClassInfoID aID,
|
||||
GetDOMClassIIDsFnc aGetIIDsFptr,
|
||||
const char *aName);
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* nsIClassInfo helper macros
|
||||
*/
|
||||
|
||||
#define NS_CLASSINFO_MAP_BEGIN(_class) \
|
||||
static void Get##_class##IIDs(nsVoidArray& aArray) \
|
||||
{
|
||||
|
||||
#define NS_CLASSINFO_MAP_BEGIN_EXPORTED(_class) \
|
||||
void Get##_class##IIDs(nsVoidArray& aArray) \
|
||||
{
|
||||
|
||||
#define NS_CLASSINFO_MAP_ENTRY(_interface) \
|
||||
aArray.AppendElement((void *)&NS_GET_IID(_interface));
|
||||
|
||||
#define NS_CLASSINFO_MAP_ENTRY_FUNCTION(_function) \
|
||||
_function(aArray);
|
||||
|
||||
#define NS_CLASSINFO_MAP_END \
|
||||
}
|
||||
|
||||
#endif /* nsIDOMClassInfo_h___ */
|
Loading…
Reference in New Issue
Block a user