diff --git a/mozilla/content/html/style/src/nsCSSParser.cpp b/mozilla/content/html/style/src/nsCSSParser.cpp index 09380546cb2..a67ce970108 100644 --- a/mozilla/content/html/style/src/nsCSSParser.cpp +++ b/mozilla/content/html/style/src/nsCSSParser.cpp @@ -54,8 +54,6 @@ static NS_DEFINE_IID(kICSSParserIID, NS_ICSS_PARSER_IID); static NS_DEFINE_IID(kICSSStyleSheetIID, NS_ICSS_STYLE_SHEET_IID); static NS_DEFINE_IID(kIStyleSheetIID, NS_ISTYLE_SHEET_IID); -#define KEYWORD_BUFFER_SIZE 100 // big enough for any keyword - // e.g. "P B, H1 B { ... }" has a selector list with two elements, // each of which has two selectors. struct SelectorList { @@ -184,29 +182,27 @@ protected: PRBool aCheckForBraces, PRInt32& aChangeHint); PRBool ParseProperty(PRInt32& aErrorCode, nsICSSDeclaration* aDeclaration, - PRInt32 aPropID, PRInt32& aChangeHint); + nsCSSProperty aPropID, PRInt32& aChangeHint); PRBool ParseProperty(PRInt32& aErrorCode, nsICSSDeclaration* aDeclaration, - PRInt32 aPropID); + nsCSSProperty aPropID); PRBool ParseSingleValueProperty(PRInt32& aErrorCode, nsCSSValue& aValue, - PRInt32 aPropID); + nsCSSProperty aPropID); // Property specific parsing routines PRBool ParseAzimuth(PRInt32& aErrorCode, nsCSSValue& aValue); PRBool ParseBackground(PRInt32& aErrorCode, nsICSSDeclaration* aDeclaration); - PRBool ParseBackgroundFilter(PRInt32& aErrorCode, nsCSSValue& aValue); - PRBool ParseForegroundFilter(PRInt32& aErrorCode, nsCSSValue& aValue); PRBool ParseBackgroundPosition(PRInt32& aErrorCode, nsICSSDeclaration* aDeclaration); PRBool ParseBorder(PRInt32& aErrorCode, nsICSSDeclaration* aDeclaration); PRBool ParseBorderColor(PRInt32& aErrorCode, nsICSSDeclaration* aDeclaration); PRBool ParseBorderSpacing(PRInt32& aErrorCode, nsICSSDeclaration* aDeclaration); PRBool ParseBorderSide(PRInt32& aErrorCode, nsICSSDeclaration* aDeclaration, - const PRInt32 aPropIDs[]); + const nsCSSProperty aPropIDs[]); PRBool ParseBorderStyle(PRInt32& aErrorCode, nsICSSDeclaration* aDeclaration); PRBool ParseBorderWidth(PRInt32& aErrorCode, nsICSSDeclaration* aDeclaration); PRBool ParseClip(PRInt32& aErrorCode, nsICSSDeclaration* aDeclaration); PRBool ParseContent(PRInt32& aErrorCode, nsICSSDeclaration* aDeclaration); PRBool ParseCounterData(PRInt32& aErrorCode, nsICSSDeclaration* aDeclaration, - PRInt32 aPropID); + nsCSSProperty aPropID); PRBool ParseCue(PRInt32& aErrorCode, nsICSSDeclaration* aDeclaration); PRBool ParseCursor(PRInt32& aErrorCode, nsICSSDeclaration* aDeclaration); PRBool ParseFont(PRInt32& aErrorCode, nsICSSDeclaration* aDeclaration); @@ -225,14 +221,14 @@ protected: // Reused utility parsing routines PRBool ParseBoxProperties(PRInt32& aErrorCode, nsICSSDeclaration* aDeclaration, - const PRInt32 aPropIDs[]); + const nsCSSProperty aPropIDs[]); PRInt32 ParseChoice(PRInt32& aErrorCode, nsCSSValue aValues[], - const PRInt32 aPropIDs[], PRInt32 aNumIDs); + const nsCSSProperty aPropIDs[], PRInt32 aNumIDs); PRBool ParseColor(PRInt32& aErrorCode, nsCSSValue& aValue); PRBool ParseColorComponent(PRInt32& aErrorCode, PRUint8& aComponent, char aStop); PRBool ParseEnum(PRInt32& aErrorCode, nsCSSValue& aValue, const PRInt32 aKeywordTable[]); - PRInt32 SearchKeywordTable(PRInt32 aID, const PRInt32 aTable[]); + PRInt32 SearchKeywordTable(nsCSSKeyword aKeyword, const PRInt32 aTable[]); PRBool ParseVariant(PRInt32& aErrorCode, nsCSSValue& aValue, PRInt32 aVariantMask, const PRInt32 aKeywordTable[]); @@ -302,7 +298,7 @@ CSSParserImpl::CSSParserImpl() mGroupStack(nsnull) { NS_INIT_REFCNT(); - nsCSSAtoms::AddrefAtoms(); + nsCSSAtoms::AddRefAtoms(); } NS_IMETHODIMP @@ -1220,6 +1216,7 @@ PRBool CSSParserImpl::ParseSelectorList(PRInt32& aErrorCode, static PRBool IsPseudoClass(const nsIAtom* aAtom) { return PRBool((nsCSSAtoms::activePseudo == aAtom) || + (nsCSSAtoms::checkedPseudo == aAtom) || (nsCSSAtoms::disabledPseudo == aAtom) || (nsCSSAtoms::dragOverPseudo == aAtom) || (nsCSSAtoms::dragPseudo == aAtom) || @@ -1230,7 +1227,6 @@ static PRBool IsPseudoClass(const nsIAtom* aAtom) (nsCSSAtoms::langPseudo == aAtom) || (nsCSSAtoms::linkPseudo == aAtom) || (nsCSSAtoms::outOfDatePseudo == aAtom) || - (nsCSSAtoms::selectedPseudo == aAtom) || (nsCSSAtoms::visitedPseudo == aAtom)); } @@ -1800,8 +1796,6 @@ CSSParserImpl::ParseDeclarationBlock(PRInt32& aErrorCode, PRBool CSSParserImpl::ParseColor(PRInt32& aErrorCode, nsCSSValue& aValue) { - char cbuf[KEYWORD_BUFFER_SIZE]; - if (!GetToken(aErrorCode, PR_TRUE)) { return PR_FALSE; } @@ -1811,16 +1805,14 @@ PRBool CSSParserImpl::ParseColor(PRInt32& aErrorCode, nsCSSValue& aValue) switch (tk->mType) { case eCSSToken_ID: // #xxyyzz - tk->mIdent.ToCString(cbuf, sizeof(cbuf)); - if (NS_HexToRGB(cbuf, &rgba)) { + if (NS_HexToRGB(tk->mIdent, &rgba)) { aValue.SetColorValue(rgba); return PR_TRUE; } break; case eCSSToken_Ident: - tk->mIdent.ToCString(cbuf, sizeof(cbuf)); - if (NS_ColorNameToRGB(cbuf, &rgba)) { + if (NS_ColorNameToRGB(tk->mIdent, &rgba)) { aValue.SetStringValue(tk->mIdent, eCSSUnit_String); return PR_TRUE; } @@ -1833,7 +1825,7 @@ PRBool CSSParserImpl::ParseColor(PRInt32& aErrorCode, nsCSSValue& aValue) ParseColorComponent(aErrorCode, r, ',') && ParseColorComponent(aErrorCode, g, ',') && ParseColorComponent(aErrorCode, b, ')')) { - nscolor rgba = NS_RGB(r,g,b); + rgba = NS_RGB(r,g,b); aValue.SetColorValue(rgba); return PR_TRUE; } @@ -1890,13 +1882,13 @@ CSSParserImpl::ParseDeclaration(PRInt32& aErrorCode, // Get property name nsCSSToken* tk = &mToken; - char propertyName[100]; + nsAutoString propertyName; for (;;) { if (!GetToken(aErrorCode, PR_TRUE)) { return PR_FALSE; } if (eCSSToken_Ident == tk->mType) { - tk->mIdent.ToCString(propertyName, sizeof(propertyName)); + propertyName = tk->mIdent; // grab the ident before the ExpectSymbol trashes the token if (!ExpectSymbol(aErrorCode, ':', PR_TRUE)) { return PR_FALSE; @@ -1914,8 +1906,8 @@ CSSParserImpl::ParseDeclaration(PRInt32& aErrorCode, } // Map property name to it's ID and then parse the property - PRInt32 propID = nsCSSProps::LookupName(propertyName); - if (0 > propID) { // unknown property + nsCSSProperty propID = nsCSSProps::LookupProperty(propertyName); + if (eCSSProperty_UNKNOWN == propID) { // unknown property return PR_FALSE; } if (! ParseProperty(aErrorCode, aDeclaration, propID, aChangeHint)) { @@ -2041,32 +2033,32 @@ CSSParserImpl::ParseDeclaration(PRInt32& aErrorCode, #define VARIANT_HON (VARIANT_HN | VARIANT_NONE) #define VARIANT_HOS (VARIANT_INHERIT | VARIANT_NONE | VARIANT_STRING) -static const PRInt32 kBorderTopIDs[] = { - PROP_BORDER_TOP_WIDTH, - PROP_BORDER_TOP_STYLE, - PROP_BORDER_TOP_COLOR +static const nsCSSProperty kBorderTopIDs[] = { + eCSSProperty_border_top_width, + eCSSProperty_border_top_style, + eCSSProperty_border_top_color }; -static const PRInt32 kBorderRightIDs[] = { - PROP_BORDER_RIGHT_WIDTH, - PROP_BORDER_RIGHT_STYLE, - PROP_BORDER_RIGHT_COLOR +static const nsCSSProperty kBorderRightIDs[] = { + eCSSProperty_border_right_width, + eCSSProperty_border_right_style, + eCSSProperty_border_right_color }; -static const PRInt32 kBorderBottomIDs[] = { - PROP_BORDER_BOTTOM_WIDTH, - PROP_BORDER_BOTTOM_STYLE, - PROP_BORDER_BOTTOM_COLOR +static const nsCSSProperty kBorderBottomIDs[] = { + eCSSProperty_border_bottom_width, + eCSSProperty_border_bottom_style, + eCSSProperty_border_bottom_color }; -static const PRInt32 kBorderLeftIDs[] = { - PROP_BORDER_LEFT_WIDTH, - PROP_BORDER_LEFT_STYLE, - PROP_BORDER_LEFT_COLOR +static const nsCSSProperty kBorderLeftIDs[] = { + eCSSProperty_border_left_width, + eCSSProperty_border_left_style, + eCSSProperty_border_left_color }; -PRInt32 CSSParserImpl::SearchKeywordTable(PRInt32 aKeywordID, const PRInt32 aKeywordTable[]) +PRInt32 CSSParserImpl::SearchKeywordTable(nsCSSKeyword aKeyword, const PRInt32 aKeywordTable[]) { PRInt32 index = 0; while (0 <= aKeywordTable[index]) { - if (aKeywordID == aKeywordTable[index++]) { + if (aKeyword == nsCSSKeyword(aKeywordTable[index++])) { return index; } index++; @@ -2081,10 +2073,8 @@ PRBool CSSParserImpl::ParseEnum(PRInt32& aErrorCode, nsCSSValue& aValue, if (nsnull == ident) { return PR_FALSE; } - char cbuf[KEYWORD_BUFFER_SIZE]; - ident->ToCString(cbuf, sizeof(cbuf)); - PRInt32 keyword = nsCSSKeywords::LookupName(cbuf); - if (0 <= keyword) { + nsCSSKeyword keyword = nsCSSKeywords::LookupKeyword(*ident); + if (eCSSKeyword_UNKNOWN < keyword) { PRInt32 index = SearchKeywordTable(keyword, aKeywordTable); if (0 < index) { aValue.SetIntValue(aKeywordTable[index], eCSSUnit_Enumerated); @@ -2105,28 +2095,27 @@ PRBool CSSParserImpl::TranslateDimension(nsCSSValue& aValue, nsCSSUnit units; PRInt32 type = 0; if (0 != aUnit.Length()) { - char cbuf[KEYWORD_BUFFER_SIZE]; - aUnit.ToCString(cbuf, sizeof(cbuf)); - PRInt32 id = nsCSSKeywords::LookupName(cbuf); + nsCSSKeyword id = nsCSSKeywords::LookupKeyword(aUnit); switch (id) { - case KEYWORD_EM: units = eCSSUnit_EM; type = VARIANT_LENGTH; break; - case KEYWORD_EX: units = eCSSUnit_XHeight; type = VARIANT_LENGTH; break; - case KEYWORD_PX: units = eCSSUnit_Pixel; type = VARIANT_LENGTH; break; - case KEYWORD_IN: units = eCSSUnit_Inch; type = VARIANT_LENGTH; break; - case KEYWORD_CM: units = eCSSUnit_Centimeter; type = VARIANT_LENGTH; break; - case KEYWORD_MM: units = eCSSUnit_Millimeter; type = VARIANT_LENGTH; break; - case KEYWORD_PT: units = eCSSUnit_Point; type = VARIANT_LENGTH; break; - case KEYWORD_PC: units = eCSSUnit_Pica; type = VARIANT_LENGTH; break; + case eCSSKeyword_em: units = eCSSUnit_EM; type = VARIANT_LENGTH; break; + case eCSSKeyword_ex: units = eCSSUnit_XHeight; type = VARIANT_LENGTH; break; + case eCSSKeyword_ch: units = eCSSUnit_Char; type = VARIANT_LENGTH; break; + case eCSSKeyword_px: units = eCSSUnit_Pixel; type = VARIANT_LENGTH; break; + case eCSSKeyword_in: units = eCSSUnit_Inch; type = VARIANT_LENGTH; break; + case eCSSKeyword_cm: units = eCSSUnit_Centimeter; type = VARIANT_LENGTH; break; + case eCSSKeyword_mm: units = eCSSUnit_Millimeter; type = VARIANT_LENGTH; break; + case eCSSKeyword_pt: units = eCSSUnit_Point; type = VARIANT_LENGTH; break; + case eCSSKeyword_pc: units = eCSSUnit_Pica; type = VARIANT_LENGTH; break; - case KEYWORD_DEG: units = eCSSUnit_Degree; type = VARIANT_ANGLE; break; - case KEYWORD_GRAD: units = eCSSUnit_Grad; type = VARIANT_ANGLE; break; - case KEYWORD_RAD: units = eCSSUnit_Radian; type = VARIANT_ANGLE; break; + case eCSSKeyword_deg: units = eCSSUnit_Degree; type = VARIANT_ANGLE; break; + case eCSSKeyword_grad: units = eCSSUnit_Grad; type = VARIANT_ANGLE; break; + case eCSSKeyword_rad: units = eCSSUnit_Radian; type = VARIANT_ANGLE; break; - case KEYWORD_HZ: units = eCSSUnit_Hertz; type = VARIANT_FREQUENCY; break; - case KEYWORD_KHZ: units = eCSSUnit_Kilohertz; type = VARIANT_FREQUENCY; break; + case eCSSKeyword_hz: units = eCSSUnit_Hertz; type = VARIANT_FREQUENCY; break; + case eCSSKeyword_khz: units = eCSSUnit_Kilohertz; type = VARIANT_FREQUENCY; break; - case KEYWORD_S: units = eCSSUnit_Seconds; type = VARIANT_TIME; break; - case KEYWORD_MS: units = eCSSUnit_Milliseconds; type = VARIANT_TIME; break; + case eCSSKeyword_s: units = eCSSUnit_Seconds; type = VARIANT_TIME; break; + case eCSSKeyword_ms: units = eCSSUnit_Milliseconds; type = VARIANT_TIME; break; default: // unknown unit return PR_FALSE; @@ -2190,30 +2179,28 @@ PRBool CSSParserImpl::ParseVariant(PRInt32& aErrorCode, nsCSSValue& aValue, nsCSSToken* tk = &mToken; if (((aVariantMask & (VARIANT_AHK | VARIANT_NORMAL | VARIANT_NONE)) != 0) && (eCSSToken_Ident == tk->mType)) { - char cbuf[KEYWORD_BUFFER_SIZE]; - tk->mIdent.ToCString(cbuf, sizeof(cbuf)); - PRInt32 keyword = nsCSSKeywords::LookupName(cbuf); - if (0 <= keyword) { // known keyword + nsCSSKeyword keyword = nsCSSKeywords::LookupKeyword(tk->mIdent); + if (eCSSKeyword_UNKNOWN < keyword) { // known keyword if ((aVariantMask & VARIANT_AUTO) != 0) { - if (KEYWORD_AUTO == keyword) { + if (eCSSKeyword_auto == keyword) { aValue.SetAutoValue(); return PR_TRUE; } } if ((aVariantMask & VARIANT_INHERIT) != 0) { - if (KEYWORD_INHERIT == keyword) { + if (eCSSKeyword_inherit == keyword) { aValue.SetInheritValue(); return PR_TRUE; } } if ((aVariantMask & VARIANT_NONE) != 0) { - if (KEYWORD_NONE == keyword) { + if (eCSSKeyword_none == keyword) { aValue.SetNoneValue(); return PR_TRUE; } } if ((aVariantMask & VARIANT_NORMAL) != 0) { - if (KEYWORD_NORMAL == keyword) { + if (eCSSKeyword_normal == keyword) { aValue.SetNormalValue(); return PR_TRUE; } @@ -2342,10 +2329,8 @@ PRBool CSSParserImpl::ParseCounter(PRInt32& aErrorCode, nsCSSValue& aValue) // get optional type if (ExpectSymbol(aErrorCode, ',', PR_TRUE)) { if (GetToken(aErrorCode, PR_TRUE) && (eCSSToken_Ident == mToken.mType)) { - char cbuf[KEYWORD_BUFFER_SIZE]; - mToken.mIdent.ToCString(cbuf, sizeof(cbuf)); - PRInt32 keyword = nsCSSKeywords::LookupName(cbuf); - if ((0 <= keyword) && + nsCSSKeyword keyword = nsCSSKeywords::LookupKeyword(mToken.mIdent); + if ((eCSSKeyword_UNKNOWN < keyword) && (0 < SearchKeywordTable(keyword, nsCSSProps::kListStyleKTable))) { counter.Append(','); counter.Append(mToken.mIdent); @@ -2513,7 +2498,7 @@ PRBool CSSParserImpl::ParseURL(PRInt32& aErrorCode, nsCSSValue& aValue) } PRInt32 CSSParserImpl::ParseChoice(PRInt32& aErrorCode, nsCSSValue aValues[], - const PRInt32 aPropIDs[], PRInt32 aNumIDs) + const nsCSSProperty aPropIDs[], PRInt32 aNumIDs) { PRInt32 found = 0; PRInt32 loop; @@ -2561,7 +2546,7 @@ PRInt32 CSSParserImpl::ParseChoice(PRInt32& aErrorCode, nsCSSValue aValues[], */ PRBool CSSParserImpl::ParseBoxProperties(PRInt32& aErrorCode, nsICSSDeclaration* aDeclaration, - const PRInt32 aPropIDs[]) + const nsCSSProperty aPropIDs[]) { // Get up to four values for the property nsCSSValue values[4]; @@ -2603,20 +2588,20 @@ PRBool CSSParserImpl::ParseBoxProperties(PRInt32& aErrorCode, PRBool CSSParserImpl::ParseProperty(PRInt32& aErrorCode, nsICSSDeclaration* aDeclaration, - PRInt32 aPropID, + nsCSSProperty aPropID, PRInt32& aChangeHint) { // Strip out properties we use internally. These properties are used // by compound property parsing routines (e.g. "background-position"). switch (aPropID) { - case PROP_BACKGROUND_X_POSITION: - case PROP_BACKGROUND_Y_POSITION: - case PROP_BORDER_X_SPACING: - case PROP_BORDER_Y_SPACING: - case PROP_CLIP_BOTTOM: - case PROP_CLIP_LEFT: - case PROP_CLIP_RIGHT: - case PROP_CLIP_TOP: + case eCSSProperty_background_x_position: + case eCSSProperty_background_y_position: + case eCSSProperty_border_x_spacing: + case eCSSProperty_border_y_spacing: + case eCSSProperty_clip_bottom: + case eCSSProperty_clip_left: + case eCSSProperty_clip_right: + case eCSSProperty_clip_top: // The user can't use these return PR_FALSE; default: @@ -2632,61 +2617,61 @@ PRBool CSSParserImpl::ParseProperty(PRInt32& aErrorCode, PRBool CSSParserImpl::ParseProperty(PRInt32& aErrorCode, nsICSSDeclaration* aDeclaration, - PRInt32 aPropID) + nsCSSProperty aPropID) { switch (aPropID) { // handle shorthand or multiple properties - case PROP_BACKGROUND: + case eCSSProperty_background: return ParseBackground(aErrorCode, aDeclaration); - case PROP_BACKGROUND_POSITION: + case eCSSProperty_background_position: return ParseBackgroundPosition(aErrorCode, aDeclaration); - case PROP_BORDER: + case eCSSProperty_border: return ParseBorder(aErrorCode, aDeclaration); - case PROP_BORDER_COLOR: + case eCSSProperty_border_color: return ParseBorderColor(aErrorCode, aDeclaration); - case PROP_BORDER_SPACING: + case eCSSProperty_border_spacing: return ParseBorderSpacing(aErrorCode, aDeclaration); - case PROP_BORDER_STYLE: + case eCSSProperty_border_style: return ParseBorderStyle(aErrorCode, aDeclaration); - case PROP_BORDER_BOTTOM: + case eCSSProperty_border_bottom: return ParseBorderSide(aErrorCode, aDeclaration, kBorderBottomIDs); - case PROP_BORDER_LEFT: + case eCSSProperty_border_left: return ParseBorderSide(aErrorCode, aDeclaration, kBorderLeftIDs); - case PROP_BORDER_RIGHT: + case eCSSProperty_border_right: return ParseBorderSide(aErrorCode, aDeclaration, kBorderRightIDs); - case PROP_BORDER_TOP: + case eCSSProperty_border_top: return ParseBorderSide(aErrorCode, aDeclaration, kBorderTopIDs); - case PROP_BORDER_WIDTH: + case eCSSProperty_border_width: return ParseBorderWidth(aErrorCode, aDeclaration); - case PROP_CLIP: + case eCSSProperty_clip: return ParseClip(aErrorCode, aDeclaration); - case PROP_CONTENT: + case eCSSProperty_content: return ParseContent(aErrorCode, aDeclaration); - case PROP_COUNTER_INCREMENT: - case PROP_COUNTER_RESET: + case eCSSProperty_counter_increment: + case eCSSProperty_counter_reset: return ParseCounterData(aErrorCode, aDeclaration, aPropID); - case PROP_CUE: + case eCSSProperty_cue: return ParseCue(aErrorCode, aDeclaration); - case PROP_CURSOR: + case eCSSProperty_cursor: return ParseCursor(aErrorCode, aDeclaration); - case PROP_FONT: + case eCSSProperty_font: return ParseFont(aErrorCode, aDeclaration); - case PROP_LIST_STYLE: + case eCSSProperty_list_style: return ParseListStyle(aErrorCode, aDeclaration); - case PROP_MARGIN: + case eCSSProperty_margin: return ParseMargin(aErrorCode, aDeclaration); - case PROP_OUTLINE: + case eCSSProperty_outline: return ParseOutline(aErrorCode, aDeclaration); - case PROP_PADDING: + case eCSSProperty_padding: return ParsePadding(aErrorCode, aDeclaration); - case PROP_PAUSE: + case eCSSProperty_pause: return ParsePause(aErrorCode, aDeclaration); - case PROP_PLAY_DURING: + case eCSSProperty_play_during: return ParsePlayDuring(aErrorCode, aDeclaration); - case PROP_QUOTES: + case eCSSProperty_quotes: return ParseQuotes(aErrorCode, aDeclaration); - case PROP_SIZE: + case eCSSProperty_size: return ParseSize(aErrorCode, aDeclaration); - case PROP_TEXT_SHADOW: + case eCSSProperty_text_shadow: return ParseTextShadow(aErrorCode, aDeclaration); default: // must be single property @@ -2716,262 +2701,258 @@ PRBool CSSParserImpl::ParseProperty(PRInt32& aErrorCode, // parseBackgroundPosition! static const PRInt32 kBackgroundXYPositionKTable[] = { - KEYWORD_CENTER, BG_CENTER, - KEYWORD_TOP, BG_TOP, - KEYWORD_BOTTOM, BG_BOTTOM, - KEYWORD_LEFT, BG_LEFT, - KEYWORD_RIGHT, BG_RIGHT, + eCSSKeyword_center, BG_CENTER, + eCSSKeyword_top, BG_TOP, + eCSSKeyword_bottom, BG_BOTTOM, + eCSSKeyword_left, BG_LEFT, + eCSSKeyword_right, BG_RIGHT, -1, }; PRBool CSSParserImpl::ParseSingleValueProperty(PRInt32& aErrorCode, nsCSSValue& aValue, - PRInt32 aPropID) + nsCSSProperty aPropID) { switch (aPropID) { - case PROP_BACKGROUND: - case PROP_BACKGROUND_POSITION: - case PROP_BORDER: - case PROP_BORDER_COLOR: - case PROP_BORDER_SPACING: - case PROP_BORDER_STYLE: - case PROP_BORDER_BOTTOM: - case PROP_BORDER_LEFT: - case PROP_BORDER_RIGHT: - case PROP_BORDER_TOP: - case PROP_BORDER_WIDTH: - case PROP_CLIP: - case PROP_CONTENT: - case PROP_COUNTER_INCREMENT: - case PROP_COUNTER_RESET: - case PROP_CUE: - case PROP_CURSOR: - case PROP_FONT: - case PROP_LIST_STYLE: - case PROP_MARGIN: - case PROP_OUTLINE: - case PROP_PADDING: - case PROP_PAUSE: - case PROP_QUOTES: - case PROP_SIZE: - case PROP_TEXT_SHADOW: + case eCSSProperty_background: + case eCSSProperty_background_position: + case eCSSProperty_border: + case eCSSProperty_border_color: + case eCSSProperty_border_spacing: + case eCSSProperty_border_style: + case eCSSProperty_border_bottom: + case eCSSProperty_border_left: + case eCSSProperty_border_right: + case eCSSProperty_border_top: + case eCSSProperty_border_width: + case eCSSProperty_clip: + case eCSSProperty_content: + case eCSSProperty_counter_increment: + case eCSSProperty_counter_reset: + case eCSSProperty_cue: + case eCSSProperty_cursor: + case eCSSProperty_font: + case eCSSProperty_list_style: + case eCSSProperty_margin: + case eCSSProperty_outline: + case eCSSProperty_padding: + case eCSSProperty_pause: + case eCSSProperty_quotes: + case eCSSProperty_size: + case eCSSProperty_text_shadow: NS_ERROR("not a single value property"); return PR_FALSE; - case PROP_AZIMUTH: + case eCSSProperty_azimuth: return ParseAzimuth(aErrorCode, aValue); - case PROP_BACKGROUND_ATTACHMENT: + case eCSSProperty_background_attachment: return ParseVariant(aErrorCode, aValue, VARIANT_HK, nsCSSProps::kBackgroundAttachmentKTable); - case PROP_BACKGROUND_COLOR: + case eCSSProperty_background_color: return ParseVariant(aErrorCode, aValue, VARIANT_HCK, nsCSSProps::kBackgroundColorKTable); - case PROP_BACKGROUND_FILTER: // XXX - return ParseBackgroundFilter(aErrorCode, aValue); - case PROP_BACKGROUND_IMAGE: + case eCSSProperty_background_image: return ParseVariant(aErrorCode, aValue, VARIANT_HUO, nsnull); - case PROP_BACKGROUND_REPEAT: + case eCSSProperty_background_repeat: return ParseVariant(aErrorCode, aValue, VARIANT_HK, nsCSSProps::kBackgroundRepeatKTable); - case PROP_BACKGROUND_X_POSITION: - case PROP_BACKGROUND_Y_POSITION: + case eCSSProperty_background_x_position: + case eCSSProperty_background_y_position: return ParseVariant(aErrorCode, aValue, VARIANT_HKLP, kBackgroundXYPositionKTable); - case PROP_BORDER_COLLAPSE: + case eCSSProperty_border_collapse: return ParseVariant(aErrorCode, aValue, VARIANT_HK, nsCSSProps::kBorderCollapseKTable); - case PROP_BORDER_BOTTOM_COLOR: - case PROP_BORDER_LEFT_COLOR: - case PROP_BORDER_RIGHT_COLOR: - case PROP_BORDER_TOP_COLOR: + case eCSSProperty_border_bottom_color: + case eCSSProperty_border_left_color: + case eCSSProperty_border_right_color: + case eCSSProperty_border_top_color: return ParseVariant(aErrorCode, aValue, VARIANT_HCK, nsCSSProps::kBorderColorKTable); - case PROP_BORDER_BOTTOM_STYLE: - case PROP_BORDER_LEFT_STYLE: - case PROP_BORDER_RIGHT_STYLE: - case PROP_BORDER_TOP_STYLE: + case eCSSProperty_border_bottom_style: + case eCSSProperty_border_left_style: + case eCSSProperty_border_right_style: + case eCSSProperty_border_top_style: return ParseVariant(aErrorCode, aValue, VARIANT_HOK, nsCSSProps::kBorderStyleKTable); - case PROP_BORDER_BOTTOM_WIDTH: - case PROP_BORDER_LEFT_WIDTH: - case PROP_BORDER_RIGHT_WIDTH: - case PROP_BORDER_TOP_WIDTH: + case eCSSProperty_border_bottom_width: + case eCSSProperty_border_left_width: + case eCSSProperty_border_right_width: + case eCSSProperty_border_top_width: return ParseVariant(aErrorCode, aValue, VARIANT_HKL, nsCSSProps::kBorderWidthKTable); - case PROP__MOZ_BORDER_RADIUS: + case eCSSProperty__moz_border_radius: return ParseVariant(aErrorCode, aValue, VARIANT_HLP, nsnull); - case PROP_BOTTOM: - case PROP_TOP: - case PROP_LEFT: - case PROP_RIGHT: + case eCSSProperty_bottom: + case eCSSProperty_top: + case eCSSProperty_left: + case eCSSProperty_right: return ParseVariant(aErrorCode, aValue, VARIANT_AHLP, nsnull); - case PROP_HEIGHT: - case PROP_WIDTH: + case eCSSProperty_height: + case eCSSProperty_width: return ParsePositiveVariant(aErrorCode, aValue, VARIANT_AHLP, nsnull); - case PROP_CAPTION_SIDE: + case eCSSProperty_caption_side: return ParseVariant(aErrorCode, aValue, VARIANT_HK, nsCSSProps::kCaptionSideKTable); - case PROP_CLEAR: + case eCSSProperty_clear: return ParseVariant(aErrorCode, aValue, VARIANT_HOK, nsCSSProps::kClearKTable); - case PROP_COLOR: + case eCSSProperty_color: return ParseVariant(aErrorCode, aValue, VARIANT_HC, nsnull); - case PROP_CUE_AFTER: - case PROP_CUE_BEFORE: + case eCSSProperty_cue_after: + case eCSSProperty_cue_before: return ParseVariant(aErrorCode, aValue, VARIANT_HUO, nsnull); - case PROP_DIRECTION: + case eCSSProperty_direction: return ParseVariant(aErrorCode, aValue, VARIANT_HK, nsCSSProps::kDirectionKTable); - case PROP_DISPLAY: + case eCSSProperty_display: return ParseVariant(aErrorCode, aValue, VARIANT_HOK, nsCSSProps::kDisplayKTable); - case PROP_ELEVATION: + case eCSSProperty_elevation: return ParseVariant(aErrorCode, aValue, VARIANT_HK | VARIANT_ANGLE, nsCSSProps::kElevationKTable); - case PROP_EMPTY_CELLS: + case eCSSProperty_empty_cells: return ParseVariant(aErrorCode, aValue, VARIANT_HK, nsCSSProps::kEmptyCellsKTable); - case PROP_FILTER: - return ParseForegroundFilter(aErrorCode, aValue); - case PROP_FLOAT: + case eCSSProperty_float: return ParseVariant(aErrorCode, aValue, VARIANT_HOK, nsCSSProps::kFloatKTable); - case PROP_FONT_FAMILY: + case eCSSProperty_font_family: return ParseFamily(aErrorCode, aValue); - case PROP_FONT_SIZE: + case eCSSProperty_font_size: return ParsePositiveVariant(aErrorCode, aValue, VARIANT_HKLP, nsCSSProps::kFontSizeKTable); - case PROP_FONT_SIZE_ADJUST: + case eCSSProperty_font_size_adjust: return ParseVariant(aErrorCode, aValue, VARIANT_HON, nsnull); - case PROP_FONT_STRETCH: + case eCSSProperty_font_stretch: return ParseVariant(aErrorCode, aValue, VARIANT_HMK, nsCSSProps::kFontStretchKTable); - case PROP_FONT_STYLE: + case eCSSProperty_font_style: return ParseVariant(aErrorCode, aValue, VARIANT_HMK, nsCSSProps::kFontStyleKTable); - case PROP_FONT_VARIANT: + case eCSSProperty_font_variant: return ParseVariant(aErrorCode, aValue, VARIANT_HMK, nsCSSProps::kFontVariantKTable); - case PROP_FONT_WEIGHT: + case eCSSProperty_font_weight: return ParseVariant(aErrorCode, aValue, VARIANT_HMKI, nsCSSProps::kFontWeightKTable); - case PROP_LETTER_SPACING: - case PROP_WORD_SPACING: + case eCSSProperty_letter_spacing: + case eCSSProperty_word_spacing: return ParseVariant(aErrorCode, aValue, VARIANT_HL | VARIANT_NORMAL, nsnull); - case PROP_LINE_HEIGHT: + case eCSSProperty_line_height: return ParsePositiveVariant(aErrorCode, aValue, VARIANT_HLPN | VARIANT_NORMAL, nsnull); - case PROP_LIST_STYLE_IMAGE: + case eCSSProperty_list_style_image: return ParseVariant(aErrorCode, aValue, VARIANT_HUO, nsnull); - case PROP_LIST_STYLE_POSITION: + case eCSSProperty_list_style_position: return ParseVariant(aErrorCode, aValue, VARIANT_HK, nsCSSProps::kListStylePositionKTable); - case PROP_LIST_STYLE_TYPE: + case eCSSProperty_list_style_type: return ParseVariant(aErrorCode, aValue, VARIANT_HOK, nsCSSProps::kListStyleKTable); - case PROP_MARGIN_BOTTOM: - case PROP_MARGIN_LEFT: - case PROP_MARGIN_RIGHT: - case PROP_MARGIN_TOP: + case eCSSProperty_margin_bottom: + case eCSSProperty_margin_left: + case eCSSProperty_margin_right: + case eCSSProperty_margin_top: return ParseVariant(aErrorCode, aValue, VARIANT_AHLP, nsnull); - case PROP_MARKER_OFFSET: + case eCSSProperty_marker_offset: return ParseVariant(aErrorCode, aValue, VARIANT_AHL, nsnull); - case PROP_MARKS: + case eCSSProperty_marks: return ParseMarks(aErrorCode, aValue); - case PROP_MAX_HEIGHT: - case PROP_MAX_WIDTH: + case eCSSProperty_max_height: + case eCSSProperty_max_width: return ParseVariant(aErrorCode, aValue, VARIANT_HLPO, nsnull); - case PROP_MIN_HEIGHT: - case PROP_MIN_WIDTH: + case eCSSProperty_min_height: + case eCSSProperty_min_width: return ParseVariant(aErrorCode, aValue, VARIANT_HLP, nsnull); - case PROP_OPACITY: + case eCSSProperty_opacity: return ParseVariant(aErrorCode, aValue, VARIANT_HPN, nsnull); - case PROP_ORPHANS: - case PROP_WIDOWS: + case eCSSProperty_orphans: + case eCSSProperty_widows: return ParseVariant(aErrorCode, aValue, VARIANT_HI, nsnull); - case PROP_OUTLINE_COLOR: + case eCSSProperty_outline_color: return ParseVariant(aErrorCode, aValue, VARIANT_HCK, nsCSSProps::kOutlineColorKTable); - case PROP_OUTLINE_STYLE: + case eCSSProperty_outline_style: return ParseVariant(aErrorCode, aValue, VARIANT_HOK, nsCSSProps::kBorderStyleKTable); - case PROP_OUTLINE_WIDTH: + case eCSSProperty_outline_width: return ParseVariant(aErrorCode, aValue, VARIANT_HKL, nsCSSProps::kBorderWidthKTable); - case PROP_OVERFLOW: + case eCSSProperty_overflow: return ParseVariant(aErrorCode, aValue, VARIANT_AHK, nsCSSProps::kOverflowKTable); - case PROP_PADDING_BOTTOM: - case PROP_PADDING_LEFT: - case PROP_PADDING_RIGHT: - case PROP_PADDING_TOP: + case eCSSProperty_padding_bottom: + case eCSSProperty_padding_left: + case eCSSProperty_padding_right: + case eCSSProperty_padding_top: return ParsePositiveVariant(aErrorCode, aValue, VARIANT_HLP, nsnull); - case PROP_PAGE: + case eCSSProperty_page: return ParseVariant(aErrorCode, aValue, VARIANT_AUTO | VARIANT_IDENTIFIER, nsnull); - case PROP_PAGE_BREAK_AFTER: - case PROP_PAGE_BREAK_BEFORE: + case eCSSProperty_page_break_after: + case eCSSProperty_page_break_before: return ParseVariant(aErrorCode, aValue, VARIANT_AHK, nsCSSProps::kPageBreakKTable); - case PROP_PAGE_BREAK_INSIDE: + case eCSSProperty_page_break_inside: return ParseVariant(aErrorCode, aValue, VARIANT_AHK, nsCSSProps::kPageBreakInsideKTable); - case PROP_PAUSE_AFTER: - case PROP_PAUSE_BEFORE: + case eCSSProperty_pause_after: + case eCSSProperty_pause_before: return ParseVariant(aErrorCode, aValue, VARIANT_HTP, nsnull); - case PROP_PITCH: + case eCSSProperty_pitch: return ParseVariant(aErrorCode, aValue, VARIANT_HKF, nsCSSProps::kPitchKTable); - case PROP_PITCH_RANGE: + case eCSSProperty_pitch_range: return ParseVariant(aErrorCode, aValue, VARIANT_HN, nsnull); - case PROP_POSITION: + case eCSSProperty_position: return ParseVariant(aErrorCode, aValue, VARIANT_HK, nsCSSProps::kPositionKTable); - case PROP_RICHNESS: + case eCSSProperty_richness: return ParseVariant(aErrorCode, aValue, VARIANT_HN, nsnull); - case PROP_SPEAK: + case eCSSProperty_speak: return ParseVariant(aErrorCode, aValue, VARIANT_HMK | VARIANT_NONE, nsCSSProps::kSpeakKTable); - case PROP_SPEAK_HEADER: + case eCSSProperty_speak_header: return ParseVariant(aErrorCode, aValue, VARIANT_HK, nsCSSProps::kSpeakHeaderKTable); - case PROP_SPEAK_NUMERAL: + case eCSSProperty_speak_numeral: return ParseVariant(aErrorCode, aValue, VARIANT_HK, nsCSSProps::kSpeakNumeralKTable); - case PROP_SPEAK_PUNCTUATION: + case eCSSProperty_speak_punctuation: return ParseVariant(aErrorCode, aValue, VARIANT_HK, nsCSSProps::kSpeakPunctuationKTable); - case PROP_SPEECH_RATE: + case eCSSProperty_speech_rate: return ParseVariant(aErrorCode, aValue, VARIANT_HN | VARIANT_KEYWORD, nsCSSProps::kSpeechRateKTable); - case PROP_STRESS: + case eCSSProperty_stress: return ParseVariant(aErrorCode, aValue, VARIANT_HN, nsnull); - case PROP_TABLE_LAYOUT: + case eCSSProperty_table_layout: return ParseVariant(aErrorCode, aValue, VARIANT_AHK, nsCSSProps::kTableLayoutKTable); - case PROP_TEXT_ALIGN: + case eCSSProperty_text_align: return ParseVariant(aErrorCode, aValue, VARIANT_HK | VARIANT_STRING, nsCSSProps::kTextAlignKTable); - case PROP_TEXT_DECORATION: + case eCSSProperty_text_decoration: return ParseTextDecoration(aErrorCode, aValue); - case PROP_TEXT_INDENT: + case eCSSProperty_text_indent: return ParseVariant(aErrorCode, aValue, VARIANT_HLP, nsnull); - case PROP_TEXT_TRANSFORM: + case eCSSProperty_text_transform: return ParseVariant(aErrorCode, aValue, VARIANT_HOK, nsCSSProps::kTextTransformKTable); - case PROP_UNICODE_BIDI: + case eCSSProperty_unicode_bidi: return ParseVariant(aErrorCode, aValue, VARIANT_HMK, nsCSSProps::kUnicodeBidiKTable); - case PROP_VERTICAL_ALIGN: + case eCSSProperty_vertical_align: return ParseVariant(aErrorCode, aValue, VARIANT_HKLP, nsCSSProps::kVerticalAlignKTable); - case PROP_VISIBILITY: + case eCSSProperty_visibility: return ParseVariant(aErrorCode, aValue, VARIANT_HK, nsCSSProps::kVisibilityKTable); - case PROP_VOICE_FAMILY: + case eCSSProperty_voice_family: return ParseFamily(aErrorCode, aValue); - case PROP_VOLUME: + case eCSSProperty_volume: return ParseVariant(aErrorCode, aValue, VARIANT_HPN | VARIANT_KEYWORD, nsCSSProps::kVolumeKTable); - case PROP_WHITE_SPACE: + case eCSSProperty_white_space: return ParseVariant(aErrorCode, aValue, VARIANT_HMK, nsCSSProps::kWhitespaceKTable); - case PROP_Z_INDEX: + case eCSSProperty_z_index: return ParseVariant(aErrorCode, aValue, VARIANT_AHI, nsnull); } return PR_FALSE; @@ -3009,14 +2990,13 @@ PRBool CSSParserImpl::ParseAzimuth(PRInt32& aErrorCode, nsCSSValue& aValue) PRBool CSSParserImpl::ParseBackground(PRInt32& aErrorCode, nsICSSDeclaration* aDeclaration) { const PRInt32 numProps = 6; - static const PRInt32 kBackgroundIDs[numProps] = { - PROP_BACKGROUND_COLOR, - PROP_BACKGROUND_IMAGE, - PROP_BACKGROUND_REPEAT, - PROP_BACKGROUND_ATTACHMENT, - PROP_BACKGROUND_X_POSITION, - PROP_BACKGROUND_Y_POSITION -// PROP_BACKGROUND_FILTER + static const nsCSSProperty kBackgroundIDs[numProps] = { + eCSSProperty_background_color, + eCSSProperty_background_image, + eCSSProperty_background_repeat, + eCSSProperty_background_attachment, + eCSSProperty_background_x_position, + eCSSProperty_background_y_position }; nsCSSValue values[numProps]; @@ -3135,8 +3115,6 @@ PRBool CSSParserImpl::ParseBackground(PRInt32& aErrorCode, nsICSSDeclaration* aD values[5].SetPercentValue(0.0f); } - // Note: no default for filter (yet) - PRInt32 index; for (index = 0; index < numProps; index++) { aDeclaration->AppendValue(kBackgroundIDs[index], values[index]); @@ -3152,8 +3130,8 @@ PRBool CSSParserImpl::ParseBackgroundPosition(PRInt32& aErrorCode, if (ParseVariant(aErrorCode, xValue, VARIANT_HLP, nsnull)) { if (eCSSUnit_Inherit == xValue.GetUnit()) { // both are inherited if (ExpectEndProperty(aErrorCode, PR_TRUE)) { - aDeclaration->AppendValue(PROP_BACKGROUND_X_POSITION, xValue); - aDeclaration->AppendValue(PROP_BACKGROUND_Y_POSITION, xValue); + aDeclaration->AppendValue(eCSSProperty_background_x_position, xValue); + aDeclaration->AppendValue(eCSSProperty_background_y_position, xValue); return PR_TRUE; } return PR_FALSE; @@ -3163,8 +3141,8 @@ PRBool CSSParserImpl::ParseBackgroundPosition(PRInt32& aErrorCode, if (ParseVariant(aErrorCode, yValue, VARIANT_LP, nsnull)) { // We have two numbers if (ExpectEndProperty(aErrorCode, PR_TRUE)) { - aDeclaration->AppendValue(PROP_BACKGROUND_X_POSITION, xValue); - aDeclaration->AppendValue(PROP_BACKGROUND_Y_POSITION, yValue); + aDeclaration->AppendValue(eCSSProperty_background_x_position, xValue); + aDeclaration->AppendValue(eCSSProperty_background_y_position, yValue); return PR_TRUE; } return PR_FALSE; @@ -3173,8 +3151,8 @@ PRBool CSSParserImpl::ParseBackgroundPosition(PRInt32& aErrorCode, // We have one number which is the x position. Create an value for // the vertical position which is of value 50% if (ExpectEndProperty(aErrorCode, PR_TRUE)) { - aDeclaration->AppendValue(PROP_BACKGROUND_X_POSITION, xValue); - aDeclaration->AppendValue(PROP_BACKGROUND_Y_POSITION, nsCSSValue(0.5f, eCSSUnit_Percent)); + aDeclaration->AppendValue(eCSSProperty_background_x_position, xValue); + aDeclaration->AppendValue(eCSSProperty_background_y_position, nsCSSValue(0.5f, eCSSUnit_Percent)); return PR_TRUE; } return PR_FALSE; @@ -3226,53 +3204,41 @@ PRBool CSSParserImpl::ParseBackgroundPosition(PRInt32& aErrorCode, if (ExpectEndProperty(aErrorCode, PR_TRUE)) { // Create style values - aDeclaration->AppendValue(PROP_BACKGROUND_X_POSITION, nsCSSValue(xEnumValue, eCSSUnit_Enumerated)); - aDeclaration->AppendValue(PROP_BACKGROUND_Y_POSITION, nsCSSValue(yEnumValue, eCSSUnit_Enumerated)); + aDeclaration->AppendValue(eCSSProperty_background_x_position, nsCSSValue(xEnumValue, eCSSUnit_Enumerated)); + aDeclaration->AppendValue(eCSSProperty_background_y_position, nsCSSValue(yEnumValue, eCSSUnit_Enumerated)); return PR_TRUE; } return PR_FALSE; } -PRBool CSSParserImpl::ParseBackgroundFilter(PRInt32& aErrorCode, nsCSSValue& aValue) -{ - // XXX not yet supported - return PR_FALSE; -} - -PRBool CSSParserImpl::ParseForegroundFilter(PRInt32& aErrorCode, nsCSSValue& aValue) -{ - // XXX not yet supported - return PR_FALSE; -} - // These must be in CSS order (top,right,bottom,left) for indexing to work -static const PRInt32 kBorderStyleIDs[] = { - PROP_BORDER_TOP_STYLE, - PROP_BORDER_RIGHT_STYLE, - PROP_BORDER_BOTTOM_STYLE, - PROP_BORDER_LEFT_STYLE +static const nsCSSProperty kBorderStyleIDs[] = { + eCSSProperty_border_top_style, + eCSSProperty_border_right_style, + eCSSProperty_border_bottom_style, + eCSSProperty_border_left_style }; -static const PRInt32 kBorderWidthIDs[] = { - PROP_BORDER_TOP_WIDTH, - PROP_BORDER_RIGHT_WIDTH, - PROP_BORDER_BOTTOM_WIDTH, - PROP_BORDER_LEFT_WIDTH +static const nsCSSProperty kBorderWidthIDs[] = { + eCSSProperty_border_top_width, + eCSSProperty_border_right_width, + eCSSProperty_border_bottom_width, + eCSSProperty_border_left_width }; -static const PRInt32 kBorderColorIDs[] = { - PROP_BORDER_TOP_COLOR, - PROP_BORDER_RIGHT_COLOR, - PROP_BORDER_BOTTOM_COLOR, - PROP_BORDER_LEFT_COLOR +static const nsCSSProperty kBorderColorIDs[] = { + eCSSProperty_border_top_color, + eCSSProperty_border_right_color, + eCSSProperty_border_bottom_color, + eCSSProperty_border_left_color }; PRBool CSSParserImpl::ParseBorder(PRInt32& aErrorCode, nsICSSDeclaration* aDeclaration) { const PRInt32 numProps = 3; - static const PRInt32 kBorderIDs[] = { - PROP_BORDER_TOP_WIDTH, // only one value per property - PROP_BORDER_TOP_STYLE, - PROP_BORDER_TOP_COLOR + static const nsCSSProperty kBorderIDs[] = { + eCSSProperty_border_top_width, // only one value per property + eCSSProperty_border_top_style, + eCSSProperty_border_top_color }; nsCSSValue values[numProps]; @@ -3319,8 +3285,8 @@ PRBool CSSParserImpl::ParseBorderSpacing(PRInt32& aErrorCode, nsICSSDeclaration* if (ParseVariant(aErrorCode, yValue, VARIANT_LENGTH, nsnull)) { // We have two numbers if (ExpectEndProperty(aErrorCode, PR_TRUE)) { - aDeclaration->AppendValue(PROP_BORDER_X_SPACING, xValue); - aDeclaration->AppendValue(PROP_BORDER_Y_SPACING, yValue); + aDeclaration->AppendValue(eCSSProperty_border_x_spacing, xValue); + aDeclaration->AppendValue(eCSSProperty_border_y_spacing, yValue); return PR_TRUE; } return PR_FALSE; @@ -3330,8 +3296,8 @@ PRBool CSSParserImpl::ParseBorderSpacing(PRInt32& aErrorCode, nsICSSDeclaration* // We have one length which is the horizontal spacing. Create a value for // the vertical spacing which is equal if (ExpectEndProperty(aErrorCode, PR_TRUE)) { - aDeclaration->AppendValue(PROP_BORDER_X_SPACING, xValue); - aDeclaration->AppendValue(PROP_BORDER_Y_SPACING, xValue); + aDeclaration->AppendValue(eCSSProperty_border_x_spacing, xValue); + aDeclaration->AppendValue(eCSSProperty_border_y_spacing, xValue); return PR_TRUE; } } @@ -3339,7 +3305,7 @@ PRBool CSSParserImpl::ParseBorderSpacing(PRInt32& aErrorCode, nsICSSDeclaration* } PRBool CSSParserImpl::ParseBorderSide(PRInt32& aErrorCode, nsICSSDeclaration* aDeclaration, - const PRInt32 aPropIDs[]) + const nsCSSProperty aPropIDs[]) { const PRInt32 numProps = 3; nsCSSValue values[numProps]; @@ -3378,11 +3344,11 @@ PRBool CSSParserImpl::ParseBorderWidth(PRInt32& aErrorCode, nsICSSDeclaration* a PRBool CSSParserImpl::ParseClip(PRInt32& aErrorCode, nsICSSDeclaration* aDeclaration) { - static const PRInt32 kClipIDs[] = { - PROP_CLIP_TOP, - PROP_CLIP_RIGHT, - PROP_CLIP_BOTTOM, - PROP_CLIP_LEFT + static const nsCSSProperty kClipIDs[] = { + eCSSProperty_clip_top, + eCSSProperty_clip_right, + eCSSProperty_clip_bottom, + eCSSProperty_clip_left }; if (! GetToken(aErrorCode, PR_TRUE)) { return PR_FALSE; @@ -3445,7 +3411,7 @@ PRBool CSSParserImpl::ParseContent(PRInt32& aErrorCode, nsICSSDeclaration* aDecl nsCSSProps::kContentKTable)) { if (eCSSUnit_Inherit == value.GetUnit()) { if (ExpectEndProperty(aErrorCode, PR_TRUE)) { - aDeclaration->AppendValue(PROP_CONTENT, value); + aDeclaration->AppendValue(eCSSProperty_content, value); return PR_TRUE; } return PR_FALSE; @@ -3460,7 +3426,7 @@ PRBool CSSParserImpl::ParseContent(PRInt32& aErrorCode, nsICSSDeclaration* aDecl while (nsnull != list) { if (ExpectEndProperty(aErrorCode, PR_TRUE)) { - aErrorCode = aDeclaration->AppendStructValue(PROP_CONTENT, listHead); + aErrorCode = aDeclaration->AppendStructValue(eCSSProperty_content, listHead); return NS_SUCCEEDED(aErrorCode); } if (ParseVariant(aErrorCode, value, VARIANT_CONTENT, nsCSSProps::kContentKTable)) { @@ -3483,7 +3449,7 @@ PRBool CSSParserImpl::ParseContent(PRInt32& aErrorCode, nsICSSDeclaration* aDecl } PRBool CSSParserImpl::ParseCounterData(PRInt32& aErrorCode, nsICSSDeclaration* aDeclaration, - PRInt32 aPropID) + nsCSSProperty aPropID) { nsString* ident = NextIdent(aErrorCode); if (nsnull == ident) { @@ -3552,21 +3518,21 @@ PRBool CSSParserImpl::ParseCounterData(PRInt32& aErrorCode, nsICSSDeclaration* a PRBool CSSParserImpl::ParseCue(PRInt32& aErrorCode, nsICSSDeclaration* aDeclaration) { nsCSSValue before; - if (ParseSingleValueProperty(aErrorCode, before, PROP_CUE_BEFORE)) { + if (ParseSingleValueProperty(aErrorCode, before, eCSSProperty_cue_before)) { if (eCSSUnit_URL == before.GetUnit()) { nsCSSValue after; - if (ParseSingleValueProperty(aErrorCode, after, PROP_CUE_AFTER)) { + if (ParseSingleValueProperty(aErrorCode, after, eCSSProperty_cue_after)) { if (ExpectEndProperty(aErrorCode, PR_TRUE)) { - aDeclaration->AppendValue(PROP_CUE_BEFORE, before); - aDeclaration->AppendValue(PROP_CUE_AFTER, after); + aDeclaration->AppendValue(eCSSProperty_cue_before, before); + aDeclaration->AppendValue(eCSSProperty_cue_after, after); return PR_TRUE; } return PR_FALSE; } } if (ExpectEndProperty(aErrorCode, PR_TRUE)) { - aDeclaration->AppendValue(PROP_CUE_BEFORE, before); - aDeclaration->AppendValue(PROP_CUE_AFTER, before); + aDeclaration->AppendValue(eCSSProperty_cue_before, before); + aDeclaration->AppendValue(eCSSProperty_cue_after, before); return PR_TRUE; } } @@ -3592,7 +3558,7 @@ PRBool CSSParserImpl::ParseCursor(PRInt32& aErrorCode, nsICSSDeclaration* aDecla } } if (ExpectEndProperty(aErrorCode, PR_TRUE)) { - aErrorCode = aDeclaration->AppendStructValue(PROP_CURSOR, listHead); + aErrorCode = aDeclaration->AppendStructValue(eCSSProperty_cursor, listHead); return NS_SUCCEEDED(aErrorCode); } if (ParseVariant(aErrorCode, value, VARIANT_AHUK, nsCSSProps::kCursorKTable)) { @@ -3613,7 +3579,7 @@ PRBool CSSParserImpl::ParseCursor(PRInt32& aErrorCode, nsICSSDeclaration* aDecla return PR_FALSE; } if (ExpectEndProperty(aErrorCode, PR_TRUE)) { - aDeclaration->AppendValue(PROP_CURSOR, value); + aDeclaration->AppendValue(eCSSProperty_cursor, value); return PR_TRUE; } } @@ -3623,35 +3589,35 @@ PRBool CSSParserImpl::ParseCursor(PRInt32& aErrorCode, nsICSSDeclaration* aDecla PRBool CSSParserImpl::ParseFont(PRInt32& aErrorCode, nsICSSDeclaration* aDeclaration) { - static const PRInt32 fontIDs[] = { - PROP_FONT_STYLE, - PROP_FONT_VARIANT, - PROP_FONT_WEIGHT + static const nsCSSProperty fontIDs[] = { + eCSSProperty_font_style, + eCSSProperty_font_variant, + eCSSProperty_font_weight }; nsCSSValue family; if (ParseVariant(aErrorCode, family, VARIANT_HK, nsCSSProps::kFontKTable)) { if (ExpectEndProperty(aErrorCode, PR_TRUE)) { if (eCSSUnit_Inherit == family.GetUnit()) { - aDeclaration->AppendValue(PROP_FONT_FAMILY, family); - aDeclaration->AppendValue(PROP_FONT_STYLE, family); - aDeclaration->AppendValue(PROP_FONT_VARIANT, family); - aDeclaration->AppendValue(PROP_FONT_WEIGHT, family); - aDeclaration->AppendValue(PROP_FONT_SIZE, family); - aDeclaration->AppendValue(PROP_LINE_HEIGHT, family); - aDeclaration->AppendValue(PROP_FONT_STRETCH, family); - aDeclaration->AppendValue(PROP_FONT_SIZE_ADJUST, family); + aDeclaration->AppendValue(eCSSProperty_font_family, family); + aDeclaration->AppendValue(eCSSProperty_font_style, family); + aDeclaration->AppendValue(eCSSProperty_font_variant, family); + aDeclaration->AppendValue(eCSSProperty_font_weight, family); + aDeclaration->AppendValue(eCSSProperty_font_size, family); + aDeclaration->AppendValue(eCSSProperty_line_height, family); + aDeclaration->AppendValue(eCSSProperty_font_stretch, family); + aDeclaration->AppendValue(eCSSProperty_font_size_adjust, family); } else { - aDeclaration->AppendValue(PROP_FONT_FAMILY, family); // keyword value overrides everything else + aDeclaration->AppendValue(eCSSProperty_font_family, family); // keyword value overrides everything else nsCSSValue empty; - aDeclaration->AppendValue(PROP_FONT_STYLE, empty); - aDeclaration->AppendValue(PROP_FONT_VARIANT, empty); - aDeclaration->AppendValue(PROP_FONT_WEIGHT, empty); - aDeclaration->AppendValue(PROP_FONT_SIZE, empty); - aDeclaration->AppendValue(PROP_LINE_HEIGHT, empty); - aDeclaration->AppendValue(PROP_FONT_STRETCH, empty); - aDeclaration->AppendValue(PROP_FONT_SIZE_ADJUST, empty); + aDeclaration->AppendValue(eCSSProperty_font_style, empty); + aDeclaration->AppendValue(eCSSProperty_font_variant, empty); + aDeclaration->AppendValue(eCSSProperty_font_weight, empty); + aDeclaration->AppendValue(eCSSProperty_font_size, empty); + aDeclaration->AppendValue(eCSSProperty_line_height, empty); + aDeclaration->AppendValue(eCSSProperty_font_stretch, empty); + aDeclaration->AppendValue(eCSSProperty_font_size_adjust, empty); } return PR_TRUE; } @@ -3698,14 +3664,14 @@ PRBool CSSParserImpl::ParseFont(PRInt32& aErrorCode, nsICSSDeclaration* aDeclara // Get final mandatory font-family if (ParseFamily(aErrorCode, family)) { if ((eCSSUnit_Inherit != family.GetUnit()) && ExpectEndProperty(aErrorCode, PR_TRUE)) { - aDeclaration->AppendValue(PROP_FONT_FAMILY, family); - aDeclaration->AppendValue(PROP_FONT_STYLE, values[0]); - aDeclaration->AppendValue(PROP_FONT_VARIANT, values[1]); - aDeclaration->AppendValue(PROP_FONT_WEIGHT, values[2]); - aDeclaration->AppendValue(PROP_FONT_SIZE, size); - aDeclaration->AppendValue(PROP_LINE_HEIGHT, lineHeight); - aDeclaration->AppendValue(PROP_FONT_STRETCH, nsCSSValue(eCSSUnit_Normal)); - aDeclaration->AppendValue(PROP_FONT_SIZE_ADJUST, nsCSSValue(eCSSUnit_None)); + aDeclaration->AppendValue(eCSSProperty_font_family, family); + aDeclaration->AppendValue(eCSSProperty_font_style, values[0]); + aDeclaration->AppendValue(eCSSProperty_font_variant, values[1]); + aDeclaration->AppendValue(eCSSProperty_font_weight, values[2]); + aDeclaration->AppendValue(eCSSProperty_font_size, size); + aDeclaration->AppendValue(eCSSProperty_line_height, lineHeight); + aDeclaration->AppendValue(eCSSProperty_font_stretch, nsCSSValue(eCSSUnit_Normal)); + aDeclaration->AppendValue(eCSSProperty_font_size_adjust, nsCSSValue(eCSSUnit_None)); return PR_TRUE; } } @@ -3784,10 +3750,10 @@ PRBool CSSParserImpl::ParseFamily(PRInt32& aErrorCode, nsCSSValue& aValue) PRBool CSSParserImpl::ParseListStyle(PRInt32& aErrorCode, nsICSSDeclaration* aDeclaration) { const PRInt32 numProps = 3; - static const PRInt32 listStyleIDs[] = { - PROP_LIST_STYLE_TYPE, - PROP_LIST_STYLE_POSITION, - PROP_LIST_STYLE_IMAGE + static const nsCSSProperty listStyleIDs[] = { + eCSSProperty_list_style_type, + eCSSProperty_list_style_position, + eCSSProperty_list_style_image }; nsCSSValue values[numProps]; @@ -3816,11 +3782,11 @@ PRBool CSSParserImpl::ParseListStyle(PRInt32& aErrorCode, nsICSSDeclaration* aDe PRBool CSSParserImpl::ParseMargin(PRInt32& aErrorCode, nsICSSDeclaration* aDeclaration) { - static const PRInt32 kMarginSideIDs[] = { - PROP_MARGIN_TOP, - PROP_MARGIN_RIGHT, - PROP_MARGIN_BOTTOM, - PROP_MARGIN_LEFT + static const nsCSSProperty kMarginSideIDs[] = { + eCSSProperty_margin_top, + eCSSProperty_margin_right, + eCSSProperty_margin_bottom, + eCSSProperty_margin_left }; return ParseBoxProperties(aErrorCode, aDeclaration, kMarginSideIDs); } @@ -3846,10 +3812,10 @@ PRBool CSSParserImpl::ParseMarks(PRInt32& aErrorCode, nsCSSValue& aValue) PRBool CSSParserImpl::ParseOutline(PRInt32& aErrorCode, nsICSSDeclaration* aDeclaration) { const PRInt32 numProps = 3; - static const PRInt32 kOutlineIDs[] = { - PROP_OUTLINE_COLOR, - PROP_OUTLINE_STYLE, - PROP_OUTLINE_WIDTH + static const nsCSSProperty kOutlineIDs[] = { + eCSSProperty_outline_color, + eCSSProperty_outline_style, + eCSSProperty_outline_width }; nsCSSValue values[numProps]; @@ -3878,11 +3844,11 @@ PRBool CSSParserImpl::ParseOutline(PRInt32& aErrorCode, nsICSSDeclaration* aDecl PRBool CSSParserImpl::ParsePadding(PRInt32& aErrorCode, nsICSSDeclaration* aDeclaration) { - static const PRInt32 kPaddingSideIDs[] = { - PROP_PADDING_TOP, - PROP_PADDING_RIGHT, - PROP_PADDING_BOTTOM, - PROP_PADDING_LEFT + static const nsCSSProperty kPaddingSideIDs[] = { + eCSSProperty_padding_top, + eCSSProperty_padding_right, + eCSSProperty_padding_bottom, + eCSSProperty_padding_left }; return ParseBoxProperties(aErrorCode, aDeclaration, kPaddingSideIDs); } @@ -3891,21 +3857,21 @@ PRBool CSSParserImpl::ParsePause(PRInt32& aErrorCode, nsICSSDeclaration* aDeclaration) { nsCSSValue before; - if (ParseSingleValueProperty(aErrorCode, before, PROP_PAUSE_BEFORE)) { + if (ParseSingleValueProperty(aErrorCode, before, eCSSProperty_pause_before)) { if (eCSSUnit_Inherit != before.GetUnit()) { nsCSSValue after; - if (ParseSingleValueProperty(aErrorCode, after, PROP_PAUSE_AFTER)) { + if (ParseSingleValueProperty(aErrorCode, after, eCSSProperty_pause_after)) { if (ExpectEndProperty(aErrorCode, PR_TRUE)) { - aDeclaration->AppendValue(PROP_PAUSE_BEFORE, before); - aDeclaration->AppendValue(PROP_PAUSE_AFTER, after); + aDeclaration->AppendValue(eCSSProperty_pause_before, before); + aDeclaration->AppendValue(eCSSProperty_pause_after, after); return PR_TRUE; } return PR_FALSE; } } if (ExpectEndProperty(aErrorCode, PR_TRUE)) { - aDeclaration->AppendValue(PROP_PAUSE_BEFORE, before); - aDeclaration->AppendValue(PROP_PAUSE_AFTER, before); + aDeclaration->AppendValue(eCSSProperty_pause_before, before); + aDeclaration->AppendValue(eCSSProperty_pause_after, before); return PR_TRUE; } } @@ -3927,8 +3893,8 @@ PRBool CSSParserImpl::ParsePlayDuring(PRInt32& aErrorCode, } } if (ExpectEndProperty(aErrorCode, PR_TRUE)) { - aDeclaration->AppendValue(PROP_PLAY_DURING, playDuring); - aDeclaration->AppendValue(PROP_PLAY_DURING_FLAGS, flags); + aDeclaration->AppendValue(eCSSProperty_play_during, playDuring); + aDeclaration->AppendValue(eCSSProperty_play_during_flags, flags); return PR_TRUE; } } @@ -3952,7 +3918,7 @@ PRBool CSSParserImpl::ParseQuotes(PRInt32& aErrorCode, // get mandatory close if (ParseVariant(aErrorCode, quotes->mClose, VARIANT_STRING, nsnull)) { if (ExpectEndProperty(aErrorCode, PR_TRUE)) { - aErrorCode = aDeclaration->AppendStructValue(PROP_QUOTES, quotesHead); + aErrorCode = aDeclaration->AppendStructValue(eCSSProperty_quotes, quotesHead); return NS_SUCCEEDED(aErrorCode); } // look for another open @@ -3972,7 +3938,7 @@ PRBool CSSParserImpl::ParseQuotes(PRInt32& aErrorCode, return PR_FALSE; } if (ExpectEndProperty(aErrorCode, PR_TRUE)) { - aDeclaration->AppendValue(PROP_QUOTES_OPEN, open); + aDeclaration->AppendValue(eCSSProperty_quotes_open, open); return PR_TRUE; } } @@ -3987,16 +3953,16 @@ PRBool CSSParserImpl::ParseSize(PRInt32& aErrorCode, nsICSSDeclaration* aDeclara nsCSSValue height; if (ParseVariant(aErrorCode, height, VARIANT_LENGTH, nsnull)) { if (ExpectEndProperty(aErrorCode, PR_TRUE)) { - aDeclaration->AppendValue(PROP_SIZE_WIDTH, width); - aDeclaration->AppendValue(PROP_SIZE_HEIGHT, height); + aDeclaration->AppendValue(eCSSProperty_size_width, width); + aDeclaration->AppendValue(eCSSProperty_size_height, height); return PR_TRUE; } return PR_FALSE; } } if (ExpectEndProperty(aErrorCode, PR_TRUE)) { - aDeclaration->AppendValue(PROP_SIZE_WIDTH, width); - aDeclaration->AppendValue(PROP_SIZE_HEIGHT, width); + aDeclaration->AppendValue(eCSSProperty_size_width, width); + aDeclaration->AppendValue(eCSSProperty_size_height, width); return PR_TRUE; } } @@ -4080,7 +4046,7 @@ PRBool CSSParserImpl::ParseTextShadow(PRInt32& aErrorCode, } else { if (ExpectEndProperty(aErrorCode, PR_TRUE)) { - aErrorCode = aDeclaration->AppendStructValue(PROP_TEXT_SHADOW, shadowHead); + aErrorCode = aDeclaration->AppendStructValue(eCSSProperty_text_shadow, shadowHead); return NS_SUCCEEDED(aErrorCode); } break; @@ -4091,7 +4057,7 @@ PRBool CSSParserImpl::ParseTextShadow(PRInt32& aErrorCode, } // value is inherit or none if (ExpectEndProperty(aErrorCode, PR_TRUE)) { - aDeclaration->AppendValue(PROP_TEXT_SHADOW_X, value); + aDeclaration->AppendValue(eCSSProperty_text_shadow_x, value); return PR_TRUE; } } diff --git a/mozilla/layout/html/style/src/nsCSSParser.cpp b/mozilla/layout/html/style/src/nsCSSParser.cpp index 09380546cb2..a67ce970108 100644 --- a/mozilla/layout/html/style/src/nsCSSParser.cpp +++ b/mozilla/layout/html/style/src/nsCSSParser.cpp @@ -54,8 +54,6 @@ static NS_DEFINE_IID(kICSSParserIID, NS_ICSS_PARSER_IID); static NS_DEFINE_IID(kICSSStyleSheetIID, NS_ICSS_STYLE_SHEET_IID); static NS_DEFINE_IID(kIStyleSheetIID, NS_ISTYLE_SHEET_IID); -#define KEYWORD_BUFFER_SIZE 100 // big enough for any keyword - // e.g. "P B, H1 B { ... }" has a selector list with two elements, // each of which has two selectors. struct SelectorList { @@ -184,29 +182,27 @@ protected: PRBool aCheckForBraces, PRInt32& aChangeHint); PRBool ParseProperty(PRInt32& aErrorCode, nsICSSDeclaration* aDeclaration, - PRInt32 aPropID, PRInt32& aChangeHint); + nsCSSProperty aPropID, PRInt32& aChangeHint); PRBool ParseProperty(PRInt32& aErrorCode, nsICSSDeclaration* aDeclaration, - PRInt32 aPropID); + nsCSSProperty aPropID); PRBool ParseSingleValueProperty(PRInt32& aErrorCode, nsCSSValue& aValue, - PRInt32 aPropID); + nsCSSProperty aPropID); // Property specific parsing routines PRBool ParseAzimuth(PRInt32& aErrorCode, nsCSSValue& aValue); PRBool ParseBackground(PRInt32& aErrorCode, nsICSSDeclaration* aDeclaration); - PRBool ParseBackgroundFilter(PRInt32& aErrorCode, nsCSSValue& aValue); - PRBool ParseForegroundFilter(PRInt32& aErrorCode, nsCSSValue& aValue); PRBool ParseBackgroundPosition(PRInt32& aErrorCode, nsICSSDeclaration* aDeclaration); PRBool ParseBorder(PRInt32& aErrorCode, nsICSSDeclaration* aDeclaration); PRBool ParseBorderColor(PRInt32& aErrorCode, nsICSSDeclaration* aDeclaration); PRBool ParseBorderSpacing(PRInt32& aErrorCode, nsICSSDeclaration* aDeclaration); PRBool ParseBorderSide(PRInt32& aErrorCode, nsICSSDeclaration* aDeclaration, - const PRInt32 aPropIDs[]); + const nsCSSProperty aPropIDs[]); PRBool ParseBorderStyle(PRInt32& aErrorCode, nsICSSDeclaration* aDeclaration); PRBool ParseBorderWidth(PRInt32& aErrorCode, nsICSSDeclaration* aDeclaration); PRBool ParseClip(PRInt32& aErrorCode, nsICSSDeclaration* aDeclaration); PRBool ParseContent(PRInt32& aErrorCode, nsICSSDeclaration* aDeclaration); PRBool ParseCounterData(PRInt32& aErrorCode, nsICSSDeclaration* aDeclaration, - PRInt32 aPropID); + nsCSSProperty aPropID); PRBool ParseCue(PRInt32& aErrorCode, nsICSSDeclaration* aDeclaration); PRBool ParseCursor(PRInt32& aErrorCode, nsICSSDeclaration* aDeclaration); PRBool ParseFont(PRInt32& aErrorCode, nsICSSDeclaration* aDeclaration); @@ -225,14 +221,14 @@ protected: // Reused utility parsing routines PRBool ParseBoxProperties(PRInt32& aErrorCode, nsICSSDeclaration* aDeclaration, - const PRInt32 aPropIDs[]); + const nsCSSProperty aPropIDs[]); PRInt32 ParseChoice(PRInt32& aErrorCode, nsCSSValue aValues[], - const PRInt32 aPropIDs[], PRInt32 aNumIDs); + const nsCSSProperty aPropIDs[], PRInt32 aNumIDs); PRBool ParseColor(PRInt32& aErrorCode, nsCSSValue& aValue); PRBool ParseColorComponent(PRInt32& aErrorCode, PRUint8& aComponent, char aStop); PRBool ParseEnum(PRInt32& aErrorCode, nsCSSValue& aValue, const PRInt32 aKeywordTable[]); - PRInt32 SearchKeywordTable(PRInt32 aID, const PRInt32 aTable[]); + PRInt32 SearchKeywordTable(nsCSSKeyword aKeyword, const PRInt32 aTable[]); PRBool ParseVariant(PRInt32& aErrorCode, nsCSSValue& aValue, PRInt32 aVariantMask, const PRInt32 aKeywordTable[]); @@ -302,7 +298,7 @@ CSSParserImpl::CSSParserImpl() mGroupStack(nsnull) { NS_INIT_REFCNT(); - nsCSSAtoms::AddrefAtoms(); + nsCSSAtoms::AddRefAtoms(); } NS_IMETHODIMP @@ -1220,6 +1216,7 @@ PRBool CSSParserImpl::ParseSelectorList(PRInt32& aErrorCode, static PRBool IsPseudoClass(const nsIAtom* aAtom) { return PRBool((nsCSSAtoms::activePseudo == aAtom) || + (nsCSSAtoms::checkedPseudo == aAtom) || (nsCSSAtoms::disabledPseudo == aAtom) || (nsCSSAtoms::dragOverPseudo == aAtom) || (nsCSSAtoms::dragPseudo == aAtom) || @@ -1230,7 +1227,6 @@ static PRBool IsPseudoClass(const nsIAtom* aAtom) (nsCSSAtoms::langPseudo == aAtom) || (nsCSSAtoms::linkPseudo == aAtom) || (nsCSSAtoms::outOfDatePseudo == aAtom) || - (nsCSSAtoms::selectedPseudo == aAtom) || (nsCSSAtoms::visitedPseudo == aAtom)); } @@ -1800,8 +1796,6 @@ CSSParserImpl::ParseDeclarationBlock(PRInt32& aErrorCode, PRBool CSSParserImpl::ParseColor(PRInt32& aErrorCode, nsCSSValue& aValue) { - char cbuf[KEYWORD_BUFFER_SIZE]; - if (!GetToken(aErrorCode, PR_TRUE)) { return PR_FALSE; } @@ -1811,16 +1805,14 @@ PRBool CSSParserImpl::ParseColor(PRInt32& aErrorCode, nsCSSValue& aValue) switch (tk->mType) { case eCSSToken_ID: // #xxyyzz - tk->mIdent.ToCString(cbuf, sizeof(cbuf)); - if (NS_HexToRGB(cbuf, &rgba)) { + if (NS_HexToRGB(tk->mIdent, &rgba)) { aValue.SetColorValue(rgba); return PR_TRUE; } break; case eCSSToken_Ident: - tk->mIdent.ToCString(cbuf, sizeof(cbuf)); - if (NS_ColorNameToRGB(cbuf, &rgba)) { + if (NS_ColorNameToRGB(tk->mIdent, &rgba)) { aValue.SetStringValue(tk->mIdent, eCSSUnit_String); return PR_TRUE; } @@ -1833,7 +1825,7 @@ PRBool CSSParserImpl::ParseColor(PRInt32& aErrorCode, nsCSSValue& aValue) ParseColorComponent(aErrorCode, r, ',') && ParseColorComponent(aErrorCode, g, ',') && ParseColorComponent(aErrorCode, b, ')')) { - nscolor rgba = NS_RGB(r,g,b); + rgba = NS_RGB(r,g,b); aValue.SetColorValue(rgba); return PR_TRUE; } @@ -1890,13 +1882,13 @@ CSSParserImpl::ParseDeclaration(PRInt32& aErrorCode, // Get property name nsCSSToken* tk = &mToken; - char propertyName[100]; + nsAutoString propertyName; for (;;) { if (!GetToken(aErrorCode, PR_TRUE)) { return PR_FALSE; } if (eCSSToken_Ident == tk->mType) { - tk->mIdent.ToCString(propertyName, sizeof(propertyName)); + propertyName = tk->mIdent; // grab the ident before the ExpectSymbol trashes the token if (!ExpectSymbol(aErrorCode, ':', PR_TRUE)) { return PR_FALSE; @@ -1914,8 +1906,8 @@ CSSParserImpl::ParseDeclaration(PRInt32& aErrorCode, } // Map property name to it's ID and then parse the property - PRInt32 propID = nsCSSProps::LookupName(propertyName); - if (0 > propID) { // unknown property + nsCSSProperty propID = nsCSSProps::LookupProperty(propertyName); + if (eCSSProperty_UNKNOWN == propID) { // unknown property return PR_FALSE; } if (! ParseProperty(aErrorCode, aDeclaration, propID, aChangeHint)) { @@ -2041,32 +2033,32 @@ CSSParserImpl::ParseDeclaration(PRInt32& aErrorCode, #define VARIANT_HON (VARIANT_HN | VARIANT_NONE) #define VARIANT_HOS (VARIANT_INHERIT | VARIANT_NONE | VARIANT_STRING) -static const PRInt32 kBorderTopIDs[] = { - PROP_BORDER_TOP_WIDTH, - PROP_BORDER_TOP_STYLE, - PROP_BORDER_TOP_COLOR +static const nsCSSProperty kBorderTopIDs[] = { + eCSSProperty_border_top_width, + eCSSProperty_border_top_style, + eCSSProperty_border_top_color }; -static const PRInt32 kBorderRightIDs[] = { - PROP_BORDER_RIGHT_WIDTH, - PROP_BORDER_RIGHT_STYLE, - PROP_BORDER_RIGHT_COLOR +static const nsCSSProperty kBorderRightIDs[] = { + eCSSProperty_border_right_width, + eCSSProperty_border_right_style, + eCSSProperty_border_right_color }; -static const PRInt32 kBorderBottomIDs[] = { - PROP_BORDER_BOTTOM_WIDTH, - PROP_BORDER_BOTTOM_STYLE, - PROP_BORDER_BOTTOM_COLOR +static const nsCSSProperty kBorderBottomIDs[] = { + eCSSProperty_border_bottom_width, + eCSSProperty_border_bottom_style, + eCSSProperty_border_bottom_color }; -static const PRInt32 kBorderLeftIDs[] = { - PROP_BORDER_LEFT_WIDTH, - PROP_BORDER_LEFT_STYLE, - PROP_BORDER_LEFT_COLOR +static const nsCSSProperty kBorderLeftIDs[] = { + eCSSProperty_border_left_width, + eCSSProperty_border_left_style, + eCSSProperty_border_left_color }; -PRInt32 CSSParserImpl::SearchKeywordTable(PRInt32 aKeywordID, const PRInt32 aKeywordTable[]) +PRInt32 CSSParserImpl::SearchKeywordTable(nsCSSKeyword aKeyword, const PRInt32 aKeywordTable[]) { PRInt32 index = 0; while (0 <= aKeywordTable[index]) { - if (aKeywordID == aKeywordTable[index++]) { + if (aKeyword == nsCSSKeyword(aKeywordTable[index++])) { return index; } index++; @@ -2081,10 +2073,8 @@ PRBool CSSParserImpl::ParseEnum(PRInt32& aErrorCode, nsCSSValue& aValue, if (nsnull == ident) { return PR_FALSE; } - char cbuf[KEYWORD_BUFFER_SIZE]; - ident->ToCString(cbuf, sizeof(cbuf)); - PRInt32 keyword = nsCSSKeywords::LookupName(cbuf); - if (0 <= keyword) { + nsCSSKeyword keyword = nsCSSKeywords::LookupKeyword(*ident); + if (eCSSKeyword_UNKNOWN < keyword) { PRInt32 index = SearchKeywordTable(keyword, aKeywordTable); if (0 < index) { aValue.SetIntValue(aKeywordTable[index], eCSSUnit_Enumerated); @@ -2105,28 +2095,27 @@ PRBool CSSParserImpl::TranslateDimension(nsCSSValue& aValue, nsCSSUnit units; PRInt32 type = 0; if (0 != aUnit.Length()) { - char cbuf[KEYWORD_BUFFER_SIZE]; - aUnit.ToCString(cbuf, sizeof(cbuf)); - PRInt32 id = nsCSSKeywords::LookupName(cbuf); + nsCSSKeyword id = nsCSSKeywords::LookupKeyword(aUnit); switch (id) { - case KEYWORD_EM: units = eCSSUnit_EM; type = VARIANT_LENGTH; break; - case KEYWORD_EX: units = eCSSUnit_XHeight; type = VARIANT_LENGTH; break; - case KEYWORD_PX: units = eCSSUnit_Pixel; type = VARIANT_LENGTH; break; - case KEYWORD_IN: units = eCSSUnit_Inch; type = VARIANT_LENGTH; break; - case KEYWORD_CM: units = eCSSUnit_Centimeter; type = VARIANT_LENGTH; break; - case KEYWORD_MM: units = eCSSUnit_Millimeter; type = VARIANT_LENGTH; break; - case KEYWORD_PT: units = eCSSUnit_Point; type = VARIANT_LENGTH; break; - case KEYWORD_PC: units = eCSSUnit_Pica; type = VARIANT_LENGTH; break; + case eCSSKeyword_em: units = eCSSUnit_EM; type = VARIANT_LENGTH; break; + case eCSSKeyword_ex: units = eCSSUnit_XHeight; type = VARIANT_LENGTH; break; + case eCSSKeyword_ch: units = eCSSUnit_Char; type = VARIANT_LENGTH; break; + case eCSSKeyword_px: units = eCSSUnit_Pixel; type = VARIANT_LENGTH; break; + case eCSSKeyword_in: units = eCSSUnit_Inch; type = VARIANT_LENGTH; break; + case eCSSKeyword_cm: units = eCSSUnit_Centimeter; type = VARIANT_LENGTH; break; + case eCSSKeyword_mm: units = eCSSUnit_Millimeter; type = VARIANT_LENGTH; break; + case eCSSKeyword_pt: units = eCSSUnit_Point; type = VARIANT_LENGTH; break; + case eCSSKeyword_pc: units = eCSSUnit_Pica; type = VARIANT_LENGTH; break; - case KEYWORD_DEG: units = eCSSUnit_Degree; type = VARIANT_ANGLE; break; - case KEYWORD_GRAD: units = eCSSUnit_Grad; type = VARIANT_ANGLE; break; - case KEYWORD_RAD: units = eCSSUnit_Radian; type = VARIANT_ANGLE; break; + case eCSSKeyword_deg: units = eCSSUnit_Degree; type = VARIANT_ANGLE; break; + case eCSSKeyword_grad: units = eCSSUnit_Grad; type = VARIANT_ANGLE; break; + case eCSSKeyword_rad: units = eCSSUnit_Radian; type = VARIANT_ANGLE; break; - case KEYWORD_HZ: units = eCSSUnit_Hertz; type = VARIANT_FREQUENCY; break; - case KEYWORD_KHZ: units = eCSSUnit_Kilohertz; type = VARIANT_FREQUENCY; break; + case eCSSKeyword_hz: units = eCSSUnit_Hertz; type = VARIANT_FREQUENCY; break; + case eCSSKeyword_khz: units = eCSSUnit_Kilohertz; type = VARIANT_FREQUENCY; break; - case KEYWORD_S: units = eCSSUnit_Seconds; type = VARIANT_TIME; break; - case KEYWORD_MS: units = eCSSUnit_Milliseconds; type = VARIANT_TIME; break; + case eCSSKeyword_s: units = eCSSUnit_Seconds; type = VARIANT_TIME; break; + case eCSSKeyword_ms: units = eCSSUnit_Milliseconds; type = VARIANT_TIME; break; default: // unknown unit return PR_FALSE; @@ -2190,30 +2179,28 @@ PRBool CSSParserImpl::ParseVariant(PRInt32& aErrorCode, nsCSSValue& aValue, nsCSSToken* tk = &mToken; if (((aVariantMask & (VARIANT_AHK | VARIANT_NORMAL | VARIANT_NONE)) != 0) && (eCSSToken_Ident == tk->mType)) { - char cbuf[KEYWORD_BUFFER_SIZE]; - tk->mIdent.ToCString(cbuf, sizeof(cbuf)); - PRInt32 keyword = nsCSSKeywords::LookupName(cbuf); - if (0 <= keyword) { // known keyword + nsCSSKeyword keyword = nsCSSKeywords::LookupKeyword(tk->mIdent); + if (eCSSKeyword_UNKNOWN < keyword) { // known keyword if ((aVariantMask & VARIANT_AUTO) != 0) { - if (KEYWORD_AUTO == keyword) { + if (eCSSKeyword_auto == keyword) { aValue.SetAutoValue(); return PR_TRUE; } } if ((aVariantMask & VARIANT_INHERIT) != 0) { - if (KEYWORD_INHERIT == keyword) { + if (eCSSKeyword_inherit == keyword) { aValue.SetInheritValue(); return PR_TRUE; } } if ((aVariantMask & VARIANT_NONE) != 0) { - if (KEYWORD_NONE == keyword) { + if (eCSSKeyword_none == keyword) { aValue.SetNoneValue(); return PR_TRUE; } } if ((aVariantMask & VARIANT_NORMAL) != 0) { - if (KEYWORD_NORMAL == keyword) { + if (eCSSKeyword_normal == keyword) { aValue.SetNormalValue(); return PR_TRUE; } @@ -2342,10 +2329,8 @@ PRBool CSSParserImpl::ParseCounter(PRInt32& aErrorCode, nsCSSValue& aValue) // get optional type if (ExpectSymbol(aErrorCode, ',', PR_TRUE)) { if (GetToken(aErrorCode, PR_TRUE) && (eCSSToken_Ident == mToken.mType)) { - char cbuf[KEYWORD_BUFFER_SIZE]; - mToken.mIdent.ToCString(cbuf, sizeof(cbuf)); - PRInt32 keyword = nsCSSKeywords::LookupName(cbuf); - if ((0 <= keyword) && + nsCSSKeyword keyword = nsCSSKeywords::LookupKeyword(mToken.mIdent); + if ((eCSSKeyword_UNKNOWN < keyword) && (0 < SearchKeywordTable(keyword, nsCSSProps::kListStyleKTable))) { counter.Append(','); counter.Append(mToken.mIdent); @@ -2513,7 +2498,7 @@ PRBool CSSParserImpl::ParseURL(PRInt32& aErrorCode, nsCSSValue& aValue) } PRInt32 CSSParserImpl::ParseChoice(PRInt32& aErrorCode, nsCSSValue aValues[], - const PRInt32 aPropIDs[], PRInt32 aNumIDs) + const nsCSSProperty aPropIDs[], PRInt32 aNumIDs) { PRInt32 found = 0; PRInt32 loop; @@ -2561,7 +2546,7 @@ PRInt32 CSSParserImpl::ParseChoice(PRInt32& aErrorCode, nsCSSValue aValues[], */ PRBool CSSParserImpl::ParseBoxProperties(PRInt32& aErrorCode, nsICSSDeclaration* aDeclaration, - const PRInt32 aPropIDs[]) + const nsCSSProperty aPropIDs[]) { // Get up to four values for the property nsCSSValue values[4]; @@ -2603,20 +2588,20 @@ PRBool CSSParserImpl::ParseBoxProperties(PRInt32& aErrorCode, PRBool CSSParserImpl::ParseProperty(PRInt32& aErrorCode, nsICSSDeclaration* aDeclaration, - PRInt32 aPropID, + nsCSSProperty aPropID, PRInt32& aChangeHint) { // Strip out properties we use internally. These properties are used // by compound property parsing routines (e.g. "background-position"). switch (aPropID) { - case PROP_BACKGROUND_X_POSITION: - case PROP_BACKGROUND_Y_POSITION: - case PROP_BORDER_X_SPACING: - case PROP_BORDER_Y_SPACING: - case PROP_CLIP_BOTTOM: - case PROP_CLIP_LEFT: - case PROP_CLIP_RIGHT: - case PROP_CLIP_TOP: + case eCSSProperty_background_x_position: + case eCSSProperty_background_y_position: + case eCSSProperty_border_x_spacing: + case eCSSProperty_border_y_spacing: + case eCSSProperty_clip_bottom: + case eCSSProperty_clip_left: + case eCSSProperty_clip_right: + case eCSSProperty_clip_top: // The user can't use these return PR_FALSE; default: @@ -2632,61 +2617,61 @@ PRBool CSSParserImpl::ParseProperty(PRInt32& aErrorCode, PRBool CSSParserImpl::ParseProperty(PRInt32& aErrorCode, nsICSSDeclaration* aDeclaration, - PRInt32 aPropID) + nsCSSProperty aPropID) { switch (aPropID) { // handle shorthand or multiple properties - case PROP_BACKGROUND: + case eCSSProperty_background: return ParseBackground(aErrorCode, aDeclaration); - case PROP_BACKGROUND_POSITION: + case eCSSProperty_background_position: return ParseBackgroundPosition(aErrorCode, aDeclaration); - case PROP_BORDER: + case eCSSProperty_border: return ParseBorder(aErrorCode, aDeclaration); - case PROP_BORDER_COLOR: + case eCSSProperty_border_color: return ParseBorderColor(aErrorCode, aDeclaration); - case PROP_BORDER_SPACING: + case eCSSProperty_border_spacing: return ParseBorderSpacing(aErrorCode, aDeclaration); - case PROP_BORDER_STYLE: + case eCSSProperty_border_style: return ParseBorderStyle(aErrorCode, aDeclaration); - case PROP_BORDER_BOTTOM: + case eCSSProperty_border_bottom: return ParseBorderSide(aErrorCode, aDeclaration, kBorderBottomIDs); - case PROP_BORDER_LEFT: + case eCSSProperty_border_left: return ParseBorderSide(aErrorCode, aDeclaration, kBorderLeftIDs); - case PROP_BORDER_RIGHT: + case eCSSProperty_border_right: return ParseBorderSide(aErrorCode, aDeclaration, kBorderRightIDs); - case PROP_BORDER_TOP: + case eCSSProperty_border_top: return ParseBorderSide(aErrorCode, aDeclaration, kBorderTopIDs); - case PROP_BORDER_WIDTH: + case eCSSProperty_border_width: return ParseBorderWidth(aErrorCode, aDeclaration); - case PROP_CLIP: + case eCSSProperty_clip: return ParseClip(aErrorCode, aDeclaration); - case PROP_CONTENT: + case eCSSProperty_content: return ParseContent(aErrorCode, aDeclaration); - case PROP_COUNTER_INCREMENT: - case PROP_COUNTER_RESET: + case eCSSProperty_counter_increment: + case eCSSProperty_counter_reset: return ParseCounterData(aErrorCode, aDeclaration, aPropID); - case PROP_CUE: + case eCSSProperty_cue: return ParseCue(aErrorCode, aDeclaration); - case PROP_CURSOR: + case eCSSProperty_cursor: return ParseCursor(aErrorCode, aDeclaration); - case PROP_FONT: + case eCSSProperty_font: return ParseFont(aErrorCode, aDeclaration); - case PROP_LIST_STYLE: + case eCSSProperty_list_style: return ParseListStyle(aErrorCode, aDeclaration); - case PROP_MARGIN: + case eCSSProperty_margin: return ParseMargin(aErrorCode, aDeclaration); - case PROP_OUTLINE: + case eCSSProperty_outline: return ParseOutline(aErrorCode, aDeclaration); - case PROP_PADDING: + case eCSSProperty_padding: return ParsePadding(aErrorCode, aDeclaration); - case PROP_PAUSE: + case eCSSProperty_pause: return ParsePause(aErrorCode, aDeclaration); - case PROP_PLAY_DURING: + case eCSSProperty_play_during: return ParsePlayDuring(aErrorCode, aDeclaration); - case PROP_QUOTES: + case eCSSProperty_quotes: return ParseQuotes(aErrorCode, aDeclaration); - case PROP_SIZE: + case eCSSProperty_size: return ParseSize(aErrorCode, aDeclaration); - case PROP_TEXT_SHADOW: + case eCSSProperty_text_shadow: return ParseTextShadow(aErrorCode, aDeclaration); default: // must be single property @@ -2716,262 +2701,258 @@ PRBool CSSParserImpl::ParseProperty(PRInt32& aErrorCode, // parseBackgroundPosition! static const PRInt32 kBackgroundXYPositionKTable[] = { - KEYWORD_CENTER, BG_CENTER, - KEYWORD_TOP, BG_TOP, - KEYWORD_BOTTOM, BG_BOTTOM, - KEYWORD_LEFT, BG_LEFT, - KEYWORD_RIGHT, BG_RIGHT, + eCSSKeyword_center, BG_CENTER, + eCSSKeyword_top, BG_TOP, + eCSSKeyword_bottom, BG_BOTTOM, + eCSSKeyword_left, BG_LEFT, + eCSSKeyword_right, BG_RIGHT, -1, }; PRBool CSSParserImpl::ParseSingleValueProperty(PRInt32& aErrorCode, nsCSSValue& aValue, - PRInt32 aPropID) + nsCSSProperty aPropID) { switch (aPropID) { - case PROP_BACKGROUND: - case PROP_BACKGROUND_POSITION: - case PROP_BORDER: - case PROP_BORDER_COLOR: - case PROP_BORDER_SPACING: - case PROP_BORDER_STYLE: - case PROP_BORDER_BOTTOM: - case PROP_BORDER_LEFT: - case PROP_BORDER_RIGHT: - case PROP_BORDER_TOP: - case PROP_BORDER_WIDTH: - case PROP_CLIP: - case PROP_CONTENT: - case PROP_COUNTER_INCREMENT: - case PROP_COUNTER_RESET: - case PROP_CUE: - case PROP_CURSOR: - case PROP_FONT: - case PROP_LIST_STYLE: - case PROP_MARGIN: - case PROP_OUTLINE: - case PROP_PADDING: - case PROP_PAUSE: - case PROP_QUOTES: - case PROP_SIZE: - case PROP_TEXT_SHADOW: + case eCSSProperty_background: + case eCSSProperty_background_position: + case eCSSProperty_border: + case eCSSProperty_border_color: + case eCSSProperty_border_spacing: + case eCSSProperty_border_style: + case eCSSProperty_border_bottom: + case eCSSProperty_border_left: + case eCSSProperty_border_right: + case eCSSProperty_border_top: + case eCSSProperty_border_width: + case eCSSProperty_clip: + case eCSSProperty_content: + case eCSSProperty_counter_increment: + case eCSSProperty_counter_reset: + case eCSSProperty_cue: + case eCSSProperty_cursor: + case eCSSProperty_font: + case eCSSProperty_list_style: + case eCSSProperty_margin: + case eCSSProperty_outline: + case eCSSProperty_padding: + case eCSSProperty_pause: + case eCSSProperty_quotes: + case eCSSProperty_size: + case eCSSProperty_text_shadow: NS_ERROR("not a single value property"); return PR_FALSE; - case PROP_AZIMUTH: + case eCSSProperty_azimuth: return ParseAzimuth(aErrorCode, aValue); - case PROP_BACKGROUND_ATTACHMENT: + case eCSSProperty_background_attachment: return ParseVariant(aErrorCode, aValue, VARIANT_HK, nsCSSProps::kBackgroundAttachmentKTable); - case PROP_BACKGROUND_COLOR: + case eCSSProperty_background_color: return ParseVariant(aErrorCode, aValue, VARIANT_HCK, nsCSSProps::kBackgroundColorKTable); - case PROP_BACKGROUND_FILTER: // XXX - return ParseBackgroundFilter(aErrorCode, aValue); - case PROP_BACKGROUND_IMAGE: + case eCSSProperty_background_image: return ParseVariant(aErrorCode, aValue, VARIANT_HUO, nsnull); - case PROP_BACKGROUND_REPEAT: + case eCSSProperty_background_repeat: return ParseVariant(aErrorCode, aValue, VARIANT_HK, nsCSSProps::kBackgroundRepeatKTable); - case PROP_BACKGROUND_X_POSITION: - case PROP_BACKGROUND_Y_POSITION: + case eCSSProperty_background_x_position: + case eCSSProperty_background_y_position: return ParseVariant(aErrorCode, aValue, VARIANT_HKLP, kBackgroundXYPositionKTable); - case PROP_BORDER_COLLAPSE: + case eCSSProperty_border_collapse: return ParseVariant(aErrorCode, aValue, VARIANT_HK, nsCSSProps::kBorderCollapseKTable); - case PROP_BORDER_BOTTOM_COLOR: - case PROP_BORDER_LEFT_COLOR: - case PROP_BORDER_RIGHT_COLOR: - case PROP_BORDER_TOP_COLOR: + case eCSSProperty_border_bottom_color: + case eCSSProperty_border_left_color: + case eCSSProperty_border_right_color: + case eCSSProperty_border_top_color: return ParseVariant(aErrorCode, aValue, VARIANT_HCK, nsCSSProps::kBorderColorKTable); - case PROP_BORDER_BOTTOM_STYLE: - case PROP_BORDER_LEFT_STYLE: - case PROP_BORDER_RIGHT_STYLE: - case PROP_BORDER_TOP_STYLE: + case eCSSProperty_border_bottom_style: + case eCSSProperty_border_left_style: + case eCSSProperty_border_right_style: + case eCSSProperty_border_top_style: return ParseVariant(aErrorCode, aValue, VARIANT_HOK, nsCSSProps::kBorderStyleKTable); - case PROP_BORDER_BOTTOM_WIDTH: - case PROP_BORDER_LEFT_WIDTH: - case PROP_BORDER_RIGHT_WIDTH: - case PROP_BORDER_TOP_WIDTH: + case eCSSProperty_border_bottom_width: + case eCSSProperty_border_left_width: + case eCSSProperty_border_right_width: + case eCSSProperty_border_top_width: return ParseVariant(aErrorCode, aValue, VARIANT_HKL, nsCSSProps::kBorderWidthKTable); - case PROP__MOZ_BORDER_RADIUS: + case eCSSProperty__moz_border_radius: return ParseVariant(aErrorCode, aValue, VARIANT_HLP, nsnull); - case PROP_BOTTOM: - case PROP_TOP: - case PROP_LEFT: - case PROP_RIGHT: + case eCSSProperty_bottom: + case eCSSProperty_top: + case eCSSProperty_left: + case eCSSProperty_right: return ParseVariant(aErrorCode, aValue, VARIANT_AHLP, nsnull); - case PROP_HEIGHT: - case PROP_WIDTH: + case eCSSProperty_height: + case eCSSProperty_width: return ParsePositiveVariant(aErrorCode, aValue, VARIANT_AHLP, nsnull); - case PROP_CAPTION_SIDE: + case eCSSProperty_caption_side: return ParseVariant(aErrorCode, aValue, VARIANT_HK, nsCSSProps::kCaptionSideKTable); - case PROP_CLEAR: + case eCSSProperty_clear: return ParseVariant(aErrorCode, aValue, VARIANT_HOK, nsCSSProps::kClearKTable); - case PROP_COLOR: + case eCSSProperty_color: return ParseVariant(aErrorCode, aValue, VARIANT_HC, nsnull); - case PROP_CUE_AFTER: - case PROP_CUE_BEFORE: + case eCSSProperty_cue_after: + case eCSSProperty_cue_before: return ParseVariant(aErrorCode, aValue, VARIANT_HUO, nsnull); - case PROP_DIRECTION: + case eCSSProperty_direction: return ParseVariant(aErrorCode, aValue, VARIANT_HK, nsCSSProps::kDirectionKTable); - case PROP_DISPLAY: + case eCSSProperty_display: return ParseVariant(aErrorCode, aValue, VARIANT_HOK, nsCSSProps::kDisplayKTable); - case PROP_ELEVATION: + case eCSSProperty_elevation: return ParseVariant(aErrorCode, aValue, VARIANT_HK | VARIANT_ANGLE, nsCSSProps::kElevationKTable); - case PROP_EMPTY_CELLS: + case eCSSProperty_empty_cells: return ParseVariant(aErrorCode, aValue, VARIANT_HK, nsCSSProps::kEmptyCellsKTable); - case PROP_FILTER: - return ParseForegroundFilter(aErrorCode, aValue); - case PROP_FLOAT: + case eCSSProperty_float: return ParseVariant(aErrorCode, aValue, VARIANT_HOK, nsCSSProps::kFloatKTable); - case PROP_FONT_FAMILY: + case eCSSProperty_font_family: return ParseFamily(aErrorCode, aValue); - case PROP_FONT_SIZE: + case eCSSProperty_font_size: return ParsePositiveVariant(aErrorCode, aValue, VARIANT_HKLP, nsCSSProps::kFontSizeKTable); - case PROP_FONT_SIZE_ADJUST: + case eCSSProperty_font_size_adjust: return ParseVariant(aErrorCode, aValue, VARIANT_HON, nsnull); - case PROP_FONT_STRETCH: + case eCSSProperty_font_stretch: return ParseVariant(aErrorCode, aValue, VARIANT_HMK, nsCSSProps::kFontStretchKTable); - case PROP_FONT_STYLE: + case eCSSProperty_font_style: return ParseVariant(aErrorCode, aValue, VARIANT_HMK, nsCSSProps::kFontStyleKTable); - case PROP_FONT_VARIANT: + case eCSSProperty_font_variant: return ParseVariant(aErrorCode, aValue, VARIANT_HMK, nsCSSProps::kFontVariantKTable); - case PROP_FONT_WEIGHT: + case eCSSProperty_font_weight: return ParseVariant(aErrorCode, aValue, VARIANT_HMKI, nsCSSProps::kFontWeightKTable); - case PROP_LETTER_SPACING: - case PROP_WORD_SPACING: + case eCSSProperty_letter_spacing: + case eCSSProperty_word_spacing: return ParseVariant(aErrorCode, aValue, VARIANT_HL | VARIANT_NORMAL, nsnull); - case PROP_LINE_HEIGHT: + case eCSSProperty_line_height: return ParsePositiveVariant(aErrorCode, aValue, VARIANT_HLPN | VARIANT_NORMAL, nsnull); - case PROP_LIST_STYLE_IMAGE: + case eCSSProperty_list_style_image: return ParseVariant(aErrorCode, aValue, VARIANT_HUO, nsnull); - case PROP_LIST_STYLE_POSITION: + case eCSSProperty_list_style_position: return ParseVariant(aErrorCode, aValue, VARIANT_HK, nsCSSProps::kListStylePositionKTable); - case PROP_LIST_STYLE_TYPE: + case eCSSProperty_list_style_type: return ParseVariant(aErrorCode, aValue, VARIANT_HOK, nsCSSProps::kListStyleKTable); - case PROP_MARGIN_BOTTOM: - case PROP_MARGIN_LEFT: - case PROP_MARGIN_RIGHT: - case PROP_MARGIN_TOP: + case eCSSProperty_margin_bottom: + case eCSSProperty_margin_left: + case eCSSProperty_margin_right: + case eCSSProperty_margin_top: return ParseVariant(aErrorCode, aValue, VARIANT_AHLP, nsnull); - case PROP_MARKER_OFFSET: + case eCSSProperty_marker_offset: return ParseVariant(aErrorCode, aValue, VARIANT_AHL, nsnull); - case PROP_MARKS: + case eCSSProperty_marks: return ParseMarks(aErrorCode, aValue); - case PROP_MAX_HEIGHT: - case PROP_MAX_WIDTH: + case eCSSProperty_max_height: + case eCSSProperty_max_width: return ParseVariant(aErrorCode, aValue, VARIANT_HLPO, nsnull); - case PROP_MIN_HEIGHT: - case PROP_MIN_WIDTH: + case eCSSProperty_min_height: + case eCSSProperty_min_width: return ParseVariant(aErrorCode, aValue, VARIANT_HLP, nsnull); - case PROP_OPACITY: + case eCSSProperty_opacity: return ParseVariant(aErrorCode, aValue, VARIANT_HPN, nsnull); - case PROP_ORPHANS: - case PROP_WIDOWS: + case eCSSProperty_orphans: + case eCSSProperty_widows: return ParseVariant(aErrorCode, aValue, VARIANT_HI, nsnull); - case PROP_OUTLINE_COLOR: + case eCSSProperty_outline_color: return ParseVariant(aErrorCode, aValue, VARIANT_HCK, nsCSSProps::kOutlineColorKTable); - case PROP_OUTLINE_STYLE: + case eCSSProperty_outline_style: return ParseVariant(aErrorCode, aValue, VARIANT_HOK, nsCSSProps::kBorderStyleKTable); - case PROP_OUTLINE_WIDTH: + case eCSSProperty_outline_width: return ParseVariant(aErrorCode, aValue, VARIANT_HKL, nsCSSProps::kBorderWidthKTable); - case PROP_OVERFLOW: + case eCSSProperty_overflow: return ParseVariant(aErrorCode, aValue, VARIANT_AHK, nsCSSProps::kOverflowKTable); - case PROP_PADDING_BOTTOM: - case PROP_PADDING_LEFT: - case PROP_PADDING_RIGHT: - case PROP_PADDING_TOP: + case eCSSProperty_padding_bottom: + case eCSSProperty_padding_left: + case eCSSProperty_padding_right: + case eCSSProperty_padding_top: return ParsePositiveVariant(aErrorCode, aValue, VARIANT_HLP, nsnull); - case PROP_PAGE: + case eCSSProperty_page: return ParseVariant(aErrorCode, aValue, VARIANT_AUTO | VARIANT_IDENTIFIER, nsnull); - case PROP_PAGE_BREAK_AFTER: - case PROP_PAGE_BREAK_BEFORE: + case eCSSProperty_page_break_after: + case eCSSProperty_page_break_before: return ParseVariant(aErrorCode, aValue, VARIANT_AHK, nsCSSProps::kPageBreakKTable); - case PROP_PAGE_BREAK_INSIDE: + case eCSSProperty_page_break_inside: return ParseVariant(aErrorCode, aValue, VARIANT_AHK, nsCSSProps::kPageBreakInsideKTable); - case PROP_PAUSE_AFTER: - case PROP_PAUSE_BEFORE: + case eCSSProperty_pause_after: + case eCSSProperty_pause_before: return ParseVariant(aErrorCode, aValue, VARIANT_HTP, nsnull); - case PROP_PITCH: + case eCSSProperty_pitch: return ParseVariant(aErrorCode, aValue, VARIANT_HKF, nsCSSProps::kPitchKTable); - case PROP_PITCH_RANGE: + case eCSSProperty_pitch_range: return ParseVariant(aErrorCode, aValue, VARIANT_HN, nsnull); - case PROP_POSITION: + case eCSSProperty_position: return ParseVariant(aErrorCode, aValue, VARIANT_HK, nsCSSProps::kPositionKTable); - case PROP_RICHNESS: + case eCSSProperty_richness: return ParseVariant(aErrorCode, aValue, VARIANT_HN, nsnull); - case PROP_SPEAK: + case eCSSProperty_speak: return ParseVariant(aErrorCode, aValue, VARIANT_HMK | VARIANT_NONE, nsCSSProps::kSpeakKTable); - case PROP_SPEAK_HEADER: + case eCSSProperty_speak_header: return ParseVariant(aErrorCode, aValue, VARIANT_HK, nsCSSProps::kSpeakHeaderKTable); - case PROP_SPEAK_NUMERAL: + case eCSSProperty_speak_numeral: return ParseVariant(aErrorCode, aValue, VARIANT_HK, nsCSSProps::kSpeakNumeralKTable); - case PROP_SPEAK_PUNCTUATION: + case eCSSProperty_speak_punctuation: return ParseVariant(aErrorCode, aValue, VARIANT_HK, nsCSSProps::kSpeakPunctuationKTable); - case PROP_SPEECH_RATE: + case eCSSProperty_speech_rate: return ParseVariant(aErrorCode, aValue, VARIANT_HN | VARIANT_KEYWORD, nsCSSProps::kSpeechRateKTable); - case PROP_STRESS: + case eCSSProperty_stress: return ParseVariant(aErrorCode, aValue, VARIANT_HN, nsnull); - case PROP_TABLE_LAYOUT: + case eCSSProperty_table_layout: return ParseVariant(aErrorCode, aValue, VARIANT_AHK, nsCSSProps::kTableLayoutKTable); - case PROP_TEXT_ALIGN: + case eCSSProperty_text_align: return ParseVariant(aErrorCode, aValue, VARIANT_HK | VARIANT_STRING, nsCSSProps::kTextAlignKTable); - case PROP_TEXT_DECORATION: + case eCSSProperty_text_decoration: return ParseTextDecoration(aErrorCode, aValue); - case PROP_TEXT_INDENT: + case eCSSProperty_text_indent: return ParseVariant(aErrorCode, aValue, VARIANT_HLP, nsnull); - case PROP_TEXT_TRANSFORM: + case eCSSProperty_text_transform: return ParseVariant(aErrorCode, aValue, VARIANT_HOK, nsCSSProps::kTextTransformKTable); - case PROP_UNICODE_BIDI: + case eCSSProperty_unicode_bidi: return ParseVariant(aErrorCode, aValue, VARIANT_HMK, nsCSSProps::kUnicodeBidiKTable); - case PROP_VERTICAL_ALIGN: + case eCSSProperty_vertical_align: return ParseVariant(aErrorCode, aValue, VARIANT_HKLP, nsCSSProps::kVerticalAlignKTable); - case PROP_VISIBILITY: + case eCSSProperty_visibility: return ParseVariant(aErrorCode, aValue, VARIANT_HK, nsCSSProps::kVisibilityKTable); - case PROP_VOICE_FAMILY: + case eCSSProperty_voice_family: return ParseFamily(aErrorCode, aValue); - case PROP_VOLUME: + case eCSSProperty_volume: return ParseVariant(aErrorCode, aValue, VARIANT_HPN | VARIANT_KEYWORD, nsCSSProps::kVolumeKTable); - case PROP_WHITE_SPACE: + case eCSSProperty_white_space: return ParseVariant(aErrorCode, aValue, VARIANT_HMK, nsCSSProps::kWhitespaceKTable); - case PROP_Z_INDEX: + case eCSSProperty_z_index: return ParseVariant(aErrorCode, aValue, VARIANT_AHI, nsnull); } return PR_FALSE; @@ -3009,14 +2990,13 @@ PRBool CSSParserImpl::ParseAzimuth(PRInt32& aErrorCode, nsCSSValue& aValue) PRBool CSSParserImpl::ParseBackground(PRInt32& aErrorCode, nsICSSDeclaration* aDeclaration) { const PRInt32 numProps = 6; - static const PRInt32 kBackgroundIDs[numProps] = { - PROP_BACKGROUND_COLOR, - PROP_BACKGROUND_IMAGE, - PROP_BACKGROUND_REPEAT, - PROP_BACKGROUND_ATTACHMENT, - PROP_BACKGROUND_X_POSITION, - PROP_BACKGROUND_Y_POSITION -// PROP_BACKGROUND_FILTER + static const nsCSSProperty kBackgroundIDs[numProps] = { + eCSSProperty_background_color, + eCSSProperty_background_image, + eCSSProperty_background_repeat, + eCSSProperty_background_attachment, + eCSSProperty_background_x_position, + eCSSProperty_background_y_position }; nsCSSValue values[numProps]; @@ -3135,8 +3115,6 @@ PRBool CSSParserImpl::ParseBackground(PRInt32& aErrorCode, nsICSSDeclaration* aD values[5].SetPercentValue(0.0f); } - // Note: no default for filter (yet) - PRInt32 index; for (index = 0; index < numProps; index++) { aDeclaration->AppendValue(kBackgroundIDs[index], values[index]); @@ -3152,8 +3130,8 @@ PRBool CSSParserImpl::ParseBackgroundPosition(PRInt32& aErrorCode, if (ParseVariant(aErrorCode, xValue, VARIANT_HLP, nsnull)) { if (eCSSUnit_Inherit == xValue.GetUnit()) { // both are inherited if (ExpectEndProperty(aErrorCode, PR_TRUE)) { - aDeclaration->AppendValue(PROP_BACKGROUND_X_POSITION, xValue); - aDeclaration->AppendValue(PROP_BACKGROUND_Y_POSITION, xValue); + aDeclaration->AppendValue(eCSSProperty_background_x_position, xValue); + aDeclaration->AppendValue(eCSSProperty_background_y_position, xValue); return PR_TRUE; } return PR_FALSE; @@ -3163,8 +3141,8 @@ PRBool CSSParserImpl::ParseBackgroundPosition(PRInt32& aErrorCode, if (ParseVariant(aErrorCode, yValue, VARIANT_LP, nsnull)) { // We have two numbers if (ExpectEndProperty(aErrorCode, PR_TRUE)) { - aDeclaration->AppendValue(PROP_BACKGROUND_X_POSITION, xValue); - aDeclaration->AppendValue(PROP_BACKGROUND_Y_POSITION, yValue); + aDeclaration->AppendValue(eCSSProperty_background_x_position, xValue); + aDeclaration->AppendValue(eCSSProperty_background_y_position, yValue); return PR_TRUE; } return PR_FALSE; @@ -3173,8 +3151,8 @@ PRBool CSSParserImpl::ParseBackgroundPosition(PRInt32& aErrorCode, // We have one number which is the x position. Create an value for // the vertical position which is of value 50% if (ExpectEndProperty(aErrorCode, PR_TRUE)) { - aDeclaration->AppendValue(PROP_BACKGROUND_X_POSITION, xValue); - aDeclaration->AppendValue(PROP_BACKGROUND_Y_POSITION, nsCSSValue(0.5f, eCSSUnit_Percent)); + aDeclaration->AppendValue(eCSSProperty_background_x_position, xValue); + aDeclaration->AppendValue(eCSSProperty_background_y_position, nsCSSValue(0.5f, eCSSUnit_Percent)); return PR_TRUE; } return PR_FALSE; @@ -3226,53 +3204,41 @@ PRBool CSSParserImpl::ParseBackgroundPosition(PRInt32& aErrorCode, if (ExpectEndProperty(aErrorCode, PR_TRUE)) { // Create style values - aDeclaration->AppendValue(PROP_BACKGROUND_X_POSITION, nsCSSValue(xEnumValue, eCSSUnit_Enumerated)); - aDeclaration->AppendValue(PROP_BACKGROUND_Y_POSITION, nsCSSValue(yEnumValue, eCSSUnit_Enumerated)); + aDeclaration->AppendValue(eCSSProperty_background_x_position, nsCSSValue(xEnumValue, eCSSUnit_Enumerated)); + aDeclaration->AppendValue(eCSSProperty_background_y_position, nsCSSValue(yEnumValue, eCSSUnit_Enumerated)); return PR_TRUE; } return PR_FALSE; } -PRBool CSSParserImpl::ParseBackgroundFilter(PRInt32& aErrorCode, nsCSSValue& aValue) -{ - // XXX not yet supported - return PR_FALSE; -} - -PRBool CSSParserImpl::ParseForegroundFilter(PRInt32& aErrorCode, nsCSSValue& aValue) -{ - // XXX not yet supported - return PR_FALSE; -} - // These must be in CSS order (top,right,bottom,left) for indexing to work -static const PRInt32 kBorderStyleIDs[] = { - PROP_BORDER_TOP_STYLE, - PROP_BORDER_RIGHT_STYLE, - PROP_BORDER_BOTTOM_STYLE, - PROP_BORDER_LEFT_STYLE +static const nsCSSProperty kBorderStyleIDs[] = { + eCSSProperty_border_top_style, + eCSSProperty_border_right_style, + eCSSProperty_border_bottom_style, + eCSSProperty_border_left_style }; -static const PRInt32 kBorderWidthIDs[] = { - PROP_BORDER_TOP_WIDTH, - PROP_BORDER_RIGHT_WIDTH, - PROP_BORDER_BOTTOM_WIDTH, - PROP_BORDER_LEFT_WIDTH +static const nsCSSProperty kBorderWidthIDs[] = { + eCSSProperty_border_top_width, + eCSSProperty_border_right_width, + eCSSProperty_border_bottom_width, + eCSSProperty_border_left_width }; -static const PRInt32 kBorderColorIDs[] = { - PROP_BORDER_TOP_COLOR, - PROP_BORDER_RIGHT_COLOR, - PROP_BORDER_BOTTOM_COLOR, - PROP_BORDER_LEFT_COLOR +static const nsCSSProperty kBorderColorIDs[] = { + eCSSProperty_border_top_color, + eCSSProperty_border_right_color, + eCSSProperty_border_bottom_color, + eCSSProperty_border_left_color }; PRBool CSSParserImpl::ParseBorder(PRInt32& aErrorCode, nsICSSDeclaration* aDeclaration) { const PRInt32 numProps = 3; - static const PRInt32 kBorderIDs[] = { - PROP_BORDER_TOP_WIDTH, // only one value per property - PROP_BORDER_TOP_STYLE, - PROP_BORDER_TOP_COLOR + static const nsCSSProperty kBorderIDs[] = { + eCSSProperty_border_top_width, // only one value per property + eCSSProperty_border_top_style, + eCSSProperty_border_top_color }; nsCSSValue values[numProps]; @@ -3319,8 +3285,8 @@ PRBool CSSParserImpl::ParseBorderSpacing(PRInt32& aErrorCode, nsICSSDeclaration* if (ParseVariant(aErrorCode, yValue, VARIANT_LENGTH, nsnull)) { // We have two numbers if (ExpectEndProperty(aErrorCode, PR_TRUE)) { - aDeclaration->AppendValue(PROP_BORDER_X_SPACING, xValue); - aDeclaration->AppendValue(PROP_BORDER_Y_SPACING, yValue); + aDeclaration->AppendValue(eCSSProperty_border_x_spacing, xValue); + aDeclaration->AppendValue(eCSSProperty_border_y_spacing, yValue); return PR_TRUE; } return PR_FALSE; @@ -3330,8 +3296,8 @@ PRBool CSSParserImpl::ParseBorderSpacing(PRInt32& aErrorCode, nsICSSDeclaration* // We have one length which is the horizontal spacing. Create a value for // the vertical spacing which is equal if (ExpectEndProperty(aErrorCode, PR_TRUE)) { - aDeclaration->AppendValue(PROP_BORDER_X_SPACING, xValue); - aDeclaration->AppendValue(PROP_BORDER_Y_SPACING, xValue); + aDeclaration->AppendValue(eCSSProperty_border_x_spacing, xValue); + aDeclaration->AppendValue(eCSSProperty_border_y_spacing, xValue); return PR_TRUE; } } @@ -3339,7 +3305,7 @@ PRBool CSSParserImpl::ParseBorderSpacing(PRInt32& aErrorCode, nsICSSDeclaration* } PRBool CSSParserImpl::ParseBorderSide(PRInt32& aErrorCode, nsICSSDeclaration* aDeclaration, - const PRInt32 aPropIDs[]) + const nsCSSProperty aPropIDs[]) { const PRInt32 numProps = 3; nsCSSValue values[numProps]; @@ -3378,11 +3344,11 @@ PRBool CSSParserImpl::ParseBorderWidth(PRInt32& aErrorCode, nsICSSDeclaration* a PRBool CSSParserImpl::ParseClip(PRInt32& aErrorCode, nsICSSDeclaration* aDeclaration) { - static const PRInt32 kClipIDs[] = { - PROP_CLIP_TOP, - PROP_CLIP_RIGHT, - PROP_CLIP_BOTTOM, - PROP_CLIP_LEFT + static const nsCSSProperty kClipIDs[] = { + eCSSProperty_clip_top, + eCSSProperty_clip_right, + eCSSProperty_clip_bottom, + eCSSProperty_clip_left }; if (! GetToken(aErrorCode, PR_TRUE)) { return PR_FALSE; @@ -3445,7 +3411,7 @@ PRBool CSSParserImpl::ParseContent(PRInt32& aErrorCode, nsICSSDeclaration* aDecl nsCSSProps::kContentKTable)) { if (eCSSUnit_Inherit == value.GetUnit()) { if (ExpectEndProperty(aErrorCode, PR_TRUE)) { - aDeclaration->AppendValue(PROP_CONTENT, value); + aDeclaration->AppendValue(eCSSProperty_content, value); return PR_TRUE; } return PR_FALSE; @@ -3460,7 +3426,7 @@ PRBool CSSParserImpl::ParseContent(PRInt32& aErrorCode, nsICSSDeclaration* aDecl while (nsnull != list) { if (ExpectEndProperty(aErrorCode, PR_TRUE)) { - aErrorCode = aDeclaration->AppendStructValue(PROP_CONTENT, listHead); + aErrorCode = aDeclaration->AppendStructValue(eCSSProperty_content, listHead); return NS_SUCCEEDED(aErrorCode); } if (ParseVariant(aErrorCode, value, VARIANT_CONTENT, nsCSSProps::kContentKTable)) { @@ -3483,7 +3449,7 @@ PRBool CSSParserImpl::ParseContent(PRInt32& aErrorCode, nsICSSDeclaration* aDecl } PRBool CSSParserImpl::ParseCounterData(PRInt32& aErrorCode, nsICSSDeclaration* aDeclaration, - PRInt32 aPropID) + nsCSSProperty aPropID) { nsString* ident = NextIdent(aErrorCode); if (nsnull == ident) { @@ -3552,21 +3518,21 @@ PRBool CSSParserImpl::ParseCounterData(PRInt32& aErrorCode, nsICSSDeclaration* a PRBool CSSParserImpl::ParseCue(PRInt32& aErrorCode, nsICSSDeclaration* aDeclaration) { nsCSSValue before; - if (ParseSingleValueProperty(aErrorCode, before, PROP_CUE_BEFORE)) { + if (ParseSingleValueProperty(aErrorCode, before, eCSSProperty_cue_before)) { if (eCSSUnit_URL == before.GetUnit()) { nsCSSValue after; - if (ParseSingleValueProperty(aErrorCode, after, PROP_CUE_AFTER)) { + if (ParseSingleValueProperty(aErrorCode, after, eCSSProperty_cue_after)) { if (ExpectEndProperty(aErrorCode, PR_TRUE)) { - aDeclaration->AppendValue(PROP_CUE_BEFORE, before); - aDeclaration->AppendValue(PROP_CUE_AFTER, after); + aDeclaration->AppendValue(eCSSProperty_cue_before, before); + aDeclaration->AppendValue(eCSSProperty_cue_after, after); return PR_TRUE; } return PR_FALSE; } } if (ExpectEndProperty(aErrorCode, PR_TRUE)) { - aDeclaration->AppendValue(PROP_CUE_BEFORE, before); - aDeclaration->AppendValue(PROP_CUE_AFTER, before); + aDeclaration->AppendValue(eCSSProperty_cue_before, before); + aDeclaration->AppendValue(eCSSProperty_cue_after, before); return PR_TRUE; } } @@ -3592,7 +3558,7 @@ PRBool CSSParserImpl::ParseCursor(PRInt32& aErrorCode, nsICSSDeclaration* aDecla } } if (ExpectEndProperty(aErrorCode, PR_TRUE)) { - aErrorCode = aDeclaration->AppendStructValue(PROP_CURSOR, listHead); + aErrorCode = aDeclaration->AppendStructValue(eCSSProperty_cursor, listHead); return NS_SUCCEEDED(aErrorCode); } if (ParseVariant(aErrorCode, value, VARIANT_AHUK, nsCSSProps::kCursorKTable)) { @@ -3613,7 +3579,7 @@ PRBool CSSParserImpl::ParseCursor(PRInt32& aErrorCode, nsICSSDeclaration* aDecla return PR_FALSE; } if (ExpectEndProperty(aErrorCode, PR_TRUE)) { - aDeclaration->AppendValue(PROP_CURSOR, value); + aDeclaration->AppendValue(eCSSProperty_cursor, value); return PR_TRUE; } } @@ -3623,35 +3589,35 @@ PRBool CSSParserImpl::ParseCursor(PRInt32& aErrorCode, nsICSSDeclaration* aDecla PRBool CSSParserImpl::ParseFont(PRInt32& aErrorCode, nsICSSDeclaration* aDeclaration) { - static const PRInt32 fontIDs[] = { - PROP_FONT_STYLE, - PROP_FONT_VARIANT, - PROP_FONT_WEIGHT + static const nsCSSProperty fontIDs[] = { + eCSSProperty_font_style, + eCSSProperty_font_variant, + eCSSProperty_font_weight }; nsCSSValue family; if (ParseVariant(aErrorCode, family, VARIANT_HK, nsCSSProps::kFontKTable)) { if (ExpectEndProperty(aErrorCode, PR_TRUE)) { if (eCSSUnit_Inherit == family.GetUnit()) { - aDeclaration->AppendValue(PROP_FONT_FAMILY, family); - aDeclaration->AppendValue(PROP_FONT_STYLE, family); - aDeclaration->AppendValue(PROP_FONT_VARIANT, family); - aDeclaration->AppendValue(PROP_FONT_WEIGHT, family); - aDeclaration->AppendValue(PROP_FONT_SIZE, family); - aDeclaration->AppendValue(PROP_LINE_HEIGHT, family); - aDeclaration->AppendValue(PROP_FONT_STRETCH, family); - aDeclaration->AppendValue(PROP_FONT_SIZE_ADJUST, family); + aDeclaration->AppendValue(eCSSProperty_font_family, family); + aDeclaration->AppendValue(eCSSProperty_font_style, family); + aDeclaration->AppendValue(eCSSProperty_font_variant, family); + aDeclaration->AppendValue(eCSSProperty_font_weight, family); + aDeclaration->AppendValue(eCSSProperty_font_size, family); + aDeclaration->AppendValue(eCSSProperty_line_height, family); + aDeclaration->AppendValue(eCSSProperty_font_stretch, family); + aDeclaration->AppendValue(eCSSProperty_font_size_adjust, family); } else { - aDeclaration->AppendValue(PROP_FONT_FAMILY, family); // keyword value overrides everything else + aDeclaration->AppendValue(eCSSProperty_font_family, family); // keyword value overrides everything else nsCSSValue empty; - aDeclaration->AppendValue(PROP_FONT_STYLE, empty); - aDeclaration->AppendValue(PROP_FONT_VARIANT, empty); - aDeclaration->AppendValue(PROP_FONT_WEIGHT, empty); - aDeclaration->AppendValue(PROP_FONT_SIZE, empty); - aDeclaration->AppendValue(PROP_LINE_HEIGHT, empty); - aDeclaration->AppendValue(PROP_FONT_STRETCH, empty); - aDeclaration->AppendValue(PROP_FONT_SIZE_ADJUST, empty); + aDeclaration->AppendValue(eCSSProperty_font_style, empty); + aDeclaration->AppendValue(eCSSProperty_font_variant, empty); + aDeclaration->AppendValue(eCSSProperty_font_weight, empty); + aDeclaration->AppendValue(eCSSProperty_font_size, empty); + aDeclaration->AppendValue(eCSSProperty_line_height, empty); + aDeclaration->AppendValue(eCSSProperty_font_stretch, empty); + aDeclaration->AppendValue(eCSSProperty_font_size_adjust, empty); } return PR_TRUE; } @@ -3698,14 +3664,14 @@ PRBool CSSParserImpl::ParseFont(PRInt32& aErrorCode, nsICSSDeclaration* aDeclara // Get final mandatory font-family if (ParseFamily(aErrorCode, family)) { if ((eCSSUnit_Inherit != family.GetUnit()) && ExpectEndProperty(aErrorCode, PR_TRUE)) { - aDeclaration->AppendValue(PROP_FONT_FAMILY, family); - aDeclaration->AppendValue(PROP_FONT_STYLE, values[0]); - aDeclaration->AppendValue(PROP_FONT_VARIANT, values[1]); - aDeclaration->AppendValue(PROP_FONT_WEIGHT, values[2]); - aDeclaration->AppendValue(PROP_FONT_SIZE, size); - aDeclaration->AppendValue(PROP_LINE_HEIGHT, lineHeight); - aDeclaration->AppendValue(PROP_FONT_STRETCH, nsCSSValue(eCSSUnit_Normal)); - aDeclaration->AppendValue(PROP_FONT_SIZE_ADJUST, nsCSSValue(eCSSUnit_None)); + aDeclaration->AppendValue(eCSSProperty_font_family, family); + aDeclaration->AppendValue(eCSSProperty_font_style, values[0]); + aDeclaration->AppendValue(eCSSProperty_font_variant, values[1]); + aDeclaration->AppendValue(eCSSProperty_font_weight, values[2]); + aDeclaration->AppendValue(eCSSProperty_font_size, size); + aDeclaration->AppendValue(eCSSProperty_line_height, lineHeight); + aDeclaration->AppendValue(eCSSProperty_font_stretch, nsCSSValue(eCSSUnit_Normal)); + aDeclaration->AppendValue(eCSSProperty_font_size_adjust, nsCSSValue(eCSSUnit_None)); return PR_TRUE; } } @@ -3784,10 +3750,10 @@ PRBool CSSParserImpl::ParseFamily(PRInt32& aErrorCode, nsCSSValue& aValue) PRBool CSSParserImpl::ParseListStyle(PRInt32& aErrorCode, nsICSSDeclaration* aDeclaration) { const PRInt32 numProps = 3; - static const PRInt32 listStyleIDs[] = { - PROP_LIST_STYLE_TYPE, - PROP_LIST_STYLE_POSITION, - PROP_LIST_STYLE_IMAGE + static const nsCSSProperty listStyleIDs[] = { + eCSSProperty_list_style_type, + eCSSProperty_list_style_position, + eCSSProperty_list_style_image }; nsCSSValue values[numProps]; @@ -3816,11 +3782,11 @@ PRBool CSSParserImpl::ParseListStyle(PRInt32& aErrorCode, nsICSSDeclaration* aDe PRBool CSSParserImpl::ParseMargin(PRInt32& aErrorCode, nsICSSDeclaration* aDeclaration) { - static const PRInt32 kMarginSideIDs[] = { - PROP_MARGIN_TOP, - PROP_MARGIN_RIGHT, - PROP_MARGIN_BOTTOM, - PROP_MARGIN_LEFT + static const nsCSSProperty kMarginSideIDs[] = { + eCSSProperty_margin_top, + eCSSProperty_margin_right, + eCSSProperty_margin_bottom, + eCSSProperty_margin_left }; return ParseBoxProperties(aErrorCode, aDeclaration, kMarginSideIDs); } @@ -3846,10 +3812,10 @@ PRBool CSSParserImpl::ParseMarks(PRInt32& aErrorCode, nsCSSValue& aValue) PRBool CSSParserImpl::ParseOutline(PRInt32& aErrorCode, nsICSSDeclaration* aDeclaration) { const PRInt32 numProps = 3; - static const PRInt32 kOutlineIDs[] = { - PROP_OUTLINE_COLOR, - PROP_OUTLINE_STYLE, - PROP_OUTLINE_WIDTH + static const nsCSSProperty kOutlineIDs[] = { + eCSSProperty_outline_color, + eCSSProperty_outline_style, + eCSSProperty_outline_width }; nsCSSValue values[numProps]; @@ -3878,11 +3844,11 @@ PRBool CSSParserImpl::ParseOutline(PRInt32& aErrorCode, nsICSSDeclaration* aDecl PRBool CSSParserImpl::ParsePadding(PRInt32& aErrorCode, nsICSSDeclaration* aDeclaration) { - static const PRInt32 kPaddingSideIDs[] = { - PROP_PADDING_TOP, - PROP_PADDING_RIGHT, - PROP_PADDING_BOTTOM, - PROP_PADDING_LEFT + static const nsCSSProperty kPaddingSideIDs[] = { + eCSSProperty_padding_top, + eCSSProperty_padding_right, + eCSSProperty_padding_bottom, + eCSSProperty_padding_left }; return ParseBoxProperties(aErrorCode, aDeclaration, kPaddingSideIDs); } @@ -3891,21 +3857,21 @@ PRBool CSSParserImpl::ParsePause(PRInt32& aErrorCode, nsICSSDeclaration* aDeclaration) { nsCSSValue before; - if (ParseSingleValueProperty(aErrorCode, before, PROP_PAUSE_BEFORE)) { + if (ParseSingleValueProperty(aErrorCode, before, eCSSProperty_pause_before)) { if (eCSSUnit_Inherit != before.GetUnit()) { nsCSSValue after; - if (ParseSingleValueProperty(aErrorCode, after, PROP_PAUSE_AFTER)) { + if (ParseSingleValueProperty(aErrorCode, after, eCSSProperty_pause_after)) { if (ExpectEndProperty(aErrorCode, PR_TRUE)) { - aDeclaration->AppendValue(PROP_PAUSE_BEFORE, before); - aDeclaration->AppendValue(PROP_PAUSE_AFTER, after); + aDeclaration->AppendValue(eCSSProperty_pause_before, before); + aDeclaration->AppendValue(eCSSProperty_pause_after, after); return PR_TRUE; } return PR_FALSE; } } if (ExpectEndProperty(aErrorCode, PR_TRUE)) { - aDeclaration->AppendValue(PROP_PAUSE_BEFORE, before); - aDeclaration->AppendValue(PROP_PAUSE_AFTER, before); + aDeclaration->AppendValue(eCSSProperty_pause_before, before); + aDeclaration->AppendValue(eCSSProperty_pause_after, before); return PR_TRUE; } } @@ -3927,8 +3893,8 @@ PRBool CSSParserImpl::ParsePlayDuring(PRInt32& aErrorCode, } } if (ExpectEndProperty(aErrorCode, PR_TRUE)) { - aDeclaration->AppendValue(PROP_PLAY_DURING, playDuring); - aDeclaration->AppendValue(PROP_PLAY_DURING_FLAGS, flags); + aDeclaration->AppendValue(eCSSProperty_play_during, playDuring); + aDeclaration->AppendValue(eCSSProperty_play_during_flags, flags); return PR_TRUE; } } @@ -3952,7 +3918,7 @@ PRBool CSSParserImpl::ParseQuotes(PRInt32& aErrorCode, // get mandatory close if (ParseVariant(aErrorCode, quotes->mClose, VARIANT_STRING, nsnull)) { if (ExpectEndProperty(aErrorCode, PR_TRUE)) { - aErrorCode = aDeclaration->AppendStructValue(PROP_QUOTES, quotesHead); + aErrorCode = aDeclaration->AppendStructValue(eCSSProperty_quotes, quotesHead); return NS_SUCCEEDED(aErrorCode); } // look for another open @@ -3972,7 +3938,7 @@ PRBool CSSParserImpl::ParseQuotes(PRInt32& aErrorCode, return PR_FALSE; } if (ExpectEndProperty(aErrorCode, PR_TRUE)) { - aDeclaration->AppendValue(PROP_QUOTES_OPEN, open); + aDeclaration->AppendValue(eCSSProperty_quotes_open, open); return PR_TRUE; } } @@ -3987,16 +3953,16 @@ PRBool CSSParserImpl::ParseSize(PRInt32& aErrorCode, nsICSSDeclaration* aDeclara nsCSSValue height; if (ParseVariant(aErrorCode, height, VARIANT_LENGTH, nsnull)) { if (ExpectEndProperty(aErrorCode, PR_TRUE)) { - aDeclaration->AppendValue(PROP_SIZE_WIDTH, width); - aDeclaration->AppendValue(PROP_SIZE_HEIGHT, height); + aDeclaration->AppendValue(eCSSProperty_size_width, width); + aDeclaration->AppendValue(eCSSProperty_size_height, height); return PR_TRUE; } return PR_FALSE; } } if (ExpectEndProperty(aErrorCode, PR_TRUE)) { - aDeclaration->AppendValue(PROP_SIZE_WIDTH, width); - aDeclaration->AppendValue(PROP_SIZE_HEIGHT, width); + aDeclaration->AppendValue(eCSSProperty_size_width, width); + aDeclaration->AppendValue(eCSSProperty_size_height, width); return PR_TRUE; } } @@ -4080,7 +4046,7 @@ PRBool CSSParserImpl::ParseTextShadow(PRInt32& aErrorCode, } else { if (ExpectEndProperty(aErrorCode, PR_TRUE)) { - aErrorCode = aDeclaration->AppendStructValue(PROP_TEXT_SHADOW, shadowHead); + aErrorCode = aDeclaration->AppendStructValue(eCSSProperty_text_shadow, shadowHead); return NS_SUCCEEDED(aErrorCode); } break; @@ -4091,7 +4057,7 @@ PRBool CSSParserImpl::ParseTextShadow(PRInt32& aErrorCode, } // value is inherit or none if (ExpectEndProperty(aErrorCode, PR_TRUE)) { - aDeclaration->AppendValue(PROP_TEXT_SHADOW_X, value); + aDeclaration->AppendValue(eCSSProperty_text_shadow_x, value); return PR_TRUE; } } diff --git a/mozilla/layout/style/nsCSSParser.cpp b/mozilla/layout/style/nsCSSParser.cpp index 09380546cb2..a67ce970108 100644 --- a/mozilla/layout/style/nsCSSParser.cpp +++ b/mozilla/layout/style/nsCSSParser.cpp @@ -54,8 +54,6 @@ static NS_DEFINE_IID(kICSSParserIID, NS_ICSS_PARSER_IID); static NS_DEFINE_IID(kICSSStyleSheetIID, NS_ICSS_STYLE_SHEET_IID); static NS_DEFINE_IID(kIStyleSheetIID, NS_ISTYLE_SHEET_IID); -#define KEYWORD_BUFFER_SIZE 100 // big enough for any keyword - // e.g. "P B, H1 B { ... }" has a selector list with two elements, // each of which has two selectors. struct SelectorList { @@ -184,29 +182,27 @@ protected: PRBool aCheckForBraces, PRInt32& aChangeHint); PRBool ParseProperty(PRInt32& aErrorCode, nsICSSDeclaration* aDeclaration, - PRInt32 aPropID, PRInt32& aChangeHint); + nsCSSProperty aPropID, PRInt32& aChangeHint); PRBool ParseProperty(PRInt32& aErrorCode, nsICSSDeclaration* aDeclaration, - PRInt32 aPropID); + nsCSSProperty aPropID); PRBool ParseSingleValueProperty(PRInt32& aErrorCode, nsCSSValue& aValue, - PRInt32 aPropID); + nsCSSProperty aPropID); // Property specific parsing routines PRBool ParseAzimuth(PRInt32& aErrorCode, nsCSSValue& aValue); PRBool ParseBackground(PRInt32& aErrorCode, nsICSSDeclaration* aDeclaration); - PRBool ParseBackgroundFilter(PRInt32& aErrorCode, nsCSSValue& aValue); - PRBool ParseForegroundFilter(PRInt32& aErrorCode, nsCSSValue& aValue); PRBool ParseBackgroundPosition(PRInt32& aErrorCode, nsICSSDeclaration* aDeclaration); PRBool ParseBorder(PRInt32& aErrorCode, nsICSSDeclaration* aDeclaration); PRBool ParseBorderColor(PRInt32& aErrorCode, nsICSSDeclaration* aDeclaration); PRBool ParseBorderSpacing(PRInt32& aErrorCode, nsICSSDeclaration* aDeclaration); PRBool ParseBorderSide(PRInt32& aErrorCode, nsICSSDeclaration* aDeclaration, - const PRInt32 aPropIDs[]); + const nsCSSProperty aPropIDs[]); PRBool ParseBorderStyle(PRInt32& aErrorCode, nsICSSDeclaration* aDeclaration); PRBool ParseBorderWidth(PRInt32& aErrorCode, nsICSSDeclaration* aDeclaration); PRBool ParseClip(PRInt32& aErrorCode, nsICSSDeclaration* aDeclaration); PRBool ParseContent(PRInt32& aErrorCode, nsICSSDeclaration* aDeclaration); PRBool ParseCounterData(PRInt32& aErrorCode, nsICSSDeclaration* aDeclaration, - PRInt32 aPropID); + nsCSSProperty aPropID); PRBool ParseCue(PRInt32& aErrorCode, nsICSSDeclaration* aDeclaration); PRBool ParseCursor(PRInt32& aErrorCode, nsICSSDeclaration* aDeclaration); PRBool ParseFont(PRInt32& aErrorCode, nsICSSDeclaration* aDeclaration); @@ -225,14 +221,14 @@ protected: // Reused utility parsing routines PRBool ParseBoxProperties(PRInt32& aErrorCode, nsICSSDeclaration* aDeclaration, - const PRInt32 aPropIDs[]); + const nsCSSProperty aPropIDs[]); PRInt32 ParseChoice(PRInt32& aErrorCode, nsCSSValue aValues[], - const PRInt32 aPropIDs[], PRInt32 aNumIDs); + const nsCSSProperty aPropIDs[], PRInt32 aNumIDs); PRBool ParseColor(PRInt32& aErrorCode, nsCSSValue& aValue); PRBool ParseColorComponent(PRInt32& aErrorCode, PRUint8& aComponent, char aStop); PRBool ParseEnum(PRInt32& aErrorCode, nsCSSValue& aValue, const PRInt32 aKeywordTable[]); - PRInt32 SearchKeywordTable(PRInt32 aID, const PRInt32 aTable[]); + PRInt32 SearchKeywordTable(nsCSSKeyword aKeyword, const PRInt32 aTable[]); PRBool ParseVariant(PRInt32& aErrorCode, nsCSSValue& aValue, PRInt32 aVariantMask, const PRInt32 aKeywordTable[]); @@ -302,7 +298,7 @@ CSSParserImpl::CSSParserImpl() mGroupStack(nsnull) { NS_INIT_REFCNT(); - nsCSSAtoms::AddrefAtoms(); + nsCSSAtoms::AddRefAtoms(); } NS_IMETHODIMP @@ -1220,6 +1216,7 @@ PRBool CSSParserImpl::ParseSelectorList(PRInt32& aErrorCode, static PRBool IsPseudoClass(const nsIAtom* aAtom) { return PRBool((nsCSSAtoms::activePseudo == aAtom) || + (nsCSSAtoms::checkedPseudo == aAtom) || (nsCSSAtoms::disabledPseudo == aAtom) || (nsCSSAtoms::dragOverPseudo == aAtom) || (nsCSSAtoms::dragPseudo == aAtom) || @@ -1230,7 +1227,6 @@ static PRBool IsPseudoClass(const nsIAtom* aAtom) (nsCSSAtoms::langPseudo == aAtom) || (nsCSSAtoms::linkPseudo == aAtom) || (nsCSSAtoms::outOfDatePseudo == aAtom) || - (nsCSSAtoms::selectedPseudo == aAtom) || (nsCSSAtoms::visitedPseudo == aAtom)); } @@ -1800,8 +1796,6 @@ CSSParserImpl::ParseDeclarationBlock(PRInt32& aErrorCode, PRBool CSSParserImpl::ParseColor(PRInt32& aErrorCode, nsCSSValue& aValue) { - char cbuf[KEYWORD_BUFFER_SIZE]; - if (!GetToken(aErrorCode, PR_TRUE)) { return PR_FALSE; } @@ -1811,16 +1805,14 @@ PRBool CSSParserImpl::ParseColor(PRInt32& aErrorCode, nsCSSValue& aValue) switch (tk->mType) { case eCSSToken_ID: // #xxyyzz - tk->mIdent.ToCString(cbuf, sizeof(cbuf)); - if (NS_HexToRGB(cbuf, &rgba)) { + if (NS_HexToRGB(tk->mIdent, &rgba)) { aValue.SetColorValue(rgba); return PR_TRUE; } break; case eCSSToken_Ident: - tk->mIdent.ToCString(cbuf, sizeof(cbuf)); - if (NS_ColorNameToRGB(cbuf, &rgba)) { + if (NS_ColorNameToRGB(tk->mIdent, &rgba)) { aValue.SetStringValue(tk->mIdent, eCSSUnit_String); return PR_TRUE; } @@ -1833,7 +1825,7 @@ PRBool CSSParserImpl::ParseColor(PRInt32& aErrorCode, nsCSSValue& aValue) ParseColorComponent(aErrorCode, r, ',') && ParseColorComponent(aErrorCode, g, ',') && ParseColorComponent(aErrorCode, b, ')')) { - nscolor rgba = NS_RGB(r,g,b); + rgba = NS_RGB(r,g,b); aValue.SetColorValue(rgba); return PR_TRUE; } @@ -1890,13 +1882,13 @@ CSSParserImpl::ParseDeclaration(PRInt32& aErrorCode, // Get property name nsCSSToken* tk = &mToken; - char propertyName[100]; + nsAutoString propertyName; for (;;) { if (!GetToken(aErrorCode, PR_TRUE)) { return PR_FALSE; } if (eCSSToken_Ident == tk->mType) { - tk->mIdent.ToCString(propertyName, sizeof(propertyName)); + propertyName = tk->mIdent; // grab the ident before the ExpectSymbol trashes the token if (!ExpectSymbol(aErrorCode, ':', PR_TRUE)) { return PR_FALSE; @@ -1914,8 +1906,8 @@ CSSParserImpl::ParseDeclaration(PRInt32& aErrorCode, } // Map property name to it's ID and then parse the property - PRInt32 propID = nsCSSProps::LookupName(propertyName); - if (0 > propID) { // unknown property + nsCSSProperty propID = nsCSSProps::LookupProperty(propertyName); + if (eCSSProperty_UNKNOWN == propID) { // unknown property return PR_FALSE; } if (! ParseProperty(aErrorCode, aDeclaration, propID, aChangeHint)) { @@ -2041,32 +2033,32 @@ CSSParserImpl::ParseDeclaration(PRInt32& aErrorCode, #define VARIANT_HON (VARIANT_HN | VARIANT_NONE) #define VARIANT_HOS (VARIANT_INHERIT | VARIANT_NONE | VARIANT_STRING) -static const PRInt32 kBorderTopIDs[] = { - PROP_BORDER_TOP_WIDTH, - PROP_BORDER_TOP_STYLE, - PROP_BORDER_TOP_COLOR +static const nsCSSProperty kBorderTopIDs[] = { + eCSSProperty_border_top_width, + eCSSProperty_border_top_style, + eCSSProperty_border_top_color }; -static const PRInt32 kBorderRightIDs[] = { - PROP_BORDER_RIGHT_WIDTH, - PROP_BORDER_RIGHT_STYLE, - PROP_BORDER_RIGHT_COLOR +static const nsCSSProperty kBorderRightIDs[] = { + eCSSProperty_border_right_width, + eCSSProperty_border_right_style, + eCSSProperty_border_right_color }; -static const PRInt32 kBorderBottomIDs[] = { - PROP_BORDER_BOTTOM_WIDTH, - PROP_BORDER_BOTTOM_STYLE, - PROP_BORDER_BOTTOM_COLOR +static const nsCSSProperty kBorderBottomIDs[] = { + eCSSProperty_border_bottom_width, + eCSSProperty_border_bottom_style, + eCSSProperty_border_bottom_color }; -static const PRInt32 kBorderLeftIDs[] = { - PROP_BORDER_LEFT_WIDTH, - PROP_BORDER_LEFT_STYLE, - PROP_BORDER_LEFT_COLOR +static const nsCSSProperty kBorderLeftIDs[] = { + eCSSProperty_border_left_width, + eCSSProperty_border_left_style, + eCSSProperty_border_left_color }; -PRInt32 CSSParserImpl::SearchKeywordTable(PRInt32 aKeywordID, const PRInt32 aKeywordTable[]) +PRInt32 CSSParserImpl::SearchKeywordTable(nsCSSKeyword aKeyword, const PRInt32 aKeywordTable[]) { PRInt32 index = 0; while (0 <= aKeywordTable[index]) { - if (aKeywordID == aKeywordTable[index++]) { + if (aKeyword == nsCSSKeyword(aKeywordTable[index++])) { return index; } index++; @@ -2081,10 +2073,8 @@ PRBool CSSParserImpl::ParseEnum(PRInt32& aErrorCode, nsCSSValue& aValue, if (nsnull == ident) { return PR_FALSE; } - char cbuf[KEYWORD_BUFFER_SIZE]; - ident->ToCString(cbuf, sizeof(cbuf)); - PRInt32 keyword = nsCSSKeywords::LookupName(cbuf); - if (0 <= keyword) { + nsCSSKeyword keyword = nsCSSKeywords::LookupKeyword(*ident); + if (eCSSKeyword_UNKNOWN < keyword) { PRInt32 index = SearchKeywordTable(keyword, aKeywordTable); if (0 < index) { aValue.SetIntValue(aKeywordTable[index], eCSSUnit_Enumerated); @@ -2105,28 +2095,27 @@ PRBool CSSParserImpl::TranslateDimension(nsCSSValue& aValue, nsCSSUnit units; PRInt32 type = 0; if (0 != aUnit.Length()) { - char cbuf[KEYWORD_BUFFER_SIZE]; - aUnit.ToCString(cbuf, sizeof(cbuf)); - PRInt32 id = nsCSSKeywords::LookupName(cbuf); + nsCSSKeyword id = nsCSSKeywords::LookupKeyword(aUnit); switch (id) { - case KEYWORD_EM: units = eCSSUnit_EM; type = VARIANT_LENGTH; break; - case KEYWORD_EX: units = eCSSUnit_XHeight; type = VARIANT_LENGTH; break; - case KEYWORD_PX: units = eCSSUnit_Pixel; type = VARIANT_LENGTH; break; - case KEYWORD_IN: units = eCSSUnit_Inch; type = VARIANT_LENGTH; break; - case KEYWORD_CM: units = eCSSUnit_Centimeter; type = VARIANT_LENGTH; break; - case KEYWORD_MM: units = eCSSUnit_Millimeter; type = VARIANT_LENGTH; break; - case KEYWORD_PT: units = eCSSUnit_Point; type = VARIANT_LENGTH; break; - case KEYWORD_PC: units = eCSSUnit_Pica; type = VARIANT_LENGTH; break; + case eCSSKeyword_em: units = eCSSUnit_EM; type = VARIANT_LENGTH; break; + case eCSSKeyword_ex: units = eCSSUnit_XHeight; type = VARIANT_LENGTH; break; + case eCSSKeyword_ch: units = eCSSUnit_Char; type = VARIANT_LENGTH; break; + case eCSSKeyword_px: units = eCSSUnit_Pixel; type = VARIANT_LENGTH; break; + case eCSSKeyword_in: units = eCSSUnit_Inch; type = VARIANT_LENGTH; break; + case eCSSKeyword_cm: units = eCSSUnit_Centimeter; type = VARIANT_LENGTH; break; + case eCSSKeyword_mm: units = eCSSUnit_Millimeter; type = VARIANT_LENGTH; break; + case eCSSKeyword_pt: units = eCSSUnit_Point; type = VARIANT_LENGTH; break; + case eCSSKeyword_pc: units = eCSSUnit_Pica; type = VARIANT_LENGTH; break; - case KEYWORD_DEG: units = eCSSUnit_Degree; type = VARIANT_ANGLE; break; - case KEYWORD_GRAD: units = eCSSUnit_Grad; type = VARIANT_ANGLE; break; - case KEYWORD_RAD: units = eCSSUnit_Radian; type = VARIANT_ANGLE; break; + case eCSSKeyword_deg: units = eCSSUnit_Degree; type = VARIANT_ANGLE; break; + case eCSSKeyword_grad: units = eCSSUnit_Grad; type = VARIANT_ANGLE; break; + case eCSSKeyword_rad: units = eCSSUnit_Radian; type = VARIANT_ANGLE; break; - case KEYWORD_HZ: units = eCSSUnit_Hertz; type = VARIANT_FREQUENCY; break; - case KEYWORD_KHZ: units = eCSSUnit_Kilohertz; type = VARIANT_FREQUENCY; break; + case eCSSKeyword_hz: units = eCSSUnit_Hertz; type = VARIANT_FREQUENCY; break; + case eCSSKeyword_khz: units = eCSSUnit_Kilohertz; type = VARIANT_FREQUENCY; break; - case KEYWORD_S: units = eCSSUnit_Seconds; type = VARIANT_TIME; break; - case KEYWORD_MS: units = eCSSUnit_Milliseconds; type = VARIANT_TIME; break; + case eCSSKeyword_s: units = eCSSUnit_Seconds; type = VARIANT_TIME; break; + case eCSSKeyword_ms: units = eCSSUnit_Milliseconds; type = VARIANT_TIME; break; default: // unknown unit return PR_FALSE; @@ -2190,30 +2179,28 @@ PRBool CSSParserImpl::ParseVariant(PRInt32& aErrorCode, nsCSSValue& aValue, nsCSSToken* tk = &mToken; if (((aVariantMask & (VARIANT_AHK | VARIANT_NORMAL | VARIANT_NONE)) != 0) && (eCSSToken_Ident == tk->mType)) { - char cbuf[KEYWORD_BUFFER_SIZE]; - tk->mIdent.ToCString(cbuf, sizeof(cbuf)); - PRInt32 keyword = nsCSSKeywords::LookupName(cbuf); - if (0 <= keyword) { // known keyword + nsCSSKeyword keyword = nsCSSKeywords::LookupKeyword(tk->mIdent); + if (eCSSKeyword_UNKNOWN < keyword) { // known keyword if ((aVariantMask & VARIANT_AUTO) != 0) { - if (KEYWORD_AUTO == keyword) { + if (eCSSKeyword_auto == keyword) { aValue.SetAutoValue(); return PR_TRUE; } } if ((aVariantMask & VARIANT_INHERIT) != 0) { - if (KEYWORD_INHERIT == keyword) { + if (eCSSKeyword_inherit == keyword) { aValue.SetInheritValue(); return PR_TRUE; } } if ((aVariantMask & VARIANT_NONE) != 0) { - if (KEYWORD_NONE == keyword) { + if (eCSSKeyword_none == keyword) { aValue.SetNoneValue(); return PR_TRUE; } } if ((aVariantMask & VARIANT_NORMAL) != 0) { - if (KEYWORD_NORMAL == keyword) { + if (eCSSKeyword_normal == keyword) { aValue.SetNormalValue(); return PR_TRUE; } @@ -2342,10 +2329,8 @@ PRBool CSSParserImpl::ParseCounter(PRInt32& aErrorCode, nsCSSValue& aValue) // get optional type if (ExpectSymbol(aErrorCode, ',', PR_TRUE)) { if (GetToken(aErrorCode, PR_TRUE) && (eCSSToken_Ident == mToken.mType)) { - char cbuf[KEYWORD_BUFFER_SIZE]; - mToken.mIdent.ToCString(cbuf, sizeof(cbuf)); - PRInt32 keyword = nsCSSKeywords::LookupName(cbuf); - if ((0 <= keyword) && + nsCSSKeyword keyword = nsCSSKeywords::LookupKeyword(mToken.mIdent); + if ((eCSSKeyword_UNKNOWN < keyword) && (0 < SearchKeywordTable(keyword, nsCSSProps::kListStyleKTable))) { counter.Append(','); counter.Append(mToken.mIdent); @@ -2513,7 +2498,7 @@ PRBool CSSParserImpl::ParseURL(PRInt32& aErrorCode, nsCSSValue& aValue) } PRInt32 CSSParserImpl::ParseChoice(PRInt32& aErrorCode, nsCSSValue aValues[], - const PRInt32 aPropIDs[], PRInt32 aNumIDs) + const nsCSSProperty aPropIDs[], PRInt32 aNumIDs) { PRInt32 found = 0; PRInt32 loop; @@ -2561,7 +2546,7 @@ PRInt32 CSSParserImpl::ParseChoice(PRInt32& aErrorCode, nsCSSValue aValues[], */ PRBool CSSParserImpl::ParseBoxProperties(PRInt32& aErrorCode, nsICSSDeclaration* aDeclaration, - const PRInt32 aPropIDs[]) + const nsCSSProperty aPropIDs[]) { // Get up to four values for the property nsCSSValue values[4]; @@ -2603,20 +2588,20 @@ PRBool CSSParserImpl::ParseBoxProperties(PRInt32& aErrorCode, PRBool CSSParserImpl::ParseProperty(PRInt32& aErrorCode, nsICSSDeclaration* aDeclaration, - PRInt32 aPropID, + nsCSSProperty aPropID, PRInt32& aChangeHint) { // Strip out properties we use internally. These properties are used // by compound property parsing routines (e.g. "background-position"). switch (aPropID) { - case PROP_BACKGROUND_X_POSITION: - case PROP_BACKGROUND_Y_POSITION: - case PROP_BORDER_X_SPACING: - case PROP_BORDER_Y_SPACING: - case PROP_CLIP_BOTTOM: - case PROP_CLIP_LEFT: - case PROP_CLIP_RIGHT: - case PROP_CLIP_TOP: + case eCSSProperty_background_x_position: + case eCSSProperty_background_y_position: + case eCSSProperty_border_x_spacing: + case eCSSProperty_border_y_spacing: + case eCSSProperty_clip_bottom: + case eCSSProperty_clip_left: + case eCSSProperty_clip_right: + case eCSSProperty_clip_top: // The user can't use these return PR_FALSE; default: @@ -2632,61 +2617,61 @@ PRBool CSSParserImpl::ParseProperty(PRInt32& aErrorCode, PRBool CSSParserImpl::ParseProperty(PRInt32& aErrorCode, nsICSSDeclaration* aDeclaration, - PRInt32 aPropID) + nsCSSProperty aPropID) { switch (aPropID) { // handle shorthand or multiple properties - case PROP_BACKGROUND: + case eCSSProperty_background: return ParseBackground(aErrorCode, aDeclaration); - case PROP_BACKGROUND_POSITION: + case eCSSProperty_background_position: return ParseBackgroundPosition(aErrorCode, aDeclaration); - case PROP_BORDER: + case eCSSProperty_border: return ParseBorder(aErrorCode, aDeclaration); - case PROP_BORDER_COLOR: + case eCSSProperty_border_color: return ParseBorderColor(aErrorCode, aDeclaration); - case PROP_BORDER_SPACING: + case eCSSProperty_border_spacing: return ParseBorderSpacing(aErrorCode, aDeclaration); - case PROP_BORDER_STYLE: + case eCSSProperty_border_style: return ParseBorderStyle(aErrorCode, aDeclaration); - case PROP_BORDER_BOTTOM: + case eCSSProperty_border_bottom: return ParseBorderSide(aErrorCode, aDeclaration, kBorderBottomIDs); - case PROP_BORDER_LEFT: + case eCSSProperty_border_left: return ParseBorderSide(aErrorCode, aDeclaration, kBorderLeftIDs); - case PROP_BORDER_RIGHT: + case eCSSProperty_border_right: return ParseBorderSide(aErrorCode, aDeclaration, kBorderRightIDs); - case PROP_BORDER_TOP: + case eCSSProperty_border_top: return ParseBorderSide(aErrorCode, aDeclaration, kBorderTopIDs); - case PROP_BORDER_WIDTH: + case eCSSProperty_border_width: return ParseBorderWidth(aErrorCode, aDeclaration); - case PROP_CLIP: + case eCSSProperty_clip: return ParseClip(aErrorCode, aDeclaration); - case PROP_CONTENT: + case eCSSProperty_content: return ParseContent(aErrorCode, aDeclaration); - case PROP_COUNTER_INCREMENT: - case PROP_COUNTER_RESET: + case eCSSProperty_counter_increment: + case eCSSProperty_counter_reset: return ParseCounterData(aErrorCode, aDeclaration, aPropID); - case PROP_CUE: + case eCSSProperty_cue: return ParseCue(aErrorCode, aDeclaration); - case PROP_CURSOR: + case eCSSProperty_cursor: return ParseCursor(aErrorCode, aDeclaration); - case PROP_FONT: + case eCSSProperty_font: return ParseFont(aErrorCode, aDeclaration); - case PROP_LIST_STYLE: + case eCSSProperty_list_style: return ParseListStyle(aErrorCode, aDeclaration); - case PROP_MARGIN: + case eCSSProperty_margin: return ParseMargin(aErrorCode, aDeclaration); - case PROP_OUTLINE: + case eCSSProperty_outline: return ParseOutline(aErrorCode, aDeclaration); - case PROP_PADDING: + case eCSSProperty_padding: return ParsePadding(aErrorCode, aDeclaration); - case PROP_PAUSE: + case eCSSProperty_pause: return ParsePause(aErrorCode, aDeclaration); - case PROP_PLAY_DURING: + case eCSSProperty_play_during: return ParsePlayDuring(aErrorCode, aDeclaration); - case PROP_QUOTES: + case eCSSProperty_quotes: return ParseQuotes(aErrorCode, aDeclaration); - case PROP_SIZE: + case eCSSProperty_size: return ParseSize(aErrorCode, aDeclaration); - case PROP_TEXT_SHADOW: + case eCSSProperty_text_shadow: return ParseTextShadow(aErrorCode, aDeclaration); default: // must be single property @@ -2716,262 +2701,258 @@ PRBool CSSParserImpl::ParseProperty(PRInt32& aErrorCode, // parseBackgroundPosition! static const PRInt32 kBackgroundXYPositionKTable[] = { - KEYWORD_CENTER, BG_CENTER, - KEYWORD_TOP, BG_TOP, - KEYWORD_BOTTOM, BG_BOTTOM, - KEYWORD_LEFT, BG_LEFT, - KEYWORD_RIGHT, BG_RIGHT, + eCSSKeyword_center, BG_CENTER, + eCSSKeyword_top, BG_TOP, + eCSSKeyword_bottom, BG_BOTTOM, + eCSSKeyword_left, BG_LEFT, + eCSSKeyword_right, BG_RIGHT, -1, }; PRBool CSSParserImpl::ParseSingleValueProperty(PRInt32& aErrorCode, nsCSSValue& aValue, - PRInt32 aPropID) + nsCSSProperty aPropID) { switch (aPropID) { - case PROP_BACKGROUND: - case PROP_BACKGROUND_POSITION: - case PROP_BORDER: - case PROP_BORDER_COLOR: - case PROP_BORDER_SPACING: - case PROP_BORDER_STYLE: - case PROP_BORDER_BOTTOM: - case PROP_BORDER_LEFT: - case PROP_BORDER_RIGHT: - case PROP_BORDER_TOP: - case PROP_BORDER_WIDTH: - case PROP_CLIP: - case PROP_CONTENT: - case PROP_COUNTER_INCREMENT: - case PROP_COUNTER_RESET: - case PROP_CUE: - case PROP_CURSOR: - case PROP_FONT: - case PROP_LIST_STYLE: - case PROP_MARGIN: - case PROP_OUTLINE: - case PROP_PADDING: - case PROP_PAUSE: - case PROP_QUOTES: - case PROP_SIZE: - case PROP_TEXT_SHADOW: + case eCSSProperty_background: + case eCSSProperty_background_position: + case eCSSProperty_border: + case eCSSProperty_border_color: + case eCSSProperty_border_spacing: + case eCSSProperty_border_style: + case eCSSProperty_border_bottom: + case eCSSProperty_border_left: + case eCSSProperty_border_right: + case eCSSProperty_border_top: + case eCSSProperty_border_width: + case eCSSProperty_clip: + case eCSSProperty_content: + case eCSSProperty_counter_increment: + case eCSSProperty_counter_reset: + case eCSSProperty_cue: + case eCSSProperty_cursor: + case eCSSProperty_font: + case eCSSProperty_list_style: + case eCSSProperty_margin: + case eCSSProperty_outline: + case eCSSProperty_padding: + case eCSSProperty_pause: + case eCSSProperty_quotes: + case eCSSProperty_size: + case eCSSProperty_text_shadow: NS_ERROR("not a single value property"); return PR_FALSE; - case PROP_AZIMUTH: + case eCSSProperty_azimuth: return ParseAzimuth(aErrorCode, aValue); - case PROP_BACKGROUND_ATTACHMENT: + case eCSSProperty_background_attachment: return ParseVariant(aErrorCode, aValue, VARIANT_HK, nsCSSProps::kBackgroundAttachmentKTable); - case PROP_BACKGROUND_COLOR: + case eCSSProperty_background_color: return ParseVariant(aErrorCode, aValue, VARIANT_HCK, nsCSSProps::kBackgroundColorKTable); - case PROP_BACKGROUND_FILTER: // XXX - return ParseBackgroundFilter(aErrorCode, aValue); - case PROP_BACKGROUND_IMAGE: + case eCSSProperty_background_image: return ParseVariant(aErrorCode, aValue, VARIANT_HUO, nsnull); - case PROP_BACKGROUND_REPEAT: + case eCSSProperty_background_repeat: return ParseVariant(aErrorCode, aValue, VARIANT_HK, nsCSSProps::kBackgroundRepeatKTable); - case PROP_BACKGROUND_X_POSITION: - case PROP_BACKGROUND_Y_POSITION: + case eCSSProperty_background_x_position: + case eCSSProperty_background_y_position: return ParseVariant(aErrorCode, aValue, VARIANT_HKLP, kBackgroundXYPositionKTable); - case PROP_BORDER_COLLAPSE: + case eCSSProperty_border_collapse: return ParseVariant(aErrorCode, aValue, VARIANT_HK, nsCSSProps::kBorderCollapseKTable); - case PROP_BORDER_BOTTOM_COLOR: - case PROP_BORDER_LEFT_COLOR: - case PROP_BORDER_RIGHT_COLOR: - case PROP_BORDER_TOP_COLOR: + case eCSSProperty_border_bottom_color: + case eCSSProperty_border_left_color: + case eCSSProperty_border_right_color: + case eCSSProperty_border_top_color: return ParseVariant(aErrorCode, aValue, VARIANT_HCK, nsCSSProps::kBorderColorKTable); - case PROP_BORDER_BOTTOM_STYLE: - case PROP_BORDER_LEFT_STYLE: - case PROP_BORDER_RIGHT_STYLE: - case PROP_BORDER_TOP_STYLE: + case eCSSProperty_border_bottom_style: + case eCSSProperty_border_left_style: + case eCSSProperty_border_right_style: + case eCSSProperty_border_top_style: return ParseVariant(aErrorCode, aValue, VARIANT_HOK, nsCSSProps::kBorderStyleKTable); - case PROP_BORDER_BOTTOM_WIDTH: - case PROP_BORDER_LEFT_WIDTH: - case PROP_BORDER_RIGHT_WIDTH: - case PROP_BORDER_TOP_WIDTH: + case eCSSProperty_border_bottom_width: + case eCSSProperty_border_left_width: + case eCSSProperty_border_right_width: + case eCSSProperty_border_top_width: return ParseVariant(aErrorCode, aValue, VARIANT_HKL, nsCSSProps::kBorderWidthKTable); - case PROP__MOZ_BORDER_RADIUS: + case eCSSProperty__moz_border_radius: return ParseVariant(aErrorCode, aValue, VARIANT_HLP, nsnull); - case PROP_BOTTOM: - case PROP_TOP: - case PROP_LEFT: - case PROP_RIGHT: + case eCSSProperty_bottom: + case eCSSProperty_top: + case eCSSProperty_left: + case eCSSProperty_right: return ParseVariant(aErrorCode, aValue, VARIANT_AHLP, nsnull); - case PROP_HEIGHT: - case PROP_WIDTH: + case eCSSProperty_height: + case eCSSProperty_width: return ParsePositiveVariant(aErrorCode, aValue, VARIANT_AHLP, nsnull); - case PROP_CAPTION_SIDE: + case eCSSProperty_caption_side: return ParseVariant(aErrorCode, aValue, VARIANT_HK, nsCSSProps::kCaptionSideKTable); - case PROP_CLEAR: + case eCSSProperty_clear: return ParseVariant(aErrorCode, aValue, VARIANT_HOK, nsCSSProps::kClearKTable); - case PROP_COLOR: + case eCSSProperty_color: return ParseVariant(aErrorCode, aValue, VARIANT_HC, nsnull); - case PROP_CUE_AFTER: - case PROP_CUE_BEFORE: + case eCSSProperty_cue_after: + case eCSSProperty_cue_before: return ParseVariant(aErrorCode, aValue, VARIANT_HUO, nsnull); - case PROP_DIRECTION: + case eCSSProperty_direction: return ParseVariant(aErrorCode, aValue, VARIANT_HK, nsCSSProps::kDirectionKTable); - case PROP_DISPLAY: + case eCSSProperty_display: return ParseVariant(aErrorCode, aValue, VARIANT_HOK, nsCSSProps::kDisplayKTable); - case PROP_ELEVATION: + case eCSSProperty_elevation: return ParseVariant(aErrorCode, aValue, VARIANT_HK | VARIANT_ANGLE, nsCSSProps::kElevationKTable); - case PROP_EMPTY_CELLS: + case eCSSProperty_empty_cells: return ParseVariant(aErrorCode, aValue, VARIANT_HK, nsCSSProps::kEmptyCellsKTable); - case PROP_FILTER: - return ParseForegroundFilter(aErrorCode, aValue); - case PROP_FLOAT: + case eCSSProperty_float: return ParseVariant(aErrorCode, aValue, VARIANT_HOK, nsCSSProps::kFloatKTable); - case PROP_FONT_FAMILY: + case eCSSProperty_font_family: return ParseFamily(aErrorCode, aValue); - case PROP_FONT_SIZE: + case eCSSProperty_font_size: return ParsePositiveVariant(aErrorCode, aValue, VARIANT_HKLP, nsCSSProps::kFontSizeKTable); - case PROP_FONT_SIZE_ADJUST: + case eCSSProperty_font_size_adjust: return ParseVariant(aErrorCode, aValue, VARIANT_HON, nsnull); - case PROP_FONT_STRETCH: + case eCSSProperty_font_stretch: return ParseVariant(aErrorCode, aValue, VARIANT_HMK, nsCSSProps::kFontStretchKTable); - case PROP_FONT_STYLE: + case eCSSProperty_font_style: return ParseVariant(aErrorCode, aValue, VARIANT_HMK, nsCSSProps::kFontStyleKTable); - case PROP_FONT_VARIANT: + case eCSSProperty_font_variant: return ParseVariant(aErrorCode, aValue, VARIANT_HMK, nsCSSProps::kFontVariantKTable); - case PROP_FONT_WEIGHT: + case eCSSProperty_font_weight: return ParseVariant(aErrorCode, aValue, VARIANT_HMKI, nsCSSProps::kFontWeightKTable); - case PROP_LETTER_SPACING: - case PROP_WORD_SPACING: + case eCSSProperty_letter_spacing: + case eCSSProperty_word_spacing: return ParseVariant(aErrorCode, aValue, VARIANT_HL | VARIANT_NORMAL, nsnull); - case PROP_LINE_HEIGHT: + case eCSSProperty_line_height: return ParsePositiveVariant(aErrorCode, aValue, VARIANT_HLPN | VARIANT_NORMAL, nsnull); - case PROP_LIST_STYLE_IMAGE: + case eCSSProperty_list_style_image: return ParseVariant(aErrorCode, aValue, VARIANT_HUO, nsnull); - case PROP_LIST_STYLE_POSITION: + case eCSSProperty_list_style_position: return ParseVariant(aErrorCode, aValue, VARIANT_HK, nsCSSProps::kListStylePositionKTable); - case PROP_LIST_STYLE_TYPE: + case eCSSProperty_list_style_type: return ParseVariant(aErrorCode, aValue, VARIANT_HOK, nsCSSProps::kListStyleKTable); - case PROP_MARGIN_BOTTOM: - case PROP_MARGIN_LEFT: - case PROP_MARGIN_RIGHT: - case PROP_MARGIN_TOP: + case eCSSProperty_margin_bottom: + case eCSSProperty_margin_left: + case eCSSProperty_margin_right: + case eCSSProperty_margin_top: return ParseVariant(aErrorCode, aValue, VARIANT_AHLP, nsnull); - case PROP_MARKER_OFFSET: + case eCSSProperty_marker_offset: return ParseVariant(aErrorCode, aValue, VARIANT_AHL, nsnull); - case PROP_MARKS: + case eCSSProperty_marks: return ParseMarks(aErrorCode, aValue); - case PROP_MAX_HEIGHT: - case PROP_MAX_WIDTH: + case eCSSProperty_max_height: + case eCSSProperty_max_width: return ParseVariant(aErrorCode, aValue, VARIANT_HLPO, nsnull); - case PROP_MIN_HEIGHT: - case PROP_MIN_WIDTH: + case eCSSProperty_min_height: + case eCSSProperty_min_width: return ParseVariant(aErrorCode, aValue, VARIANT_HLP, nsnull); - case PROP_OPACITY: + case eCSSProperty_opacity: return ParseVariant(aErrorCode, aValue, VARIANT_HPN, nsnull); - case PROP_ORPHANS: - case PROP_WIDOWS: + case eCSSProperty_orphans: + case eCSSProperty_widows: return ParseVariant(aErrorCode, aValue, VARIANT_HI, nsnull); - case PROP_OUTLINE_COLOR: + case eCSSProperty_outline_color: return ParseVariant(aErrorCode, aValue, VARIANT_HCK, nsCSSProps::kOutlineColorKTable); - case PROP_OUTLINE_STYLE: + case eCSSProperty_outline_style: return ParseVariant(aErrorCode, aValue, VARIANT_HOK, nsCSSProps::kBorderStyleKTable); - case PROP_OUTLINE_WIDTH: + case eCSSProperty_outline_width: return ParseVariant(aErrorCode, aValue, VARIANT_HKL, nsCSSProps::kBorderWidthKTable); - case PROP_OVERFLOW: + case eCSSProperty_overflow: return ParseVariant(aErrorCode, aValue, VARIANT_AHK, nsCSSProps::kOverflowKTable); - case PROP_PADDING_BOTTOM: - case PROP_PADDING_LEFT: - case PROP_PADDING_RIGHT: - case PROP_PADDING_TOP: + case eCSSProperty_padding_bottom: + case eCSSProperty_padding_left: + case eCSSProperty_padding_right: + case eCSSProperty_padding_top: return ParsePositiveVariant(aErrorCode, aValue, VARIANT_HLP, nsnull); - case PROP_PAGE: + case eCSSProperty_page: return ParseVariant(aErrorCode, aValue, VARIANT_AUTO | VARIANT_IDENTIFIER, nsnull); - case PROP_PAGE_BREAK_AFTER: - case PROP_PAGE_BREAK_BEFORE: + case eCSSProperty_page_break_after: + case eCSSProperty_page_break_before: return ParseVariant(aErrorCode, aValue, VARIANT_AHK, nsCSSProps::kPageBreakKTable); - case PROP_PAGE_BREAK_INSIDE: + case eCSSProperty_page_break_inside: return ParseVariant(aErrorCode, aValue, VARIANT_AHK, nsCSSProps::kPageBreakInsideKTable); - case PROP_PAUSE_AFTER: - case PROP_PAUSE_BEFORE: + case eCSSProperty_pause_after: + case eCSSProperty_pause_before: return ParseVariant(aErrorCode, aValue, VARIANT_HTP, nsnull); - case PROP_PITCH: + case eCSSProperty_pitch: return ParseVariant(aErrorCode, aValue, VARIANT_HKF, nsCSSProps::kPitchKTable); - case PROP_PITCH_RANGE: + case eCSSProperty_pitch_range: return ParseVariant(aErrorCode, aValue, VARIANT_HN, nsnull); - case PROP_POSITION: + case eCSSProperty_position: return ParseVariant(aErrorCode, aValue, VARIANT_HK, nsCSSProps::kPositionKTable); - case PROP_RICHNESS: + case eCSSProperty_richness: return ParseVariant(aErrorCode, aValue, VARIANT_HN, nsnull); - case PROP_SPEAK: + case eCSSProperty_speak: return ParseVariant(aErrorCode, aValue, VARIANT_HMK | VARIANT_NONE, nsCSSProps::kSpeakKTable); - case PROP_SPEAK_HEADER: + case eCSSProperty_speak_header: return ParseVariant(aErrorCode, aValue, VARIANT_HK, nsCSSProps::kSpeakHeaderKTable); - case PROP_SPEAK_NUMERAL: + case eCSSProperty_speak_numeral: return ParseVariant(aErrorCode, aValue, VARIANT_HK, nsCSSProps::kSpeakNumeralKTable); - case PROP_SPEAK_PUNCTUATION: + case eCSSProperty_speak_punctuation: return ParseVariant(aErrorCode, aValue, VARIANT_HK, nsCSSProps::kSpeakPunctuationKTable); - case PROP_SPEECH_RATE: + case eCSSProperty_speech_rate: return ParseVariant(aErrorCode, aValue, VARIANT_HN | VARIANT_KEYWORD, nsCSSProps::kSpeechRateKTable); - case PROP_STRESS: + case eCSSProperty_stress: return ParseVariant(aErrorCode, aValue, VARIANT_HN, nsnull); - case PROP_TABLE_LAYOUT: + case eCSSProperty_table_layout: return ParseVariant(aErrorCode, aValue, VARIANT_AHK, nsCSSProps::kTableLayoutKTable); - case PROP_TEXT_ALIGN: + case eCSSProperty_text_align: return ParseVariant(aErrorCode, aValue, VARIANT_HK | VARIANT_STRING, nsCSSProps::kTextAlignKTable); - case PROP_TEXT_DECORATION: + case eCSSProperty_text_decoration: return ParseTextDecoration(aErrorCode, aValue); - case PROP_TEXT_INDENT: + case eCSSProperty_text_indent: return ParseVariant(aErrorCode, aValue, VARIANT_HLP, nsnull); - case PROP_TEXT_TRANSFORM: + case eCSSProperty_text_transform: return ParseVariant(aErrorCode, aValue, VARIANT_HOK, nsCSSProps::kTextTransformKTable); - case PROP_UNICODE_BIDI: + case eCSSProperty_unicode_bidi: return ParseVariant(aErrorCode, aValue, VARIANT_HMK, nsCSSProps::kUnicodeBidiKTable); - case PROP_VERTICAL_ALIGN: + case eCSSProperty_vertical_align: return ParseVariant(aErrorCode, aValue, VARIANT_HKLP, nsCSSProps::kVerticalAlignKTable); - case PROP_VISIBILITY: + case eCSSProperty_visibility: return ParseVariant(aErrorCode, aValue, VARIANT_HK, nsCSSProps::kVisibilityKTable); - case PROP_VOICE_FAMILY: + case eCSSProperty_voice_family: return ParseFamily(aErrorCode, aValue); - case PROP_VOLUME: + case eCSSProperty_volume: return ParseVariant(aErrorCode, aValue, VARIANT_HPN | VARIANT_KEYWORD, nsCSSProps::kVolumeKTable); - case PROP_WHITE_SPACE: + case eCSSProperty_white_space: return ParseVariant(aErrorCode, aValue, VARIANT_HMK, nsCSSProps::kWhitespaceKTable); - case PROP_Z_INDEX: + case eCSSProperty_z_index: return ParseVariant(aErrorCode, aValue, VARIANT_AHI, nsnull); } return PR_FALSE; @@ -3009,14 +2990,13 @@ PRBool CSSParserImpl::ParseAzimuth(PRInt32& aErrorCode, nsCSSValue& aValue) PRBool CSSParserImpl::ParseBackground(PRInt32& aErrorCode, nsICSSDeclaration* aDeclaration) { const PRInt32 numProps = 6; - static const PRInt32 kBackgroundIDs[numProps] = { - PROP_BACKGROUND_COLOR, - PROP_BACKGROUND_IMAGE, - PROP_BACKGROUND_REPEAT, - PROP_BACKGROUND_ATTACHMENT, - PROP_BACKGROUND_X_POSITION, - PROP_BACKGROUND_Y_POSITION -// PROP_BACKGROUND_FILTER + static const nsCSSProperty kBackgroundIDs[numProps] = { + eCSSProperty_background_color, + eCSSProperty_background_image, + eCSSProperty_background_repeat, + eCSSProperty_background_attachment, + eCSSProperty_background_x_position, + eCSSProperty_background_y_position }; nsCSSValue values[numProps]; @@ -3135,8 +3115,6 @@ PRBool CSSParserImpl::ParseBackground(PRInt32& aErrorCode, nsICSSDeclaration* aD values[5].SetPercentValue(0.0f); } - // Note: no default for filter (yet) - PRInt32 index; for (index = 0; index < numProps; index++) { aDeclaration->AppendValue(kBackgroundIDs[index], values[index]); @@ -3152,8 +3130,8 @@ PRBool CSSParserImpl::ParseBackgroundPosition(PRInt32& aErrorCode, if (ParseVariant(aErrorCode, xValue, VARIANT_HLP, nsnull)) { if (eCSSUnit_Inherit == xValue.GetUnit()) { // both are inherited if (ExpectEndProperty(aErrorCode, PR_TRUE)) { - aDeclaration->AppendValue(PROP_BACKGROUND_X_POSITION, xValue); - aDeclaration->AppendValue(PROP_BACKGROUND_Y_POSITION, xValue); + aDeclaration->AppendValue(eCSSProperty_background_x_position, xValue); + aDeclaration->AppendValue(eCSSProperty_background_y_position, xValue); return PR_TRUE; } return PR_FALSE; @@ -3163,8 +3141,8 @@ PRBool CSSParserImpl::ParseBackgroundPosition(PRInt32& aErrorCode, if (ParseVariant(aErrorCode, yValue, VARIANT_LP, nsnull)) { // We have two numbers if (ExpectEndProperty(aErrorCode, PR_TRUE)) { - aDeclaration->AppendValue(PROP_BACKGROUND_X_POSITION, xValue); - aDeclaration->AppendValue(PROP_BACKGROUND_Y_POSITION, yValue); + aDeclaration->AppendValue(eCSSProperty_background_x_position, xValue); + aDeclaration->AppendValue(eCSSProperty_background_y_position, yValue); return PR_TRUE; } return PR_FALSE; @@ -3173,8 +3151,8 @@ PRBool CSSParserImpl::ParseBackgroundPosition(PRInt32& aErrorCode, // We have one number which is the x position. Create an value for // the vertical position which is of value 50% if (ExpectEndProperty(aErrorCode, PR_TRUE)) { - aDeclaration->AppendValue(PROP_BACKGROUND_X_POSITION, xValue); - aDeclaration->AppendValue(PROP_BACKGROUND_Y_POSITION, nsCSSValue(0.5f, eCSSUnit_Percent)); + aDeclaration->AppendValue(eCSSProperty_background_x_position, xValue); + aDeclaration->AppendValue(eCSSProperty_background_y_position, nsCSSValue(0.5f, eCSSUnit_Percent)); return PR_TRUE; } return PR_FALSE; @@ -3226,53 +3204,41 @@ PRBool CSSParserImpl::ParseBackgroundPosition(PRInt32& aErrorCode, if (ExpectEndProperty(aErrorCode, PR_TRUE)) { // Create style values - aDeclaration->AppendValue(PROP_BACKGROUND_X_POSITION, nsCSSValue(xEnumValue, eCSSUnit_Enumerated)); - aDeclaration->AppendValue(PROP_BACKGROUND_Y_POSITION, nsCSSValue(yEnumValue, eCSSUnit_Enumerated)); + aDeclaration->AppendValue(eCSSProperty_background_x_position, nsCSSValue(xEnumValue, eCSSUnit_Enumerated)); + aDeclaration->AppendValue(eCSSProperty_background_y_position, nsCSSValue(yEnumValue, eCSSUnit_Enumerated)); return PR_TRUE; } return PR_FALSE; } -PRBool CSSParserImpl::ParseBackgroundFilter(PRInt32& aErrorCode, nsCSSValue& aValue) -{ - // XXX not yet supported - return PR_FALSE; -} - -PRBool CSSParserImpl::ParseForegroundFilter(PRInt32& aErrorCode, nsCSSValue& aValue) -{ - // XXX not yet supported - return PR_FALSE; -} - // These must be in CSS order (top,right,bottom,left) for indexing to work -static const PRInt32 kBorderStyleIDs[] = { - PROP_BORDER_TOP_STYLE, - PROP_BORDER_RIGHT_STYLE, - PROP_BORDER_BOTTOM_STYLE, - PROP_BORDER_LEFT_STYLE +static const nsCSSProperty kBorderStyleIDs[] = { + eCSSProperty_border_top_style, + eCSSProperty_border_right_style, + eCSSProperty_border_bottom_style, + eCSSProperty_border_left_style }; -static const PRInt32 kBorderWidthIDs[] = { - PROP_BORDER_TOP_WIDTH, - PROP_BORDER_RIGHT_WIDTH, - PROP_BORDER_BOTTOM_WIDTH, - PROP_BORDER_LEFT_WIDTH +static const nsCSSProperty kBorderWidthIDs[] = { + eCSSProperty_border_top_width, + eCSSProperty_border_right_width, + eCSSProperty_border_bottom_width, + eCSSProperty_border_left_width }; -static const PRInt32 kBorderColorIDs[] = { - PROP_BORDER_TOP_COLOR, - PROP_BORDER_RIGHT_COLOR, - PROP_BORDER_BOTTOM_COLOR, - PROP_BORDER_LEFT_COLOR +static const nsCSSProperty kBorderColorIDs[] = { + eCSSProperty_border_top_color, + eCSSProperty_border_right_color, + eCSSProperty_border_bottom_color, + eCSSProperty_border_left_color }; PRBool CSSParserImpl::ParseBorder(PRInt32& aErrorCode, nsICSSDeclaration* aDeclaration) { const PRInt32 numProps = 3; - static const PRInt32 kBorderIDs[] = { - PROP_BORDER_TOP_WIDTH, // only one value per property - PROP_BORDER_TOP_STYLE, - PROP_BORDER_TOP_COLOR + static const nsCSSProperty kBorderIDs[] = { + eCSSProperty_border_top_width, // only one value per property + eCSSProperty_border_top_style, + eCSSProperty_border_top_color }; nsCSSValue values[numProps]; @@ -3319,8 +3285,8 @@ PRBool CSSParserImpl::ParseBorderSpacing(PRInt32& aErrorCode, nsICSSDeclaration* if (ParseVariant(aErrorCode, yValue, VARIANT_LENGTH, nsnull)) { // We have two numbers if (ExpectEndProperty(aErrorCode, PR_TRUE)) { - aDeclaration->AppendValue(PROP_BORDER_X_SPACING, xValue); - aDeclaration->AppendValue(PROP_BORDER_Y_SPACING, yValue); + aDeclaration->AppendValue(eCSSProperty_border_x_spacing, xValue); + aDeclaration->AppendValue(eCSSProperty_border_y_spacing, yValue); return PR_TRUE; } return PR_FALSE; @@ -3330,8 +3296,8 @@ PRBool CSSParserImpl::ParseBorderSpacing(PRInt32& aErrorCode, nsICSSDeclaration* // We have one length which is the horizontal spacing. Create a value for // the vertical spacing which is equal if (ExpectEndProperty(aErrorCode, PR_TRUE)) { - aDeclaration->AppendValue(PROP_BORDER_X_SPACING, xValue); - aDeclaration->AppendValue(PROP_BORDER_Y_SPACING, xValue); + aDeclaration->AppendValue(eCSSProperty_border_x_spacing, xValue); + aDeclaration->AppendValue(eCSSProperty_border_y_spacing, xValue); return PR_TRUE; } } @@ -3339,7 +3305,7 @@ PRBool CSSParserImpl::ParseBorderSpacing(PRInt32& aErrorCode, nsICSSDeclaration* } PRBool CSSParserImpl::ParseBorderSide(PRInt32& aErrorCode, nsICSSDeclaration* aDeclaration, - const PRInt32 aPropIDs[]) + const nsCSSProperty aPropIDs[]) { const PRInt32 numProps = 3; nsCSSValue values[numProps]; @@ -3378,11 +3344,11 @@ PRBool CSSParserImpl::ParseBorderWidth(PRInt32& aErrorCode, nsICSSDeclaration* a PRBool CSSParserImpl::ParseClip(PRInt32& aErrorCode, nsICSSDeclaration* aDeclaration) { - static const PRInt32 kClipIDs[] = { - PROP_CLIP_TOP, - PROP_CLIP_RIGHT, - PROP_CLIP_BOTTOM, - PROP_CLIP_LEFT + static const nsCSSProperty kClipIDs[] = { + eCSSProperty_clip_top, + eCSSProperty_clip_right, + eCSSProperty_clip_bottom, + eCSSProperty_clip_left }; if (! GetToken(aErrorCode, PR_TRUE)) { return PR_FALSE; @@ -3445,7 +3411,7 @@ PRBool CSSParserImpl::ParseContent(PRInt32& aErrorCode, nsICSSDeclaration* aDecl nsCSSProps::kContentKTable)) { if (eCSSUnit_Inherit == value.GetUnit()) { if (ExpectEndProperty(aErrorCode, PR_TRUE)) { - aDeclaration->AppendValue(PROP_CONTENT, value); + aDeclaration->AppendValue(eCSSProperty_content, value); return PR_TRUE; } return PR_FALSE; @@ -3460,7 +3426,7 @@ PRBool CSSParserImpl::ParseContent(PRInt32& aErrorCode, nsICSSDeclaration* aDecl while (nsnull != list) { if (ExpectEndProperty(aErrorCode, PR_TRUE)) { - aErrorCode = aDeclaration->AppendStructValue(PROP_CONTENT, listHead); + aErrorCode = aDeclaration->AppendStructValue(eCSSProperty_content, listHead); return NS_SUCCEEDED(aErrorCode); } if (ParseVariant(aErrorCode, value, VARIANT_CONTENT, nsCSSProps::kContentKTable)) { @@ -3483,7 +3449,7 @@ PRBool CSSParserImpl::ParseContent(PRInt32& aErrorCode, nsICSSDeclaration* aDecl } PRBool CSSParserImpl::ParseCounterData(PRInt32& aErrorCode, nsICSSDeclaration* aDeclaration, - PRInt32 aPropID) + nsCSSProperty aPropID) { nsString* ident = NextIdent(aErrorCode); if (nsnull == ident) { @@ -3552,21 +3518,21 @@ PRBool CSSParserImpl::ParseCounterData(PRInt32& aErrorCode, nsICSSDeclaration* a PRBool CSSParserImpl::ParseCue(PRInt32& aErrorCode, nsICSSDeclaration* aDeclaration) { nsCSSValue before; - if (ParseSingleValueProperty(aErrorCode, before, PROP_CUE_BEFORE)) { + if (ParseSingleValueProperty(aErrorCode, before, eCSSProperty_cue_before)) { if (eCSSUnit_URL == before.GetUnit()) { nsCSSValue after; - if (ParseSingleValueProperty(aErrorCode, after, PROP_CUE_AFTER)) { + if (ParseSingleValueProperty(aErrorCode, after, eCSSProperty_cue_after)) { if (ExpectEndProperty(aErrorCode, PR_TRUE)) { - aDeclaration->AppendValue(PROP_CUE_BEFORE, before); - aDeclaration->AppendValue(PROP_CUE_AFTER, after); + aDeclaration->AppendValue(eCSSProperty_cue_before, before); + aDeclaration->AppendValue(eCSSProperty_cue_after, after); return PR_TRUE; } return PR_FALSE; } } if (ExpectEndProperty(aErrorCode, PR_TRUE)) { - aDeclaration->AppendValue(PROP_CUE_BEFORE, before); - aDeclaration->AppendValue(PROP_CUE_AFTER, before); + aDeclaration->AppendValue(eCSSProperty_cue_before, before); + aDeclaration->AppendValue(eCSSProperty_cue_after, before); return PR_TRUE; } } @@ -3592,7 +3558,7 @@ PRBool CSSParserImpl::ParseCursor(PRInt32& aErrorCode, nsICSSDeclaration* aDecla } } if (ExpectEndProperty(aErrorCode, PR_TRUE)) { - aErrorCode = aDeclaration->AppendStructValue(PROP_CURSOR, listHead); + aErrorCode = aDeclaration->AppendStructValue(eCSSProperty_cursor, listHead); return NS_SUCCEEDED(aErrorCode); } if (ParseVariant(aErrorCode, value, VARIANT_AHUK, nsCSSProps::kCursorKTable)) { @@ -3613,7 +3579,7 @@ PRBool CSSParserImpl::ParseCursor(PRInt32& aErrorCode, nsICSSDeclaration* aDecla return PR_FALSE; } if (ExpectEndProperty(aErrorCode, PR_TRUE)) { - aDeclaration->AppendValue(PROP_CURSOR, value); + aDeclaration->AppendValue(eCSSProperty_cursor, value); return PR_TRUE; } } @@ -3623,35 +3589,35 @@ PRBool CSSParserImpl::ParseCursor(PRInt32& aErrorCode, nsICSSDeclaration* aDecla PRBool CSSParserImpl::ParseFont(PRInt32& aErrorCode, nsICSSDeclaration* aDeclaration) { - static const PRInt32 fontIDs[] = { - PROP_FONT_STYLE, - PROP_FONT_VARIANT, - PROP_FONT_WEIGHT + static const nsCSSProperty fontIDs[] = { + eCSSProperty_font_style, + eCSSProperty_font_variant, + eCSSProperty_font_weight }; nsCSSValue family; if (ParseVariant(aErrorCode, family, VARIANT_HK, nsCSSProps::kFontKTable)) { if (ExpectEndProperty(aErrorCode, PR_TRUE)) { if (eCSSUnit_Inherit == family.GetUnit()) { - aDeclaration->AppendValue(PROP_FONT_FAMILY, family); - aDeclaration->AppendValue(PROP_FONT_STYLE, family); - aDeclaration->AppendValue(PROP_FONT_VARIANT, family); - aDeclaration->AppendValue(PROP_FONT_WEIGHT, family); - aDeclaration->AppendValue(PROP_FONT_SIZE, family); - aDeclaration->AppendValue(PROP_LINE_HEIGHT, family); - aDeclaration->AppendValue(PROP_FONT_STRETCH, family); - aDeclaration->AppendValue(PROP_FONT_SIZE_ADJUST, family); + aDeclaration->AppendValue(eCSSProperty_font_family, family); + aDeclaration->AppendValue(eCSSProperty_font_style, family); + aDeclaration->AppendValue(eCSSProperty_font_variant, family); + aDeclaration->AppendValue(eCSSProperty_font_weight, family); + aDeclaration->AppendValue(eCSSProperty_font_size, family); + aDeclaration->AppendValue(eCSSProperty_line_height, family); + aDeclaration->AppendValue(eCSSProperty_font_stretch, family); + aDeclaration->AppendValue(eCSSProperty_font_size_adjust, family); } else { - aDeclaration->AppendValue(PROP_FONT_FAMILY, family); // keyword value overrides everything else + aDeclaration->AppendValue(eCSSProperty_font_family, family); // keyword value overrides everything else nsCSSValue empty; - aDeclaration->AppendValue(PROP_FONT_STYLE, empty); - aDeclaration->AppendValue(PROP_FONT_VARIANT, empty); - aDeclaration->AppendValue(PROP_FONT_WEIGHT, empty); - aDeclaration->AppendValue(PROP_FONT_SIZE, empty); - aDeclaration->AppendValue(PROP_LINE_HEIGHT, empty); - aDeclaration->AppendValue(PROP_FONT_STRETCH, empty); - aDeclaration->AppendValue(PROP_FONT_SIZE_ADJUST, empty); + aDeclaration->AppendValue(eCSSProperty_font_style, empty); + aDeclaration->AppendValue(eCSSProperty_font_variant, empty); + aDeclaration->AppendValue(eCSSProperty_font_weight, empty); + aDeclaration->AppendValue(eCSSProperty_font_size, empty); + aDeclaration->AppendValue(eCSSProperty_line_height, empty); + aDeclaration->AppendValue(eCSSProperty_font_stretch, empty); + aDeclaration->AppendValue(eCSSProperty_font_size_adjust, empty); } return PR_TRUE; } @@ -3698,14 +3664,14 @@ PRBool CSSParserImpl::ParseFont(PRInt32& aErrorCode, nsICSSDeclaration* aDeclara // Get final mandatory font-family if (ParseFamily(aErrorCode, family)) { if ((eCSSUnit_Inherit != family.GetUnit()) && ExpectEndProperty(aErrorCode, PR_TRUE)) { - aDeclaration->AppendValue(PROP_FONT_FAMILY, family); - aDeclaration->AppendValue(PROP_FONT_STYLE, values[0]); - aDeclaration->AppendValue(PROP_FONT_VARIANT, values[1]); - aDeclaration->AppendValue(PROP_FONT_WEIGHT, values[2]); - aDeclaration->AppendValue(PROP_FONT_SIZE, size); - aDeclaration->AppendValue(PROP_LINE_HEIGHT, lineHeight); - aDeclaration->AppendValue(PROP_FONT_STRETCH, nsCSSValue(eCSSUnit_Normal)); - aDeclaration->AppendValue(PROP_FONT_SIZE_ADJUST, nsCSSValue(eCSSUnit_None)); + aDeclaration->AppendValue(eCSSProperty_font_family, family); + aDeclaration->AppendValue(eCSSProperty_font_style, values[0]); + aDeclaration->AppendValue(eCSSProperty_font_variant, values[1]); + aDeclaration->AppendValue(eCSSProperty_font_weight, values[2]); + aDeclaration->AppendValue(eCSSProperty_font_size, size); + aDeclaration->AppendValue(eCSSProperty_line_height, lineHeight); + aDeclaration->AppendValue(eCSSProperty_font_stretch, nsCSSValue(eCSSUnit_Normal)); + aDeclaration->AppendValue(eCSSProperty_font_size_adjust, nsCSSValue(eCSSUnit_None)); return PR_TRUE; } } @@ -3784,10 +3750,10 @@ PRBool CSSParserImpl::ParseFamily(PRInt32& aErrorCode, nsCSSValue& aValue) PRBool CSSParserImpl::ParseListStyle(PRInt32& aErrorCode, nsICSSDeclaration* aDeclaration) { const PRInt32 numProps = 3; - static const PRInt32 listStyleIDs[] = { - PROP_LIST_STYLE_TYPE, - PROP_LIST_STYLE_POSITION, - PROP_LIST_STYLE_IMAGE + static const nsCSSProperty listStyleIDs[] = { + eCSSProperty_list_style_type, + eCSSProperty_list_style_position, + eCSSProperty_list_style_image }; nsCSSValue values[numProps]; @@ -3816,11 +3782,11 @@ PRBool CSSParserImpl::ParseListStyle(PRInt32& aErrorCode, nsICSSDeclaration* aDe PRBool CSSParserImpl::ParseMargin(PRInt32& aErrorCode, nsICSSDeclaration* aDeclaration) { - static const PRInt32 kMarginSideIDs[] = { - PROP_MARGIN_TOP, - PROP_MARGIN_RIGHT, - PROP_MARGIN_BOTTOM, - PROP_MARGIN_LEFT + static const nsCSSProperty kMarginSideIDs[] = { + eCSSProperty_margin_top, + eCSSProperty_margin_right, + eCSSProperty_margin_bottom, + eCSSProperty_margin_left }; return ParseBoxProperties(aErrorCode, aDeclaration, kMarginSideIDs); } @@ -3846,10 +3812,10 @@ PRBool CSSParserImpl::ParseMarks(PRInt32& aErrorCode, nsCSSValue& aValue) PRBool CSSParserImpl::ParseOutline(PRInt32& aErrorCode, nsICSSDeclaration* aDeclaration) { const PRInt32 numProps = 3; - static const PRInt32 kOutlineIDs[] = { - PROP_OUTLINE_COLOR, - PROP_OUTLINE_STYLE, - PROP_OUTLINE_WIDTH + static const nsCSSProperty kOutlineIDs[] = { + eCSSProperty_outline_color, + eCSSProperty_outline_style, + eCSSProperty_outline_width }; nsCSSValue values[numProps]; @@ -3878,11 +3844,11 @@ PRBool CSSParserImpl::ParseOutline(PRInt32& aErrorCode, nsICSSDeclaration* aDecl PRBool CSSParserImpl::ParsePadding(PRInt32& aErrorCode, nsICSSDeclaration* aDeclaration) { - static const PRInt32 kPaddingSideIDs[] = { - PROP_PADDING_TOP, - PROP_PADDING_RIGHT, - PROP_PADDING_BOTTOM, - PROP_PADDING_LEFT + static const nsCSSProperty kPaddingSideIDs[] = { + eCSSProperty_padding_top, + eCSSProperty_padding_right, + eCSSProperty_padding_bottom, + eCSSProperty_padding_left }; return ParseBoxProperties(aErrorCode, aDeclaration, kPaddingSideIDs); } @@ -3891,21 +3857,21 @@ PRBool CSSParserImpl::ParsePause(PRInt32& aErrorCode, nsICSSDeclaration* aDeclaration) { nsCSSValue before; - if (ParseSingleValueProperty(aErrorCode, before, PROP_PAUSE_BEFORE)) { + if (ParseSingleValueProperty(aErrorCode, before, eCSSProperty_pause_before)) { if (eCSSUnit_Inherit != before.GetUnit()) { nsCSSValue after; - if (ParseSingleValueProperty(aErrorCode, after, PROP_PAUSE_AFTER)) { + if (ParseSingleValueProperty(aErrorCode, after, eCSSProperty_pause_after)) { if (ExpectEndProperty(aErrorCode, PR_TRUE)) { - aDeclaration->AppendValue(PROP_PAUSE_BEFORE, before); - aDeclaration->AppendValue(PROP_PAUSE_AFTER, after); + aDeclaration->AppendValue(eCSSProperty_pause_before, before); + aDeclaration->AppendValue(eCSSProperty_pause_after, after); return PR_TRUE; } return PR_FALSE; } } if (ExpectEndProperty(aErrorCode, PR_TRUE)) { - aDeclaration->AppendValue(PROP_PAUSE_BEFORE, before); - aDeclaration->AppendValue(PROP_PAUSE_AFTER, before); + aDeclaration->AppendValue(eCSSProperty_pause_before, before); + aDeclaration->AppendValue(eCSSProperty_pause_after, before); return PR_TRUE; } } @@ -3927,8 +3893,8 @@ PRBool CSSParserImpl::ParsePlayDuring(PRInt32& aErrorCode, } } if (ExpectEndProperty(aErrorCode, PR_TRUE)) { - aDeclaration->AppendValue(PROP_PLAY_DURING, playDuring); - aDeclaration->AppendValue(PROP_PLAY_DURING_FLAGS, flags); + aDeclaration->AppendValue(eCSSProperty_play_during, playDuring); + aDeclaration->AppendValue(eCSSProperty_play_during_flags, flags); return PR_TRUE; } } @@ -3952,7 +3918,7 @@ PRBool CSSParserImpl::ParseQuotes(PRInt32& aErrorCode, // get mandatory close if (ParseVariant(aErrorCode, quotes->mClose, VARIANT_STRING, nsnull)) { if (ExpectEndProperty(aErrorCode, PR_TRUE)) { - aErrorCode = aDeclaration->AppendStructValue(PROP_QUOTES, quotesHead); + aErrorCode = aDeclaration->AppendStructValue(eCSSProperty_quotes, quotesHead); return NS_SUCCEEDED(aErrorCode); } // look for another open @@ -3972,7 +3938,7 @@ PRBool CSSParserImpl::ParseQuotes(PRInt32& aErrorCode, return PR_FALSE; } if (ExpectEndProperty(aErrorCode, PR_TRUE)) { - aDeclaration->AppendValue(PROP_QUOTES_OPEN, open); + aDeclaration->AppendValue(eCSSProperty_quotes_open, open); return PR_TRUE; } } @@ -3987,16 +3953,16 @@ PRBool CSSParserImpl::ParseSize(PRInt32& aErrorCode, nsICSSDeclaration* aDeclara nsCSSValue height; if (ParseVariant(aErrorCode, height, VARIANT_LENGTH, nsnull)) { if (ExpectEndProperty(aErrorCode, PR_TRUE)) { - aDeclaration->AppendValue(PROP_SIZE_WIDTH, width); - aDeclaration->AppendValue(PROP_SIZE_HEIGHT, height); + aDeclaration->AppendValue(eCSSProperty_size_width, width); + aDeclaration->AppendValue(eCSSProperty_size_height, height); return PR_TRUE; } return PR_FALSE; } } if (ExpectEndProperty(aErrorCode, PR_TRUE)) { - aDeclaration->AppendValue(PROP_SIZE_WIDTH, width); - aDeclaration->AppendValue(PROP_SIZE_HEIGHT, width); + aDeclaration->AppendValue(eCSSProperty_size_width, width); + aDeclaration->AppendValue(eCSSProperty_size_height, width); return PR_TRUE; } } @@ -4080,7 +4046,7 @@ PRBool CSSParserImpl::ParseTextShadow(PRInt32& aErrorCode, } else { if (ExpectEndProperty(aErrorCode, PR_TRUE)) { - aErrorCode = aDeclaration->AppendStructValue(PROP_TEXT_SHADOW, shadowHead); + aErrorCode = aDeclaration->AppendStructValue(eCSSProperty_text_shadow, shadowHead); return NS_SUCCEEDED(aErrorCode); } break; @@ -4091,7 +4057,7 @@ PRBool CSSParserImpl::ParseTextShadow(PRInt32& aErrorCode, } // value is inherit or none if (ExpectEndProperty(aErrorCode, PR_TRUE)) { - aDeclaration->AppendValue(PROP_TEXT_SHADOW_X, value); + aDeclaration->AppendValue(eCSSProperty_text_shadow_x, value); return PR_TRUE; } }