/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
/* vim: set ts=8 sts=2 et sw=2 tw=80: */
/* 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/. */

FRAME_ID(BRFrame, Br, Leaf)
FRAME_ID(DetailsFrame, Details, NotLeaf)
FRAME_ID(nsAutoRepeatBoxFrame, Box, NotLeaf)
FRAME_ID(nsBCTableCellFrame, BCTableCell, NotLeaf)
FRAME_ID(nsBackdropFrame, Backdrop, Leaf)
FRAME_ID(nsBlockFrame, Block, NotLeaf)
FRAME_ID(nsBox, None, NotLeaf)
FRAME_ID(nsBoxFrame, Box, NotLeaf)
FRAME_ID(nsBulletFrame, Bullet, Leaf)
FRAME_ID(nsButtonBoxFrame, Box, NotLeaf)
FRAME_ID(nsCanvasFrame, Canvas, NotLeaf)
FRAME_ID(nsCheckboxRadioFrame, CheckboxRadio, Leaf)
FRAME_ID(nsColorControlFrame, ColorControl, Leaf)
FRAME_ID(nsColumnSetFrame, ColumnSet, NotLeaf)
FRAME_ID(nsComboboxControlFrame, ComboboxControl, NotLeaf)
FRAME_ID(nsComboboxDisplayFrame, ComboboxDisplay, NotLeaf)
FRAME_ID(nsContinuingTextFrame, Text, Leaf)
FRAME_ID(nsDateTimeControlFrame, DateTimeControl, NotLeaf)
FRAME_ID(nsDeckFrame, Deck, NotLeaf)
FRAME_ID(nsDocElementBoxFrame, Box, NotLeaf)
FRAME_ID(nsFieldSetFrame, FieldSet, NotLeaf)
FRAME_ID(nsFileControlFrame, Block, Leaf)
FRAME_ID(nsFirstLetterFrame, Letter, NotLeaf)
FRAME_ID(nsFirstLineFrame, Line, NotLeaf)
FRAME_ID(nsFlexContainerFrame, FlexContainer, NotLeaf)
FRAME_ID(nsFrame, None, NotLeaf)
FRAME_ID(nsGfxButtonControlFrame, GfxButtonControl, Leaf)
FRAME_ID(nsGridContainerFrame, GridContainer, NotLeaf)
FRAME_ID(nsGridRowGroupFrame, Box, NotLeaf)
FRAME_ID(nsGridRowLeafFrame, Box, NotLeaf)
FRAME_ID(nsGroupBoxFrame, Box, NotLeaf)
FRAME_ID(nsHTMLButtonControlFrame, HTMLButtonControl, NotLeaf)
FRAME_ID(nsHTMLCanvasFrame, HTMLCanvas, NotLeaf)
FRAME_ID(nsHTMLFramesetBlankFrame, None, Leaf)
FRAME_ID(nsHTMLFramesetBorderFrame, None, Leaf)
FRAME_ID(nsHTMLFramesetFrame, FrameSet, Leaf)
FRAME_ID(nsHTMLScrollFrame, Scroll, NotLeaf)
FRAME_ID(nsImageBoxFrame, ImageBox, Leaf)
FRAME_ID(nsImageControlFrame, ImageControl, Leaf)
FRAME_ID(nsImageFrame, Image, Leaf)
FRAME_ID(nsInlineFrame, Inline, NotLeaf)
FRAME_ID(nsLeafBoxFrame, LeafBox, Leaf)
FRAME_ID(nsLegendFrame, Legend, NotLeaf)
FRAME_ID(nsListBoxBodyFrame, Box, NotLeaf)
FRAME_ID(nsListControlFrame, ListControl, NotLeaf)
FRAME_ID(nsListItemFrame, Box, NotLeaf)
FRAME_ID(nsMathMLFrame, None, NotLeaf)
FRAME_ID(nsMathMLmactionFrame, None, NotLeaf)
FRAME_ID(nsMathMLmathBlockFrame, Block, NotLeaf)
FRAME_ID(nsMathMLmathInlineFrame, Inline, NotLeaf)
FRAME_ID(nsMathMLmencloseFrame, None, NotLeaf)
FRAME_ID(nsMathMLmfencedFrame, None, NotLeaf)
FRAME_ID(nsMathMLmfracFrame, None, NotLeaf)
FRAME_ID(nsMathMLmmultiscriptsFrame, None, NotLeaf)
FRAME_ID(nsMathMLmoFrame, None, NotLeaf)
FRAME_ID(nsMathMLmpaddedFrame, None, NotLeaf)
FRAME_ID(nsMathMLmrootFrame, None, NotLeaf)
FRAME_ID(nsMathMLmrowFrame, None, NotLeaf)
FRAME_ID(nsMathMLmspaceFrame, None, Leaf)
FRAME_ID(nsMathMLmsqrtFrame, None, NotLeaf)
FRAME_ID(nsMathMLmtableFrame, Table, NotLeaf)
FRAME_ID(nsMathMLmtableWrapperFrame, TableWrapper, NotLeaf)
FRAME_ID(nsMathMLmtdFrame, TableCell, NotLeaf)
FRAME_ID(nsMathMLmtdInnerFrame, Block, NotLeaf)
FRAME_ID(nsMathMLmtrFrame, TableRow, NotLeaf)
FRAME_ID(nsMathMLmunderoverFrame, None, NotLeaf)
FRAME_ID(nsMathMLsemanticsFrame, None, NotLeaf)
FRAME_ID(nsMathMLTokenFrame, None, NotLeaf)
FRAME_ID(nsMenuBarFrame, Box, NotLeaf)
FRAME_ID(nsMenuFrame, Menu, NotLeaf)
FRAME_ID(nsMenuPopupFrame, MenuPopup, DynamicLeaf)
FRAME_ID(nsMeterFrame, Meter, Leaf)
FRAME_ID(nsNumberControlFrame, NumberControl, Leaf)
FRAME_ID(nsPluginFrame, Object, Leaf)
FRAME_ID(nsPageBreakFrame, PageBreak, Leaf)
FRAME_ID(nsPageContentFrame, PageContent, NotLeaf)
FRAME_ID(nsPageFrame, Page, NotLeaf)
FRAME_ID(nsPlaceholderFrame, Placeholder, Leaf)
FRAME_ID(nsPopupSetFrame, PopupSet, NotLeaf)
FRAME_ID(nsProgressFrame, Progress, Leaf)
FRAME_ID(nsProgressMeterFrame, Box, NotLeaf)
FRAME_ID(nsRangeFrame, Range, Leaf)
FRAME_ID(nsResizerFrame, Box, NotLeaf)
FRAME_ID(nsRootBoxFrame, Root, NotLeaf)
FRAME_ID(nsRubyBaseContainerFrame, RubyBaseContainer, NotLeaf)
FRAME_ID(nsRubyBaseFrame, RubyBase, NotLeaf)
FRAME_ID(nsRubyFrame, Ruby, NotLeaf)
FRAME_ID(nsRubyTextContainerFrame, RubyTextContainer, NotLeaf)
FRAME_ID(nsRubyTextFrame, RubyText, NotLeaf)
FRAME_ID(nsScrollbarButtonFrame, Box, NotLeaf)
FRAME_ID(nsScrollbarFrame, Scrollbar, NotLeaf)
FRAME_ID(nsSelectsAreaFrame, Block, NotLeaf)
FRAME_ID(nsSimplePageSequenceFrame, Sequence, NotLeaf)
FRAME_ID(nsSliderFrame, Slider, NotLeaf)
FRAME_ID(nsSplitterFrame, Box, NotLeaf)
FRAME_ID(nsStackFrame, Box, NotLeaf)
FRAME_ID(nsSubDocumentFrame, SubDocument, Leaf)
FRAME_ID(nsSVGAFrame, SVGA, NotLeaf)
FRAME_ID(nsSVGClipPathFrame, SVGClipPath, NotLeaf)
FRAME_ID(nsSVGContainerFrame, None, NotLeaf)
FRAME_ID(SVGFEContainerFrame, SVGFEContainer, NotLeaf)
FRAME_ID(SVGFEImageFrame, SVGFEImage, Leaf)
FRAME_ID(SVGFELeafFrame, SVGFELeaf, Leaf)
FRAME_ID(SVGFEUnstyledLeafFrame, SVGFEUnstyledLeaf, Leaf)
FRAME_ID(nsSVGFilterFrame, SVGFilter, NotLeaf)
FRAME_ID(nsSVGForeignObjectFrame, SVGForeignObject, NotLeaf)
FRAME_ID(nsSVGGenericContainerFrame, SVGGenericContainer, NotLeaf)
FRAME_ID(nsSVGGFrame, SVGG, NotLeaf)
FRAME_ID(nsSVGImageFrame, SVGImage, Leaf)
FRAME_ID(nsSVGInnerSVGFrame, SVGInnerSVG, NotLeaf)
FRAME_ID(nsSVGLinearGradientFrame, SVGLinearGradient, NotLeaf)
FRAME_ID(nsSVGMarkerFrame, SVGMarker, NotLeaf)
FRAME_ID(nsSVGMarkerAnonChildFrame, SVGMarkerAnonChild, NotLeaf)
FRAME_ID(nsSVGMaskFrame, SVGMask, NotLeaf)
FRAME_ID(nsSVGOuterSVGFrame, SVGOuterSVG, NotLeaf)
FRAME_ID(nsSVGOuterSVGAnonChildFrame, SVGOuterSVGAnonChild, NotLeaf)
FRAME_ID(SVGGeometryFrame, SVGGeometry, Leaf)
FRAME_ID(nsSVGPatternFrame, SVGPattern, NotLeaf)
FRAME_ID(nsSVGRadialGradientFrame, SVGRadialGradient, NotLeaf)
FRAME_ID(nsSVGStopFrame, SVGStop, Leaf)
FRAME_ID(nsSVGSwitchFrame, SVGSwitch, NotLeaf)
FRAME_ID(nsSVGSymbolFrame, SVGSymbol, NotLeaf)
FRAME_ID(SVGTextFrame, SVGText, NotLeaf)
FRAME_ID(nsSVGUseFrame, SVGUse, Leaf)
FRAME_ID(SVGViewFrame, SVGView, Leaf)
FRAME_ID(nsTableCellFrame, TableCell, NotLeaf)
FRAME_ID(nsTableColFrame, TableCol, Leaf)
FRAME_ID(nsTableColGroupFrame, TableColGroup, NotLeaf)
FRAME_ID(nsTableFrame, Table, NotLeaf)
FRAME_ID(nsTableWrapperFrame, TableWrapper, NotLeaf)
FRAME_ID(nsTableRowFrame, TableRow, NotLeaf)
FRAME_ID(nsTableRowGroupFrame, TableRowGroup, NotLeaf)
FRAME_ID(nsTextBoxFrame, LeafBox, Leaf)
FRAME_ID(nsTextControlFrame, TextInput, Leaf)
FRAME_ID(nsTextFrame, Text, Leaf)
FRAME_ID(nsTitleBarFrame, Box, NotLeaf)
FRAME_ID(nsTreeBodyFrame, LeafBox, Leaf)
FRAME_ID(nsTreeColFrame, Box, NotLeaf)
FRAME_ID(nsVideoFrame, HTMLVideo, Leaf)
FRAME_ID(nsXULLabelFrame, XULLabel, NotLeaf)
FRAME_ID(nsXULScrollFrame, Scroll, NotLeaf)
FRAME_ID(ViewportFrame, Viewport, NotLeaf)

// The following ABSTRACT_FRAME_IDs needs to come after the above
// FRAME_IDs, because we have two separate enums, one that includes
// only FRAME_IDs and another which includes both and we depend on
// FRAME_IDs to have the same number in both.
// See ClassID (the former) and FrameIID in nsQueryFrame.h.

// Non-concrete classes (for FrameIID use)
ABSTRACT_FRAME_ID(nsContainerFrame)
ABSTRACT_FRAME_ID(nsIFrame)
ABSTRACT_FRAME_ID(nsLeafFrame)
ABSTRACT_FRAME_ID(nsMathMLContainerFrame)
ABSTRACT_FRAME_ID(nsRubyContentFrame)
ABSTRACT_FRAME_ID(nsSplittableFrame)
ABSTRACT_FRAME_ID(nsSVGDisplayContainerFrame)
ABSTRACT_FRAME_ID(nsSVGGradientFrame)
ABSTRACT_FRAME_ID(nsSVGPaintServerFrame)

// Interfaces (for FrameIID use)
ABSTRACT_FRAME_ID(nsIAnonymousContentCreator)
ABSTRACT_FRAME_ID(nsIComboboxControlFrame)
ABSTRACT_FRAME_ID(nsIFormControlFrame)
ABSTRACT_FRAME_ID(nsIFrameFrame)
ABSTRACT_FRAME_ID(nsIListControlFrame)
ABSTRACT_FRAME_ID(nsIMathMLFrame)
ABSTRACT_FRAME_ID(nsIMenuFrame)
ABSTRACT_FRAME_ID(nsIObjectFrame)
ABSTRACT_FRAME_ID(nsIPageSequenceFrame)
ABSTRACT_FRAME_ID(nsIPercentBSizeObserver)
ABSTRACT_FRAME_ID(nsIRootBox)
ABSTRACT_FRAME_ID(nsIScrollableFrame)
ABSTRACT_FRAME_ID(nsIScrollbarMediator)
ABSTRACT_FRAME_ID(nsISelectControlFrame)
ABSTRACT_FRAME_ID(nsISVGSVGFrame)
ABSTRACT_FRAME_ID(nsIStatefulFrame)
ABSTRACT_FRAME_ID(nsITableCellLayout)
ABSTRACT_FRAME_ID(nsITableLayout)
ABSTRACT_FRAME_ID(nsITextControlFrame)
ABSTRACT_FRAME_ID(nsITreeBoxObject)
ABSTRACT_FRAME_ID(nsSVGDisplayableFrame)
