michael@0: /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ michael@0: /* This Source Code Form is subject to the terms of the Mozilla Public michael@0: * License, v. 2.0. If a copy of the MPL was not distributed with this michael@0: * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ michael@0: michael@0: /* enum types for CSS properties and their values */ michael@0: michael@0: #ifndef nsCSSProperty_h___ michael@0: #define nsCSSProperty_h___ michael@0: michael@0: /* michael@0: Declare the enum list using the magic of preprocessing michael@0: enum values are "eCSSProperty_foo" (where foo is the property) michael@0: michael@0: To change the list of properties, see nsCSSPropList.h michael@0: michael@0: */ michael@0: enum nsCSSProperty { michael@0: eCSSProperty_UNKNOWN = -1, michael@0: michael@0: #define CSS_PROP(name_, id_, method_, flags_, pref_, parsevariant_, \ michael@0: kwtable_, stylestruct_, stylestructoffset_, animtype_) \ michael@0: eCSSProperty_##id_, michael@0: #include "nsCSSPropList.h" michael@0: #undef CSS_PROP michael@0: michael@0: eCSSProperty_COUNT_no_shorthands, michael@0: // Make the count continue where it left off: michael@0: eCSSProperty_COUNT_DUMMY = eCSSProperty_COUNT_no_shorthands - 1, michael@0: michael@0: #define CSS_PROP_SHORTHAND(name_, id_, method_, flags_, pref_) \ michael@0: eCSSProperty_##id_, michael@0: #include "nsCSSPropList.h" michael@0: #undef CSS_PROP_SHORTHAND michael@0: michael@0: eCSSProperty_COUNT, michael@0: // Make the count continue where it left off: michael@0: eCSSProperty_COUNT_DUMMY2 = eCSSProperty_COUNT - 1, michael@0: michael@0: #define CSS_PROP_ALIAS(aliasname_, id_, method_, pref_) \ michael@0: eCSSPropertyAlias_##method_, michael@0: #include "nsCSSPropAliasList.h" michael@0: #undef CSS_PROP_ALIAS michael@0: michael@0: eCSSProperty_COUNT_with_aliases, michael@0: // Make the count continue where it left off: michael@0: eCSSProperty_COUNT_DUMMY3 = eCSSProperty_COUNT_with_aliases - 1, michael@0: michael@0: // Some of the values below could probably overlap with each other michael@0: // if we had a need for them to do so. michael@0: michael@0: // Extra values for use in the values of the 'transition-property' michael@0: // property. michael@0: eCSSPropertyExtra_no_properties, michael@0: eCSSPropertyExtra_all_properties, michael@0: michael@0: // Extra dummy values for nsCSSParser internal use. michael@0: eCSSPropertyExtra_x_none_value, michael@0: eCSSPropertyExtra_x_auto_value, michael@0: michael@0: // Extra value to represent custom properties (--*). michael@0: eCSSPropertyExtra_variable michael@0: }; michael@0: michael@0: // The "descriptors" that can appear in a @font-face rule. michael@0: // They have the syntax of properties but different value rules. michael@0: enum nsCSSFontDesc { michael@0: eCSSFontDesc_UNKNOWN = -1, michael@0: #define CSS_FONT_DESC(name_, method_) eCSSFontDesc_##method_, michael@0: #include "nsCSSFontDescList.h" michael@0: #undef CSS_FONT_DESC michael@0: eCSSFontDesc_COUNT michael@0: }; michael@0: michael@0: #endif /* nsCSSProperty_h___ */