1 /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
2 /* This Source Code Form is subject to the terms of the Mozilla Public
3 * License, v. 2.0. If a copy of the MPL was not distributed with this
4 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
7 * methods for dealing with CSS properties and tables of the keyword
11 #include "mozilla/ArrayUtils.h"
13 #include "nsCSSProps.h"
14 #include "nsCSSKeywords.h"
15 #include "nsLayoutUtils.h"
16 #include "nsStyleConsts.h"
17 #include "nsIWidget.h"
18 #include "nsThemeConstants.h" // For system widget appearance types
20 #include "mozilla/LookAndFeel.h" // for system colors
23 #include "nsStaticNameTable.h"
25 #include "mozilla/Preferences.h"
27 using namespace mozilla
;
29 typedef nsCSSProps::KTableValue KTableValue
;
31 // required to make the symbol external, so that TestCSSPropertyLookup.cpp can link with it
32 extern const char* const kCSSRawProperties
[];
34 // define an array of all CSS properties
35 const char* const kCSSRawProperties
[eCSSProperty_COUNT_with_aliases
] = {
36 #define CSS_PROP(name_, id_, method_, flags_, pref_, parsevariant_, kwtable_, \
37 stylestruct_, stylestructoffset_, animtype_) \
39 #include "nsCSSPropList.h"
41 #define CSS_PROP_SHORTHAND(name_, id_, method_, flags_, pref_) #name_,
42 #include "nsCSSPropList.h"
43 #undef CSS_PROP_SHORTHAND
44 #define CSS_PROP_ALIAS(aliasname_, id_, method_, pref_) #aliasname_,
45 #include "nsCSSPropAliasList.h"
49 using namespace mozilla
;
51 static int32_t gPropertyTableRefCount
;
52 static nsStaticCaseInsensitiveNameTable
* gPropertyTable
;
53 static nsStaticCaseInsensitiveNameTable
* gFontDescTable
;
54 static nsStaticCaseInsensitiveNameTable
* gCounterDescTable
;
55 static nsStaticCaseInsensitiveNameTable
* gPredefinedCounterStyleTable
;
57 /* static */ nsCSSProperty
*
58 nsCSSProps::gShorthandsContainingTable
[eCSSProperty_COUNT_no_shorthands
];
59 /* static */ nsCSSProperty
* nsCSSProps::gShorthandsContainingPool
= nullptr;
61 static const char* const kCSSRawFontDescs
[] = {
62 #define CSS_FONT_DESC(name_, method_) #name_,
63 #include "nsCSSFontDescList.h"
67 static const char* const kCSSRawCounterDescs
[] = {
68 #define CSS_COUNTER_DESC(name_, method_) #name_,
69 #include "nsCSSCounterDescList.h"
70 #undef CSS_COUNTER_DESC
73 static const char* const kCSSRawPredefinedCounterStyles
[] = {
74 "none", "decimal", "decimal-leading-zero", "cjk-decimal",
75 "lower-roman", "upper-roman", "armenian", "georgian", "hebrew",
76 "lower-alpha", "lower-latin", "upper-alpha", "upper-latin",
77 "lower-greek", "hiragana", "hiragana-iroha", "katakana", "katakana-iroha",
78 "disc", "circle", "square", "disclosure-open", "disclosure-closed",
79 "japanese-informal", "japanese-formal",
80 "korean-hangul-formal", "korean-hanja-informal", "korean-hanja-formal",
81 "simp-chinese-informal", "simp-chinese-formal",
82 "trad-chinese-informal", "trad-chinese-formal", "cjk-ideographic",
86 struct PropertyAndCount
{
87 nsCSSProperty property
;
92 SortPropertyAndCount(const void* s1
, const void* s2
, void *closure
)
94 const PropertyAndCount
*pc1
= static_cast<const PropertyAndCount
*>(s1
);
95 const PropertyAndCount
*pc2
= static_cast<const PropertyAndCount
*>(s2
);
96 // Primary sort by count (lowest to highest)
97 if (pc1
->count
!= pc2
->count
)
98 return pc1
->count
- pc2
->count
;
99 // Secondary sort by property index (highest to lowest)
100 return pc2
->property
- pc1
->property
;
103 // We need eCSSAliasCount so we can make gAliases nonzero size when there
106 eCSSAliasCount
= eCSSProperty_COUNT_with_aliases
- eCSSProperty_COUNT
109 // The names are in kCSSRawProperties.
110 static nsCSSProperty gAliases
[eCSSAliasCount
!= 0 ? eCSSAliasCount
: 1] = {
111 #define CSS_PROP_ALIAS(aliasname_, propid_, aliasmethod_, pref_) \
112 eCSSProperty_##propid_ ,
113 #include "nsCSSPropAliasList.h"
114 #undef CSS_PROP_ALIAS
117 nsStaticCaseInsensitiveNameTable
*
118 CreateStaticTable(const char* const aRawTable
[], int32_t aLength
)
120 auto table
= new nsStaticCaseInsensitiveNameTable();
123 // let's verify the table...
124 for (int32_t index
= 0; index
< aLength
; ++index
) {
125 nsAutoCString
temp1(aRawTable
[index
]);
126 nsAutoCString
temp2(aRawTable
[index
]);
128 NS_ABORT_IF_FALSE(temp1
.Equals(temp2
),
129 "upper case char in case insensitive name table");
130 NS_ABORT_IF_FALSE(-1 == temp1
.FindChar('_'),
131 "underscore char in case insensitive name table");
134 table
->Init(aRawTable
, aLength
);
140 nsCSSProps::AddRefTable(void)
142 if (0 == gPropertyTableRefCount
++) {
143 NS_ABORT_IF_FALSE(!gPropertyTable
, "pre existing array!");
144 NS_ABORT_IF_FALSE(!gFontDescTable
, "pre existing array!");
145 NS_ABORT_IF_FALSE(!gCounterDescTable
, "pre existing array!");
146 NS_ABORT_IF_FALSE(!gPredefinedCounterStyleTable
, "pre existing array!");
148 gPropertyTable
= CreateStaticTable(
149 kCSSRawProperties
, eCSSProperty_COUNT_with_aliases
);
150 gFontDescTable
= CreateStaticTable(kCSSRawFontDescs
, eCSSFontDesc_COUNT
);
151 gCounterDescTable
= CreateStaticTable(
152 kCSSRawCounterDescs
, eCSSCounterDesc_COUNT
);
153 gPredefinedCounterStyleTable
= CreateStaticTable(
154 kCSSRawPredefinedCounterStyles
,
155 ArrayLength(kCSSRawPredefinedCounterStyles
));
157 BuildShorthandsContainingTable();
159 static bool prefObserversInited
= false;
160 if (!prefObserversInited
) {
161 prefObserversInited
= true;
163 #define OBSERVE_PROP(pref_, id_) \
165 Preferences::AddBoolVarCache(&gPropertyEnabled[id_], \
169 #define CSS_PROP(name_, id_, method_, flags_, pref_, parsevariant_, \
170 kwtable_, stylestruct_, stylestructoffset_, animtype_) \
171 OBSERVE_PROP(pref_, eCSSProperty_##id_)
172 #include "nsCSSPropList.h"
175 #define CSS_PROP_SHORTHAND(name_, id_, method_, flags_, pref_) \
176 OBSERVE_PROP(pref_, eCSSProperty_##id_)
177 #include "nsCSSPropList.h"
178 #undef CSS_PROP_SHORTHAND
180 #define CSS_PROP_ALIAS(aliasname_, propid_, aliasmethod_, pref_) \
181 OBSERVE_PROP(pref_, eCSSPropertyAlias_##aliasmethod_)
182 #include "nsCSSPropAliasList.h"
183 #undef CSS_PROP_ALIAS
190 #undef DEBUG_SHORTHANDS_CONTAINING
193 nsCSSProps::BuildShorthandsContainingTable()
195 uint32_t occurrenceCounts
[eCSSProperty_COUNT_no_shorthands
];
196 memset(occurrenceCounts
, 0, sizeof(occurrenceCounts
));
197 PropertyAndCount subpropCounts
[eCSSProperty_COUNT
-
198 eCSSProperty_COUNT_no_shorthands
];
199 for (nsCSSProperty shorthand
= eCSSProperty_COUNT_no_shorthands
;
200 shorthand
< eCSSProperty_COUNT
;
201 shorthand
= nsCSSProperty(shorthand
+ 1)) {
202 #ifdef DEBUG_SHORTHANDS_CONTAINING
203 printf("Considering shorthand property '%s'.\n",
204 nsCSSProps::GetStringValue(shorthand
).get());
206 PropertyAndCount
&subpropCountsEntry
=
207 subpropCounts
[shorthand
- eCSSProperty_COUNT_no_shorthands
];
208 subpropCountsEntry
.property
= shorthand
;
209 subpropCountsEntry
.count
= 0;
210 if (nsCSSProps::PropHasFlags(shorthand
, CSS_PROPERTY_IS_ALIAS
)) {
211 // Don't put shorthands that are acting as aliases in the
212 // shorthands-containing lists.
215 for (const nsCSSProperty
* subprops
= SubpropertyEntryFor(shorthand
);
216 *subprops
!= eCSSProperty_UNKNOWN
;
218 NS_ABORT_IF_FALSE(0 <= *subprops
&&
219 *subprops
< eCSSProperty_COUNT_no_shorthands
,
220 "subproperty must be a longhand");
221 ++occurrenceCounts
[*subprops
];
222 ++subpropCountsEntry
.count
;
226 uint32_t poolEntries
= 0;
227 for (nsCSSProperty longhand
= nsCSSProperty(0);
228 longhand
< eCSSProperty_COUNT_no_shorthands
;
229 longhand
= nsCSSProperty(longhand
+ 1)) {
230 uint32_t count
= occurrenceCounts
[longhand
];
232 // leave room for terminator
233 poolEntries
+= count
+ 1;
236 gShorthandsContainingPool
= new nsCSSProperty
[poolEntries
];
237 if (!gShorthandsContainingPool
)
240 // Initialize all entries to point to their null-terminator.
242 nsCSSProperty
*poolCursor
= gShorthandsContainingPool
- 1;
243 nsCSSProperty
*lastTerminator
=
244 gShorthandsContainingPool
+ poolEntries
- 1;
245 for (nsCSSProperty longhand
= nsCSSProperty(0);
246 longhand
< eCSSProperty_COUNT_no_shorthands
;
247 longhand
= nsCSSProperty(longhand
+ 1)) {
248 uint32_t count
= occurrenceCounts
[longhand
];
250 poolCursor
+= count
+ 1;
251 gShorthandsContainingTable
[longhand
] = poolCursor
;
252 *poolCursor
= eCSSProperty_UNKNOWN
;
254 gShorthandsContainingTable
[longhand
] = lastTerminator
;
257 NS_ABORT_IF_FALSE(poolCursor
== lastTerminator
, "miscalculation");
260 // Sort with lowest count at the start and highest at the end, and
261 // within counts sort in reverse property index order.
262 NS_QuickSort(&subpropCounts
, ArrayLength(subpropCounts
),
263 sizeof(subpropCounts
[0]), SortPropertyAndCount
, nullptr);
265 // Fill in all the entries in gShorthandsContainingTable
266 for (const PropertyAndCount
*shorthandAndCount
= subpropCounts
,
267 *shorthandAndCountEnd
= ArrayEnd(subpropCounts
);
268 shorthandAndCount
< shorthandAndCountEnd
;
269 ++shorthandAndCount
) {
270 #ifdef DEBUG_SHORTHANDS_CONTAINING
271 printf("Entering %u subprops for '%s'.\n",
272 shorthandAndCount
->count
,
273 nsCSSProps::GetStringValue(shorthandAndCount
->property
).get());
275 if (nsCSSProps::PropHasFlags(shorthandAndCount
->property
,
276 CSS_PROPERTY_IS_ALIAS
)) {
277 // Don't put shorthands that are acting as aliases in the
278 // shorthands-containing lists.
281 for (const nsCSSProperty
* subprops
=
282 SubpropertyEntryFor(shorthandAndCount
->property
);
283 *subprops
!= eCSSProperty_UNKNOWN
;
285 *(--gShorthandsContainingTable
[*subprops
]) = shorthandAndCount
->property
;
289 #ifdef DEBUG_SHORTHANDS_CONTAINING
290 for (nsCSSProperty longhand
= nsCSSProperty(0);
291 longhand
< eCSSProperty_COUNT_no_shorthands
;
292 longhand
= nsCSSProperty(longhand
+ 1)) {
293 printf("Property %s is in %d shorthands.\n",
294 nsCSSProps::GetStringValue(longhand
).get(),
295 occurrenceCounts
[longhand
]);
296 for (const nsCSSProperty
*shorthands
= ShorthandsContaining(longhand
);
297 *shorthands
!= eCSSProperty_UNKNOWN
;
299 printf(" %s\n", nsCSSProps::GetStringValue(*shorthands
).get());
305 // Verify that all values that should be are present.
306 for (nsCSSProperty shorthand
= eCSSProperty_COUNT_no_shorthands
;
307 shorthand
< eCSSProperty_COUNT
;
308 shorthand
= nsCSSProperty(shorthand
+ 1)) {
309 if (nsCSSProps::PropHasFlags(shorthand
, CSS_PROPERTY_IS_ALIAS
)) {
310 // Don't put shorthands that are acting as aliases in the
311 // shorthands-containing lists.
314 for (const nsCSSProperty
* subprops
= SubpropertyEntryFor(shorthand
);
315 *subprops
!= eCSSProperty_UNKNOWN
;
318 for (const nsCSSProperty
*shcont
= ShorthandsContaining(*subprops
);
319 *shcont
!= eCSSProperty_UNKNOWN
;
321 if (*shcont
== shorthand
)
324 NS_ABORT_IF_FALSE(count
== 1,
325 "subproperty of shorthand should have shorthand"
326 " in its ShorthandsContaining() table");
330 // Verify that there are no extra values
331 for (nsCSSProperty longhand
= nsCSSProperty(0);
332 longhand
< eCSSProperty_COUNT_no_shorthands
;
333 longhand
= nsCSSProperty(longhand
+ 1)) {
334 for (const nsCSSProperty
*shorthands
= ShorthandsContaining(longhand
);
335 *shorthands
!= eCSSProperty_UNKNOWN
;
338 for (const nsCSSProperty
* subprops
= SubpropertyEntryFor(*shorthands
);
339 *subprops
!= eCSSProperty_UNKNOWN
;
341 if (*subprops
== longhand
)
344 NS_ABORT_IF_FALSE(count
== 1,
345 "longhand should be in subproperty table of "
346 "property in its ShorthandsContaining() table");
355 nsCSSProps::ReleaseTable(void)
357 if (0 == --gPropertyTableRefCount
) {
358 delete gPropertyTable
;
359 gPropertyTable
= nullptr;
361 delete gFontDescTable
;
362 gFontDescTable
= nullptr;
364 delete gCounterDescTable
;
365 gCounterDescTable
= nullptr;
367 delete gPredefinedCounterStyleTable
;
368 gPredefinedCounterStyleTable
= nullptr;
370 delete [] gShorthandsContainingPool
;
371 gShorthandsContainingPool
= nullptr;
376 nsCSSProps::IsInherited(nsCSSProperty aProperty
)
378 MOZ_ASSERT(!IsShorthand(aProperty
));
380 nsStyleStructID sid
= kSIDTable
[aProperty
];
381 return nsCachedStyleData::IsInherited(sid
);
385 nsCSSProps::IsCustomPropertyName(const nsACString
& aProperty
)
387 // Custom properties don't need to have a character after the "--" prefix.
388 return aProperty
.Length() >= CSS_CUSTOM_NAME_PREFIX_LENGTH
&&
389 StringBeginsWith(aProperty
, NS_LITERAL_CSTRING("--"));
393 nsCSSProps::IsCustomPropertyName(const nsAString
& aProperty
)
395 return aProperty
.Length() >= CSS_CUSTOM_NAME_PREFIX_LENGTH
&&
396 StringBeginsWith(aProperty
, NS_LITERAL_STRING("--"));
400 nsCSSProps::LookupProperty(const nsACString
& aProperty
,
401 EnabledState aEnabled
)
403 NS_ABORT_IF_FALSE(gPropertyTable
, "no lookup table, needs addref");
405 if (nsLayoutUtils::CSSVariablesEnabled() &&
406 IsCustomPropertyName(aProperty
)) {
407 return eCSSPropertyExtra_variable
;
410 nsCSSProperty res
= nsCSSProperty(gPropertyTable
->Lookup(aProperty
));
411 if (MOZ_LIKELY(res
< eCSSProperty_COUNT
)) {
412 if (res
!= eCSSProperty_UNKNOWN
&& !IsEnabled(res
, aEnabled
)) {
413 res
= eCSSProperty_UNKNOWN
;
417 MOZ_ASSERT(eCSSAliasCount
!= 0,
418 "'res' must be an alias at this point so we better have some!");
419 // We intentionally don't support eEnabledInUASheets or eEnabledInChromeOrCertifiedApp
420 // for aliases yet because it's unlikely there will be a need for it.
421 if (IsEnabled(res
) || aEnabled
== eIgnoreEnabledState
) {
422 res
= gAliases
[res
- eCSSProperty_COUNT
];
423 NS_ABORT_IF_FALSE(0 <= res
&& res
< eCSSProperty_COUNT
,
424 "aliases must not point to other aliases");
425 if (IsEnabled(res
) || aEnabled
== eIgnoreEnabledState
) {
429 return eCSSProperty_UNKNOWN
;
433 nsCSSProps::LookupProperty(const nsAString
& aProperty
, EnabledState aEnabled
)
435 if (nsLayoutUtils::CSSVariablesEnabled() &&
436 IsCustomPropertyName(aProperty
)) {
437 return eCSSPropertyExtra_variable
;
440 // This is faster than converting and calling
441 // LookupProperty(nsACString&). The table will do its own
442 // converting and avoid a PromiseFlatCString() call.
443 NS_ABORT_IF_FALSE(gPropertyTable
, "no lookup table, needs addref");
444 nsCSSProperty res
= nsCSSProperty(gPropertyTable
->Lookup(aProperty
));
445 if (MOZ_LIKELY(res
< eCSSProperty_COUNT
)) {
446 if (res
!= eCSSProperty_UNKNOWN
&& !IsEnabled(res
, aEnabled
)) {
447 res
= eCSSProperty_UNKNOWN
;
451 MOZ_ASSERT(eCSSAliasCount
!= 0,
452 "'res' must be an alias at this point so we better have some!");
453 // We intentionally don't support eEnabledInUASheets for aliases yet
454 // because it's unlikely there will be a need for it.
455 if (IsEnabled(res
) || aEnabled
== eIgnoreEnabledState
) {
456 res
= gAliases
[res
- eCSSProperty_COUNT
];
457 NS_ABORT_IF_FALSE(0 <= res
&& res
< eCSSProperty_COUNT
,
458 "aliases must not point to other aliases");
459 if (IsEnabled(res
) || aEnabled
== eIgnoreEnabledState
) {
463 return eCSSProperty_UNKNOWN
;
467 nsCSSProps::LookupFontDesc(const nsACString
& aFontDesc
)
469 NS_ABORT_IF_FALSE(gFontDescTable
, "no lookup table, needs addref");
470 return nsCSSFontDesc(gFontDescTable
->Lookup(aFontDesc
));
474 nsCSSProps::LookupFontDesc(const nsAString
& aFontDesc
)
476 NS_ABORT_IF_FALSE(gFontDescTable
, "no lookup table, needs addref");
477 nsCSSFontDesc which
= nsCSSFontDesc(gFontDescTable
->Lookup(aFontDesc
));
479 // check for unprefixed font-feature-settings/font-language-override
480 if (which
== eCSSFontDesc_UNKNOWN
) {
481 nsAutoString prefixedProp
;
482 prefixedProp
.AppendLiteral("-moz-");
483 prefixedProp
.Append(aFontDesc
);
484 which
= nsCSSFontDesc(gFontDescTable
->Lookup(prefixedProp
));
490 nsCSSProps::LookupCounterDesc(const nsAString
& aProperty
)
492 NS_ABORT_IF_FALSE(gCounterDescTable
, "no lookup table, needs addref");
493 return nsCSSCounterDesc(gCounterDescTable
->Lookup(aProperty
));
497 nsCSSProps::LookupCounterDesc(const nsACString
& aProperty
)
499 NS_ABORT_IF_FALSE(gCounterDescTable
, "no lookup table, needs addref");
500 return nsCSSCounterDesc(gCounterDescTable
->Lookup(aProperty
));
504 nsCSSProps::IsPredefinedCounterStyle(const nsAString
& aStyle
)
506 NS_ABORT_IF_FALSE(gPredefinedCounterStyleTable
,
507 "no lookup table, needs addref");
508 return gPredefinedCounterStyleTable
->Lookup(aStyle
) !=
509 nsStaticCaseInsensitiveNameTable::NOT_FOUND
;
513 nsCSSProps::IsPredefinedCounterStyle(const nsACString
& aStyle
)
515 NS_ABORT_IF_FALSE(gPredefinedCounterStyleTable
,
516 "no lookup table, needs addref");
517 return gPredefinedCounterStyleTable
->Lookup(aStyle
) !=
518 nsStaticCaseInsensitiveNameTable::NOT_FOUND
;
521 const nsAFlatCString
&
522 nsCSSProps::GetStringValue(nsCSSProperty aProperty
)
524 NS_ABORT_IF_FALSE(gPropertyTable
, "no lookup table, needs addref");
525 if (gPropertyTable
) {
526 return gPropertyTable
->GetStringValue(int32_t(aProperty
));
528 static nsDependentCString
sNullStr("");
533 const nsAFlatCString
&
534 nsCSSProps::GetStringValue(nsCSSFontDesc aFontDescID
)
536 NS_ABORT_IF_FALSE(gFontDescTable
, "no lookup table, needs addref");
537 if (gFontDescTable
) {
538 return gFontDescTable
->GetStringValue(int32_t(aFontDescID
));
540 static nsDependentCString
sNullStr("");
545 const nsAFlatCString
&
546 nsCSSProps::GetStringValue(nsCSSCounterDesc aCounterDesc
)
548 NS_ABORT_IF_FALSE(gCounterDescTable
, "no lookup table, needs addref");
549 if (gCounterDescTable
) {
550 return gCounterDescTable
->GetStringValue(int32_t(aCounterDesc
));
552 static nsDependentCString
sNullStr("");
558 nsCSSProps::OtherNameFor(nsCSSProperty aProperty
)
561 case eCSSProperty_border_left_color_value
:
562 return eCSSProperty_border_left_color
;
563 case eCSSProperty_border_left_style_value
:
564 return eCSSProperty_border_left_style
;
565 case eCSSProperty_border_left_width_value
:
566 return eCSSProperty_border_left_width
;
567 case eCSSProperty_border_right_color_value
:
568 return eCSSProperty_border_right_color
;
569 case eCSSProperty_border_right_style_value
:
570 return eCSSProperty_border_right_style
;
571 case eCSSProperty_border_right_width_value
:
572 return eCSSProperty_border_right_width
;
573 case eCSSProperty_margin_left_value
:
574 return eCSSProperty_margin_left
;
575 case eCSSProperty_margin_right_value
:
576 return eCSSProperty_margin_right
;
577 case eCSSProperty_padding_left_value
:
578 return eCSSProperty_padding_left
;
579 case eCSSProperty_padding_right_value
:
580 return eCSSProperty_padding_right
;
582 NS_ABORT_IF_FALSE(false, "bad caller");
584 return eCSSProperty_UNKNOWN
;
587 /***************************************************************************/
589 const KTableValue
nsCSSProps::kAnimationDirectionKTable
[] = {
590 eCSSKeyword_normal
, NS_STYLE_ANIMATION_DIRECTION_NORMAL
,
591 eCSSKeyword_reverse
, NS_STYLE_ANIMATION_DIRECTION_REVERSE
,
592 eCSSKeyword_alternate
, NS_STYLE_ANIMATION_DIRECTION_ALTERNATE
,
593 eCSSKeyword_alternate_reverse
, NS_STYLE_ANIMATION_DIRECTION_ALTERNATE_REVERSE
,
594 eCSSKeyword_UNKNOWN
,-1
597 const KTableValue
nsCSSProps::kAnimationFillModeKTable
[] = {
598 eCSSKeyword_none
, NS_STYLE_ANIMATION_FILL_MODE_NONE
,
599 eCSSKeyword_forwards
, NS_STYLE_ANIMATION_FILL_MODE_FORWARDS
,
600 eCSSKeyword_backwards
, NS_STYLE_ANIMATION_FILL_MODE_BACKWARDS
,
601 eCSSKeyword_both
, NS_STYLE_ANIMATION_FILL_MODE_BOTH
,
602 eCSSKeyword_UNKNOWN
,-1
605 const KTableValue
nsCSSProps::kAnimationIterationCountKTable
[] = {
606 eCSSKeyword_infinite
, NS_STYLE_ANIMATION_ITERATION_COUNT_INFINITE
,
607 eCSSKeyword_UNKNOWN
,-1
610 const KTableValue
nsCSSProps::kAnimationPlayStateKTable
[] = {
611 eCSSKeyword_running
, NS_STYLE_ANIMATION_PLAY_STATE_RUNNING
,
612 eCSSKeyword_paused
, NS_STYLE_ANIMATION_PLAY_STATE_PAUSED
,
613 eCSSKeyword_UNKNOWN
,-1
616 const KTableValue
nsCSSProps::kAppearanceKTable
[] = {
617 eCSSKeyword_none
, NS_THEME_NONE
,
618 eCSSKeyword_button
, NS_THEME_BUTTON
,
619 eCSSKeyword_radio
, NS_THEME_RADIO
,
620 eCSSKeyword_checkbox
, NS_THEME_CHECKBOX
,
621 eCSSKeyword_button_bevel
, NS_THEME_BUTTON_BEVEL
,
622 eCSSKeyword_toolbox
, NS_THEME_TOOLBOX
,
623 eCSSKeyword_toolbar
, NS_THEME_TOOLBAR
,
624 eCSSKeyword_toolbarbutton
, NS_THEME_TOOLBAR_BUTTON
,
625 eCSSKeyword_toolbargripper
, NS_THEME_TOOLBAR_GRIPPER
,
626 eCSSKeyword_dualbutton
, NS_THEME_TOOLBAR_DUAL_BUTTON
,
627 eCSSKeyword_toolbarbutton_dropdown
, NS_THEME_TOOLBAR_BUTTON_DROPDOWN
,
628 eCSSKeyword_button_arrow_up
, NS_THEME_BUTTON_ARROW_UP
,
629 eCSSKeyword_button_arrow_down
, NS_THEME_BUTTON_ARROW_DOWN
,
630 eCSSKeyword_button_arrow_next
, NS_THEME_BUTTON_ARROW_NEXT
,
631 eCSSKeyword_button_arrow_previous
, NS_THEME_BUTTON_ARROW_PREVIOUS
,
632 eCSSKeyword_meterbar
, NS_THEME_METERBAR
,
633 eCSSKeyword_meterchunk
, NS_THEME_METERBAR_CHUNK
,
634 eCSSKeyword_number_input
, NS_THEME_NUMBER_INPUT
,
635 eCSSKeyword_separator
, NS_THEME_TOOLBAR_SEPARATOR
,
636 eCSSKeyword_splitter
, NS_THEME_SPLITTER
,
637 eCSSKeyword_statusbar
, NS_THEME_STATUSBAR
,
638 eCSSKeyword_statusbarpanel
, NS_THEME_STATUSBAR_PANEL
,
639 eCSSKeyword_resizerpanel
, NS_THEME_STATUSBAR_RESIZER_PANEL
,
640 eCSSKeyword_resizer
, NS_THEME_RESIZER
,
641 eCSSKeyword_listbox
, NS_THEME_LISTBOX
,
642 eCSSKeyword_listitem
, NS_THEME_LISTBOX_LISTITEM
,
643 eCSSKeyword_treeview
, NS_THEME_TREEVIEW
,
644 eCSSKeyword_treeitem
, NS_THEME_TREEVIEW_TREEITEM
,
645 eCSSKeyword_treetwisty
, NS_THEME_TREEVIEW_TWISTY
,
646 eCSSKeyword_treetwistyopen
, NS_THEME_TREEVIEW_TWISTY_OPEN
,
647 eCSSKeyword_treeline
, NS_THEME_TREEVIEW_LINE
,
648 eCSSKeyword_treeheader
, NS_THEME_TREEVIEW_HEADER
,
649 eCSSKeyword_treeheadercell
, NS_THEME_TREEVIEW_HEADER_CELL
,
650 eCSSKeyword_treeheadersortarrow
, NS_THEME_TREEVIEW_HEADER_SORTARROW
,
651 eCSSKeyword_progressbar
, NS_THEME_PROGRESSBAR
,
652 eCSSKeyword_progresschunk
, NS_THEME_PROGRESSBAR_CHUNK
,
653 eCSSKeyword_progressbar_vertical
, NS_THEME_PROGRESSBAR_VERTICAL
,
654 eCSSKeyword_progresschunk_vertical
, NS_THEME_PROGRESSBAR_CHUNK_VERTICAL
,
655 eCSSKeyword_tab
, NS_THEME_TAB
,
656 eCSSKeyword_tabpanels
, NS_THEME_TAB_PANELS
,
657 eCSSKeyword_tabpanel
, NS_THEME_TAB_PANEL
,
658 eCSSKeyword_tab_scroll_arrow_back
, NS_THEME_TAB_SCROLLARROW_BACK
,
659 eCSSKeyword_tab_scroll_arrow_forward
, NS_THEME_TAB_SCROLLARROW_FORWARD
,
660 eCSSKeyword_tooltip
, NS_THEME_TOOLTIP
,
661 eCSSKeyword_spinner
, NS_THEME_SPINNER
,
662 eCSSKeyword_spinner_upbutton
, NS_THEME_SPINNER_UP_BUTTON
,
663 eCSSKeyword_spinner_downbutton
, NS_THEME_SPINNER_DOWN_BUTTON
,
664 eCSSKeyword_spinner_textfield
, NS_THEME_SPINNER_TEXTFIELD
,
665 eCSSKeyword_scrollbar
, NS_THEME_SCROLLBAR
,
666 eCSSKeyword_scrollbar_small
, NS_THEME_SCROLLBAR_SMALL
,
667 eCSSKeyword_scrollbarbutton_up
, NS_THEME_SCROLLBAR_BUTTON_UP
,
668 eCSSKeyword_scrollbarbutton_down
, NS_THEME_SCROLLBAR_BUTTON_DOWN
,
669 eCSSKeyword_scrollbarbutton_left
, NS_THEME_SCROLLBAR_BUTTON_LEFT
,
670 eCSSKeyword_scrollbarbutton_right
, NS_THEME_SCROLLBAR_BUTTON_RIGHT
,
671 eCSSKeyword_scrollbartrack_horizontal
, NS_THEME_SCROLLBAR_TRACK_HORIZONTAL
,
672 eCSSKeyword_scrollbartrack_vertical
, NS_THEME_SCROLLBAR_TRACK_VERTICAL
,
673 eCSSKeyword_scrollbarthumb_horizontal
, NS_THEME_SCROLLBAR_THUMB_HORIZONTAL
,
674 eCSSKeyword_scrollbarthumb_vertical
, NS_THEME_SCROLLBAR_THUMB_VERTICAL
,
675 eCSSKeyword_textfield
, NS_THEME_TEXTFIELD
,
676 eCSSKeyword_textfield_multiline
, NS_THEME_TEXTFIELD_MULTILINE
,
677 eCSSKeyword_caret
, NS_THEME_TEXTFIELD_CARET
,
678 eCSSKeyword_searchfield
, NS_THEME_SEARCHFIELD
,
679 eCSSKeyword_menulist
, NS_THEME_DROPDOWN
,
680 eCSSKeyword_menulist_button
, NS_THEME_DROPDOWN_BUTTON
,
681 eCSSKeyword_menulist_text
, NS_THEME_DROPDOWN_TEXT
,
682 eCSSKeyword_menulist_textfield
, NS_THEME_DROPDOWN_TEXTFIELD
,
683 eCSSKeyword_range
, NS_THEME_RANGE
,
684 eCSSKeyword_range_thumb
, NS_THEME_RANGE_THUMB
,
685 eCSSKeyword_scale_horizontal
, NS_THEME_SCALE_HORIZONTAL
,
686 eCSSKeyword_scale_vertical
, NS_THEME_SCALE_VERTICAL
,
687 eCSSKeyword_scalethumb_horizontal
, NS_THEME_SCALE_THUMB_HORIZONTAL
,
688 eCSSKeyword_scalethumb_vertical
, NS_THEME_SCALE_THUMB_VERTICAL
,
689 eCSSKeyword_scalethumbstart
, NS_THEME_SCALE_THUMB_START
,
690 eCSSKeyword_scalethumbend
, NS_THEME_SCALE_THUMB_END
,
691 eCSSKeyword_scalethumbtick
, NS_THEME_SCALE_TICK
,
692 eCSSKeyword_groupbox
, NS_THEME_GROUPBOX
,
693 eCSSKeyword_checkbox_container
, NS_THEME_CHECKBOX_CONTAINER
,
694 eCSSKeyword_radio_container
, NS_THEME_RADIO_CONTAINER
,
695 eCSSKeyword_checkbox_label
, NS_THEME_CHECKBOX_LABEL
,
696 eCSSKeyword_radio_label
, NS_THEME_RADIO_LABEL
,
697 eCSSKeyword_button_focus
, NS_THEME_BUTTON_FOCUS
,
698 eCSSKeyword_window
, NS_THEME_WINDOW
,
699 eCSSKeyword_dialog
, NS_THEME_DIALOG
,
700 eCSSKeyword_menubar
, NS_THEME_MENUBAR
,
701 eCSSKeyword_menupopup
, NS_THEME_MENUPOPUP
,
702 eCSSKeyword_menuitem
, NS_THEME_MENUITEM
,
703 eCSSKeyword_checkmenuitem
, NS_THEME_CHECKMENUITEM
,
704 eCSSKeyword_radiomenuitem
, NS_THEME_RADIOMENUITEM
,
705 eCSSKeyword_menucheckbox
, NS_THEME_MENUCHECKBOX
,
706 eCSSKeyword_menuradio
, NS_THEME_MENURADIO
,
707 eCSSKeyword_menuseparator
, NS_THEME_MENUSEPARATOR
,
708 eCSSKeyword_menuarrow
, NS_THEME_MENUARROW
,
709 eCSSKeyword_menuimage
, NS_THEME_MENUIMAGE
,
710 eCSSKeyword_menuitemtext
, NS_THEME_MENUITEMTEXT
,
711 eCSSKeyword__moz_win_media_toolbox
, NS_THEME_WIN_MEDIA_TOOLBOX
,
712 eCSSKeyword__moz_win_communications_toolbox
, NS_THEME_WIN_COMMUNICATIONS_TOOLBOX
,
713 eCSSKeyword__moz_win_browsertabbar_toolbox
, NS_THEME_WIN_BROWSER_TAB_BAR_TOOLBOX
,
714 eCSSKeyword__moz_win_glass
, NS_THEME_WIN_GLASS
,
715 eCSSKeyword__moz_win_borderless_glass
, NS_THEME_WIN_BORDERLESS_GLASS
,
716 eCSSKeyword__moz_mac_unified_toolbar
, NS_THEME_MOZ_MAC_UNIFIED_TOOLBAR
,
717 eCSSKeyword__moz_mac_fullscreen_button
, NS_THEME_MOZ_MAC_FULLSCREEN_BUTTON
,
718 eCSSKeyword__moz_mac_help_button
, NS_THEME_MOZ_MAC_HELP_BUTTON
,
719 eCSSKeyword__moz_window_titlebar
, NS_THEME_WINDOW_TITLEBAR
,
720 eCSSKeyword__moz_window_titlebar_maximized
, NS_THEME_WINDOW_TITLEBAR_MAXIMIZED
,
721 eCSSKeyword__moz_window_frame_left
, NS_THEME_WINDOW_FRAME_LEFT
,
722 eCSSKeyword__moz_window_frame_right
, NS_THEME_WINDOW_FRAME_RIGHT
,
723 eCSSKeyword__moz_window_frame_bottom
, NS_THEME_WINDOW_FRAME_BOTTOM
,
724 eCSSKeyword__moz_window_button_close
, NS_THEME_WINDOW_BUTTON_CLOSE
,
725 eCSSKeyword__moz_window_button_minimize
, NS_THEME_WINDOW_BUTTON_MINIMIZE
,
726 eCSSKeyword__moz_window_button_maximize
, NS_THEME_WINDOW_BUTTON_MAXIMIZE
,
727 eCSSKeyword__moz_window_button_restore
, NS_THEME_WINDOW_BUTTON_RESTORE
,
728 eCSSKeyword__moz_window_button_box
, NS_THEME_WINDOW_BUTTON_BOX
,
729 eCSSKeyword__moz_window_button_box_maximized
, NS_THEME_WINDOW_BUTTON_BOX_MAXIMIZED
,
730 eCSSKeyword__moz_win_exclude_glass
, NS_THEME_WIN_EXCLUDE_GLASS
,
731 eCSSKeyword__moz_mac_vibrancy_light
, NS_THEME_MAC_VIBRANCY_LIGHT
,
732 eCSSKeyword__moz_mac_vibrancy_dark
, NS_THEME_MAC_VIBRANCY_DARK
,
733 eCSSKeyword__moz_mac_disclosure_button_open
, NS_THEME_MAC_DISCLOSURE_BUTTON_OPEN
,
734 eCSSKeyword__moz_mac_disclosure_button_closed
, NS_THEME_MAC_DISCLOSURE_BUTTON_CLOSED
,
735 eCSSKeyword_UNKNOWN
,-1
738 const KTableValue
nsCSSProps::kBackfaceVisibilityKTable
[] = {
739 eCSSKeyword_visible
, NS_STYLE_BACKFACE_VISIBILITY_VISIBLE
,
740 eCSSKeyword_hidden
, NS_STYLE_BACKFACE_VISIBILITY_HIDDEN
,
741 eCSSKeyword_UNKNOWN
,-1
744 const KTableValue
nsCSSProps::kTransformStyleKTable
[] = {
745 eCSSKeyword_flat
, NS_STYLE_TRANSFORM_STYLE_FLAT
,
746 eCSSKeyword_preserve_3d
, NS_STYLE_TRANSFORM_STYLE_PRESERVE_3D
,
747 eCSSKeyword_UNKNOWN
,-1
750 const KTableValue
nsCSSProps::kBackgroundAttachmentKTable
[] = {
751 eCSSKeyword_fixed
, NS_STYLE_BG_ATTACHMENT_FIXED
,
752 eCSSKeyword_scroll
, NS_STYLE_BG_ATTACHMENT_SCROLL
,
753 eCSSKeyword_local
, NS_STYLE_BG_ATTACHMENT_LOCAL
,
754 eCSSKeyword_UNKNOWN
,-1
757 static_assert(NS_STYLE_BG_CLIP_BORDER
== NS_STYLE_BG_ORIGIN_BORDER
&&
758 NS_STYLE_BG_CLIP_PADDING
== NS_STYLE_BG_ORIGIN_PADDING
&&
759 NS_STYLE_BG_CLIP_CONTENT
== NS_STYLE_BG_ORIGIN_CONTENT
,
760 "bg-clip and bg-origin style constants must agree");
761 const KTableValue
nsCSSProps::kBackgroundOriginKTable
[] = {
762 eCSSKeyword_border_box
, NS_STYLE_BG_ORIGIN_BORDER
,
763 eCSSKeyword_padding_box
, NS_STYLE_BG_ORIGIN_PADDING
,
764 eCSSKeyword_content_box
, NS_STYLE_BG_ORIGIN_CONTENT
,
765 eCSSKeyword_UNKNOWN
,-1
768 // Note: Don't change this table unless you update
769 // parseBackgroundPosition!
771 const KTableValue
nsCSSProps::kBackgroundPositionKTable
[] = {
772 eCSSKeyword_center
, NS_STYLE_BG_POSITION_CENTER
,
773 eCSSKeyword_top
, NS_STYLE_BG_POSITION_TOP
,
774 eCSSKeyword_bottom
, NS_STYLE_BG_POSITION_BOTTOM
,
775 eCSSKeyword_left
, NS_STYLE_BG_POSITION_LEFT
,
776 eCSSKeyword_right
, NS_STYLE_BG_POSITION_RIGHT
,
777 eCSSKeyword_UNKNOWN
,-1
780 const KTableValue
nsCSSProps::kBackgroundRepeatKTable
[] = {
781 eCSSKeyword_no_repeat
, NS_STYLE_BG_REPEAT_NO_REPEAT
,
782 eCSSKeyword_repeat
, NS_STYLE_BG_REPEAT_REPEAT
,
783 eCSSKeyword_repeat_x
, NS_STYLE_BG_REPEAT_REPEAT_X
,
784 eCSSKeyword_repeat_y
, NS_STYLE_BG_REPEAT_REPEAT_Y
,
785 eCSSKeyword_UNKNOWN
,-1
788 const KTableValue
nsCSSProps::kBackgroundRepeatPartKTable
[] = {
789 eCSSKeyword_no_repeat
, NS_STYLE_BG_REPEAT_NO_REPEAT
,
790 eCSSKeyword_repeat
, NS_STYLE_BG_REPEAT_REPEAT
,
791 eCSSKeyword_UNKNOWN
,-1
794 const KTableValue
nsCSSProps::kBackgroundSizeKTable
[] = {
795 eCSSKeyword_contain
, NS_STYLE_BG_SIZE_CONTAIN
,
796 eCSSKeyword_cover
, NS_STYLE_BG_SIZE_COVER
,
797 eCSSKeyword_UNKNOWN
,-1
800 const KTableValue
nsCSSProps::kBlendModeKTable
[] = {
801 eCSSKeyword_normal
, NS_STYLE_BLEND_NORMAL
,
802 eCSSKeyword_multiply
, NS_STYLE_BLEND_MULTIPLY
,
803 eCSSKeyword_screen
, NS_STYLE_BLEND_SCREEN
,
804 eCSSKeyword_overlay
, NS_STYLE_BLEND_OVERLAY
,
805 eCSSKeyword_darken
, NS_STYLE_BLEND_DARKEN
,
806 eCSSKeyword_lighten
, NS_STYLE_BLEND_LIGHTEN
,
807 eCSSKeyword_color_dodge
, NS_STYLE_BLEND_COLOR_DODGE
,
808 eCSSKeyword_color_burn
, NS_STYLE_BLEND_COLOR_BURN
,
809 eCSSKeyword_hard_light
, NS_STYLE_BLEND_HARD_LIGHT
,
810 eCSSKeyword_soft_light
, NS_STYLE_BLEND_SOFT_LIGHT
,
811 eCSSKeyword_difference
, NS_STYLE_BLEND_DIFFERENCE
,
812 eCSSKeyword_exclusion
, NS_STYLE_BLEND_EXCLUSION
,
813 eCSSKeyword_hue
, NS_STYLE_BLEND_HUE
,
814 eCSSKeyword_saturation
, NS_STYLE_BLEND_SATURATION
,
815 eCSSKeyword_color
, NS_STYLE_BLEND_COLOR
,
816 eCSSKeyword_luminosity
, NS_STYLE_BLEND_LUMINOSITY
,
817 eCSSKeyword_UNKNOWN
,-1
820 const KTableValue
nsCSSProps::kBorderCollapseKTable
[] = {
821 eCSSKeyword_collapse
, NS_STYLE_BORDER_COLLAPSE
,
822 eCSSKeyword_separate
, NS_STYLE_BORDER_SEPARATE
,
823 eCSSKeyword_UNKNOWN
,-1
826 const KTableValue
nsCSSProps::kBorderColorKTable
[] = {
827 eCSSKeyword__moz_use_text_color
, NS_STYLE_COLOR_MOZ_USE_TEXT_COLOR
,
828 eCSSKeyword_UNKNOWN
,-1
831 const KTableValue
nsCSSProps::kBorderImageRepeatKTable
[] = {
832 eCSSKeyword_stretch
, NS_STYLE_BORDER_IMAGE_REPEAT_STRETCH
,
833 eCSSKeyword_repeat
, NS_STYLE_BORDER_IMAGE_REPEAT_REPEAT
,
834 eCSSKeyword_round
, NS_STYLE_BORDER_IMAGE_REPEAT_ROUND
,
835 eCSSKeyword_UNKNOWN
,-1
838 const KTableValue
nsCSSProps::kBorderImageSliceKTable
[] = {
839 eCSSKeyword_fill
, NS_STYLE_BORDER_IMAGE_SLICE_FILL
,
840 eCSSKeyword_UNKNOWN
,-1
843 const KTableValue
nsCSSProps::kBorderStyleKTable
[] = {
844 eCSSKeyword_none
, NS_STYLE_BORDER_STYLE_NONE
,
845 eCSSKeyword_hidden
, NS_STYLE_BORDER_STYLE_HIDDEN
,
846 eCSSKeyword_dotted
, NS_STYLE_BORDER_STYLE_DOTTED
,
847 eCSSKeyword_dashed
, NS_STYLE_BORDER_STYLE_DASHED
,
848 eCSSKeyword_solid
, NS_STYLE_BORDER_STYLE_SOLID
,
849 eCSSKeyword_double
, NS_STYLE_BORDER_STYLE_DOUBLE
,
850 eCSSKeyword_groove
, NS_STYLE_BORDER_STYLE_GROOVE
,
851 eCSSKeyword_ridge
, NS_STYLE_BORDER_STYLE_RIDGE
,
852 eCSSKeyword_inset
, NS_STYLE_BORDER_STYLE_INSET
,
853 eCSSKeyword_outset
, NS_STYLE_BORDER_STYLE_OUTSET
,
854 eCSSKeyword_UNKNOWN
,-1
857 const KTableValue
nsCSSProps::kBorderWidthKTable
[] = {
858 eCSSKeyword_thin
, NS_STYLE_BORDER_WIDTH_THIN
,
859 eCSSKeyword_medium
, NS_STYLE_BORDER_WIDTH_MEDIUM
,
860 eCSSKeyword_thick
, NS_STYLE_BORDER_WIDTH_THICK
,
861 eCSSKeyword_UNKNOWN
,-1
864 const KTableValue
nsCSSProps::kBoxPropSourceKTable
[] = {
865 eCSSKeyword_physical
, NS_BOXPROP_SOURCE_PHYSICAL
,
866 eCSSKeyword_logical
, NS_BOXPROP_SOURCE_LOGICAL
,
867 eCSSKeyword_UNKNOWN
,-1
870 const KTableValue
nsCSSProps::kBoxDecorationBreakKTable
[] = {
871 eCSSKeyword_slice
, NS_STYLE_BOX_DECORATION_BREAK_SLICE
,
872 eCSSKeyword_clone
, NS_STYLE_BOX_DECORATION_BREAK_CLONE
,
873 eCSSKeyword_UNKNOWN
,-1
876 const KTableValue
nsCSSProps::kBoxShadowTypeKTable
[] = {
877 eCSSKeyword_inset
, NS_STYLE_BOX_SHADOW_INSET
,
878 eCSSKeyword_UNKNOWN
,-1
881 const KTableValue
nsCSSProps::kBoxSizingKTable
[] = {
882 eCSSKeyword_content_box
, NS_STYLE_BOX_SIZING_CONTENT
,
883 eCSSKeyword_border_box
, NS_STYLE_BOX_SIZING_BORDER
,
884 eCSSKeyword_padding_box
, NS_STYLE_BOX_SIZING_PADDING
,
885 eCSSKeyword_UNKNOWN
,-1
888 const KTableValue
nsCSSProps::kCaptionSideKTable
[] = {
889 eCSSKeyword_top
, NS_STYLE_CAPTION_SIDE_TOP
,
890 eCSSKeyword_right
, NS_STYLE_CAPTION_SIDE_RIGHT
,
891 eCSSKeyword_bottom
, NS_STYLE_CAPTION_SIDE_BOTTOM
,
892 eCSSKeyword_left
, NS_STYLE_CAPTION_SIDE_LEFT
,
893 eCSSKeyword_top_outside
, NS_STYLE_CAPTION_SIDE_TOP_OUTSIDE
,
894 eCSSKeyword_bottom_outside
, NS_STYLE_CAPTION_SIDE_BOTTOM_OUTSIDE
,
895 eCSSKeyword_UNKNOWN
, -1
898 const KTableValue
nsCSSProps::kClearKTable
[] = {
899 eCSSKeyword_none
, NS_STYLE_CLEAR_NONE
,
900 eCSSKeyword_left
, NS_STYLE_CLEAR_LEFT
,
901 eCSSKeyword_right
, NS_STYLE_CLEAR_RIGHT
,
902 eCSSKeyword_both
, NS_STYLE_CLEAR_BOTH
,
903 eCSSKeyword_UNKNOWN
,-1
906 // See also kContextPatternKTable for SVG paint-specific values
907 const KTableValue
nsCSSProps::kColorKTable
[] = {
908 eCSSKeyword_activeborder
, LookAndFeel::eColorID_activeborder
,
909 eCSSKeyword_activecaption
, LookAndFeel::eColorID_activecaption
,
910 eCSSKeyword_appworkspace
, LookAndFeel::eColorID_appworkspace
,
911 eCSSKeyword_background
, LookAndFeel::eColorID_background
,
912 eCSSKeyword_buttonface
, LookAndFeel::eColorID_buttonface
,
913 eCSSKeyword_buttonhighlight
, LookAndFeel::eColorID_buttonhighlight
,
914 eCSSKeyword_buttonshadow
, LookAndFeel::eColorID_buttonshadow
,
915 eCSSKeyword_buttontext
, LookAndFeel::eColorID_buttontext
,
916 eCSSKeyword_captiontext
, LookAndFeel::eColorID_captiontext
,
917 eCSSKeyword_graytext
, LookAndFeel::eColorID_graytext
,
918 eCSSKeyword_highlight
, LookAndFeel::eColorID_highlight
,
919 eCSSKeyword_highlighttext
, LookAndFeel::eColorID_highlighttext
,
920 eCSSKeyword_inactiveborder
, LookAndFeel::eColorID_inactiveborder
,
921 eCSSKeyword_inactivecaption
, LookAndFeel::eColorID_inactivecaption
,
922 eCSSKeyword_inactivecaptiontext
, LookAndFeel::eColorID_inactivecaptiontext
,
923 eCSSKeyword_infobackground
, LookAndFeel::eColorID_infobackground
,
924 eCSSKeyword_infotext
, LookAndFeel::eColorID_infotext
,
925 eCSSKeyword_menu
, LookAndFeel::eColorID_menu
,
926 eCSSKeyword_menutext
, LookAndFeel::eColorID_menutext
,
927 eCSSKeyword_scrollbar
, LookAndFeel::eColorID_scrollbar
,
928 eCSSKeyword_threeddarkshadow
, LookAndFeel::eColorID_threeddarkshadow
,
929 eCSSKeyword_threedface
, LookAndFeel::eColorID_threedface
,
930 eCSSKeyword_threedhighlight
, LookAndFeel::eColorID_threedhighlight
,
931 eCSSKeyword_threedlightshadow
, LookAndFeel::eColorID_threedlightshadow
,
932 eCSSKeyword_threedshadow
, LookAndFeel::eColorID_threedshadow
,
933 eCSSKeyword_window
, LookAndFeel::eColorID_window
,
934 eCSSKeyword_windowframe
, LookAndFeel::eColorID_windowframe
,
935 eCSSKeyword_windowtext
, LookAndFeel::eColorID_windowtext
,
936 eCSSKeyword__moz_activehyperlinktext
, NS_COLOR_MOZ_ACTIVEHYPERLINKTEXT
,
937 eCSSKeyword__moz_buttondefault
, LookAndFeel::eColorID__moz_buttondefault
,
938 eCSSKeyword__moz_buttonhoverface
, LookAndFeel::eColorID__moz_buttonhoverface
,
939 eCSSKeyword__moz_buttonhovertext
, LookAndFeel::eColorID__moz_buttonhovertext
,
940 eCSSKeyword__moz_cellhighlight
, LookAndFeel::eColorID__moz_cellhighlight
,
941 eCSSKeyword__moz_cellhighlighttext
, LookAndFeel::eColorID__moz_cellhighlighttext
,
942 eCSSKeyword__moz_eventreerow
, LookAndFeel::eColorID__moz_eventreerow
,
943 eCSSKeyword__moz_field
, LookAndFeel::eColorID__moz_field
,
944 eCSSKeyword__moz_fieldtext
, LookAndFeel::eColorID__moz_fieldtext
,
945 eCSSKeyword__moz_default_background_color
, NS_COLOR_MOZ_DEFAULT_BACKGROUND_COLOR
,
946 eCSSKeyword__moz_default_color
, NS_COLOR_MOZ_DEFAULT_COLOR
,
947 eCSSKeyword__moz_dialog
, LookAndFeel::eColorID__moz_dialog
,
948 eCSSKeyword__moz_dialogtext
, LookAndFeel::eColorID__moz_dialogtext
,
949 eCSSKeyword__moz_dragtargetzone
, LookAndFeel::eColorID__moz_dragtargetzone
,
950 eCSSKeyword__moz_hyperlinktext
, NS_COLOR_MOZ_HYPERLINKTEXT
,
951 eCSSKeyword__moz_html_cellhighlight
, LookAndFeel::eColorID__moz_html_cellhighlight
,
952 eCSSKeyword__moz_html_cellhighlighttext
, LookAndFeel::eColorID__moz_html_cellhighlighttext
,
953 eCSSKeyword__moz_mac_buttonactivetext
, LookAndFeel::eColorID__moz_mac_buttonactivetext
,
954 eCSSKeyword__moz_mac_chrome_active
, LookAndFeel::eColorID__moz_mac_chrome_active
,
955 eCSSKeyword__moz_mac_chrome_inactive
, LookAndFeel::eColorID__moz_mac_chrome_inactive
,
956 eCSSKeyword__moz_mac_defaultbuttontext
, LookAndFeel::eColorID__moz_mac_defaultbuttontext
,
957 eCSSKeyword__moz_mac_focusring
, LookAndFeel::eColorID__moz_mac_focusring
,
958 eCSSKeyword__moz_mac_menuselect
, LookAndFeel::eColorID__moz_mac_menuselect
,
959 eCSSKeyword__moz_mac_menushadow
, LookAndFeel::eColorID__moz_mac_menushadow
,
960 eCSSKeyword__moz_mac_menutextdisable
, LookAndFeel::eColorID__moz_mac_menutextdisable
,
961 eCSSKeyword__moz_mac_menutextselect
, LookAndFeel::eColorID__moz_mac_menutextselect
,
962 eCSSKeyword__moz_mac_disabledtoolbartext
, LookAndFeel::eColorID__moz_mac_disabledtoolbartext
,
963 eCSSKeyword__moz_mac_secondaryhighlight
, LookAndFeel::eColorID__moz_mac_secondaryhighlight
,
964 eCSSKeyword__moz_menuhover
, LookAndFeel::eColorID__moz_menuhover
,
965 eCSSKeyword__moz_menuhovertext
, LookAndFeel::eColorID__moz_menuhovertext
,
966 eCSSKeyword__moz_menubartext
, LookAndFeel::eColorID__moz_menubartext
,
967 eCSSKeyword__moz_menubarhovertext
, LookAndFeel::eColorID__moz_menubarhovertext
,
968 eCSSKeyword__moz_oddtreerow
, LookAndFeel::eColorID__moz_oddtreerow
,
969 eCSSKeyword__moz_visitedhyperlinktext
, NS_COLOR_MOZ_VISITEDHYPERLINKTEXT
,
970 eCSSKeyword_currentcolor
, NS_COLOR_CURRENTCOLOR
,
971 eCSSKeyword__moz_win_mediatext
, LookAndFeel::eColorID__moz_win_mediatext
,
972 eCSSKeyword__moz_win_communicationstext
, LookAndFeel::eColorID__moz_win_communicationstext
,
973 eCSSKeyword__moz_nativehyperlinktext
, LookAndFeel::eColorID__moz_nativehyperlinktext
,
974 eCSSKeyword__moz_comboboxtext
, LookAndFeel::eColorID__moz_comboboxtext
,
975 eCSSKeyword__moz_combobox
, LookAndFeel::eColorID__moz_combobox
,
976 eCSSKeyword_UNKNOWN
,-1
979 const KTableValue
nsCSSProps::kContentKTable
[] = {
980 eCSSKeyword_open_quote
, NS_STYLE_CONTENT_OPEN_QUOTE
,
981 eCSSKeyword_close_quote
, NS_STYLE_CONTENT_CLOSE_QUOTE
,
982 eCSSKeyword_no_open_quote
, NS_STYLE_CONTENT_NO_OPEN_QUOTE
,
983 eCSSKeyword_no_close_quote
, NS_STYLE_CONTENT_NO_CLOSE_QUOTE
,
984 eCSSKeyword__moz_alt_content
, NS_STYLE_CONTENT_ALT_CONTENT
,
985 eCSSKeyword_UNKNOWN
,-1
988 const KTableValue
nsCSSProps::kControlCharacterVisibilityKTable
[] = {
989 eCSSKeyword_hidden
, NS_STYLE_CONTROL_CHARACTER_VISIBILITY_HIDDEN
,
990 eCSSKeyword_visible
, NS_STYLE_CONTROL_CHARACTER_VISIBILITY_VISIBLE
,
991 eCSSKeyword_UNKNOWN
,-1
994 const KTableValue
nsCSSProps::kCounterRangeKTable
[] = {
995 eCSSKeyword_infinite
, NS_STYLE_COUNTER_RANGE_INFINITE
,
996 eCSSKeyword_UNKNOWN
, -1
999 const KTableValue
nsCSSProps::kCounterSpeakAsKTable
[] = {
1000 eCSSKeyword_bullets
, NS_STYLE_COUNTER_SPEAKAS_BULLETS
,
1001 eCSSKeyword_numbers
, NS_STYLE_COUNTER_SPEAKAS_NUMBERS
,
1002 eCSSKeyword_words
, NS_STYLE_COUNTER_SPEAKAS_WORDS
,
1003 eCSSKeyword_spell_out
, NS_STYLE_COUNTER_SPEAKAS_SPELL_OUT
,
1004 eCSSKeyword_UNKNOWN
, -1
1007 const KTableValue
nsCSSProps::kCounterSymbolsSystemKTable
[] = {
1008 eCSSKeyword_cyclic
, NS_STYLE_COUNTER_SYSTEM_CYCLIC
,
1009 eCSSKeyword_numeric
, NS_STYLE_COUNTER_SYSTEM_NUMERIC
,
1010 eCSSKeyword_alphabetic
, NS_STYLE_COUNTER_SYSTEM_ALPHABETIC
,
1011 eCSSKeyword_symbolic
, NS_STYLE_COUNTER_SYSTEM_SYMBOLIC
,
1012 eCSSKeyword_fixed
, NS_STYLE_COUNTER_SYSTEM_FIXED
,
1013 eCSSKeyword_UNKNOWN
, -1
1016 const KTableValue
nsCSSProps::kCounterSystemKTable
[] = {
1017 eCSSKeyword_cyclic
, NS_STYLE_COUNTER_SYSTEM_CYCLIC
,
1018 eCSSKeyword_numeric
, NS_STYLE_COUNTER_SYSTEM_NUMERIC
,
1019 eCSSKeyword_alphabetic
, NS_STYLE_COUNTER_SYSTEM_ALPHABETIC
,
1020 eCSSKeyword_symbolic
, NS_STYLE_COUNTER_SYSTEM_SYMBOLIC
,
1021 eCSSKeyword_additive
, NS_STYLE_COUNTER_SYSTEM_ADDITIVE
,
1022 eCSSKeyword_fixed
, NS_STYLE_COUNTER_SYSTEM_FIXED
,
1023 eCSSKeyword_extends
, NS_STYLE_COUNTER_SYSTEM_EXTENDS
,
1024 eCSSKeyword_UNKNOWN
, -1
1027 const KTableValue
nsCSSProps::kCursorKTable
[] = {
1029 eCSSKeyword_auto
, NS_STYLE_CURSOR_AUTO
,
1030 eCSSKeyword_crosshair
, NS_STYLE_CURSOR_CROSSHAIR
,
1031 eCSSKeyword_default
, NS_STYLE_CURSOR_DEFAULT
,
1032 eCSSKeyword_pointer
, NS_STYLE_CURSOR_POINTER
,
1033 eCSSKeyword_move
, NS_STYLE_CURSOR_MOVE
,
1034 eCSSKeyword_e_resize
, NS_STYLE_CURSOR_E_RESIZE
,
1035 eCSSKeyword_ne_resize
, NS_STYLE_CURSOR_NE_RESIZE
,
1036 eCSSKeyword_nw_resize
, NS_STYLE_CURSOR_NW_RESIZE
,
1037 eCSSKeyword_n_resize
, NS_STYLE_CURSOR_N_RESIZE
,
1038 eCSSKeyword_se_resize
, NS_STYLE_CURSOR_SE_RESIZE
,
1039 eCSSKeyword_sw_resize
, NS_STYLE_CURSOR_SW_RESIZE
,
1040 eCSSKeyword_s_resize
, NS_STYLE_CURSOR_S_RESIZE
,
1041 eCSSKeyword_w_resize
, NS_STYLE_CURSOR_W_RESIZE
,
1042 eCSSKeyword_text
, NS_STYLE_CURSOR_TEXT
,
1043 eCSSKeyword_wait
, NS_STYLE_CURSOR_WAIT
,
1044 eCSSKeyword_help
, NS_STYLE_CURSOR_HELP
,
1046 eCSSKeyword_progress
, NS_STYLE_CURSOR_SPINNING
,
1047 // CSS3 basic user interface module
1048 eCSSKeyword_copy
, NS_STYLE_CURSOR_COPY
,
1049 eCSSKeyword_alias
, NS_STYLE_CURSOR_ALIAS
,
1050 eCSSKeyword_context_menu
, NS_STYLE_CURSOR_CONTEXT_MENU
,
1051 eCSSKeyword_cell
, NS_STYLE_CURSOR_CELL
,
1052 eCSSKeyword_not_allowed
, NS_STYLE_CURSOR_NOT_ALLOWED
,
1053 eCSSKeyword_col_resize
, NS_STYLE_CURSOR_COL_RESIZE
,
1054 eCSSKeyword_row_resize
, NS_STYLE_CURSOR_ROW_RESIZE
,
1055 eCSSKeyword_no_drop
, NS_STYLE_CURSOR_NO_DROP
,
1056 eCSSKeyword_vertical_text
, NS_STYLE_CURSOR_VERTICAL_TEXT
,
1057 eCSSKeyword_all_scroll
, NS_STYLE_CURSOR_ALL_SCROLL
,
1058 eCSSKeyword_nesw_resize
, NS_STYLE_CURSOR_NESW_RESIZE
,
1059 eCSSKeyword_nwse_resize
, NS_STYLE_CURSOR_NWSE_RESIZE
,
1060 eCSSKeyword_ns_resize
, NS_STYLE_CURSOR_NS_RESIZE
,
1061 eCSSKeyword_ew_resize
, NS_STYLE_CURSOR_EW_RESIZE
,
1062 eCSSKeyword_none
, NS_STYLE_CURSOR_NONE
,
1063 eCSSKeyword_grab
, NS_STYLE_CURSOR_GRAB
,
1064 eCSSKeyword_grabbing
, NS_STYLE_CURSOR_GRABBING
,
1065 eCSSKeyword_zoom_in
, NS_STYLE_CURSOR_ZOOM_IN
,
1066 eCSSKeyword_zoom_out
, NS_STYLE_CURSOR_ZOOM_OUT
,
1067 // -moz- prefixed vendor specific
1068 eCSSKeyword__moz_grab
, NS_STYLE_CURSOR_GRAB
,
1069 eCSSKeyword__moz_grabbing
, NS_STYLE_CURSOR_GRABBING
,
1070 eCSSKeyword__moz_zoom_in
, NS_STYLE_CURSOR_ZOOM_IN
,
1071 eCSSKeyword__moz_zoom_out
, NS_STYLE_CURSOR_ZOOM_OUT
,
1072 eCSSKeyword_UNKNOWN
,-1
1075 const KTableValue
nsCSSProps::kDirectionKTable
[] = {
1076 eCSSKeyword_ltr
, NS_STYLE_DIRECTION_LTR
,
1077 eCSSKeyword_rtl
, NS_STYLE_DIRECTION_RTL
,
1078 eCSSKeyword_UNKNOWN
,-1
1081 KTableValue
nsCSSProps::kDisplayKTable
[] = {
1082 eCSSKeyword_none
, NS_STYLE_DISPLAY_NONE
,
1083 eCSSKeyword_inline
, NS_STYLE_DISPLAY_INLINE
,
1084 eCSSKeyword_block
, NS_STYLE_DISPLAY_BLOCK
,
1085 eCSSKeyword_inline_block
, NS_STYLE_DISPLAY_INLINE_BLOCK
,
1086 eCSSKeyword_list_item
, NS_STYLE_DISPLAY_LIST_ITEM
,
1087 eCSSKeyword_table
, NS_STYLE_DISPLAY_TABLE
,
1088 eCSSKeyword_inline_table
, NS_STYLE_DISPLAY_INLINE_TABLE
,
1089 eCSSKeyword_table_row_group
, NS_STYLE_DISPLAY_TABLE_ROW_GROUP
,
1090 eCSSKeyword_table_header_group
, NS_STYLE_DISPLAY_TABLE_HEADER_GROUP
,
1091 eCSSKeyword_table_footer_group
, NS_STYLE_DISPLAY_TABLE_FOOTER_GROUP
,
1092 eCSSKeyword_table_row
, NS_STYLE_DISPLAY_TABLE_ROW
,
1093 eCSSKeyword_table_column_group
, NS_STYLE_DISPLAY_TABLE_COLUMN_GROUP
,
1094 eCSSKeyword_table_column
, NS_STYLE_DISPLAY_TABLE_COLUMN
,
1095 eCSSKeyword_table_cell
, NS_STYLE_DISPLAY_TABLE_CELL
,
1096 eCSSKeyword_table_caption
, NS_STYLE_DISPLAY_TABLE_CAPTION
,
1097 // Make sure this is kept in sync with the code in
1098 // nsCSSFrameConstructor::ConstructXULFrame
1099 eCSSKeyword__moz_box
, NS_STYLE_DISPLAY_BOX
,
1100 eCSSKeyword__moz_inline_box
, NS_STYLE_DISPLAY_INLINE_BOX
,
1102 eCSSKeyword__moz_grid
, NS_STYLE_DISPLAY_XUL_GRID
,
1103 eCSSKeyword__moz_inline_grid
, NS_STYLE_DISPLAY_INLINE_XUL_GRID
,
1104 eCSSKeyword__moz_grid_group
, NS_STYLE_DISPLAY_XUL_GRID_GROUP
,
1105 eCSSKeyword__moz_grid_line
, NS_STYLE_DISPLAY_XUL_GRID_LINE
,
1106 eCSSKeyword__moz_stack
, NS_STYLE_DISPLAY_STACK
,
1107 eCSSKeyword__moz_inline_stack
, NS_STYLE_DISPLAY_INLINE_STACK
,
1108 eCSSKeyword__moz_deck
, NS_STYLE_DISPLAY_DECK
,
1109 eCSSKeyword__moz_popup
, NS_STYLE_DISPLAY_POPUP
,
1110 eCSSKeyword__moz_groupbox
, NS_STYLE_DISPLAY_GROUPBOX
,
1112 eCSSKeyword_flex
, NS_STYLE_DISPLAY_FLEX
,
1113 eCSSKeyword_inline_flex
, NS_STYLE_DISPLAY_INLINE_FLEX
,
1114 // The next two entries are controlled by the layout.css.grid.enabled pref.
1115 eCSSKeyword_grid
, NS_STYLE_DISPLAY_GRID
,
1116 eCSSKeyword_inline_grid
, NS_STYLE_DISPLAY_INLINE_GRID
,
1117 // The next five entries are controlled by the layout.css.ruby.enabled pref.
1118 eCSSKeyword_ruby
, NS_STYLE_DISPLAY_RUBY
,
1119 eCSSKeyword_ruby_base
, NS_STYLE_DISPLAY_RUBY_BASE
,
1120 eCSSKeyword_ruby_base_container
, NS_STYLE_DISPLAY_RUBY_BASE_CONTAINER
,
1121 eCSSKeyword_ruby_text
, NS_STYLE_DISPLAY_RUBY_TEXT
,
1122 eCSSKeyword_ruby_text_container
, NS_STYLE_DISPLAY_RUBY_TEXT_CONTAINER
,
1123 // The next entry is controlled by the layout.css.display-contents.enabled
1125 eCSSKeyword_contents
, NS_STYLE_DISPLAY_CONTENTS
,
1126 eCSSKeyword_UNKNOWN
,-1
1129 const KTableValue
nsCSSProps::kEmptyCellsKTable
[] = {
1130 eCSSKeyword_show
, NS_STYLE_TABLE_EMPTY_CELLS_SHOW
,
1131 eCSSKeyword_hide
, NS_STYLE_TABLE_EMPTY_CELLS_HIDE
,
1132 eCSSKeyword_UNKNOWN
,-1
1135 const KTableValue
nsCSSProps::kAlignContentKTable
[] = {
1136 eCSSKeyword_flex_start
, NS_STYLE_ALIGN_CONTENT_FLEX_START
,
1137 eCSSKeyword_flex_end
, NS_STYLE_ALIGN_CONTENT_FLEX_END
,
1138 eCSSKeyword_center
, NS_STYLE_ALIGN_CONTENT_CENTER
,
1139 eCSSKeyword_space_between
, NS_STYLE_ALIGN_CONTENT_SPACE_BETWEEN
,
1140 eCSSKeyword_space_around
, NS_STYLE_ALIGN_CONTENT_SPACE_AROUND
,
1141 eCSSKeyword_stretch
, NS_STYLE_ALIGN_CONTENT_STRETCH
,
1142 eCSSKeyword_UNKNOWN
,-1
1145 const KTableValue
nsCSSProps::kAlignItemsKTable
[] = {
1146 eCSSKeyword_flex_start
, NS_STYLE_ALIGN_ITEMS_FLEX_START
,
1147 eCSSKeyword_flex_end
, NS_STYLE_ALIGN_ITEMS_FLEX_END
,
1148 eCSSKeyword_center
, NS_STYLE_ALIGN_ITEMS_CENTER
,
1149 eCSSKeyword_baseline
, NS_STYLE_ALIGN_ITEMS_BASELINE
,
1150 eCSSKeyword_stretch
, NS_STYLE_ALIGN_ITEMS_STRETCH
,
1151 eCSSKeyword_UNKNOWN
,-1
1154 // Note: 'align-self' takes the same keywords as 'align-items', plus 'auto'.
1155 const KTableValue
nsCSSProps::kAlignSelfKTable
[] = {
1156 eCSSKeyword_flex_start
, NS_STYLE_ALIGN_ITEMS_FLEX_START
,
1157 eCSSKeyword_flex_end
, NS_STYLE_ALIGN_ITEMS_FLEX_END
,
1158 eCSSKeyword_center
, NS_STYLE_ALIGN_ITEMS_CENTER
,
1159 eCSSKeyword_baseline
, NS_STYLE_ALIGN_ITEMS_BASELINE
,
1160 eCSSKeyword_stretch
, NS_STYLE_ALIGN_ITEMS_STRETCH
,
1161 eCSSKeyword_auto
, NS_STYLE_ALIGN_SELF_AUTO
,
1162 eCSSKeyword_UNKNOWN
,-1
1165 const KTableValue
nsCSSProps::kFlexDirectionKTable
[] = {
1166 eCSSKeyword_row
, NS_STYLE_FLEX_DIRECTION_ROW
,
1167 eCSSKeyword_row_reverse
, NS_STYLE_FLEX_DIRECTION_ROW_REVERSE
,
1168 eCSSKeyword_column
, NS_STYLE_FLEX_DIRECTION_COLUMN
,
1169 eCSSKeyword_column_reverse
, NS_STYLE_FLEX_DIRECTION_COLUMN_REVERSE
,
1170 eCSSKeyword_UNKNOWN
,-1
1173 const KTableValue
nsCSSProps::kFlexWrapKTable
[] = {
1174 eCSSKeyword_nowrap
, NS_STYLE_FLEX_WRAP_NOWRAP
,
1175 eCSSKeyword_wrap
, NS_STYLE_FLEX_WRAP_WRAP
,
1176 eCSSKeyword_wrap_reverse
, NS_STYLE_FLEX_WRAP_WRAP_REVERSE
,
1177 eCSSKeyword_UNKNOWN
,-1
1180 const KTableValue
nsCSSProps::kHyphensKTable
[] = {
1181 eCSSKeyword_none
, NS_STYLE_HYPHENS_NONE
,
1182 eCSSKeyword_manual
, NS_STYLE_HYPHENS_MANUAL
,
1183 eCSSKeyword_auto
, NS_STYLE_HYPHENS_AUTO
,
1184 eCSSKeyword_UNKNOWN
,-1
1187 const KTableValue
nsCSSProps::kJustifyContentKTable
[] = {
1188 eCSSKeyword_flex_start
, NS_STYLE_JUSTIFY_CONTENT_FLEX_START
,
1189 eCSSKeyword_flex_end
, NS_STYLE_JUSTIFY_CONTENT_FLEX_END
,
1190 eCSSKeyword_center
, NS_STYLE_JUSTIFY_CONTENT_CENTER
,
1191 eCSSKeyword_space_between
, NS_STYLE_JUSTIFY_CONTENT_SPACE_BETWEEN
,
1192 eCSSKeyword_space_around
, NS_STYLE_JUSTIFY_CONTENT_SPACE_AROUND
,
1193 eCSSKeyword_UNKNOWN
,-1
1196 const KTableValue
nsCSSProps::kFloatKTable
[] = {
1197 eCSSKeyword_none
, NS_STYLE_FLOAT_NONE
,
1198 eCSSKeyword_left
, NS_STYLE_FLOAT_LEFT
,
1199 eCSSKeyword_right
, NS_STYLE_FLOAT_RIGHT
,
1200 eCSSKeyword_UNKNOWN
,-1
1203 const KTableValue
nsCSSProps::kFloatEdgeKTable
[] = {
1204 eCSSKeyword_content_box
, NS_STYLE_FLOAT_EDGE_CONTENT
,
1205 eCSSKeyword_margin_box
, NS_STYLE_FLOAT_EDGE_MARGIN
,
1206 eCSSKeyword_UNKNOWN
,-1
1209 const KTableValue
nsCSSProps::kFontKTable
[] = {
1211 eCSSKeyword_caption
, NS_STYLE_FONT_CAPTION
,
1212 eCSSKeyword_icon
, NS_STYLE_FONT_ICON
,
1213 eCSSKeyword_menu
, NS_STYLE_FONT_MENU
,
1214 eCSSKeyword_message_box
, NS_STYLE_FONT_MESSAGE_BOX
,
1215 eCSSKeyword_small_caption
, NS_STYLE_FONT_SMALL_CAPTION
,
1216 eCSSKeyword_status_bar
, NS_STYLE_FONT_STATUS_BAR
,
1218 // Proposed for CSS3.
1219 eCSSKeyword__moz_window
, NS_STYLE_FONT_WINDOW
,
1220 eCSSKeyword__moz_document
, NS_STYLE_FONT_DOCUMENT
,
1221 eCSSKeyword__moz_workspace
, NS_STYLE_FONT_WORKSPACE
,
1222 eCSSKeyword__moz_desktop
, NS_STYLE_FONT_DESKTOP
,
1223 eCSSKeyword__moz_info
, NS_STYLE_FONT_INFO
,
1224 eCSSKeyword__moz_dialog
, NS_STYLE_FONT_DIALOG
,
1225 eCSSKeyword__moz_button
, NS_STYLE_FONT_BUTTON
,
1226 eCSSKeyword__moz_pull_down_menu
, NS_STYLE_FONT_PULL_DOWN_MENU
,
1227 eCSSKeyword__moz_list
, NS_STYLE_FONT_LIST
,
1228 eCSSKeyword__moz_field
, NS_STYLE_FONT_FIELD
,
1229 eCSSKeyword_UNKNOWN
,-1
1232 const KTableValue
nsCSSProps::kFontKerningKTable
[] = {
1233 eCSSKeyword_auto
, NS_FONT_KERNING_AUTO
,
1234 eCSSKeyword_none
, NS_FONT_KERNING_NONE
,
1235 eCSSKeyword_normal
, NS_FONT_KERNING_NORMAL
,
1236 eCSSKeyword_UNKNOWN
,-1
1239 const KTableValue
nsCSSProps::kFontSizeKTable
[] = {
1240 eCSSKeyword_xx_small
, NS_STYLE_FONT_SIZE_XXSMALL
,
1241 eCSSKeyword_x_small
, NS_STYLE_FONT_SIZE_XSMALL
,
1242 eCSSKeyword_small
, NS_STYLE_FONT_SIZE_SMALL
,
1243 eCSSKeyword_medium
, NS_STYLE_FONT_SIZE_MEDIUM
,
1244 eCSSKeyword_large
, NS_STYLE_FONT_SIZE_LARGE
,
1245 eCSSKeyword_x_large
, NS_STYLE_FONT_SIZE_XLARGE
,
1246 eCSSKeyword_xx_large
, NS_STYLE_FONT_SIZE_XXLARGE
,
1247 eCSSKeyword_larger
, NS_STYLE_FONT_SIZE_LARGER
,
1248 eCSSKeyword_smaller
, NS_STYLE_FONT_SIZE_SMALLER
,
1249 eCSSKeyword_UNKNOWN
,-1
1252 const KTableValue
nsCSSProps::kFontSmoothingKTable
[] = {
1253 eCSSKeyword_auto
, NS_FONT_SMOOTHING_AUTO
,
1254 eCSSKeyword_grayscale
, NS_FONT_SMOOTHING_GRAYSCALE
,
1255 eCSSKeyword_UNKNOWN
,-1
1258 const KTableValue
nsCSSProps::kFontStretchKTable
[] = {
1259 eCSSKeyword_ultra_condensed
, NS_STYLE_FONT_STRETCH_ULTRA_CONDENSED
,
1260 eCSSKeyword_extra_condensed
, NS_STYLE_FONT_STRETCH_EXTRA_CONDENSED
,
1261 eCSSKeyword_condensed
, NS_STYLE_FONT_STRETCH_CONDENSED
,
1262 eCSSKeyword_semi_condensed
, NS_STYLE_FONT_STRETCH_SEMI_CONDENSED
,
1263 eCSSKeyword_normal
, NS_STYLE_FONT_STRETCH_NORMAL
,
1264 eCSSKeyword_semi_expanded
, NS_STYLE_FONT_STRETCH_SEMI_EXPANDED
,
1265 eCSSKeyword_expanded
, NS_STYLE_FONT_STRETCH_EXPANDED
,
1266 eCSSKeyword_extra_expanded
, NS_STYLE_FONT_STRETCH_EXTRA_EXPANDED
,
1267 eCSSKeyword_ultra_expanded
, NS_STYLE_FONT_STRETCH_ULTRA_EXPANDED
,
1268 eCSSKeyword_UNKNOWN
,-1
1271 const KTableValue
nsCSSProps::kFontStyleKTable
[] = {
1272 eCSSKeyword_normal
, NS_STYLE_FONT_STYLE_NORMAL
,
1273 eCSSKeyword_italic
, NS_STYLE_FONT_STYLE_ITALIC
,
1274 eCSSKeyword_oblique
, NS_STYLE_FONT_STYLE_OBLIQUE
,
1275 eCSSKeyword_UNKNOWN
,-1
1278 const KTableValue
nsCSSProps::kFontSynthesisKTable
[] = {
1279 eCSSKeyword_weight
, NS_FONT_SYNTHESIS_WEIGHT
,
1280 eCSSKeyword_style
, NS_FONT_SYNTHESIS_STYLE
,
1281 eCSSKeyword_UNKNOWN
,-1
1284 const KTableValue
nsCSSProps::kFontVariantAlternatesKTable
[] = {
1285 eCSSKeyword_historical_forms
, NS_FONT_VARIANT_ALTERNATES_HISTORICAL
,
1286 eCSSKeyword_UNKNOWN
,-1
1289 const KTableValue
nsCSSProps::kFontVariantAlternatesFuncsKTable
[] = {
1290 eCSSKeyword_stylistic
, NS_FONT_VARIANT_ALTERNATES_STYLISTIC
,
1291 eCSSKeyword_styleset
, NS_FONT_VARIANT_ALTERNATES_STYLESET
,
1292 eCSSKeyword_character_variant
, NS_FONT_VARIANT_ALTERNATES_CHARACTER_VARIANT
,
1293 eCSSKeyword_swash
, NS_FONT_VARIANT_ALTERNATES_SWASH
,
1294 eCSSKeyword_ornaments
, NS_FONT_VARIANT_ALTERNATES_ORNAMENTS
,
1295 eCSSKeyword_annotation
, NS_FONT_VARIANT_ALTERNATES_ANNOTATION
,
1296 eCSSKeyword_UNKNOWN
,-1
1299 const KTableValue
nsCSSProps::kFontVariantCapsKTable
[] = {
1300 eCSSKeyword_small_caps
, NS_FONT_VARIANT_CAPS_SMALLCAPS
,
1301 eCSSKeyword_all_small_caps
, NS_FONT_VARIANT_CAPS_ALLSMALL
,
1302 eCSSKeyword_petite_caps
, NS_FONT_VARIANT_CAPS_PETITECAPS
,
1303 eCSSKeyword_all_petite_caps
, NS_FONT_VARIANT_CAPS_ALLPETITE
,
1304 eCSSKeyword_titling_caps
, NS_FONT_VARIANT_CAPS_TITLING
,
1305 eCSSKeyword_unicase
, NS_FONT_VARIANT_CAPS_UNICASE
,
1306 eCSSKeyword_UNKNOWN
,-1
1309 const KTableValue
nsCSSProps::kFontVariantEastAsianKTable
[] = {
1310 eCSSKeyword_jis78
, NS_FONT_VARIANT_EAST_ASIAN_JIS78
,
1311 eCSSKeyword_jis83
, NS_FONT_VARIANT_EAST_ASIAN_JIS83
,
1312 eCSSKeyword_jis90
, NS_FONT_VARIANT_EAST_ASIAN_JIS90
,
1313 eCSSKeyword_jis04
, NS_FONT_VARIANT_EAST_ASIAN_JIS04
,
1314 eCSSKeyword_simplified
, NS_FONT_VARIANT_EAST_ASIAN_SIMPLIFIED
,
1315 eCSSKeyword_traditional
, NS_FONT_VARIANT_EAST_ASIAN_TRADITIONAL
,
1316 eCSSKeyword_full_width
, NS_FONT_VARIANT_EAST_ASIAN_FULL_WIDTH
,
1317 eCSSKeyword_proportional_width
, NS_FONT_VARIANT_EAST_ASIAN_PROP_WIDTH
,
1318 eCSSKeyword_ruby
, NS_FONT_VARIANT_EAST_ASIAN_RUBY
,
1319 eCSSKeyword_UNKNOWN
,-1
1322 const KTableValue
nsCSSProps::kFontVariantLigaturesKTable
[] = {
1323 eCSSKeyword_common_ligatures
, NS_FONT_VARIANT_LIGATURES_COMMON
,
1324 eCSSKeyword_no_common_ligatures
, NS_FONT_VARIANT_LIGATURES_NO_COMMON
,
1325 eCSSKeyword_discretionary_ligatures
, NS_FONT_VARIANT_LIGATURES_DISCRETIONARY
,
1326 eCSSKeyword_no_discretionary_ligatures
, NS_FONT_VARIANT_LIGATURES_NO_DISCRETIONARY
,
1327 eCSSKeyword_historical_ligatures
, NS_FONT_VARIANT_LIGATURES_HISTORICAL
,
1328 eCSSKeyword_no_historical_ligatures
, NS_FONT_VARIANT_LIGATURES_NO_HISTORICAL
,
1329 eCSSKeyword_contextual
, NS_FONT_VARIANT_LIGATURES_CONTEXTUAL
,
1330 eCSSKeyword_no_contextual
, NS_FONT_VARIANT_LIGATURES_NO_CONTEXTUAL
,
1331 eCSSKeyword_UNKNOWN
,-1
1334 const KTableValue
nsCSSProps::kFontVariantNumericKTable
[] = {
1335 eCSSKeyword_lining_nums
, NS_FONT_VARIANT_NUMERIC_LINING
,
1336 eCSSKeyword_oldstyle_nums
, NS_FONT_VARIANT_NUMERIC_OLDSTYLE
,
1337 eCSSKeyword_proportional_nums
, NS_FONT_VARIANT_NUMERIC_PROPORTIONAL
,
1338 eCSSKeyword_tabular_nums
, NS_FONT_VARIANT_NUMERIC_TABULAR
,
1339 eCSSKeyword_diagonal_fractions
, NS_FONT_VARIANT_NUMERIC_DIAGONAL_FRACTIONS
,
1340 eCSSKeyword_stacked_fractions
, NS_FONT_VARIANT_NUMERIC_STACKED_FRACTIONS
,
1341 eCSSKeyword_slashed_zero
, NS_FONT_VARIANT_NUMERIC_SLASHZERO
,
1342 eCSSKeyword_ordinal
, NS_FONT_VARIANT_NUMERIC_ORDINAL
,
1343 eCSSKeyword_UNKNOWN
,-1
1346 const KTableValue
nsCSSProps::kFontVariantPositionKTable
[] = {
1347 eCSSKeyword_super
, NS_FONT_VARIANT_POSITION_SUPER
,
1348 eCSSKeyword_sub
, NS_FONT_VARIANT_POSITION_SUB
,
1349 eCSSKeyword_UNKNOWN
,-1
1352 const KTableValue
nsCSSProps::kFontWeightKTable
[] = {
1353 eCSSKeyword_normal
, NS_STYLE_FONT_WEIGHT_NORMAL
,
1354 eCSSKeyword_bold
, NS_STYLE_FONT_WEIGHT_BOLD
,
1355 eCSSKeyword_bolder
, NS_STYLE_FONT_WEIGHT_BOLDER
,
1356 eCSSKeyword_lighter
, NS_STYLE_FONT_WEIGHT_LIGHTER
,
1357 eCSSKeyword_UNKNOWN
,-1
1360 const KTableValue
nsCSSProps::kGridAutoFlowKTable
[] = {
1361 eCSSKeyword_row
, NS_STYLE_GRID_AUTO_FLOW_ROW
,
1362 eCSSKeyword_column
, NS_STYLE_GRID_AUTO_FLOW_COLUMN
,
1363 eCSSKeyword_dense
, NS_STYLE_GRID_AUTO_FLOW_DENSE
,
1364 eCSSKeyword_UNKNOWN
,-1
1367 const KTableValue
nsCSSProps::kGridTrackBreadthKTable
[] = {
1368 eCSSKeyword_min_content
, NS_STYLE_GRID_TRACK_BREADTH_MIN_CONTENT
,
1369 eCSSKeyword_max_content
, NS_STYLE_GRID_TRACK_BREADTH_MAX_CONTENT
,
1370 eCSSKeyword_UNKNOWN
,-1
1373 const KTableValue
nsCSSProps::kImageOrientationKTable
[] = {
1374 eCSSKeyword_flip
, NS_STYLE_IMAGE_ORIENTATION_FLIP
,
1375 eCSSKeyword_from_image
, NS_STYLE_IMAGE_ORIENTATION_FROM_IMAGE
,
1376 eCSSKeyword_UNKNOWN
,-1
1379 const KTableValue
nsCSSProps::kImageOrientationFlipKTable
[] = {
1380 eCSSKeyword_flip
, NS_STYLE_IMAGE_ORIENTATION_FLIP
,
1381 eCSSKeyword_UNKNOWN
,-1
1384 const KTableValue
nsCSSProps::kIsolationKTable
[] = {
1385 eCSSKeyword_auto
, NS_STYLE_ISOLATION_AUTO
,
1386 eCSSKeyword_isolate
, NS_STYLE_ISOLATION_ISOLATE
,
1387 eCSSKeyword_UNKNOWN
,-1
1390 const KTableValue
nsCSSProps::kIMEModeKTable
[] = {
1391 eCSSKeyword_normal
, NS_STYLE_IME_MODE_NORMAL
,
1392 eCSSKeyword_auto
, NS_STYLE_IME_MODE_AUTO
,
1393 eCSSKeyword_active
, NS_STYLE_IME_MODE_ACTIVE
,
1394 eCSSKeyword_disabled
, NS_STYLE_IME_MODE_DISABLED
,
1395 eCSSKeyword_inactive
, NS_STYLE_IME_MODE_INACTIVE
,
1396 eCSSKeyword_UNKNOWN
,-1
1399 const KTableValue
nsCSSProps::kLineHeightKTable
[] = {
1400 // -moz- prefixed, intended for internal use for single-line controls
1401 eCSSKeyword__moz_block_height
, NS_STYLE_LINE_HEIGHT_BLOCK_HEIGHT
,
1402 eCSSKeyword_UNKNOWN
,-1
1405 const KTableValue
nsCSSProps::kListStylePositionKTable
[] = {
1406 eCSSKeyword_inside
, NS_STYLE_LIST_STYLE_POSITION_INSIDE
,
1407 eCSSKeyword_outside
, NS_STYLE_LIST_STYLE_POSITION_OUTSIDE
,
1408 eCSSKeyword_UNKNOWN
,-1
1411 const KTableValue
nsCSSProps::kListStyleKTable
[] = {
1412 // none and decimal are not redefinable, so they should not be moved.
1413 eCSSKeyword_none
, NS_STYLE_LIST_STYLE_NONE
,
1414 eCSSKeyword_decimal
, NS_STYLE_LIST_STYLE_DECIMAL
,
1415 // the following graphic styles are processed in a different way.
1416 eCSSKeyword_disc
, NS_STYLE_LIST_STYLE_DISC
,
1417 eCSSKeyword_circle
, NS_STYLE_LIST_STYLE_CIRCLE
,
1418 eCSSKeyword_square
, NS_STYLE_LIST_STYLE_SQUARE
,
1419 eCSSKeyword_disclosure_closed
, NS_STYLE_LIST_STYLE_DISCLOSURE_CLOSED
,
1420 eCSSKeyword_disclosure_open
, NS_STYLE_LIST_STYLE_DISCLOSURE_OPEN
,
1421 // the following counter styles require specific algorithms to generate.
1422 eCSSKeyword_hebrew
, NS_STYLE_LIST_STYLE_HEBREW
,
1423 eCSSKeyword_japanese_informal
, NS_STYLE_LIST_STYLE_JAPANESE_INFORMAL
,
1424 eCSSKeyword_japanese_formal
, NS_STYLE_LIST_STYLE_JAPANESE_FORMAL
,
1425 eCSSKeyword_korean_hangul_formal
, NS_STYLE_LIST_STYLE_KOREAN_HANGUL_FORMAL
,
1426 eCSSKeyword_korean_hanja_informal
, NS_STYLE_LIST_STYLE_KOREAN_HANJA_INFORMAL
,
1427 eCSSKeyword_korean_hanja_formal
, NS_STYLE_LIST_STYLE_KOREAN_HANJA_FORMAL
,
1428 eCSSKeyword_simp_chinese_informal
, NS_STYLE_LIST_STYLE_SIMP_CHINESE_INFORMAL
,
1429 eCSSKeyword_simp_chinese_formal
, NS_STYLE_LIST_STYLE_SIMP_CHINESE_FORMAL
,
1430 eCSSKeyword_trad_chinese_informal
, NS_STYLE_LIST_STYLE_TRAD_CHINESE_INFORMAL
,
1431 eCSSKeyword_trad_chinese_formal
, NS_STYLE_LIST_STYLE_TRAD_CHINESE_FORMAL
,
1432 eCSSKeyword_ethiopic_numeric
, NS_STYLE_LIST_STYLE_ETHIOPIC_NUMERIC
,
1433 eCSSKeyword_UNKNOWN
,-1
1436 const KTableValue
nsCSSProps::kMathVariantKTable
[] = {
1437 eCSSKeyword_none
, NS_MATHML_MATHVARIANT_NONE
,
1438 eCSSKeyword_normal
, NS_MATHML_MATHVARIANT_NORMAL
,
1439 eCSSKeyword_bold
, NS_MATHML_MATHVARIANT_BOLD
,
1440 eCSSKeyword_italic
, NS_MATHML_MATHVARIANT_ITALIC
,
1441 eCSSKeyword_bold_italic
, NS_MATHML_MATHVARIANT_BOLD_ITALIC
,
1442 eCSSKeyword_script
, NS_MATHML_MATHVARIANT_SCRIPT
,
1443 eCSSKeyword_bold_script
, NS_MATHML_MATHVARIANT_BOLD_SCRIPT
,
1444 eCSSKeyword_fraktur
, NS_MATHML_MATHVARIANT_FRAKTUR
,
1445 eCSSKeyword_double_struck
, NS_MATHML_MATHVARIANT_DOUBLE_STRUCK
,
1446 eCSSKeyword_bold_fraktur
, NS_MATHML_MATHVARIANT_BOLD_FRAKTUR
,
1447 eCSSKeyword_sans_serif
, NS_MATHML_MATHVARIANT_SANS_SERIF
,
1448 eCSSKeyword_bold_sans_serif
, NS_MATHML_MATHVARIANT_BOLD_SANS_SERIF
,
1449 eCSSKeyword_sans_serif_italic
, NS_MATHML_MATHVARIANT_SANS_SERIF_ITALIC
,
1450 eCSSKeyword_sans_serif_bold_italic
, NS_MATHML_MATHVARIANT_SANS_SERIF_BOLD_ITALIC
,
1451 eCSSKeyword_monospace
, NS_MATHML_MATHVARIANT_MONOSPACE
,
1452 eCSSKeyword_initial
, NS_MATHML_MATHVARIANT_INITIAL
,
1453 eCSSKeyword_tailed
, NS_MATHML_MATHVARIANT_TAILED
,
1454 eCSSKeyword_looped
, NS_MATHML_MATHVARIANT_LOOPED
,
1455 eCSSKeyword_stretched
, NS_MATHML_MATHVARIANT_STRETCHED
,
1456 eCSSKeyword_UNKNOWN
,-1
1459 const KTableValue
nsCSSProps::kMathDisplayKTable
[] = {
1460 eCSSKeyword_inline
, NS_MATHML_DISPLAYSTYLE_INLINE
,
1461 eCSSKeyword_block
, NS_MATHML_DISPLAYSTYLE_BLOCK
,
1462 eCSSKeyword_UNKNOWN
,-1
1465 const KTableValue
nsCSSProps::kContextOpacityKTable
[] = {
1466 eCSSKeyword_context_fill_opacity
, NS_STYLE_CONTEXT_FILL_OPACITY
,
1467 eCSSKeyword_context_stroke_opacity
, NS_STYLE_CONTEXT_STROKE_OPACITY
,
1468 eCSSKeyword_UNKNOWN
,-1
1471 const KTableValue
nsCSSProps::kContextPatternKTable
[] = {
1472 eCSSKeyword_context_fill
, NS_COLOR_CONTEXT_FILL
,
1473 eCSSKeyword_context_stroke
, NS_COLOR_CONTEXT_STROKE
,
1474 eCSSKeyword_UNKNOWN
,-1
1477 const KTableValue
nsCSSProps::kObjectFitKTable
[] = {
1478 eCSSKeyword_fill
, NS_STYLE_OBJECT_FIT_FILL
,
1479 eCSSKeyword_contain
, NS_STYLE_OBJECT_FIT_CONTAIN
,
1480 eCSSKeyword_cover
, NS_STYLE_OBJECT_FIT_COVER
,
1481 eCSSKeyword_none
, NS_STYLE_OBJECT_FIT_NONE
,
1482 eCSSKeyword_scale_down
, NS_STYLE_OBJECT_FIT_SCALE_DOWN
,
1483 eCSSKeyword_UNKNOWN
, -1
1486 const KTableValue
nsCSSProps::kOrientKTable
[] = {
1487 eCSSKeyword_horizontal
, NS_STYLE_ORIENT_HORIZONTAL
,
1488 eCSSKeyword_vertical
, NS_STYLE_ORIENT_VERTICAL
,
1489 eCSSKeyword_auto
, NS_STYLE_ORIENT_AUTO
,
1490 eCSSKeyword_UNKNOWN
, -1
1493 // Same as kBorderStyleKTable except 'hidden'.
1494 const KTableValue
nsCSSProps::kOutlineStyleKTable
[] = {
1495 eCSSKeyword_none
, NS_STYLE_BORDER_STYLE_NONE
,
1496 eCSSKeyword_auto
, NS_STYLE_BORDER_STYLE_AUTO
,
1497 eCSSKeyword_dotted
, NS_STYLE_BORDER_STYLE_DOTTED
,
1498 eCSSKeyword_dashed
, NS_STYLE_BORDER_STYLE_DASHED
,
1499 eCSSKeyword_solid
, NS_STYLE_BORDER_STYLE_SOLID
,
1500 eCSSKeyword_double
, NS_STYLE_BORDER_STYLE_DOUBLE
,
1501 eCSSKeyword_groove
, NS_STYLE_BORDER_STYLE_GROOVE
,
1502 eCSSKeyword_ridge
, NS_STYLE_BORDER_STYLE_RIDGE
,
1503 eCSSKeyword_inset
, NS_STYLE_BORDER_STYLE_INSET
,
1504 eCSSKeyword_outset
, NS_STYLE_BORDER_STYLE_OUTSET
,
1505 eCSSKeyword_UNKNOWN
,-1
1508 const KTableValue
nsCSSProps::kOutlineColorKTable
[] = {
1509 eCSSKeyword__moz_use_text_color
, NS_STYLE_COLOR_MOZ_USE_TEXT_COLOR
,
1510 eCSSKeyword_UNKNOWN
,-1
1513 const KTableValue
nsCSSProps::kOverflowKTable
[] = {
1514 eCSSKeyword_auto
, NS_STYLE_OVERFLOW_AUTO
,
1515 eCSSKeyword_visible
, NS_STYLE_OVERFLOW_VISIBLE
,
1516 eCSSKeyword_hidden
, NS_STYLE_OVERFLOW_HIDDEN
,
1517 eCSSKeyword_scroll
, NS_STYLE_OVERFLOW_SCROLL
,
1519 eCSSKeyword__moz_scrollbars_none
, NS_STYLE_OVERFLOW_HIDDEN
,
1520 eCSSKeyword__moz_scrollbars_horizontal
, NS_STYLE_OVERFLOW_SCROLLBARS_HORIZONTAL
,
1521 eCSSKeyword__moz_scrollbars_vertical
, NS_STYLE_OVERFLOW_SCROLLBARS_VERTICAL
,
1522 eCSSKeyword__moz_hidden_unscrollable
, NS_STYLE_OVERFLOW_CLIP
,
1523 eCSSKeyword_UNKNOWN
,-1
1526 const KTableValue
nsCSSProps::kOverflowClipBoxKTable
[] = {
1527 eCSSKeyword_padding_box
, NS_STYLE_OVERFLOW_CLIP_BOX_PADDING_BOX
,
1528 eCSSKeyword_content_box
, NS_STYLE_OVERFLOW_CLIP_BOX_CONTENT_BOX
,
1529 eCSSKeyword_UNKNOWN
,-1
1532 const KTableValue
nsCSSProps::kOverflowSubKTable
[] = {
1533 eCSSKeyword_auto
, NS_STYLE_OVERFLOW_AUTO
,
1534 eCSSKeyword_visible
, NS_STYLE_OVERFLOW_VISIBLE
,
1535 eCSSKeyword_hidden
, NS_STYLE_OVERFLOW_HIDDEN
,
1536 eCSSKeyword_scroll
, NS_STYLE_OVERFLOW_SCROLL
,
1538 eCSSKeyword__moz_hidden_unscrollable
, NS_STYLE_OVERFLOW_CLIP
,
1539 eCSSKeyword_UNKNOWN
,-1
1542 const KTableValue
nsCSSProps::kPageBreakKTable
[] = {
1543 eCSSKeyword_auto
, NS_STYLE_PAGE_BREAK_AUTO
,
1544 eCSSKeyword_always
, NS_STYLE_PAGE_BREAK_ALWAYS
,
1545 eCSSKeyword_avoid
, NS_STYLE_PAGE_BREAK_AVOID
,
1546 eCSSKeyword_left
, NS_STYLE_PAGE_BREAK_LEFT
,
1547 eCSSKeyword_right
, NS_STYLE_PAGE_BREAK_RIGHT
,
1548 eCSSKeyword_UNKNOWN
,-1
1551 const KTableValue
nsCSSProps::kPageBreakInsideKTable
[] = {
1552 eCSSKeyword_auto
, NS_STYLE_PAGE_BREAK_AUTO
,
1553 eCSSKeyword_avoid
, NS_STYLE_PAGE_BREAK_AVOID
,
1554 eCSSKeyword_UNKNOWN
,-1
1557 const KTableValue
nsCSSProps::kPageMarksKTable
[] = {
1558 eCSSKeyword_none
, NS_STYLE_PAGE_MARKS_NONE
,
1559 eCSSKeyword_crop
, NS_STYLE_PAGE_MARKS_CROP
,
1560 eCSSKeyword_cross
, NS_STYLE_PAGE_MARKS_REGISTER
,
1561 eCSSKeyword_UNKNOWN
,-1
1564 const KTableValue
nsCSSProps::kPageSizeKTable
[] = {
1565 eCSSKeyword_landscape
, NS_STYLE_PAGE_SIZE_LANDSCAPE
,
1566 eCSSKeyword_portrait
, NS_STYLE_PAGE_SIZE_PORTRAIT
,
1567 eCSSKeyword_UNKNOWN
,-1
1570 const KTableValue
nsCSSProps::kPointerEventsKTable
[] = {
1571 eCSSKeyword_none
, NS_STYLE_POINTER_EVENTS_NONE
,
1572 eCSSKeyword_visiblepainted
, NS_STYLE_POINTER_EVENTS_VISIBLEPAINTED
,
1573 eCSSKeyword_visiblefill
, NS_STYLE_POINTER_EVENTS_VISIBLEFILL
,
1574 eCSSKeyword_visiblestroke
, NS_STYLE_POINTER_EVENTS_VISIBLESTROKE
,
1575 eCSSKeyword_visible
, NS_STYLE_POINTER_EVENTS_VISIBLE
,
1576 eCSSKeyword_painted
, NS_STYLE_POINTER_EVENTS_PAINTED
,
1577 eCSSKeyword_fill
, NS_STYLE_POINTER_EVENTS_FILL
,
1578 eCSSKeyword_stroke
, NS_STYLE_POINTER_EVENTS_STROKE
,
1579 eCSSKeyword_all
, NS_STYLE_POINTER_EVENTS_ALL
,
1580 eCSSKeyword_auto
, NS_STYLE_POINTER_EVENTS_AUTO
,
1581 eCSSKeyword_UNKNOWN
, -1
1584 KTableValue
nsCSSProps::kPositionKTable
[] = {
1585 eCSSKeyword_static
, NS_STYLE_POSITION_STATIC
,
1586 eCSSKeyword_relative
, NS_STYLE_POSITION_RELATIVE
,
1587 eCSSKeyword_absolute
, NS_STYLE_POSITION_ABSOLUTE
,
1588 eCSSKeyword_fixed
, NS_STYLE_POSITION_FIXED
,
1589 // The next entry is controlled by the layout.css.sticky.enabled pref.
1590 eCSSKeyword_sticky
, NS_STYLE_POSITION_STICKY
,
1591 eCSSKeyword_UNKNOWN
,-1
1594 const KTableValue
nsCSSProps::kRadialGradientShapeKTable
[] = {
1595 eCSSKeyword_circle
, NS_STYLE_GRADIENT_SHAPE_CIRCULAR
,
1596 eCSSKeyword_ellipse
, NS_STYLE_GRADIENT_SHAPE_ELLIPTICAL
,
1597 eCSSKeyword_UNKNOWN
,-1
1600 const KTableValue
nsCSSProps::kRadialGradientSizeKTable
[] = {
1601 eCSSKeyword_closest_side
, NS_STYLE_GRADIENT_SIZE_CLOSEST_SIDE
,
1602 eCSSKeyword_closest_corner
, NS_STYLE_GRADIENT_SIZE_CLOSEST_CORNER
,
1603 eCSSKeyword_farthest_side
, NS_STYLE_GRADIENT_SIZE_FARTHEST_SIDE
,
1604 eCSSKeyword_farthest_corner
, NS_STYLE_GRADIENT_SIZE_FARTHEST_CORNER
,
1605 eCSSKeyword_UNKNOWN
,-1
1608 const KTableValue
nsCSSProps::kRadialGradientLegacySizeKTable
[] = {
1609 eCSSKeyword_closest_side
, NS_STYLE_GRADIENT_SIZE_CLOSEST_SIDE
,
1610 eCSSKeyword_closest_corner
, NS_STYLE_GRADIENT_SIZE_CLOSEST_CORNER
,
1611 eCSSKeyword_farthest_side
, NS_STYLE_GRADIENT_SIZE_FARTHEST_SIDE
,
1612 eCSSKeyword_farthest_corner
, NS_STYLE_GRADIENT_SIZE_FARTHEST_CORNER
,
1614 eCSSKeyword_contain
, NS_STYLE_GRADIENT_SIZE_CLOSEST_SIDE
,
1615 eCSSKeyword_cover
, NS_STYLE_GRADIENT_SIZE_FARTHEST_CORNER
,
1616 eCSSKeyword_UNKNOWN
,-1
1619 const KTableValue
nsCSSProps::kResizeKTable
[] = {
1620 eCSSKeyword_none
, NS_STYLE_RESIZE_NONE
,
1621 eCSSKeyword_both
, NS_STYLE_RESIZE_BOTH
,
1622 eCSSKeyword_horizontal
, NS_STYLE_RESIZE_HORIZONTAL
,
1623 eCSSKeyword_vertical
, NS_STYLE_RESIZE_VERTICAL
,
1624 eCSSKeyword_UNKNOWN
,-1
1627 const KTableValue
nsCSSProps::kRubyPositionKTable
[] = {
1628 eCSSKeyword_over
, NS_STYLE_RUBY_POSITION_OVER
,
1629 eCSSKeyword_under
, NS_STYLE_RUBY_POSITION_UNDER
,
1630 // bug 1055672 for 'inter-character' support
1631 // eCSSKeyword_inter_character, NS_STYLE_RUBY_POSITION_INTER_CHARACTER,
1632 eCSSKeyword_right
, NS_STYLE_RUBY_POSITION_RIGHT
,
1633 eCSSKeyword_left
, NS_STYLE_RUBY_POSITION_LEFT
,
1634 eCSSKeyword_UNKNOWN
, -1
1637 const KTableValue
nsCSSProps::kScrollBehaviorKTable
[] = {
1638 eCSSKeyword_auto
, NS_STYLE_SCROLL_BEHAVIOR_AUTO
,
1639 eCSSKeyword_smooth
, NS_STYLE_SCROLL_BEHAVIOR_SMOOTH
,
1640 eCSSKeyword_UNKNOWN
,-1
1643 const KTableValue
nsCSSProps::kStackSizingKTable
[] = {
1644 eCSSKeyword_ignore
, NS_STYLE_STACK_SIZING_IGNORE
,
1645 eCSSKeyword_stretch_to_fit
, NS_STYLE_STACK_SIZING_STRETCH_TO_FIT
,
1646 eCSSKeyword_UNKNOWN
,-1
1649 const KTableValue
nsCSSProps::kTableLayoutKTable
[] = {
1650 eCSSKeyword_auto
, NS_STYLE_TABLE_LAYOUT_AUTO
,
1651 eCSSKeyword_fixed
, NS_STYLE_TABLE_LAYOUT_FIXED
,
1652 eCSSKeyword_UNKNOWN
,-1
1655 KTableValue
nsCSSProps::kTextAlignKTable
[] = {
1656 eCSSKeyword_left
, NS_STYLE_TEXT_ALIGN_LEFT
,
1657 eCSSKeyword_right
, NS_STYLE_TEXT_ALIGN_RIGHT
,
1658 eCSSKeyword_center
, NS_STYLE_TEXT_ALIGN_CENTER
,
1659 eCSSKeyword_justify
, NS_STYLE_TEXT_ALIGN_JUSTIFY
,
1660 eCSSKeyword__moz_center
, NS_STYLE_TEXT_ALIGN_MOZ_CENTER
,
1661 eCSSKeyword__moz_right
, NS_STYLE_TEXT_ALIGN_MOZ_RIGHT
,
1662 eCSSKeyword__moz_left
, NS_STYLE_TEXT_ALIGN_MOZ_LEFT
,
1663 eCSSKeyword_start
, NS_STYLE_TEXT_ALIGN_DEFAULT
,
1664 eCSSKeyword_end
, NS_STYLE_TEXT_ALIGN_END
,
1665 eCSSKeyword_true
, NS_STYLE_TEXT_ALIGN_TRUE
,
1666 eCSSKeyword_UNKNOWN
,-1
1669 KTableValue
nsCSSProps::kTextAlignLastKTable
[] = {
1670 eCSSKeyword_auto
, NS_STYLE_TEXT_ALIGN_AUTO
,
1671 eCSSKeyword_left
, NS_STYLE_TEXT_ALIGN_LEFT
,
1672 eCSSKeyword_right
, NS_STYLE_TEXT_ALIGN_RIGHT
,
1673 eCSSKeyword_center
, NS_STYLE_TEXT_ALIGN_CENTER
,
1674 eCSSKeyword_justify
, NS_STYLE_TEXT_ALIGN_JUSTIFY
,
1675 eCSSKeyword_start
, NS_STYLE_TEXT_ALIGN_DEFAULT
,
1676 eCSSKeyword_end
, NS_STYLE_TEXT_ALIGN_END
,
1677 eCSSKeyword_true
, NS_STYLE_TEXT_ALIGN_TRUE
,
1678 eCSSKeyword_UNKNOWN
,-1
1681 const KTableValue
nsCSSProps::kTextCombineUprightKTable
[] = {
1682 eCSSKeyword_none
, NS_STYLE_TEXT_COMBINE_UPRIGHT_NONE
,
1683 eCSSKeyword_all
, NS_STYLE_TEXT_COMBINE_UPRIGHT_ALL
,
1684 eCSSKeyword_digits
, NS_STYLE_TEXT_COMBINE_UPRIGHT_DIGITS_2
, // w/o number ==> 2
1685 eCSSKeyword_UNKNOWN
,-1
1688 const KTableValue
nsCSSProps::kTextDecorationLineKTable
[] = {
1689 eCSSKeyword_none
, NS_STYLE_TEXT_DECORATION_LINE_NONE
,
1690 eCSSKeyword_underline
, NS_STYLE_TEXT_DECORATION_LINE_UNDERLINE
,
1691 eCSSKeyword_overline
, NS_STYLE_TEXT_DECORATION_LINE_OVERLINE
,
1692 eCSSKeyword_line_through
, NS_STYLE_TEXT_DECORATION_LINE_LINE_THROUGH
,
1693 eCSSKeyword_blink
, NS_STYLE_TEXT_DECORATION_LINE_BLINK
,
1694 eCSSKeyword__moz_anchor_decoration
, NS_STYLE_TEXT_DECORATION_LINE_PREF_ANCHORS
,
1695 eCSSKeyword_UNKNOWN
,-1
1698 const KTableValue
nsCSSProps::kTextDecorationStyleKTable
[] = {
1699 eCSSKeyword__moz_none
, NS_STYLE_TEXT_DECORATION_STYLE_NONE
,
1700 eCSSKeyword_solid
, NS_STYLE_TEXT_DECORATION_STYLE_SOLID
,
1701 eCSSKeyword_double
, NS_STYLE_TEXT_DECORATION_STYLE_DOUBLE
,
1702 eCSSKeyword_dotted
, NS_STYLE_TEXT_DECORATION_STYLE_DOTTED
,
1703 eCSSKeyword_dashed
, NS_STYLE_TEXT_DECORATION_STYLE_DASHED
,
1704 eCSSKeyword_wavy
, NS_STYLE_TEXT_DECORATION_STYLE_WAVY
,
1705 eCSSKeyword_UNKNOWN
,-1
1708 const KTableValue
nsCSSProps::kTextOrientationKTable
[] = {
1709 eCSSKeyword_mixed
, NS_STYLE_TEXT_ORIENTATION_MIXED
,
1710 eCSSKeyword_upright
, NS_STYLE_TEXT_ORIENTATION_UPRIGHT
,
1711 eCSSKeyword_sideways_right
, NS_STYLE_TEXT_ORIENTATION_SIDEWAYS_RIGHT
,
1712 /* eCSSKeyword_sideways_left, NS_STYLE_TEXT_ORIENTATION_SIDEWAYS_LEFT, */
1713 /* eCSSKeyword_sideways, NS_STYLE_TEXT_ORIENTATION_SIDEWAYS, */
1714 eCSSKeyword_UNKNOWN
, -1
1717 const KTableValue
nsCSSProps::kTextOverflowKTable
[] = {
1718 eCSSKeyword_clip
, NS_STYLE_TEXT_OVERFLOW_CLIP
,
1719 eCSSKeyword_ellipsis
, NS_STYLE_TEXT_OVERFLOW_ELLIPSIS
,
1720 eCSSKeyword_UNKNOWN
, -1
1723 const KTableValue
nsCSSProps::kTextTransformKTable
[] = {
1724 eCSSKeyword_none
, NS_STYLE_TEXT_TRANSFORM_NONE
,
1725 eCSSKeyword_capitalize
, NS_STYLE_TEXT_TRANSFORM_CAPITALIZE
,
1726 eCSSKeyword_lowercase
, NS_STYLE_TEXT_TRANSFORM_LOWERCASE
,
1727 eCSSKeyword_uppercase
, NS_STYLE_TEXT_TRANSFORM_UPPERCASE
,
1728 eCSSKeyword_full_width
, NS_STYLE_TEXT_TRANSFORM_FULLWIDTH
,
1729 eCSSKeyword_UNKNOWN
,-1
1732 const KTableValue
nsCSSProps::kTouchActionKTable
[] = {
1733 eCSSKeyword_none
, NS_STYLE_TOUCH_ACTION_NONE
,
1734 eCSSKeyword_auto
, NS_STYLE_TOUCH_ACTION_AUTO
,
1735 eCSSKeyword_pan_x
, NS_STYLE_TOUCH_ACTION_PAN_X
,
1736 eCSSKeyword_pan_y
, NS_STYLE_TOUCH_ACTION_PAN_Y
,
1737 eCSSKeyword_manipulation
, NS_STYLE_TOUCH_ACTION_MANIPULATION
,
1738 eCSSKeyword_UNKNOWN
, -1
1741 const KTableValue
nsCSSProps::kTransitionTimingFunctionKTable
[] = {
1742 eCSSKeyword_ease
, NS_STYLE_TRANSITION_TIMING_FUNCTION_EASE
,
1743 eCSSKeyword_linear
, NS_STYLE_TRANSITION_TIMING_FUNCTION_LINEAR
,
1744 eCSSKeyword_ease_in
, NS_STYLE_TRANSITION_TIMING_FUNCTION_EASE_IN
,
1745 eCSSKeyword_ease_out
, NS_STYLE_TRANSITION_TIMING_FUNCTION_EASE_OUT
,
1746 eCSSKeyword_ease_in_out
, NS_STYLE_TRANSITION_TIMING_FUNCTION_EASE_IN_OUT
,
1747 eCSSKeyword_step_start
, NS_STYLE_TRANSITION_TIMING_FUNCTION_STEP_START
,
1748 eCSSKeyword_step_end
, NS_STYLE_TRANSITION_TIMING_FUNCTION_STEP_END
,
1749 eCSSKeyword_UNKNOWN
,-1
1752 const KTableValue
nsCSSProps::kUnicodeBidiKTable
[] = {
1753 eCSSKeyword_normal
, NS_STYLE_UNICODE_BIDI_NORMAL
,
1754 eCSSKeyword_embed
, NS_STYLE_UNICODE_BIDI_EMBED
,
1755 eCSSKeyword_bidi_override
, NS_STYLE_UNICODE_BIDI_OVERRIDE
,
1756 eCSSKeyword__moz_isolate
, NS_STYLE_UNICODE_BIDI_ISOLATE
,
1757 eCSSKeyword__moz_isolate_override
, NS_STYLE_UNICODE_BIDI_ISOLATE_OVERRIDE
,
1758 eCSSKeyword__moz_plaintext
, NS_STYLE_UNICODE_BIDI_PLAINTEXT
,
1759 eCSSKeyword_UNKNOWN
,-1
1762 const KTableValue
nsCSSProps::kUserFocusKTable
[] = {
1763 eCSSKeyword_none
, NS_STYLE_USER_FOCUS_NONE
,
1764 eCSSKeyword_normal
, NS_STYLE_USER_FOCUS_NORMAL
,
1765 eCSSKeyword_ignore
, NS_STYLE_USER_FOCUS_IGNORE
,
1766 eCSSKeyword_select_all
, NS_STYLE_USER_FOCUS_SELECT_ALL
,
1767 eCSSKeyword_select_before
, NS_STYLE_USER_FOCUS_SELECT_BEFORE
,
1768 eCSSKeyword_select_after
, NS_STYLE_USER_FOCUS_SELECT_AFTER
,
1769 eCSSKeyword_select_same
, NS_STYLE_USER_FOCUS_SELECT_SAME
,
1770 eCSSKeyword_select_menu
, NS_STYLE_USER_FOCUS_SELECT_MENU
,
1771 eCSSKeyword_UNKNOWN
,-1
1774 const KTableValue
nsCSSProps::kUserInputKTable
[] = {
1775 eCSSKeyword_none
, NS_STYLE_USER_INPUT_NONE
,
1776 eCSSKeyword_auto
, NS_STYLE_USER_INPUT_AUTO
,
1777 eCSSKeyword_enabled
, NS_STYLE_USER_INPUT_ENABLED
,
1778 eCSSKeyword_disabled
, NS_STYLE_USER_INPUT_DISABLED
,
1779 eCSSKeyword_UNKNOWN
,-1
1782 const KTableValue
nsCSSProps::kUserModifyKTable
[] = {
1783 eCSSKeyword_read_only
, NS_STYLE_USER_MODIFY_READ_ONLY
,
1784 eCSSKeyword_read_write
, NS_STYLE_USER_MODIFY_READ_WRITE
,
1785 eCSSKeyword_write_only
, NS_STYLE_USER_MODIFY_WRITE_ONLY
,
1786 eCSSKeyword_UNKNOWN
,-1
1789 const KTableValue
nsCSSProps::kUserSelectKTable
[] = {
1790 eCSSKeyword_none
, NS_STYLE_USER_SELECT_NONE
,
1791 eCSSKeyword_auto
, NS_STYLE_USER_SELECT_AUTO
,
1792 eCSSKeyword_text
, NS_STYLE_USER_SELECT_TEXT
,
1793 eCSSKeyword_element
, NS_STYLE_USER_SELECT_ELEMENT
,
1794 eCSSKeyword_elements
, NS_STYLE_USER_SELECT_ELEMENTS
,
1795 eCSSKeyword_all
, NS_STYLE_USER_SELECT_ALL
,
1796 eCSSKeyword_toggle
, NS_STYLE_USER_SELECT_TOGGLE
,
1797 eCSSKeyword_tri_state
, NS_STYLE_USER_SELECT_TRI_STATE
,
1798 eCSSKeyword__moz_all
, NS_STYLE_USER_SELECT_MOZ_ALL
,
1799 eCSSKeyword__moz_none
, NS_STYLE_USER_SELECT_NONE
,
1800 eCSSKeyword_UNKNOWN
,-1
1803 const KTableValue
nsCSSProps::kVerticalAlignKTable
[] = {
1804 eCSSKeyword_baseline
, NS_STYLE_VERTICAL_ALIGN_BASELINE
,
1805 eCSSKeyword_sub
, NS_STYLE_VERTICAL_ALIGN_SUB
,
1806 eCSSKeyword_super
, NS_STYLE_VERTICAL_ALIGN_SUPER
,
1807 eCSSKeyword_top
, NS_STYLE_VERTICAL_ALIGN_TOP
,
1808 eCSSKeyword_text_top
, NS_STYLE_VERTICAL_ALIGN_TEXT_TOP
,
1809 eCSSKeyword_middle
, NS_STYLE_VERTICAL_ALIGN_MIDDLE
,
1810 eCSSKeyword__moz_middle_with_baseline
, NS_STYLE_VERTICAL_ALIGN_MIDDLE_WITH_BASELINE
,
1811 eCSSKeyword_bottom
, NS_STYLE_VERTICAL_ALIGN_BOTTOM
,
1812 eCSSKeyword_text_bottom
, NS_STYLE_VERTICAL_ALIGN_TEXT_BOTTOM
,
1813 eCSSKeyword_UNKNOWN
,-1
1816 const KTableValue
nsCSSProps::kVisibilityKTable
[] = {
1817 eCSSKeyword_visible
, NS_STYLE_VISIBILITY_VISIBLE
,
1818 eCSSKeyword_hidden
, NS_STYLE_VISIBILITY_HIDDEN
,
1819 eCSSKeyword_collapse
, NS_STYLE_VISIBILITY_COLLAPSE
,
1820 eCSSKeyword_UNKNOWN
,-1
1823 const KTableValue
nsCSSProps::kWhitespaceKTable
[] = {
1824 eCSSKeyword_normal
, NS_STYLE_WHITESPACE_NORMAL
,
1825 eCSSKeyword_pre
, NS_STYLE_WHITESPACE_PRE
,
1826 eCSSKeyword_nowrap
, NS_STYLE_WHITESPACE_NOWRAP
,
1827 eCSSKeyword_pre_wrap
, NS_STYLE_WHITESPACE_PRE_WRAP
,
1828 eCSSKeyword_pre_line
, NS_STYLE_WHITESPACE_PRE_LINE
,
1829 eCSSKeyword__moz_pre_space
, NS_STYLE_WHITESPACE_PRE_SPACE
,
1830 eCSSKeyword_UNKNOWN
,-1
1833 const KTableValue
nsCSSProps::kWidthKTable
[] = {
1834 eCSSKeyword__moz_max_content
, NS_STYLE_WIDTH_MAX_CONTENT
,
1835 eCSSKeyword__moz_min_content
, NS_STYLE_WIDTH_MIN_CONTENT
,
1836 eCSSKeyword__moz_fit_content
, NS_STYLE_WIDTH_FIT_CONTENT
,
1837 eCSSKeyword__moz_available
, NS_STYLE_WIDTH_AVAILABLE
,
1838 eCSSKeyword_UNKNOWN
,-1
1841 const KTableValue
nsCSSProps::kWindowDraggingKTable
[] = {
1842 eCSSKeyword_drag
, NS_STYLE_WINDOW_DRAGGING_DRAG
,
1843 eCSSKeyword_no_drag
, NS_STYLE_WINDOW_DRAGGING_NO_DRAG
,
1844 eCSSKeyword_UNKNOWN
,-1
1847 const KTableValue
nsCSSProps::kWindowShadowKTable
[] = {
1848 eCSSKeyword_none
, NS_STYLE_WINDOW_SHADOW_NONE
,
1849 eCSSKeyword_default
, NS_STYLE_WINDOW_SHADOW_DEFAULT
,
1850 eCSSKeyword_menu
, NS_STYLE_WINDOW_SHADOW_MENU
,
1851 eCSSKeyword_tooltip
, NS_STYLE_WINDOW_SHADOW_TOOLTIP
,
1852 eCSSKeyword_sheet
, NS_STYLE_WINDOW_SHADOW_SHEET
,
1853 eCSSKeyword_UNKNOWN
,-1
1856 const KTableValue
nsCSSProps::kWordBreakKTable
[] = {
1857 eCSSKeyword_normal
, NS_STYLE_WORDBREAK_NORMAL
,
1858 eCSSKeyword_break_all
, NS_STYLE_WORDBREAK_BREAK_ALL
,
1859 eCSSKeyword_keep_all
, NS_STYLE_WORDBREAK_KEEP_ALL
,
1860 eCSSKeyword_UNKNOWN
,-1
1863 const KTableValue
nsCSSProps::kWordWrapKTable
[] = {
1864 eCSSKeyword_normal
, NS_STYLE_WORDWRAP_NORMAL
,
1865 eCSSKeyword_break_word
, NS_STYLE_WORDWRAP_BREAK_WORD
,
1866 eCSSKeyword_UNKNOWN
,-1
1869 const KTableValue
nsCSSProps::kWritingModeKTable
[] = {
1870 eCSSKeyword_horizontal_tb
, NS_STYLE_WRITING_MODE_HORIZONTAL_TB
,
1871 eCSSKeyword_vertical_lr
, NS_STYLE_WRITING_MODE_VERTICAL_LR
,
1872 eCSSKeyword_vertical_rl
, NS_STYLE_WRITING_MODE_VERTICAL_RL
,
1873 eCSSKeyword_UNKNOWN
, -1
1876 // Specific keyword tables for XUL.properties
1877 const KTableValue
nsCSSProps::kBoxAlignKTable
[] = {
1878 eCSSKeyword_stretch
, NS_STYLE_BOX_ALIGN_STRETCH
,
1879 eCSSKeyword_start
, NS_STYLE_BOX_ALIGN_START
,
1880 eCSSKeyword_center
, NS_STYLE_BOX_ALIGN_CENTER
,
1881 eCSSKeyword_baseline
, NS_STYLE_BOX_ALIGN_BASELINE
,
1882 eCSSKeyword_end
, NS_STYLE_BOX_ALIGN_END
,
1883 eCSSKeyword_UNKNOWN
,-1
1886 const KTableValue
nsCSSProps::kBoxDirectionKTable
[] = {
1887 eCSSKeyword_normal
, NS_STYLE_BOX_DIRECTION_NORMAL
,
1888 eCSSKeyword_reverse
, NS_STYLE_BOX_DIRECTION_REVERSE
,
1889 eCSSKeyword_UNKNOWN
,-1
1892 const KTableValue
nsCSSProps::kBoxOrientKTable
[] = {
1893 eCSSKeyword_horizontal
, NS_STYLE_BOX_ORIENT_HORIZONTAL
,
1894 eCSSKeyword_vertical
, NS_STYLE_BOX_ORIENT_VERTICAL
,
1895 eCSSKeyword_inline_axis
, NS_STYLE_BOX_ORIENT_HORIZONTAL
,
1896 eCSSKeyword_block_axis
, NS_STYLE_BOX_ORIENT_VERTICAL
,
1897 eCSSKeyword_UNKNOWN
,-1
1900 const KTableValue
nsCSSProps::kBoxPackKTable
[] = {
1901 eCSSKeyword_start
, NS_STYLE_BOX_PACK_START
,
1902 eCSSKeyword_center
, NS_STYLE_BOX_PACK_CENTER
,
1903 eCSSKeyword_end
, NS_STYLE_BOX_PACK_END
,
1904 eCSSKeyword_justify
, NS_STYLE_BOX_PACK_JUSTIFY
,
1905 eCSSKeyword_UNKNOWN
,-1
1908 // keyword tables for SVG properties
1910 const KTableValue
nsCSSProps::kDominantBaselineKTable
[] = {
1911 eCSSKeyword_auto
, NS_STYLE_DOMINANT_BASELINE_AUTO
,
1912 eCSSKeyword_use_script
, NS_STYLE_DOMINANT_BASELINE_USE_SCRIPT
,
1913 eCSSKeyword_no_change
, NS_STYLE_DOMINANT_BASELINE_NO_CHANGE
,
1914 eCSSKeyword_reset_size
, NS_STYLE_DOMINANT_BASELINE_RESET_SIZE
,
1915 eCSSKeyword_alphabetic
, NS_STYLE_DOMINANT_BASELINE_ALPHABETIC
,
1916 eCSSKeyword_hanging
, NS_STYLE_DOMINANT_BASELINE_HANGING
,
1917 eCSSKeyword_ideographic
, NS_STYLE_DOMINANT_BASELINE_IDEOGRAPHIC
,
1918 eCSSKeyword_mathematical
, NS_STYLE_DOMINANT_BASELINE_MATHEMATICAL
,
1919 eCSSKeyword_central
, NS_STYLE_DOMINANT_BASELINE_CENTRAL
,
1920 eCSSKeyword_middle
, NS_STYLE_DOMINANT_BASELINE_MIDDLE
,
1921 eCSSKeyword_text_after_edge
, NS_STYLE_DOMINANT_BASELINE_TEXT_AFTER_EDGE
,
1922 eCSSKeyword_text_before_edge
, NS_STYLE_DOMINANT_BASELINE_TEXT_BEFORE_EDGE
,
1923 eCSSKeyword_UNKNOWN
, -1
1926 const KTableValue
nsCSSProps::kFillRuleKTable
[] = {
1927 eCSSKeyword_nonzero
, NS_STYLE_FILL_RULE_NONZERO
,
1928 eCSSKeyword_evenodd
, NS_STYLE_FILL_RULE_EVENODD
,
1929 eCSSKeyword_UNKNOWN
, -1
1932 const KTableValue
nsCSSProps::kClipShapeSizingKTable
[] = {
1933 eCSSKeyword_content_box
, NS_STYLE_CLIP_SHAPE_SIZING_CONTENT
,
1934 eCSSKeyword_padding_box
, NS_STYLE_CLIP_SHAPE_SIZING_PADDING
,
1935 eCSSKeyword_border_box
, NS_STYLE_CLIP_SHAPE_SIZING_BORDER
,
1936 eCSSKeyword_margin_box
, NS_STYLE_CLIP_SHAPE_SIZING_MARGIN
,
1937 eCSSKeyword_fill_box
, NS_STYLE_CLIP_SHAPE_SIZING_FILL
,
1938 eCSSKeyword_stroke_box
, NS_STYLE_CLIP_SHAPE_SIZING_STROKE
,
1939 eCSSKeyword_view_box
, NS_STYLE_CLIP_SHAPE_SIZING_VIEW
,
1940 eCSSKeyword_UNKNOWN
,-1
1943 const KTableValue
nsCSSProps::kShapeRadiusKTable
[] = {
1944 eCSSKeyword_closest_side
, NS_RADIUS_CLOSEST_SIDE
,
1945 eCSSKeyword_farthest_side
, NS_RADIUS_FARTHEST_SIDE
,
1946 eCSSKeyword_UNKNOWN
, -1
1949 const KTableValue
nsCSSProps::kFilterFunctionKTable
[] = {
1950 eCSSKeyword_blur
, NS_STYLE_FILTER_BLUR
,
1951 eCSSKeyword_brightness
, NS_STYLE_FILTER_BRIGHTNESS
,
1952 eCSSKeyword_contrast
, NS_STYLE_FILTER_CONTRAST
,
1953 eCSSKeyword_grayscale
, NS_STYLE_FILTER_GRAYSCALE
,
1954 eCSSKeyword_invert
, NS_STYLE_FILTER_INVERT
,
1955 eCSSKeyword_opacity
, NS_STYLE_FILTER_OPACITY
,
1956 eCSSKeyword_saturate
, NS_STYLE_FILTER_SATURATE
,
1957 eCSSKeyword_sepia
, NS_STYLE_FILTER_SEPIA
,
1958 eCSSKeyword_hue_rotate
, NS_STYLE_FILTER_HUE_ROTATE
,
1959 eCSSKeyword_drop_shadow
, NS_STYLE_FILTER_DROP_SHADOW
,
1960 eCSSKeyword_UNKNOWN
, -1
1963 const KTableValue
nsCSSProps::kImageRenderingKTable
[] = {
1964 eCSSKeyword_auto
, NS_STYLE_IMAGE_RENDERING_AUTO
,
1965 eCSSKeyword_optimizespeed
, NS_STYLE_IMAGE_RENDERING_OPTIMIZESPEED
,
1966 eCSSKeyword_optimizequality
, NS_STYLE_IMAGE_RENDERING_OPTIMIZEQUALITY
,
1967 eCSSKeyword__moz_crisp_edges
, NS_STYLE_IMAGE_RENDERING_CRISPEDGES
,
1968 eCSSKeyword_UNKNOWN
, -1
1971 const KTableValue
nsCSSProps::kMaskTypeKTable
[] = {
1972 eCSSKeyword_luminance
, NS_STYLE_MASK_TYPE_LUMINANCE
,
1973 eCSSKeyword_alpha
, NS_STYLE_MASK_TYPE_ALPHA
,
1974 eCSSKeyword_UNKNOWN
, -1
1977 const KTableValue
nsCSSProps::kShapeRenderingKTable
[] = {
1978 eCSSKeyword_auto
, NS_STYLE_SHAPE_RENDERING_AUTO
,
1979 eCSSKeyword_optimizespeed
, NS_STYLE_SHAPE_RENDERING_OPTIMIZESPEED
,
1980 eCSSKeyword_crispedges
, NS_STYLE_SHAPE_RENDERING_CRISPEDGES
,
1981 eCSSKeyword_geometricprecision
, NS_STYLE_SHAPE_RENDERING_GEOMETRICPRECISION
,
1982 eCSSKeyword_UNKNOWN
, -1
1985 const KTableValue
nsCSSProps::kStrokeLinecapKTable
[] = {
1986 eCSSKeyword_butt
, NS_STYLE_STROKE_LINECAP_BUTT
,
1987 eCSSKeyword_round
, NS_STYLE_STROKE_LINECAP_ROUND
,
1988 eCSSKeyword_square
, NS_STYLE_STROKE_LINECAP_SQUARE
,
1989 eCSSKeyword_UNKNOWN
, -1
1992 const KTableValue
nsCSSProps::kStrokeLinejoinKTable
[] = {
1993 eCSSKeyword_miter
, NS_STYLE_STROKE_LINEJOIN_MITER
,
1994 eCSSKeyword_round
, NS_STYLE_STROKE_LINEJOIN_ROUND
,
1995 eCSSKeyword_bevel
, NS_STYLE_STROKE_LINEJOIN_BEVEL
,
1996 eCSSKeyword_UNKNOWN
, -1
1999 // Lookup table to store the sole objectValue keyword to let SVG glyphs inherit
2000 // certain stroke-* properties from the outer text object
2001 const KTableValue
nsCSSProps::kStrokeContextValueKTable
[] = {
2002 eCSSKeyword_context_value
, NS_STYLE_STROKE_PROP_CONTEXT_VALUE
,
2003 eCSSKeyword_UNKNOWN
, -1
2006 const KTableValue
nsCSSProps::kTextAnchorKTable
[] = {
2007 eCSSKeyword_start
, NS_STYLE_TEXT_ANCHOR_START
,
2008 eCSSKeyword_middle
, NS_STYLE_TEXT_ANCHOR_MIDDLE
,
2009 eCSSKeyword_end
, NS_STYLE_TEXT_ANCHOR_END
,
2010 eCSSKeyword_UNKNOWN
, -1
2013 const KTableValue
nsCSSProps::kTextRenderingKTable
[] = {
2014 eCSSKeyword_auto
, NS_STYLE_TEXT_RENDERING_AUTO
,
2015 eCSSKeyword_optimizespeed
, NS_STYLE_TEXT_RENDERING_OPTIMIZESPEED
,
2016 eCSSKeyword_optimizelegibility
, NS_STYLE_TEXT_RENDERING_OPTIMIZELEGIBILITY
,
2017 eCSSKeyword_geometricprecision
, NS_STYLE_TEXT_RENDERING_GEOMETRICPRECISION
,
2018 eCSSKeyword_UNKNOWN
, -1
2021 const KTableValue
nsCSSProps::kVectorEffectKTable
[] = {
2022 eCSSKeyword_none
, NS_STYLE_VECTOR_EFFECT_NONE
,
2023 eCSSKeyword_non_scaling_stroke
, NS_STYLE_VECTOR_EFFECT_NON_SCALING_STROKE
,
2024 eCSSKeyword_UNKNOWN
, -1
2027 const KTableValue
nsCSSProps::kColorInterpolationKTable
[] = {
2028 eCSSKeyword_auto
, NS_STYLE_COLOR_INTERPOLATION_AUTO
,
2029 eCSSKeyword_srgb
, NS_STYLE_COLOR_INTERPOLATION_SRGB
,
2030 eCSSKeyword_linearrgb
, NS_STYLE_COLOR_INTERPOLATION_LINEARRGB
,
2031 eCSSKeyword_UNKNOWN
, -1
2034 const KTableValue
nsCSSProps::kColumnFillKTable
[] = {
2035 eCSSKeyword_auto
, NS_STYLE_COLUMN_FILL_AUTO
,
2036 eCSSKeyword_balance
, NS_STYLE_COLUMN_FILL_BALANCE
,
2037 eCSSKeyword_UNKNOWN
, -1
2040 static bool IsKeyValSentinel(nsCSSKeyword aKey
, KTableValue aValue
)
2042 return aKey
== eCSSKeyword_UNKNOWN
&& aValue
== -1;
2046 nsCSSProps::FindIndexOfKeyword(nsCSSKeyword aKeyword
,
2047 const KTableValue aTable
[])
2049 if (eCSSKeyword_UNKNOWN
== aKeyword
) {
2050 // NOTE: we can have keyword tables where eCSSKeyword_UNKNOWN is used
2051 // not only for the sentinel, but also in the middle of the table to
2052 // knock out values that have been disabled by prefs, e.g. kDisplayKTable.
2053 // So we deal with eCSSKeyword_UNKNOWN up front to avoid returning a valid
2054 // index in the loop below.
2059 nsCSSKeyword key
= nsCSSKeyword(aTable
[i
]);
2060 int32_t val
= aTable
[i
+ 1];
2061 if (::IsKeyValSentinel(key
, val
)) {
2064 if (aKeyword
== key
) {
2073 nsCSSProps::FindKeyword(nsCSSKeyword aKeyword
, const KTableValue aTable
[],
2076 int32_t index
= FindIndexOfKeyword(aKeyword
, aTable
);
2078 aResult
= aTable
[index
+ 1];
2085 nsCSSProps::ValueToKeywordEnum(int32_t aValue
, const KTableValue aTable
[])
2087 NS_ASSERTION(KTableValue(aValue
) == aValue
, "Value out of range");
2090 int32_t val
= aTable
[i
];
2091 nsCSSKeyword key
= nsCSSKeyword(aTable
[i
- 1]);
2092 if (::IsKeyValSentinel(key
, val
)) {
2095 if (aValue
== val
) {
2100 return eCSSKeyword_UNKNOWN
;
2103 const nsAFlatCString
&
2104 nsCSSProps::ValueToKeyword(int32_t aValue
, const KTableValue aTable
[])
2106 NS_ASSERTION(KTableValue(aValue
) == aValue
, "Value out of range");
2107 nsCSSKeyword keyword
= ValueToKeywordEnum(aValue
, aTable
);
2108 if (keyword
== eCSSKeyword_UNKNOWN
) {
2109 static nsDependentCString
sNullStr("");
2112 return nsCSSKeywords::GetStringValue(keyword
);
2116 /* static */ const KTableValue
* const
2117 nsCSSProps::kKeywordTableTable
[eCSSProperty_COUNT_no_shorthands
] = {
2118 #define CSS_PROP(name_, id_, method_, flags_, pref_, parsevariant_, \
2119 kwtable_, stylestruct_, stylestructoffset_, animtype_) \
2121 #include "nsCSSPropList.h"
2125 const nsAFlatCString
&
2126 nsCSSProps::LookupPropertyValue(nsCSSProperty aProp
, int32_t aValue
)
2128 NS_ABORT_IF_FALSE(aProp
>= 0 && aProp
< eCSSProperty_COUNT
,
2129 "property out of range");
2130 NS_ASSERTION(KTableValue(aValue
) == aValue
, "Value out of range");
2132 const KTableValue
* kwtable
= nullptr;
2133 if (aProp
< eCSSProperty_COUNT_no_shorthands
)
2134 kwtable
= kKeywordTableTable
[aProp
];
2137 return ValueToKeyword(aValue
, kwtable
);
2139 static nsDependentCString
sNullStr("");
2143 bool nsCSSProps::GetColorName(int32_t aPropValue
, nsCString
&aStr
)
2147 // first get the keyword corresponding to the property Value from the color table
2148 nsCSSKeyword keyword
= ValueToKeywordEnum(aPropValue
, kColorKTable
);
2150 // next get the name as a string from the keywords table
2151 if (keyword
!= eCSSKeyword_UNKNOWN
) {
2152 nsCSSKeywords::AddRefTable();
2153 aStr
= nsCSSKeywords::GetStringValue(keyword
);
2154 nsCSSKeywords::ReleaseTable();
2160 const nsStyleStructID
nsCSSProps::kSIDTable
[eCSSProperty_COUNT_no_shorthands
] = {
2161 // Note that this uses the special BackendOnly style struct ID
2162 // (which does need to be valid for storing in the
2163 // nsCSSCompressedDataBlock::mStyleBits bitfield).
2164 #define CSS_PROP(name_, id_, method_, flags_, pref_, parsevariant_, \
2165 kwtable_, stylestruct_, stylestructoffset_, animtype_) \
2166 eStyleStruct_##stylestruct_,
2168 #include "nsCSSPropList.h"
2173 const nsStyleAnimType
2174 nsCSSProps::kAnimTypeTable
[eCSSProperty_COUNT_no_shorthands
] = {
2175 #define CSS_PROP(name_, id_, method_, flags_, pref_, parsevariant_, kwtable_, \
2176 stylestruct_, stylestructoffset_, animtype_) \
2178 #include "nsCSSPropList.h"
2183 nsCSSProps::kStyleStructOffsetTable
[eCSSProperty_COUNT_no_shorthands
] = {
2184 #define CSS_PROP(name_, id_, method_, flags_, pref_, parsevariant_, kwtable_, \
2185 stylestruct_, stylestructoffset_, animtype_) \
2187 #include "nsCSSPropList.h"
2191 const uint32_t nsCSSProps::kFlagsTable
[eCSSProperty_COUNT
] = {
2192 #define CSS_PROP(name_, id_, method_, flags_, pref_, parsevariant_, kwtable_, \
2193 stylestruct_, stylestructoffset_, animtype_) \
2195 #include "nsCSSPropList.h"
2197 #define CSS_PROP_SHORTHAND(name_, id_, method_, flags_, pref_) flags_,
2198 #include "nsCSSPropList.h"
2199 #undef CSS_PROP_SHORTHAND
2202 static const nsCSSProperty gAllSubpropTable
[] = {
2203 #define CSS_PROP_LIST_ONLY_COMPONENTS_OF_ALL_SHORTHAND
2204 #define CSS_PROP(name_, id_, method_, flags_, pref_, parsevariant_, kwtable_, \
2205 stylestruct_, stylestructoffset_, animtype_) \
2207 #include "nsCSSPropList.h"
2209 #undef CSS_PROP_LIST_ONLY_COMPONENTS_OF_ALL_SHORTHAND
2210 eCSSProperty_UNKNOWN
2213 static const nsCSSProperty gAnimationSubpropTable
[] = {
2214 eCSSProperty_animation_duration
,
2215 eCSSProperty_animation_timing_function
,
2216 eCSSProperty_animation_delay
,
2217 eCSSProperty_animation_direction
,
2218 eCSSProperty_animation_fill_mode
,
2219 eCSSProperty_animation_iteration_count
,
2220 eCSSProperty_animation_play_state
,
2221 // List animation-name last so we serialize it last, in case it has
2222 // a value that conflicts with one of the other properties. (See
2223 // how Declaration::GetValue serializes 'animation'.
2224 eCSSProperty_animation_name
,
2225 eCSSProperty_UNKNOWN
2228 static const nsCSSProperty gBorderRadiusSubpropTable
[] = {
2229 // Code relies on these being in topleft-topright-bottomright-bottomleft
2231 eCSSProperty_border_top_left_radius
,
2232 eCSSProperty_border_top_right_radius
,
2233 eCSSProperty_border_bottom_right_radius
,
2234 eCSSProperty_border_bottom_left_radius
,
2235 eCSSProperty_UNKNOWN
2238 static const nsCSSProperty gOutlineRadiusSubpropTable
[] = {
2239 // Code relies on these being in topleft-topright-bottomright-bottomleft
2241 eCSSProperty__moz_outline_radius_topLeft
,
2242 eCSSProperty__moz_outline_radius_topRight
,
2243 eCSSProperty__moz_outline_radius_bottomRight
,
2244 eCSSProperty__moz_outline_radius_bottomLeft
,
2245 eCSSProperty_UNKNOWN
2248 static const nsCSSProperty gBackgroundSubpropTable
[] = {
2249 eCSSProperty_background_color
,
2250 eCSSProperty_background_image
,
2251 eCSSProperty_background_repeat
,
2252 eCSSProperty_background_attachment
,
2253 eCSSProperty_background_position
,
2254 eCSSProperty_background_clip
,
2255 eCSSProperty_background_origin
,
2256 eCSSProperty_background_size
,
2257 eCSSProperty_UNKNOWN
2260 static const nsCSSProperty gBorderSubpropTable
[] = {
2261 eCSSProperty_border_top_width
,
2262 eCSSProperty_border_right_width_value
,
2263 eCSSProperty_border_right_width_ltr_source
,
2264 eCSSProperty_border_right_width_rtl_source
,
2265 eCSSProperty_border_bottom_width
,
2266 eCSSProperty_border_left_width_value
,
2267 eCSSProperty_border_left_width_ltr_source
,
2268 eCSSProperty_border_left_width_rtl_source
,
2269 eCSSProperty_border_top_style
,
2270 eCSSProperty_border_right_style_value
,
2271 eCSSProperty_border_right_style_ltr_source
,
2272 eCSSProperty_border_right_style_rtl_source
,
2273 eCSSProperty_border_bottom_style
,
2274 eCSSProperty_border_left_style_value
,
2275 eCSSProperty_border_left_style_ltr_source
,
2276 eCSSProperty_border_left_style_rtl_source
,
2277 eCSSProperty_border_top_color
,
2278 eCSSProperty_border_right_color_value
,
2279 eCSSProperty_border_right_color_ltr_source
,
2280 eCSSProperty_border_right_color_rtl_source
,
2281 eCSSProperty_border_bottom_color
,
2282 eCSSProperty_border_left_color_value
,
2283 eCSSProperty_border_left_color_ltr_source
,
2284 eCSSProperty_border_left_color_rtl_source
,
2285 eCSSProperty_border_top_colors
,
2286 eCSSProperty_border_right_colors
,
2287 eCSSProperty_border_bottom_colors
,
2288 eCSSProperty_border_left_colors
,
2289 eCSSProperty_border_image_source
,
2290 eCSSProperty_border_image_slice
,
2291 eCSSProperty_border_image_width
,
2292 eCSSProperty_border_image_outset
,
2293 eCSSProperty_border_image_repeat
,
2294 eCSSProperty_UNKNOWN
2297 static const nsCSSProperty gBorderBottomSubpropTable
[] = {
2298 // nsCSSDeclaration.cpp outputs the subproperties in this order.
2299 // It also depends on the color being third.
2300 eCSSProperty_border_bottom_width
,
2301 eCSSProperty_border_bottom_style
,
2302 eCSSProperty_border_bottom_color
,
2303 eCSSProperty_UNKNOWN
2306 static_assert(NS_SIDE_TOP
== 0 && NS_SIDE_RIGHT
== 1 &&
2307 NS_SIDE_BOTTOM
== 2 && NS_SIDE_LEFT
== 3,
2308 "box side constants not top/right/bottom/left == 0/1/2/3");
2309 static const nsCSSProperty gBorderColorSubpropTable
[] = {
2310 // Code relies on these being in top-right-bottom-left order.
2311 // Code relies on these matching the NS_SIDE_* constants.
2312 eCSSProperty_border_top_color
,
2313 eCSSProperty_border_right_color_value
,
2314 eCSSProperty_border_bottom_color
,
2315 eCSSProperty_border_left_color_value
,
2317 eCSSProperty_border_left_color_ltr_source
,
2318 eCSSProperty_border_left_color_rtl_source
,
2319 eCSSProperty_border_right_color_ltr_source
,
2320 eCSSProperty_border_right_color_rtl_source
,
2321 eCSSProperty_UNKNOWN
2324 static const nsCSSProperty gBorderEndColorSubpropTable
[] = {
2325 // nsCSSParser::ParseDirectionalBoxProperty depends on this order
2326 eCSSProperty_border_end_color_value
,
2327 eCSSProperty_border_right_color_ltr_source
,
2328 eCSSProperty_border_left_color_rtl_source
,
2329 eCSSProperty_UNKNOWN
2332 static const nsCSSProperty gBorderLeftColorSubpropTable
[] = {
2333 // nsCSSParser::ParseDirectionalBoxProperty depends on this order
2334 eCSSProperty_border_left_color_value
,
2335 eCSSProperty_border_left_color_ltr_source
,
2336 eCSSProperty_border_left_color_rtl_source
,
2337 eCSSProperty_UNKNOWN
2340 static const nsCSSProperty gBorderRightColorSubpropTable
[] = {
2341 // nsCSSParser::ParseDirectionalBoxProperty depends on this order
2342 eCSSProperty_border_right_color_value
,
2343 eCSSProperty_border_right_color_ltr_source
,
2344 eCSSProperty_border_right_color_rtl_source
,
2345 eCSSProperty_UNKNOWN
2348 static const nsCSSProperty gBorderStartColorSubpropTable
[] = {
2349 // nsCSSParser::ParseDirectionalBoxProperty depends on this order
2350 eCSSProperty_border_start_color_value
,
2351 eCSSProperty_border_left_color_ltr_source
,
2352 eCSSProperty_border_right_color_rtl_source
,
2353 eCSSProperty_UNKNOWN
2356 static const nsCSSProperty gBorderEndSubpropTable
[] = {
2357 // nsCSSDeclaration.cpp output the subproperties in this order.
2358 // It also depends on the color being third.
2359 eCSSProperty_border_end_width_value
,
2360 eCSSProperty_border_end_style_value
,
2361 eCSSProperty_border_end_color_value
,
2363 eCSSProperty_border_right_width_ltr_source
,
2364 eCSSProperty_border_left_width_rtl_source
,
2365 eCSSProperty_border_right_style_ltr_source
,
2366 eCSSProperty_border_left_style_rtl_source
,
2367 eCSSProperty_border_right_color_ltr_source
,
2368 eCSSProperty_border_left_color_rtl_source
,
2369 eCSSProperty_UNKNOWN
2372 static const nsCSSProperty gBorderLeftSubpropTable
[] = {
2373 // nsCSSDeclaration.cpp outputs the subproperties in this order.
2374 // It also depends on the color being third.
2375 eCSSProperty_border_left_width_value
,
2376 eCSSProperty_border_left_style_value
,
2377 eCSSProperty_border_left_color_value
,
2379 eCSSProperty_border_left_width_ltr_source
,
2380 eCSSProperty_border_left_width_rtl_source
,
2381 eCSSProperty_border_left_style_ltr_source
,
2382 eCSSProperty_border_left_style_rtl_source
,
2383 eCSSProperty_border_left_color_ltr_source
,
2384 eCSSProperty_border_left_color_rtl_source
,
2385 eCSSProperty_UNKNOWN
2388 static const nsCSSProperty gBorderRightSubpropTable
[] = {
2389 // nsCSSDeclaration.cpp outputs the subproperties in this order.
2390 // It also depends on the color being third.
2391 eCSSProperty_border_right_width_value
,
2392 eCSSProperty_border_right_style_value
,
2393 eCSSProperty_border_right_color_value
,
2395 eCSSProperty_border_right_width_ltr_source
,
2396 eCSSProperty_border_right_width_rtl_source
,
2397 eCSSProperty_border_right_style_ltr_source
,
2398 eCSSProperty_border_right_style_rtl_source
,
2399 eCSSProperty_border_right_color_ltr_source
,
2400 eCSSProperty_border_right_color_rtl_source
,
2401 eCSSProperty_UNKNOWN
2404 static const nsCSSProperty gBorderStartSubpropTable
[] = {
2405 // nsCSSDeclaration.cpp outputs the subproperties in this order.
2406 // It also depends on the color being third.
2407 eCSSProperty_border_start_width_value
,
2408 eCSSProperty_border_start_style_value
,
2409 eCSSProperty_border_start_color_value
,
2411 eCSSProperty_border_left_width_ltr_source
,
2412 eCSSProperty_border_right_width_rtl_source
,
2413 eCSSProperty_border_left_style_ltr_source
,
2414 eCSSProperty_border_right_style_rtl_source
,
2415 eCSSProperty_border_left_color_ltr_source
,
2416 eCSSProperty_border_right_color_rtl_source
,
2417 eCSSProperty_UNKNOWN
2420 static const nsCSSProperty gBorderStyleSubpropTable
[] = {
2421 // Code relies on these being in top-right-bottom-left order.
2422 eCSSProperty_border_top_style
,
2423 eCSSProperty_border_right_style_value
,
2424 eCSSProperty_border_bottom_style
,
2425 eCSSProperty_border_left_style_value
,
2427 eCSSProperty_border_left_style_ltr_source
,
2428 eCSSProperty_border_left_style_rtl_source
,
2429 eCSSProperty_border_right_style_ltr_source
,
2430 eCSSProperty_border_right_style_rtl_source
,
2431 eCSSProperty_UNKNOWN
2434 static const nsCSSProperty gBorderLeftStyleSubpropTable
[] = {
2435 // nsCSSParser::ParseDirectionalBoxProperty depends on this order
2436 eCSSProperty_border_left_style_value
,
2437 eCSSProperty_border_left_style_ltr_source
,
2438 eCSSProperty_border_left_style_rtl_source
,
2439 eCSSProperty_UNKNOWN
2442 static const nsCSSProperty gBorderRightStyleSubpropTable
[] = {
2443 // nsCSSParser::ParseDirectionalBoxProperty depends on this order
2444 eCSSProperty_border_right_style_value
,
2445 eCSSProperty_border_right_style_ltr_source
,
2446 eCSSProperty_border_right_style_rtl_source
,
2447 eCSSProperty_UNKNOWN
2450 static const nsCSSProperty gBorderStartStyleSubpropTable
[] = {
2451 // nsCSSParser::ParseDirectionalBoxProperty depends on this order
2452 eCSSProperty_border_start_style_value
,
2453 eCSSProperty_border_left_style_ltr_source
,
2454 eCSSProperty_border_right_style_rtl_source
,
2455 eCSSProperty_UNKNOWN
2458 static const nsCSSProperty gBorderEndStyleSubpropTable
[] = {
2459 // nsCSSParser::ParseDirectionalBoxProperty depends on this order
2460 eCSSProperty_border_end_style_value
,
2461 eCSSProperty_border_right_style_ltr_source
,
2462 eCSSProperty_border_left_style_rtl_source
,
2463 eCSSProperty_UNKNOWN
2466 static const nsCSSProperty gBorderTopSubpropTable
[] = {
2467 // nsCSSDeclaration.cpp outputs the subproperties in this order.
2468 // It also depends on the color being third.
2469 eCSSProperty_border_top_width
,
2470 eCSSProperty_border_top_style
,
2471 eCSSProperty_border_top_color
,
2472 eCSSProperty_UNKNOWN
2475 static const nsCSSProperty gBorderWidthSubpropTable
[] = {
2476 // Code relies on these being in top-right-bottom-left order.
2477 eCSSProperty_border_top_width
,
2478 eCSSProperty_border_right_width_value
,
2479 eCSSProperty_border_bottom_width
,
2480 eCSSProperty_border_left_width_value
,
2482 eCSSProperty_border_left_width_ltr_source
,
2483 eCSSProperty_border_left_width_rtl_source
,
2484 eCSSProperty_border_right_width_ltr_source
,
2485 eCSSProperty_border_right_width_rtl_source
,
2486 eCSSProperty_UNKNOWN
2489 static const nsCSSProperty gBorderLeftWidthSubpropTable
[] = {
2490 // nsCSSParser::ParseDirectionalBoxProperty depends on this order
2491 eCSSProperty_border_left_width_value
,
2492 eCSSProperty_border_left_width_ltr_source
,
2493 eCSSProperty_border_left_width_rtl_source
,
2494 eCSSProperty_UNKNOWN
2497 static const nsCSSProperty gBorderRightWidthSubpropTable
[] = {
2498 // nsCSSParser::ParseDirectionalBoxProperty depends on this order
2499 eCSSProperty_border_right_width_value
,
2500 eCSSProperty_border_right_width_ltr_source
,
2501 eCSSProperty_border_right_width_rtl_source
,
2502 eCSSProperty_UNKNOWN
2505 static const nsCSSProperty gBorderStartWidthSubpropTable
[] = {
2506 // nsCSSParser::ParseDirectionalBoxProperty depends on this order
2507 eCSSProperty_border_start_width_value
,
2508 eCSSProperty_border_left_width_ltr_source
,
2509 eCSSProperty_border_right_width_rtl_source
,
2510 eCSSProperty_UNKNOWN
2513 static const nsCSSProperty gBorderEndWidthSubpropTable
[] = {
2514 // nsCSSParser::ParseDirectionalBoxProperty depends on this order
2515 eCSSProperty_border_end_width_value
,
2516 eCSSProperty_border_right_width_ltr_source
,
2517 eCSSProperty_border_left_width_rtl_source
,
2518 eCSSProperty_UNKNOWN
2521 static const nsCSSProperty gFontSubpropTable
[] = {
2522 eCSSProperty_font_family
,
2523 eCSSProperty_font_style
,
2524 eCSSProperty_font_weight
,
2525 eCSSProperty_font_size
,
2526 eCSSProperty_line_height
,
2527 eCSSProperty_font_size_adjust
,
2528 eCSSProperty_font_stretch
,
2529 eCSSProperty__x_system_font
,
2530 eCSSProperty_font_feature_settings
,
2531 eCSSProperty_font_language_override
,
2532 eCSSProperty_font_kerning
,
2533 eCSSProperty_font_synthesis
,
2534 eCSSProperty_font_variant_alternates
,
2535 eCSSProperty_font_variant_caps
,
2536 eCSSProperty_font_variant_east_asian
,
2537 eCSSProperty_font_variant_ligatures
,
2538 eCSSProperty_font_variant_numeric
,
2539 eCSSProperty_font_variant_position
,
2540 eCSSProperty_UNKNOWN
2543 static const nsCSSProperty gFontVariantSubpropTable
[] = {
2544 eCSSProperty_font_variant_alternates
,
2545 eCSSProperty_font_variant_caps
,
2546 eCSSProperty_font_variant_east_asian
,
2547 eCSSProperty_font_variant_ligatures
,
2548 eCSSProperty_font_variant_numeric
,
2549 eCSSProperty_font_variant_position
,
2550 eCSSProperty_UNKNOWN
2553 static const nsCSSProperty gListStyleSubpropTable
[] = {
2554 eCSSProperty_list_style_type
,
2555 eCSSProperty_list_style_image
,
2556 eCSSProperty_list_style_position
,
2557 eCSSProperty_UNKNOWN
2560 static const nsCSSProperty gMarginSubpropTable
[] = {
2561 // Code relies on these being in top-right-bottom-left order.
2562 eCSSProperty_margin_top
,
2563 eCSSProperty_margin_right_value
,
2564 eCSSProperty_margin_bottom
,
2565 eCSSProperty_margin_left_value
,
2567 eCSSProperty_margin_left_ltr_source
,
2568 eCSSProperty_margin_left_rtl_source
,
2569 eCSSProperty_margin_right_ltr_source
,
2570 eCSSProperty_margin_right_rtl_source
,
2571 eCSSProperty_UNKNOWN
2574 static const nsCSSProperty gMarginLeftSubpropTable
[] = {
2575 // nsCSSParser::ParseDirectionalBoxProperty depends on this order
2576 eCSSProperty_margin_left_value
,
2577 eCSSProperty_margin_left_ltr_source
,
2578 eCSSProperty_margin_left_rtl_source
,
2579 eCSSProperty_UNKNOWN
2582 static const nsCSSProperty gMarginRightSubpropTable
[] = {
2583 // nsCSSParser::ParseDirectionalBoxProperty depends on this order
2584 eCSSProperty_margin_right_value
,
2585 eCSSProperty_margin_right_ltr_source
,
2586 eCSSProperty_margin_right_rtl_source
,
2587 eCSSProperty_UNKNOWN
2590 static const nsCSSProperty gMarginStartSubpropTable
[] = {
2591 // nsCSSParser::ParseDirectionalBoxProperty depends on this order
2592 eCSSProperty_margin_start_value
,
2593 eCSSProperty_margin_left_ltr_source
,
2594 eCSSProperty_margin_right_rtl_source
,
2595 eCSSProperty_UNKNOWN
2598 static const nsCSSProperty gMarginEndSubpropTable
[] = {
2599 // nsCSSParser::ParseDirectionalBoxProperty depends on this order
2600 eCSSProperty_margin_end_value
,
2601 eCSSProperty_margin_right_ltr_source
,
2602 eCSSProperty_margin_left_rtl_source
,
2603 eCSSProperty_UNKNOWN
2607 static const nsCSSProperty gOutlineSubpropTable
[] = {
2608 // nsCSSDeclaration.cpp outputs the subproperties in this order.
2609 // It also depends on the color being third.
2610 eCSSProperty_outline_width
,
2611 eCSSProperty_outline_style
,
2612 eCSSProperty_outline_color
,
2613 eCSSProperty_UNKNOWN
2616 static const nsCSSProperty gColumnsSubpropTable
[] = {
2617 eCSSProperty__moz_column_count
,
2618 eCSSProperty__moz_column_width
,
2619 eCSSProperty_UNKNOWN
2622 static const nsCSSProperty gColumnRuleSubpropTable
[] = {
2623 // nsCSSDeclaration.cpp outputs the subproperties in this order.
2624 // It also depends on the color being third.
2625 eCSSProperty__moz_column_rule_width
,
2626 eCSSProperty__moz_column_rule_style
,
2627 eCSSProperty__moz_column_rule_color
,
2628 eCSSProperty_UNKNOWN
2631 static const nsCSSProperty gFlexSubpropTable
[] = {
2632 eCSSProperty_flex_grow
,
2633 eCSSProperty_flex_shrink
,
2634 eCSSProperty_flex_basis
,
2635 eCSSProperty_UNKNOWN
2638 static const nsCSSProperty gFlexFlowSubpropTable
[] = {
2639 eCSSProperty_flex_direction
,
2640 eCSSProperty_flex_wrap
,
2641 eCSSProperty_UNKNOWN
2644 static const nsCSSProperty gGridTemplateSubpropTable
[] = {
2645 eCSSProperty_grid_template_areas
,
2646 eCSSProperty_grid_template_columns
,
2647 eCSSProperty_grid_template_rows
,
2648 eCSSProperty_UNKNOWN
2651 static const nsCSSProperty gGridSubpropTable
[] = {
2652 eCSSProperty_grid_template_areas
,
2653 eCSSProperty_grid_template_columns
,
2654 eCSSProperty_grid_template_rows
,
2655 eCSSProperty_grid_auto_flow
,
2656 eCSSProperty_grid_auto_columns
,
2657 eCSSProperty_grid_auto_rows
,
2658 eCSSProperty_UNKNOWN
2661 static const nsCSSProperty gGridColumnSubpropTable
[] = {
2662 eCSSProperty_grid_column_start
,
2663 eCSSProperty_grid_column_end
,
2664 eCSSProperty_UNKNOWN
2667 static const nsCSSProperty gGridRowSubpropTable
[] = {
2668 eCSSProperty_grid_row_start
,
2669 eCSSProperty_grid_row_end
,
2670 eCSSProperty_UNKNOWN
2673 static const nsCSSProperty gGridAreaSubpropTable
[] = {
2674 eCSSProperty_grid_row_start
,
2675 eCSSProperty_grid_column_start
,
2676 eCSSProperty_grid_row_end
,
2677 eCSSProperty_grid_column_end
,
2678 eCSSProperty_UNKNOWN
2681 static const nsCSSProperty gOverflowSubpropTable
[] = {
2682 eCSSProperty_overflow_x
,
2683 eCSSProperty_overflow_y
,
2684 eCSSProperty_UNKNOWN
2687 static const nsCSSProperty gPaddingSubpropTable
[] = {
2688 // Code relies on these being in top-right-bottom-left order.
2689 eCSSProperty_padding_top
,
2690 eCSSProperty_padding_right_value
,
2691 eCSSProperty_padding_bottom
,
2692 eCSSProperty_padding_left_value
,
2694 eCSSProperty_padding_left_ltr_source
,
2695 eCSSProperty_padding_left_rtl_source
,
2696 eCSSProperty_padding_right_ltr_source
,
2697 eCSSProperty_padding_right_rtl_source
,
2698 eCSSProperty_UNKNOWN
2701 static const nsCSSProperty gPaddingLeftSubpropTable
[] = {
2702 // nsCSSParser::ParseDirectionalBoxProperty depends on this order
2703 eCSSProperty_padding_left_value
,
2704 eCSSProperty_padding_left_ltr_source
,
2705 eCSSProperty_padding_left_rtl_source
,
2706 eCSSProperty_UNKNOWN
2709 static const nsCSSProperty gPaddingRightSubpropTable
[] = {
2710 // nsCSSParser::ParseDirectionalBoxProperty depends on this order
2711 eCSSProperty_padding_right_value
,
2712 eCSSProperty_padding_right_ltr_source
,
2713 eCSSProperty_padding_right_rtl_source
,
2714 eCSSProperty_UNKNOWN
2717 static const nsCSSProperty gPaddingStartSubpropTable
[] = {
2718 // nsCSSParser::ParseDirectionalBoxProperty depends on this order
2719 eCSSProperty_padding_start_value
,
2720 eCSSProperty_padding_left_ltr_source
,
2721 eCSSProperty_padding_right_rtl_source
,
2722 eCSSProperty_UNKNOWN
2725 static const nsCSSProperty gPaddingEndSubpropTable
[] = {
2726 // nsCSSParser::ParseDirectionalBoxProperty depends on this order
2727 eCSSProperty_padding_end_value
,
2728 eCSSProperty_padding_right_ltr_source
,
2729 eCSSProperty_padding_left_rtl_source
,
2730 eCSSProperty_UNKNOWN
2733 static const nsCSSProperty gTextDecorationSubpropTable
[] = {
2734 eCSSProperty_text_decoration_color
,
2735 eCSSProperty_text_decoration_line
,
2736 eCSSProperty_text_decoration_style
,
2737 eCSSProperty_UNKNOWN
2740 static const nsCSSProperty gTransitionSubpropTable
[] = {
2741 eCSSProperty_transition_property
,
2742 eCSSProperty_transition_duration
,
2743 eCSSProperty_transition_timing_function
,
2744 eCSSProperty_transition_delay
,
2745 eCSSProperty_UNKNOWN
2748 static const nsCSSProperty gBorderImageSubpropTable
[] = {
2749 eCSSProperty_border_image_source
,
2750 eCSSProperty_border_image_slice
,
2751 eCSSProperty_border_image_width
,
2752 eCSSProperty_border_image_outset
,
2753 eCSSProperty_border_image_repeat
,
2754 eCSSProperty_UNKNOWN
2757 static const nsCSSProperty gMarkerSubpropTable
[] = {
2758 eCSSProperty_marker_start
,
2759 eCSSProperty_marker_mid
,
2760 eCSSProperty_marker_end
,
2761 eCSSProperty_UNKNOWN
2764 // Subproperty tables for shorthands that are just aliases with
2765 // different parsing rules.
2766 static const nsCSSProperty gMozTransformSubpropTable
[] = {
2767 eCSSProperty_transform
,
2768 eCSSProperty_UNKNOWN
2771 const nsCSSProperty
*const
2772 nsCSSProps::kSubpropertyTable
[eCSSProperty_COUNT
- eCSSProperty_COUNT_no_shorthands
] = {
2773 #define CSS_PROP_PUBLIC_OR_PRIVATE(publicname_, privatename_) privatename_
2774 // Need an extra level of macro nesting to force expansion of method_
2775 // params before they get pasted.
2776 #define NSCSSPROPS_INNER_MACRO(method_) g##method_##SubpropTable,
2777 #define CSS_PROP_SHORTHAND(name_, id_, method_, flags_, pref_) \
2778 NSCSSPROPS_INNER_MACRO(method_)
2779 #include "nsCSSPropList.h"
2780 #undef CSS_PROP_SHORTHAND
2781 #undef NSCSSPROPS_INNER_MACRO
2782 #undef CSS_PROP_PUBLIC_OR_PRIVATE
2786 #define ENUM_DATA_FOR_PROPERTY(name_, id_, method_, flags_, pref_, \
2787 parsevariant_, kwtable_, stylestructoffset_, \
2789 ePropertyIndex_for_##id_,
2791 // The order of these enums must match the g*Flags arrays in nsRuleNode.cpp.
2793 enum FontCheckCounter
{
2794 #define CSS_PROP_FONT ENUM_DATA_FOR_PROPERTY
2795 #include "nsCSSPropList.h"
2796 #undef CSS_PROP_FONT
2797 ePropertyCount_for_Font
2800 enum DisplayCheckCounter
{
2801 #define CSS_PROP_DISPLAY ENUM_DATA_FOR_PROPERTY
2802 #include "nsCSSPropList.h"
2803 #undef CSS_PROP_DISPLAY
2804 ePropertyCount_for_Display
2807 enum VisibilityCheckCounter
{
2808 #define CSS_PROP_VISIBILITY ENUM_DATA_FOR_PROPERTY
2809 #include "nsCSSPropList.h"
2810 #undef CSS_PROP_VISIBILITY
2811 ePropertyCount_for_Visibility
2814 enum MarginCheckCounter
{
2815 #define CSS_PROP_MARGIN ENUM_DATA_FOR_PROPERTY
2816 #include "nsCSSPropList.h"
2817 #undef CSS_PROP_MARGIN
2818 ePropertyCount_for_Margin
2821 enum BorderCheckCounter
{
2822 #define CSS_PROP_BORDER ENUM_DATA_FOR_PROPERTY
2823 #include "nsCSSPropList.h"
2824 #undef CSS_PROP_BORDER
2825 ePropertyCount_for_Border
2828 enum PaddingCheckCounter
{
2829 #define CSS_PROP_PADDING ENUM_DATA_FOR_PROPERTY
2830 #include "nsCSSPropList.h"
2831 #undef CSS_PROP_PADDING
2832 ePropertyCount_for_Padding
2835 enum OutlineCheckCounter
{
2836 #define CSS_PROP_OUTLINE ENUM_DATA_FOR_PROPERTY
2837 #include "nsCSSPropList.h"
2838 #undef CSS_PROP_OUTLINE
2839 ePropertyCount_for_Outline
2842 enum ListCheckCounter
{
2843 #define CSS_PROP_LIST ENUM_DATA_FOR_PROPERTY
2844 #include "nsCSSPropList.h"
2845 #undef CSS_PROP_LIST
2846 ePropertyCount_for_List
2849 enum ColorCheckCounter
{
2850 #define CSS_PROP_COLOR ENUM_DATA_FOR_PROPERTY
2851 #include "nsCSSPropList.h"
2852 #undef CSS_PROP_COLOR
2853 ePropertyCount_for_Color
2856 enum BackgroundCheckCounter
{
2857 #define CSS_PROP_BACKGROUND ENUM_DATA_FOR_PROPERTY
2858 #include "nsCSSPropList.h"
2859 #undef CSS_PROP_BACKGROUND
2860 ePropertyCount_for_Background
2863 enum PositionCheckCounter
{
2864 #define CSS_PROP_POSITION ENUM_DATA_FOR_PROPERTY
2865 #include "nsCSSPropList.h"
2866 #undef CSS_PROP_POSITION
2867 ePropertyCount_for_Position
2870 enum TableCheckCounter
{
2871 #define CSS_PROP_TABLE ENUM_DATA_FOR_PROPERTY
2872 #include "nsCSSPropList.h"
2873 #undef CSS_PROP_TABLE
2874 ePropertyCount_for_Table
2877 enum TableBorderCheckCounter
{
2878 #define CSS_PROP_TABLEBORDER ENUM_DATA_FOR_PROPERTY
2879 #include "nsCSSPropList.h"
2880 #undef CSS_PROP_TABLEBORDER
2881 ePropertyCount_for_TableBorder
2884 enum ContentCheckCounter
{
2885 #define CSS_PROP_CONTENT ENUM_DATA_FOR_PROPERTY
2886 #include "nsCSSPropList.h"
2887 #undef CSS_PROP_CONTENT
2888 ePropertyCount_for_Content
2891 enum QuotesCheckCounter
{
2892 #define CSS_PROP_QUOTES ENUM_DATA_FOR_PROPERTY
2893 #include "nsCSSPropList.h"
2894 #undef CSS_PROP_QUOTES
2895 ePropertyCount_for_Quotes
2898 enum TextCheckCounter
{
2899 #define CSS_PROP_TEXT ENUM_DATA_FOR_PROPERTY
2900 #include "nsCSSPropList.h"
2901 #undef CSS_PROP_TEXT
2902 ePropertyCount_for_Text
2905 enum TextResetCheckCounter
{
2906 #define CSS_PROP_TEXTRESET ENUM_DATA_FOR_PROPERTY
2907 #include "nsCSSPropList.h"
2908 #undef CSS_PROP_TEXTRESET
2909 ePropertyCount_for_TextReset
2912 enum UserInterfaceCheckCounter
{
2913 #define CSS_PROP_USERINTERFACE ENUM_DATA_FOR_PROPERTY
2914 #include "nsCSSPropList.h"
2915 #undef CSS_PROP_USERINTERFACE
2916 ePropertyCount_for_UserInterface
2919 enum UIResetCheckCounter
{
2920 #define CSS_PROP_UIRESET ENUM_DATA_FOR_PROPERTY
2921 #include "nsCSSPropList.h"
2922 #undef CSS_PROP_UIRESET
2923 ePropertyCount_for_UIReset
2926 enum XULCheckCounter
{
2927 #define CSS_PROP_XUL ENUM_DATA_FOR_PROPERTY
2928 #include "nsCSSPropList.h"
2930 ePropertyCount_for_XUL
2933 enum SVGCheckCounter
{
2934 #define CSS_PROP_SVG ENUM_DATA_FOR_PROPERTY
2935 #include "nsCSSPropList.h"
2937 ePropertyCount_for_SVG
2940 enum SVGResetCheckCounter
{
2941 #define CSS_PROP_SVGRESET ENUM_DATA_FOR_PROPERTY
2942 #include "nsCSSPropList.h"
2943 #undef CSS_PROP_SVGRESET
2944 ePropertyCount_for_SVGReset
2947 enum ColumnCheckCounter
{
2948 #define CSS_PROP_COLUMN ENUM_DATA_FOR_PROPERTY
2949 #include "nsCSSPropList.h"
2950 #undef CSS_PROP_COLUMN
2951 ePropertyCount_for_Column
2954 enum VariablesCheckCounter
{
2955 #define CSS_PROP_VARIABLES ENUM_DATA_FOR_PROPERTY
2956 #include "nsCSSPropList.h"
2957 #undef CSS_PROP_VARIABLES
2958 ePropertyCount_for_Variables
2961 #undef ENUM_DATA_FOR_PROPERTY
2963 /* static */ const size_t
2964 nsCSSProps::gPropertyCountInStruct
[nsStyleStructID_Length
] = {
2965 #define STYLE_STRUCT(name, checkdata_cb) \
2966 ePropertyCount_for_##name,
2967 #include "nsStyleStructList.h"
2971 /* static */ const size_t
2972 nsCSSProps::gPropertyIndexInStruct
[eCSSProperty_COUNT_no_shorthands
] = {
2974 #define CSS_PROP_BACKENDONLY(name_, id_, method_, flags_, pref_, \
2975 parsevariant_, kwtable_) \
2977 #define CSS_PROP(name_, id_, method_, flags_, pref_, parsevariant_, \
2978 kwtable_, stylestruct_, stylestructoffset_, animtype_) \
2979 ePropertyIndex_for_##id_,
2980 #include "nsCSSPropList.h"
2982 #undef CSS_PROP_BACKENDONLY
2987 nsCSSProps::gPropertyEnabled
[eCSSProperty_COUNT_with_aliases
] = {
2988 #define CSS_PROP(name_, id_, method_, flags_, pref_, parsevariant_, \
2989 kwtable_, stylestruct_, stylestructoffset_, animtype_) \
2991 #include "nsCSSPropList.h"
2994 #define CSS_PROP_SHORTHAND(name_, id_, method_, flags_, pref_) \
2996 #include "nsCSSPropList.h"
2997 #undef CSS_PROP_SHORTHAND
2999 #define CSS_PROP_ALIAS(aliasname_, propid_, aliasmethod_, pref_) \
3001 #include "nsCSSPropAliasList.h"
3002 #undef CSS_PROP_ALIAS