1 /* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
2 /* vim: set ts=8 sts=2 et sw=2 tw=80: */
3 /* This Source Code Form is subject to the terms of the Mozilla Public
4 * License, v. 2.0. If a copy of the MPL was not distributed with this
5 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
7 /* atom list for CSS anonymous boxes */
10 * This file contains the list of nsAtoms and their values for CSS
11 * pseudo-element-ish things used internally for anonymous boxes. It is
12 * designed to be used as inline input to nsCSSAnonBoxes.cpp *only* through the
13 * magic of C preprocessing. All entries must be enclosed in the macros
14 * CSS_ANON_BOX, CSS_WRAPPER_ANON_BOX, or CSS_NON_INHERITING_ANON_BOX which will
15 * have cruel and unusual things done to it. The entries should be kept in some
16 * sort of logical order.
18 * The first argument to
19 * CSS_ANON_BOX/CSS_WRAPPER_ANON_BOX/CSS_NON_INHERITING_ANON_BOX is the C++
20 * identifier of the atom.
22 * The second argument is the string value of the atom.
24 * CSS_NON_INHERITING_ANON_BOX is used for anon boxes that never inherit style
25 * from anything. This means all their property values are the initial values
26 * of those properties. These ones must come first! Code relies on this.
27 * If this macro is not defined, it will default to CSS_ANON_BOX.
29 * CSS_WRAPPER_ANON_BOX is used for anon boxes that are used as wrappers around
30 * other frames during frametree fixup (e.g. table anonymous boxes, ruby
31 * anonymous boxes, anonymous flex item blocks, etc). These are also inheriting
32 * anon boxes, just like CSS_ANON_BOX. If this macro is not defined, it will
33 * default to CSS_ANON_BOX.
36 // OUTPUT_CLASS=nsCSSAnonBoxes
37 // MACRO_NAME=CSS_ANON_BOX/CSS_NON_INHERITING_ANON_BOX/CSS_WRAPPER_ANON_BOX
39 #ifndef CSS_NON_INHERITING_ANON_BOX
40 # ifdef DEFINED_CSS_NON_INHERITING_ANON_BOX
41 # error "Recursive includes of nsCSSAnonBoxList.h?"
42 # endif /* DEFINED_CSS_NON_INHERITING_ANON_BOX */
43 # define CSS_NON_INHERITING_ANON_BOX(name_, value_) CSS_ANON_BOX(name_, value_)
44 # define DEFINED_CSS_NON_INHERITING_ANON_BOX
45 #endif /* CSS_NON_INHERITING_ANON_BOX */
47 #ifndef CSS_WRAPPER_ANON_BOX
48 # ifdef DEFINED_CSS_WRAPPER_ANON_BOX
49 # error "Recursive includes of nsCSSAnonBoxList.h?"
50 # endif /* DEFINED_CSS_WRAPPER_ANON_BOX */
51 # define CSS_WRAPPER_ANON_BOX(name_, value_) CSS_ANON_BOX(name_, value_)
52 # define DEFINED_CSS_WRAPPER_ANON_BOX
53 #endif /* CSS_WRAPPER_ANON_BOX */
55 //---------------------------------------------------------------------------
56 // Non-inheriting ones, which must come first
57 //---------------------------------------------------------------------------
59 // Placeholder frames for out of flows. Note that :-moz-placeholder is used for
60 // the pseudo-element that represents the placeholder text in <input
61 // placeholder="foo">, so we need a different string here.
62 CSS_NON_INHERITING_ANON_BOX(oofPlaceholder
, ":-moz-oof-placeholder")
65 CSS_NON_INHERITING_ANON_BOX(horizontalFramesetBorder
, ":-moz-hframeset-border")
66 CSS_NON_INHERITING_ANON_BOX(verticalFramesetBorder
, ":-moz-vframeset-border")
68 CSS_NON_INHERITING_ANON_BOX(framesetBlank
, ":-moz-frameset-blank")
70 CSS_NON_INHERITING_ANON_BOX(tableColGroup
, ":-moz-table-column-group")
71 CSS_NON_INHERITING_ANON_BOX(tableCol
, ":-moz-table-column")
73 CSS_NON_INHERITING_ANON_BOX(page
, ":-moz-page")
74 CSS_NON_INHERITING_ANON_BOX(pageBreak
, ":-moz-page-break")
75 CSS_NON_INHERITING_ANON_BOX(pageContent
, ":-moz-page-content")
76 CSS_NON_INHERITING_ANON_BOX(printedSheet
, ":-moz-printed-sheet")
78 // Applies to blocks that wrap contiguous runs of "column-span: all"
79 // elements in multi-column subtrees, or the wrappers themselves, all the
80 // way up to the column set wrappers.
81 CSS_NON_INHERITING_ANON_BOX(columnSpanWrapper
, ":-moz-column-span-wrapper")
83 //---------------------------------------------------------------------------
85 //---------------------------------------------------------------------------
87 // ::-moz-text, ::-moz-oof-placeholder, and ::-moz-first-letter-continuation are
88 // non-elements which no rule will match.
89 CSS_ANON_BOX(mozText
, ":-moz-text")
90 // nsFirstLetterFrames for content outside the ::first-letter.
91 CSS_ANON_BOX(firstLetterContinuation
, ":-moz-first-letter-continuation")
93 CSS_ANON_BOX(mozBlockInsideInlineWrapper
, ":-moz-block-inside-inline-wrapper")
94 CSS_WRAPPER_ANON_BOX(mozMathMLAnonymousBlock
, ":-moz-mathml-anonymous-block")
96 CSS_ANON_BOX(mozLineFrame
, ":-moz-line-frame")
98 CSS_ANON_BOX(buttonContent
, ":-moz-button-content")
99 CSS_ANON_BOX(cellContent
, ":-moz-cell-content")
100 CSS_ANON_BOX(dropDownList
, ":-moz-dropdown-list")
101 CSS_ANON_BOX(fieldsetContent
, ":-moz-fieldset-content")
102 CSS_ANON_BOX(mozDisplayComboboxControlFrame
, ":-moz-display-comboboxcontrol-frame")
103 CSS_ANON_BOX(htmlCanvasContent
, ":-moz-html-canvas-content")
105 CSS_WRAPPER_ANON_BOX(inlineTable
, ":-moz-inline-table")
106 CSS_WRAPPER_ANON_BOX(table
, ":-moz-table")
107 CSS_WRAPPER_ANON_BOX(tableCell
, ":-moz-table-cell")
108 CSS_ANON_BOX(tableWrapper
, ":-moz-table-wrapper")
109 CSS_WRAPPER_ANON_BOX(tableRowGroup
, ":-moz-table-row-group")
110 CSS_WRAPPER_ANON_BOX(tableRow
, ":-moz-table-row")
112 CSS_ANON_BOX(canvas
, ":-moz-canvas")
113 CSS_ANON_BOX(pageSequence
, ":-moz-page-sequence")
114 CSS_ANON_BOX(scrolledContent
, ":-moz-scrolled-content")
115 CSS_ANON_BOX(scrolledCanvas
, ":-moz-scrolled-canvas")
117 // A column set is a set of columns inside of ColumnSetWrapperFrame, which
118 // applies to nsColumnSetFrame. It doesn't contain any column-span elements.
119 CSS_ANON_BOX(columnSet
, ":-moz-column-set")
121 // Applies to each column block inside of a column set.
122 CSS_ANON_BOX(columnContent
, ":-moz-column-content")
124 CSS_ANON_BOX(viewport
, ":-moz-viewport")
125 CSS_ANON_BOX(viewportScroll
, ":-moz-viewport-scroll")
127 // Inside a flex/grid/-moz-box container, a contiguous run of text gets wrapped
128 // in an anonymous block, which is then treated as a flex item.
129 CSS_WRAPPER_ANON_BOX(anonymousItem
, ":-moz-anonymous-item")
131 CSS_ANON_BOX(blockRubyContent
, ":-moz-block-ruby-content")
132 CSS_WRAPPER_ANON_BOX(ruby
, ":-moz-ruby")
133 CSS_WRAPPER_ANON_BOX(rubyBase
, ":-moz-ruby-base")
134 CSS_WRAPPER_ANON_BOX(rubyBaseContainer
, ":-moz-ruby-base-container")
135 CSS_WRAPPER_ANON_BOX(rubyText
, ":-moz-ruby-text")
136 CSS_WRAPPER_ANON_BOX(rubyTextContainer
, ":-moz-ruby-text-container")
138 CSS_ANON_BOX(mozTreeColumn
, ":-moz-tree-column")
139 CSS_ANON_BOX(mozTreeRow
, ":-moz-tree-row")
140 CSS_ANON_BOX(mozTreeSeparator
, ":-moz-tree-separator")
141 CSS_ANON_BOX(mozTreeCell
, ":-moz-tree-cell")
142 CSS_ANON_BOX(mozTreeIndentation
, ":-moz-tree-indentation")
143 CSS_ANON_BOX(mozTreeLine
, ":-moz-tree-line")
144 CSS_ANON_BOX(mozTreeTwisty
, ":-moz-tree-twisty")
145 CSS_ANON_BOX(mozTreeImage
, ":-moz-tree-image")
146 CSS_ANON_BOX(mozTreeCellText
, ":-moz-tree-cell-text")
147 CSS_ANON_BOX(mozTreeCheckbox
, ":-moz-tree-checkbox")
148 CSS_ANON_BOX(mozTreeDropFeedback
, ":-moz-tree-drop-feedback")
150 CSS_ANON_BOX(mozSVGMarkerAnonChild
, ":-moz-svg-marker-anon-child")
151 CSS_ANON_BOX(mozSVGOuterSVGAnonChild
, ":-moz-svg-outer-svg-anon-child")
152 CSS_ANON_BOX(mozSVGForeignContent
, ":-moz-svg-foreign-content")
153 CSS_ANON_BOX(mozSVGText
, ":-moz-svg-text")
155 #ifdef DEFINED_CSS_NON_INHERITING_ANON_BOX
156 # undef DEFINED_CSS_NON_INHERITING_ANON_BOX
157 # undef CSS_NON_INHERITING_ANON_BOX
158 #endif /* DEFINED_CSS_NON_INHERITING_ANON_BOX */
160 #ifdef DEFINED_CSS_WRAPPER_ANON_BOX
161 # undef DEFINED_CSS_WRAPPER_ANON_BOX
162 # undef CSS_WRAPPER_ANON_BOX
163 #endif /* DEFINED_CSS_NON_INHERITING_ANON_BOX */