From 42c7b6e79fc5e57b2b7288a6e5e8332b4dc3a749 Mon Sep 17 00:00:00 2001 From: "peterl%netscape.com" Date: Tue, 29 Sep 1998 23:50:56 +0000 Subject: [PATCH] added hint table moved non-generated code to nsCSSProps2.cpp git-svn-id: svn://10.0.0.236/trunk@11495 18797224-902f-48f8-a5cc-f745e15eee43 --- mozilla/content/html/style/src/nsCSSProps.h | 2 + mozilla/content/shared/public/nsCSSProps.h | 2 + mozilla/content/shared/src/nsCSSProps.cpp | 403 -------------- mozilla/layout/html/style/src/nsCSSProps.cpp | 403 -------------- mozilla/layout/html/style/src/nsCSSProps.h | 2 + mozilla/layout/html/style/src/nsCSSProps2.cpp | 495 ++++++++++++++++++ mozilla/layout/style/nsCSSProps.cpp | 403 -------------- mozilla/layout/style/nsCSSProps.h | 2 + 8 files changed, 503 insertions(+), 1209 deletions(-) create mode 100644 mozilla/layout/html/style/src/nsCSSProps2.cpp diff --git a/mozilla/content/html/style/src/nsCSSProps.h b/mozilla/content/html/style/src/nsCSSProps.h index 9fddff3b07c..402462b3d73 100644 --- a/mozilla/content/html/style/src/nsCSSProps.h +++ b/mozilla/content/html/style/src/nsCSSProps.h @@ -41,6 +41,8 @@ public: // A table whose index is the tag id (from nsCSSPropIDs) static const NameTableEntry kNameTable[]; + + static const PRInt32 kHintTable[]; }; #endif /* nsCSSProps_h___ */ diff --git a/mozilla/content/shared/public/nsCSSProps.h b/mozilla/content/shared/public/nsCSSProps.h index 9fddff3b07c..402462b3d73 100644 --- a/mozilla/content/shared/public/nsCSSProps.h +++ b/mozilla/content/shared/public/nsCSSProps.h @@ -41,6 +41,8 @@ public: // A table whose index is the tag id (from nsCSSPropIDs) static const NameTableEntry kNameTable[]; + + static const PRInt32 kHintTable[]; }; #endif /* nsCSSProps_h___ */ diff --git a/mozilla/content/shared/src/nsCSSProps.cpp b/mozilla/content/shared/src/nsCSSProps.cpp index 6b2c8c2acfb..509329f5634 100644 --- a/mozilla/content/shared/src/nsCSSProps.cpp +++ b/mozilla/content/shared/src/nsCSSProps.cpp @@ -6,9 +6,6 @@ #include "plstr.h" #include "nsCSSProps.h" -#include "nsCSSKeywordIDs.h" -#include "nsStyleConsts.h" -#include "nsCSSKeywords.h" #define TOTAL_KEYWORDS 80 #define MIN_WORD_LENGTH 3 @@ -370,403 +367,3 @@ const nsCSSProps::NameTableEntry nsCSSProps::kNameTable[] = { - -// Keyword id tables for variant/enum parsing -static PRInt32 kBackgroundAttachmentKTable[] = { - KEYWORD_FIXED, NS_STYLE_BG_ATTACHMENT_FIXED, - KEYWORD_SCROLL, NS_STYLE_BG_ATTACHMENT_SCROLL, - -1,-1 -}; - -static PRInt32 kBackgroundColorKTable[] = { - KEYWORD_TRANSPARENT, NS_STYLE_BG_COLOR_TRANSPARENT, - -1,-1 -}; - -static PRInt32 kBackgroundRepeatKTable[] = { - KEYWORD_NO_REPEAT, NS_STYLE_BG_REPEAT_OFF, - KEYWORD_REPEAT, NS_STYLE_BG_REPEAT_XY, - KEYWORD_REPEAT_X, NS_STYLE_BG_REPEAT_X, - KEYWORD_REPEAT_Y, NS_STYLE_BG_REPEAT_Y, - -1,-1 -}; - -static PRInt32 kBorderStyleKTable[] = { - KEYWORD_NONE, NS_STYLE_BORDER_STYLE_NONE, - KEYWORD_DOTTED, NS_STYLE_BORDER_STYLE_DOTTED, - KEYWORD_DASHED, NS_STYLE_BORDER_STYLE_DASHED, - KEYWORD_SOLID, NS_STYLE_BORDER_STYLE_SOLID, - KEYWORD_DOUBLE, NS_STYLE_BORDER_STYLE_DOUBLE, - KEYWORD_GROOVE, NS_STYLE_BORDER_STYLE_GROOVE, - KEYWORD_RIDGE, NS_STYLE_BORDER_STYLE_RIDGE, - KEYWORD_INSET, NS_STYLE_BORDER_STYLE_INSET, - KEYWORD_OUTSET, NS_STYLE_BORDER_STYLE_OUTSET, - -1,-1 -}; - -static PRInt32 kBorderWidthKTable[] = { - KEYWORD_THIN, NS_STYLE_BORDER_WIDTH_THIN, - KEYWORD_MEDIUM, NS_STYLE_BORDER_WIDTH_MEDIUM, - KEYWORD_THICK, NS_STYLE_BORDER_WIDTH_THICK, - -1,-1 -}; - -static PRInt32 kClearKTable[] = { - KEYWORD_NONE, NS_STYLE_CLEAR_NONE, - KEYWORD_LEFT, NS_STYLE_CLEAR_LEFT, - KEYWORD_RIGHT, NS_STYLE_CLEAR_RIGHT, - KEYWORD_BOTH, NS_STYLE_CLEAR_LEFT_AND_RIGHT, - -1,-1 -}; - -static PRInt32 kCursorKTable[] = { - KEYWORD_IBEAM, NS_STYLE_CURSOR_IBEAM, - KEYWORD_ARROW, NS_STYLE_CURSOR_DEFAULT, - KEYWORD_HAND, NS_STYLE_CURSOR_HAND, - -1,-1 -}; - -static PRInt32 kDirectionKTable[] = { - KEYWORD_LTR, NS_STYLE_DIRECTION_LTR, - KEYWORD_RTL, NS_STYLE_DIRECTION_RTL, - KEYWORD_INHERIT, NS_STYLE_DIRECTION_INHERIT, - -1,-1 -}; - -static PRInt32 kDisplayKTable[] = { - KEYWORD_NONE, NS_STYLE_DISPLAY_NONE, - KEYWORD_BLOCK, NS_STYLE_DISPLAY_BLOCK, - KEYWORD_INLINE, NS_STYLE_DISPLAY_INLINE, - KEYWORD_LIST_ITEM, NS_STYLE_DISPLAY_LIST_ITEM, - KEYWORD_MARKER, NS_STYLE_DISPLAY_MARKER, - KEYWORD_RUN_IN, NS_STYLE_DISPLAY_RUN_IN, - KEYWORD_COMPACT, NS_STYLE_DISPLAY_COMPACT, - KEYWORD_TABLE, NS_STYLE_DISPLAY_TABLE, - KEYWORD_INLINE_TABLE, NS_STYLE_DISPLAY_INLINE_TABLE, - KEYWORD_TABLE_ROW_GROUP, NS_STYLE_DISPLAY_TABLE_ROW_GROUP, - KEYWORD_TABLE_COLUMN, NS_STYLE_DISPLAY_TABLE_COLUMN, - KEYWORD_TABLE_COLUMN_GROUP, NS_STYLE_DISPLAY_TABLE_COLUMN_GROUP, - KEYWORD_TABLE_HEADER_GROUP, NS_STYLE_DISPLAY_TABLE_HEADER_GROUP, - KEYWORD_TABLE_FOOTER_GROUP, NS_STYLE_DISPLAY_TABLE_FOOTER_GROUP, - KEYWORD_TABLE_ROW, NS_STYLE_DISPLAY_TABLE_ROW, - KEYWORD_TABLE_CELL, NS_STYLE_DISPLAY_TABLE_CELL, - KEYWORD_TABLE_CAPTION, NS_STYLE_DISPLAY_TABLE_CAPTION, - -1,-1 -}; - -static PRInt32 kFloatKTable[] = { - KEYWORD_NONE, NS_STYLE_FLOAT_NONE, - KEYWORD_LEFT, NS_STYLE_FLOAT_LEFT, - KEYWORD_RIGHT, NS_STYLE_FLOAT_RIGHT, - -1,-1 -}; - -static PRInt32 kFontSizeKTable[] = { - KEYWORD_XX_SMALL, NS_STYLE_FONT_SIZE_XXSMALL, - KEYWORD_X_SMALL, NS_STYLE_FONT_SIZE_XSMALL, - KEYWORD_SMALL, NS_STYLE_FONT_SIZE_SMALL, - KEYWORD_MEDIUM, NS_STYLE_FONT_SIZE_MEDIUM, - KEYWORD_LARGE, NS_STYLE_FONT_SIZE_LARGE, - KEYWORD_X_LARGE, NS_STYLE_FONT_SIZE_XLARGE, - KEYWORD_XX_LARGE, NS_STYLE_FONT_SIZE_XXLARGE, - KEYWORD_LARGER, NS_STYLE_FONT_SIZE_LARGER, - KEYWORD_SMALLER, NS_STYLE_FONT_SIZE_SMALLER, - -1,-1 -}; - -static PRInt32 kFontStyleKTable[] = { - KEYWORD_NORMAL, NS_STYLE_FONT_STYLE_NORMAL, - KEYWORD_ITALIC, NS_STYLE_FONT_STYLE_ITALIC, - KEYWORD_OBLIQUE, NS_STYLE_FONT_STYLE_OBLIQUE, - -1,-1 -}; - -static PRInt32 kFontVariantKTable[] = { - KEYWORD_NORMAL, NS_STYLE_FONT_VARIANT_NORMAL, - KEYWORD_SMALL_CAPS, NS_STYLE_FONT_VARIANT_SMALL_CAPS, - -1,-1 -}; - -static PRInt32 kListStyleImageKTable[] = { - KEYWORD_NONE, NS_STYLE_LIST_STYLE_IMAGE_NONE, - -1,-1 -}; - -static PRInt32 kListStylePositionKTable[] = { - KEYWORD_INSIDE, NS_STYLE_LIST_STYLE_POSITION_INSIDE, - KEYWORD_OUTSIDE, NS_STYLE_LIST_STYLE_POSITION_OUTSIDE, - -1,-1 -}; - -static PRInt32 kListStyleKTable[] = { - KEYWORD_NONE, NS_STYLE_LIST_STYLE_NONE, - KEYWORD_DISC, NS_STYLE_LIST_STYLE_DISC, - KEYWORD_CIRCLE, NS_STYLE_LIST_STYLE_CIRCLE, - KEYWORD_SQUARE, NS_STYLE_LIST_STYLE_SQUARE, - KEYWORD_DECIMAL, NS_STYLE_LIST_STYLE_DECIMAL, - KEYWORD_LOWER_ROMAN, NS_STYLE_LIST_STYLE_LOWER_ROMAN, - KEYWORD_UPPER_ROMAN, NS_STYLE_LIST_STYLE_UPPER_ROMAN, - KEYWORD_LOWER_ALPHA, NS_STYLE_LIST_STYLE_LOWER_ALPHA, - KEYWORD_UPPER_ALPHA, NS_STYLE_LIST_STYLE_UPPER_ALPHA, - -1,-1 -}; - -static PRInt32 kMarginSizeKTable[] = { - KEYWORD_AUTO, NS_STYLE_MARGIN_SIZE_AUTO, - -1,-1 -}; - -static PRInt32 kOverflowKTable[] = { - KEYWORD_VISIBLE, NS_STYLE_OVERFLOW_VISIBLE, - KEYWORD_HIDDEN, NS_STYLE_OVERFLOW_HIDDEN, - KEYWORD_SCROLL, NS_STYLE_OVERFLOW_SCROLL, - KEYWORD_AUTO, NS_STYLE_OVERFLOW_AUTO, - -1,-1 -}; - -static PRInt32 kPositionKTable[] = { - KEYWORD_RELATIVE, NS_STYLE_POSITION_RELATIVE, - KEYWORD_ABSOLUTE, NS_STYLE_POSITION_ABSOLUTE, - KEYWORD_FIXED, NS_STYLE_POSITION_FIXED, - -1,-1 -}; - -static PRInt32 kTextAlignKTable[] = { - KEYWORD_LEFT, NS_STYLE_TEXT_ALIGN_LEFT, - KEYWORD_RIGHT, NS_STYLE_TEXT_ALIGN_RIGHT, - KEYWORD_CENTER, NS_STYLE_TEXT_ALIGN_CENTER, - KEYWORD_JUSTIFY, NS_STYLE_TEXT_ALIGN_JUSTIFY, - -1,-1 -}; - -static PRInt32 kTextTransformKTable[] = { - KEYWORD_NONE, NS_STYLE_TEXT_TRANSFORM_NONE, - KEYWORD_CAPITALIZE, NS_STYLE_TEXT_TRANSFORM_CAPITALIZE, - KEYWORD_LOWERCASE, NS_STYLE_TEXT_TRANSFORM_LOWERCASE, - KEYWORD_UPPERCASE, NS_STYLE_TEXT_TRANSFORM_UPPERCASE, - -1,-1 -}; - -static PRInt32 kVerticalAlignKTable[] = { - KEYWORD_BASELINE, NS_STYLE_VERTICAL_ALIGN_BASELINE, - KEYWORD_SUB, NS_STYLE_VERTICAL_ALIGN_SUB, - KEYWORD_SUPER, NS_STYLE_VERTICAL_ALIGN_SUPER, - KEYWORD_TOP, NS_STYLE_VERTICAL_ALIGN_TOP, - KEYWORD_TEXT_TOP, NS_STYLE_VERTICAL_ALIGN_TEXT_TOP, - KEYWORD_MIDDLE, NS_STYLE_VERTICAL_ALIGN_MIDDLE, - KEYWORD_BOTTOM, NS_STYLE_VERTICAL_ALIGN_BOTTOM, - KEYWORD_TEXT_BOTTOM, NS_STYLE_VERTICAL_ALIGN_TEXT_BOTTOM, - -1,-1 -}; - -static PRInt32 kVisibilityKTable[] = { - KEYWORD_VISIBLE, NS_STYLE_VISIBILITY_VISIBLE, - KEYWORD_HIDDEN, NS_STYLE_VISIBILITY_HIDDEN, - -1,-1 -}; - -static PRInt32 kWhitespaceKTable[] = { - KEYWORD_NORMAL, NS_STYLE_WHITESPACE_NORMAL, - KEYWORD_PRE, NS_STYLE_WHITESPACE_PRE, - KEYWORD_NOWRAP, NS_STYLE_WHITESPACE_NOWRAP, - -1,-1 -}; - -static const char* kBorderTopNames[] = { - "border-top-width", - "border-top-style", - "border-top-color", -}; -static const char* kBorderRightNames[] = { - "border-right-width", - "border-right-style", - "border-right-color", -}; -static const char* kBorderBottomNames[] = { - "border-bottom-width", - "border-bottom-style", - "border-bottom-color", -}; -static const char* kBorderLeftNames[] = { - "border-left-width", - "border-left-style", - "border-left-color", -}; - -static const char* SearchKeywordTable(PRInt32 aID, PRInt32 aTable[]) -{ - PRInt32 i = 1; - if (aID >= 0) - { - for (;;) { - if (aTable[i] < 0) { - break; - } - if (aID == aTable[i]) { - return nsCSSKeywords::kNameTable[aTable[i-1]].name; - } - i += 2; - } - } - return nsnull; -} - - - -const char* nsCSSProps::LookupProperty(PRInt32 aProp, PRInt32 aIndex) -{ - switch (aProp) { - - case PROP_BACKGROUND: - break; - - case PROP_BACKGROUND_ATTACHMENT: - return SearchKeywordTable(aIndex,kBackgroundAttachmentKTable); - - case PROP_BACKGROUND_COLOR: - return SearchKeywordTable(aIndex,kBackgroundColorKTable); - - case PROP_BACKGROUND_FILTER: - break; - - case PROP_BACKGROUND_IMAGE: - break; - - case PROP_BACKGROUND_POSITION: - break; - - case PROP_BACKGROUND_REPEAT: - return SearchKeywordTable(aIndex,kBackgroundRepeatKTable); - - case PROP_BORDER: - case PROP_BORDER_COLOR: - case PROP_BORDER_STYLE: - case PROP_BORDER_BOTTOM: - case PROP_BORDER_LEFT: - case PROP_BORDER_RIGHT: - case PROP_BORDER_TOP: - case PROP_BORDER_BOTTOM_COLOR: - case PROP_BORDER_LEFT_COLOR: - case PROP_BORDER_RIGHT_COLOR: - case PROP_BORDER_TOP_COLOR: - break; - - case PROP_BORDER_BOTTOM_STYLE: - case PROP_BORDER_LEFT_STYLE: - case PROP_BORDER_RIGHT_STYLE: - case PROP_BORDER_TOP_STYLE: - return SearchKeywordTable(aIndex,kBorderStyleKTable); - - case PROP_BORDER_BOTTOM_WIDTH: - case PROP_BORDER_LEFT_WIDTH: - case PROP_BORDER_RIGHT_WIDTH: - case PROP_BORDER_TOP_WIDTH: - return SearchKeywordTable(aIndex,kBorderWidthKTable); - - case PROP_BORDER_WIDTH: - case PROP_CLEAR: - return SearchKeywordTable(aIndex,kClearKTable); - - case PROP_CLIP: - case PROP_COLOR: - break; - - case PROP_CURSOR: - return SearchKeywordTable(aIndex,kCursorKTable); - - case PROP_DIRECTION: - return SearchKeywordTable(aIndex,kDirectionKTable); - - case PROP_DISPLAY: - return SearchKeywordTable(aIndex,kDisplayKTable); - - case PROP_FILTER: - break; - - case PROP_FLOAT: - return SearchKeywordTable(aIndex,kFloatKTable); - - case PROP_FONT: - case PROP_FONT_FAMILY: - break; - - case PROP_FONT_SIZE: - return SearchKeywordTable(aIndex,kFontSizeKTable); - - case PROP_FONT_STYLE: - return SearchKeywordTable(aIndex,kFontStyleKTable); - - case PROP_FONT_VARIANT: - return SearchKeywordTable(aIndex,kFontVariantKTable); - - - case PROP_FONT_WEIGHT: - case PROP_HEIGHT: - case PROP_LEFT: - case PROP_LINE_HEIGHT: - case PROP_LIST_STYLE: - break; - - case PROP_LIST_STYLE_IMAGE: - return SearchKeywordTable(aIndex, kListStyleImageKTable); - - case PROP_LIST_STYLE_POSITION: - return SearchKeywordTable(aIndex, kListStylePositionKTable); - - - case PROP_LIST_STYLE_TYPE: - return SearchKeywordTable(aIndex, kListStyleKTable); - - case PROP_MARGIN: - case PROP_MARGIN_BOTTOM: - case PROP_MARGIN_LEFT: - case PROP_MARGIN_RIGHT: - case PROP_MARGIN_TOP: - return SearchKeywordTable(aIndex, kMarginSizeKTable); - - case PROP_PADDING: - case PROP_PADDING_BOTTOM: - case PROP_PADDING_LEFT: - case PROP_PADDING_RIGHT: - case PROP_PADDING_TOP: - break; - - case PROP_OPACITY: - break; - - case PROP_OVERFLOW: - return SearchKeywordTable(aIndex, kOverflowKTable); - - case PROP_POSITION: - return SearchKeywordTable(aIndex, kPositionKTable); - - case PROP_TEXT_ALIGN: - return SearchKeywordTable(aIndex, kTextAlignKTable); - - case PROP_TEXT_DECORATION: - case PROP_TEXT_INDENT: - break; - - case PROP_TEXT_TRANSFORM: - return SearchKeywordTable(aIndex, kTextTransformKTable); - - case PROP_TOP: - break; - - case PROP_VERTICAL_ALIGN: - return SearchKeywordTable(aIndex, kVerticalAlignKTable); - - case PROP_VISIBILITY: - return SearchKeywordTable(aIndex, kVisibilityKTable); - - case PROP_WHITE_SPACE: - return SearchKeywordTable(aIndex, kWhitespaceKTable); - - case PROP_WIDTH: - case PROP_LETTER_SPACING: - case PROP_WORD_SPACING: - case PROP_Z_INDEX: - break; - } - return nsnull; -} diff --git a/mozilla/layout/html/style/src/nsCSSProps.cpp b/mozilla/layout/html/style/src/nsCSSProps.cpp index 6b2c8c2acfb..509329f5634 100644 --- a/mozilla/layout/html/style/src/nsCSSProps.cpp +++ b/mozilla/layout/html/style/src/nsCSSProps.cpp @@ -6,9 +6,6 @@ #include "plstr.h" #include "nsCSSProps.h" -#include "nsCSSKeywordIDs.h" -#include "nsStyleConsts.h" -#include "nsCSSKeywords.h" #define TOTAL_KEYWORDS 80 #define MIN_WORD_LENGTH 3 @@ -370,403 +367,3 @@ const nsCSSProps::NameTableEntry nsCSSProps::kNameTable[] = { - -// Keyword id tables for variant/enum parsing -static PRInt32 kBackgroundAttachmentKTable[] = { - KEYWORD_FIXED, NS_STYLE_BG_ATTACHMENT_FIXED, - KEYWORD_SCROLL, NS_STYLE_BG_ATTACHMENT_SCROLL, - -1,-1 -}; - -static PRInt32 kBackgroundColorKTable[] = { - KEYWORD_TRANSPARENT, NS_STYLE_BG_COLOR_TRANSPARENT, - -1,-1 -}; - -static PRInt32 kBackgroundRepeatKTable[] = { - KEYWORD_NO_REPEAT, NS_STYLE_BG_REPEAT_OFF, - KEYWORD_REPEAT, NS_STYLE_BG_REPEAT_XY, - KEYWORD_REPEAT_X, NS_STYLE_BG_REPEAT_X, - KEYWORD_REPEAT_Y, NS_STYLE_BG_REPEAT_Y, - -1,-1 -}; - -static PRInt32 kBorderStyleKTable[] = { - KEYWORD_NONE, NS_STYLE_BORDER_STYLE_NONE, - KEYWORD_DOTTED, NS_STYLE_BORDER_STYLE_DOTTED, - KEYWORD_DASHED, NS_STYLE_BORDER_STYLE_DASHED, - KEYWORD_SOLID, NS_STYLE_BORDER_STYLE_SOLID, - KEYWORD_DOUBLE, NS_STYLE_BORDER_STYLE_DOUBLE, - KEYWORD_GROOVE, NS_STYLE_BORDER_STYLE_GROOVE, - KEYWORD_RIDGE, NS_STYLE_BORDER_STYLE_RIDGE, - KEYWORD_INSET, NS_STYLE_BORDER_STYLE_INSET, - KEYWORD_OUTSET, NS_STYLE_BORDER_STYLE_OUTSET, - -1,-1 -}; - -static PRInt32 kBorderWidthKTable[] = { - KEYWORD_THIN, NS_STYLE_BORDER_WIDTH_THIN, - KEYWORD_MEDIUM, NS_STYLE_BORDER_WIDTH_MEDIUM, - KEYWORD_THICK, NS_STYLE_BORDER_WIDTH_THICK, - -1,-1 -}; - -static PRInt32 kClearKTable[] = { - KEYWORD_NONE, NS_STYLE_CLEAR_NONE, - KEYWORD_LEFT, NS_STYLE_CLEAR_LEFT, - KEYWORD_RIGHT, NS_STYLE_CLEAR_RIGHT, - KEYWORD_BOTH, NS_STYLE_CLEAR_LEFT_AND_RIGHT, - -1,-1 -}; - -static PRInt32 kCursorKTable[] = { - KEYWORD_IBEAM, NS_STYLE_CURSOR_IBEAM, - KEYWORD_ARROW, NS_STYLE_CURSOR_DEFAULT, - KEYWORD_HAND, NS_STYLE_CURSOR_HAND, - -1,-1 -}; - -static PRInt32 kDirectionKTable[] = { - KEYWORD_LTR, NS_STYLE_DIRECTION_LTR, - KEYWORD_RTL, NS_STYLE_DIRECTION_RTL, - KEYWORD_INHERIT, NS_STYLE_DIRECTION_INHERIT, - -1,-1 -}; - -static PRInt32 kDisplayKTable[] = { - KEYWORD_NONE, NS_STYLE_DISPLAY_NONE, - KEYWORD_BLOCK, NS_STYLE_DISPLAY_BLOCK, - KEYWORD_INLINE, NS_STYLE_DISPLAY_INLINE, - KEYWORD_LIST_ITEM, NS_STYLE_DISPLAY_LIST_ITEM, - KEYWORD_MARKER, NS_STYLE_DISPLAY_MARKER, - KEYWORD_RUN_IN, NS_STYLE_DISPLAY_RUN_IN, - KEYWORD_COMPACT, NS_STYLE_DISPLAY_COMPACT, - KEYWORD_TABLE, NS_STYLE_DISPLAY_TABLE, - KEYWORD_INLINE_TABLE, NS_STYLE_DISPLAY_INLINE_TABLE, - KEYWORD_TABLE_ROW_GROUP, NS_STYLE_DISPLAY_TABLE_ROW_GROUP, - KEYWORD_TABLE_COLUMN, NS_STYLE_DISPLAY_TABLE_COLUMN, - KEYWORD_TABLE_COLUMN_GROUP, NS_STYLE_DISPLAY_TABLE_COLUMN_GROUP, - KEYWORD_TABLE_HEADER_GROUP, NS_STYLE_DISPLAY_TABLE_HEADER_GROUP, - KEYWORD_TABLE_FOOTER_GROUP, NS_STYLE_DISPLAY_TABLE_FOOTER_GROUP, - KEYWORD_TABLE_ROW, NS_STYLE_DISPLAY_TABLE_ROW, - KEYWORD_TABLE_CELL, NS_STYLE_DISPLAY_TABLE_CELL, - KEYWORD_TABLE_CAPTION, NS_STYLE_DISPLAY_TABLE_CAPTION, - -1,-1 -}; - -static PRInt32 kFloatKTable[] = { - KEYWORD_NONE, NS_STYLE_FLOAT_NONE, - KEYWORD_LEFT, NS_STYLE_FLOAT_LEFT, - KEYWORD_RIGHT, NS_STYLE_FLOAT_RIGHT, - -1,-1 -}; - -static PRInt32 kFontSizeKTable[] = { - KEYWORD_XX_SMALL, NS_STYLE_FONT_SIZE_XXSMALL, - KEYWORD_X_SMALL, NS_STYLE_FONT_SIZE_XSMALL, - KEYWORD_SMALL, NS_STYLE_FONT_SIZE_SMALL, - KEYWORD_MEDIUM, NS_STYLE_FONT_SIZE_MEDIUM, - KEYWORD_LARGE, NS_STYLE_FONT_SIZE_LARGE, - KEYWORD_X_LARGE, NS_STYLE_FONT_SIZE_XLARGE, - KEYWORD_XX_LARGE, NS_STYLE_FONT_SIZE_XXLARGE, - KEYWORD_LARGER, NS_STYLE_FONT_SIZE_LARGER, - KEYWORD_SMALLER, NS_STYLE_FONT_SIZE_SMALLER, - -1,-1 -}; - -static PRInt32 kFontStyleKTable[] = { - KEYWORD_NORMAL, NS_STYLE_FONT_STYLE_NORMAL, - KEYWORD_ITALIC, NS_STYLE_FONT_STYLE_ITALIC, - KEYWORD_OBLIQUE, NS_STYLE_FONT_STYLE_OBLIQUE, - -1,-1 -}; - -static PRInt32 kFontVariantKTable[] = { - KEYWORD_NORMAL, NS_STYLE_FONT_VARIANT_NORMAL, - KEYWORD_SMALL_CAPS, NS_STYLE_FONT_VARIANT_SMALL_CAPS, - -1,-1 -}; - -static PRInt32 kListStyleImageKTable[] = { - KEYWORD_NONE, NS_STYLE_LIST_STYLE_IMAGE_NONE, - -1,-1 -}; - -static PRInt32 kListStylePositionKTable[] = { - KEYWORD_INSIDE, NS_STYLE_LIST_STYLE_POSITION_INSIDE, - KEYWORD_OUTSIDE, NS_STYLE_LIST_STYLE_POSITION_OUTSIDE, - -1,-1 -}; - -static PRInt32 kListStyleKTable[] = { - KEYWORD_NONE, NS_STYLE_LIST_STYLE_NONE, - KEYWORD_DISC, NS_STYLE_LIST_STYLE_DISC, - KEYWORD_CIRCLE, NS_STYLE_LIST_STYLE_CIRCLE, - KEYWORD_SQUARE, NS_STYLE_LIST_STYLE_SQUARE, - KEYWORD_DECIMAL, NS_STYLE_LIST_STYLE_DECIMAL, - KEYWORD_LOWER_ROMAN, NS_STYLE_LIST_STYLE_LOWER_ROMAN, - KEYWORD_UPPER_ROMAN, NS_STYLE_LIST_STYLE_UPPER_ROMAN, - KEYWORD_LOWER_ALPHA, NS_STYLE_LIST_STYLE_LOWER_ALPHA, - KEYWORD_UPPER_ALPHA, NS_STYLE_LIST_STYLE_UPPER_ALPHA, - -1,-1 -}; - -static PRInt32 kMarginSizeKTable[] = { - KEYWORD_AUTO, NS_STYLE_MARGIN_SIZE_AUTO, - -1,-1 -}; - -static PRInt32 kOverflowKTable[] = { - KEYWORD_VISIBLE, NS_STYLE_OVERFLOW_VISIBLE, - KEYWORD_HIDDEN, NS_STYLE_OVERFLOW_HIDDEN, - KEYWORD_SCROLL, NS_STYLE_OVERFLOW_SCROLL, - KEYWORD_AUTO, NS_STYLE_OVERFLOW_AUTO, - -1,-1 -}; - -static PRInt32 kPositionKTable[] = { - KEYWORD_RELATIVE, NS_STYLE_POSITION_RELATIVE, - KEYWORD_ABSOLUTE, NS_STYLE_POSITION_ABSOLUTE, - KEYWORD_FIXED, NS_STYLE_POSITION_FIXED, - -1,-1 -}; - -static PRInt32 kTextAlignKTable[] = { - KEYWORD_LEFT, NS_STYLE_TEXT_ALIGN_LEFT, - KEYWORD_RIGHT, NS_STYLE_TEXT_ALIGN_RIGHT, - KEYWORD_CENTER, NS_STYLE_TEXT_ALIGN_CENTER, - KEYWORD_JUSTIFY, NS_STYLE_TEXT_ALIGN_JUSTIFY, - -1,-1 -}; - -static PRInt32 kTextTransformKTable[] = { - KEYWORD_NONE, NS_STYLE_TEXT_TRANSFORM_NONE, - KEYWORD_CAPITALIZE, NS_STYLE_TEXT_TRANSFORM_CAPITALIZE, - KEYWORD_LOWERCASE, NS_STYLE_TEXT_TRANSFORM_LOWERCASE, - KEYWORD_UPPERCASE, NS_STYLE_TEXT_TRANSFORM_UPPERCASE, - -1,-1 -}; - -static PRInt32 kVerticalAlignKTable[] = { - KEYWORD_BASELINE, NS_STYLE_VERTICAL_ALIGN_BASELINE, - KEYWORD_SUB, NS_STYLE_VERTICAL_ALIGN_SUB, - KEYWORD_SUPER, NS_STYLE_VERTICAL_ALIGN_SUPER, - KEYWORD_TOP, NS_STYLE_VERTICAL_ALIGN_TOP, - KEYWORD_TEXT_TOP, NS_STYLE_VERTICAL_ALIGN_TEXT_TOP, - KEYWORD_MIDDLE, NS_STYLE_VERTICAL_ALIGN_MIDDLE, - KEYWORD_BOTTOM, NS_STYLE_VERTICAL_ALIGN_BOTTOM, - KEYWORD_TEXT_BOTTOM, NS_STYLE_VERTICAL_ALIGN_TEXT_BOTTOM, - -1,-1 -}; - -static PRInt32 kVisibilityKTable[] = { - KEYWORD_VISIBLE, NS_STYLE_VISIBILITY_VISIBLE, - KEYWORD_HIDDEN, NS_STYLE_VISIBILITY_HIDDEN, - -1,-1 -}; - -static PRInt32 kWhitespaceKTable[] = { - KEYWORD_NORMAL, NS_STYLE_WHITESPACE_NORMAL, - KEYWORD_PRE, NS_STYLE_WHITESPACE_PRE, - KEYWORD_NOWRAP, NS_STYLE_WHITESPACE_NOWRAP, - -1,-1 -}; - -static const char* kBorderTopNames[] = { - "border-top-width", - "border-top-style", - "border-top-color", -}; -static const char* kBorderRightNames[] = { - "border-right-width", - "border-right-style", - "border-right-color", -}; -static const char* kBorderBottomNames[] = { - "border-bottom-width", - "border-bottom-style", - "border-bottom-color", -}; -static const char* kBorderLeftNames[] = { - "border-left-width", - "border-left-style", - "border-left-color", -}; - -static const char* SearchKeywordTable(PRInt32 aID, PRInt32 aTable[]) -{ - PRInt32 i = 1; - if (aID >= 0) - { - for (;;) { - if (aTable[i] < 0) { - break; - } - if (aID == aTable[i]) { - return nsCSSKeywords::kNameTable[aTable[i-1]].name; - } - i += 2; - } - } - return nsnull; -} - - - -const char* nsCSSProps::LookupProperty(PRInt32 aProp, PRInt32 aIndex) -{ - switch (aProp) { - - case PROP_BACKGROUND: - break; - - case PROP_BACKGROUND_ATTACHMENT: - return SearchKeywordTable(aIndex,kBackgroundAttachmentKTable); - - case PROP_BACKGROUND_COLOR: - return SearchKeywordTable(aIndex,kBackgroundColorKTable); - - case PROP_BACKGROUND_FILTER: - break; - - case PROP_BACKGROUND_IMAGE: - break; - - case PROP_BACKGROUND_POSITION: - break; - - case PROP_BACKGROUND_REPEAT: - return SearchKeywordTable(aIndex,kBackgroundRepeatKTable); - - case PROP_BORDER: - case PROP_BORDER_COLOR: - case PROP_BORDER_STYLE: - case PROP_BORDER_BOTTOM: - case PROP_BORDER_LEFT: - case PROP_BORDER_RIGHT: - case PROP_BORDER_TOP: - case PROP_BORDER_BOTTOM_COLOR: - case PROP_BORDER_LEFT_COLOR: - case PROP_BORDER_RIGHT_COLOR: - case PROP_BORDER_TOP_COLOR: - break; - - case PROP_BORDER_BOTTOM_STYLE: - case PROP_BORDER_LEFT_STYLE: - case PROP_BORDER_RIGHT_STYLE: - case PROP_BORDER_TOP_STYLE: - return SearchKeywordTable(aIndex,kBorderStyleKTable); - - case PROP_BORDER_BOTTOM_WIDTH: - case PROP_BORDER_LEFT_WIDTH: - case PROP_BORDER_RIGHT_WIDTH: - case PROP_BORDER_TOP_WIDTH: - return SearchKeywordTable(aIndex,kBorderWidthKTable); - - case PROP_BORDER_WIDTH: - case PROP_CLEAR: - return SearchKeywordTable(aIndex,kClearKTable); - - case PROP_CLIP: - case PROP_COLOR: - break; - - case PROP_CURSOR: - return SearchKeywordTable(aIndex,kCursorKTable); - - case PROP_DIRECTION: - return SearchKeywordTable(aIndex,kDirectionKTable); - - case PROP_DISPLAY: - return SearchKeywordTable(aIndex,kDisplayKTable); - - case PROP_FILTER: - break; - - case PROP_FLOAT: - return SearchKeywordTable(aIndex,kFloatKTable); - - case PROP_FONT: - case PROP_FONT_FAMILY: - break; - - case PROP_FONT_SIZE: - return SearchKeywordTable(aIndex,kFontSizeKTable); - - case PROP_FONT_STYLE: - return SearchKeywordTable(aIndex,kFontStyleKTable); - - case PROP_FONT_VARIANT: - return SearchKeywordTable(aIndex,kFontVariantKTable); - - - case PROP_FONT_WEIGHT: - case PROP_HEIGHT: - case PROP_LEFT: - case PROP_LINE_HEIGHT: - case PROP_LIST_STYLE: - break; - - case PROP_LIST_STYLE_IMAGE: - return SearchKeywordTable(aIndex, kListStyleImageKTable); - - case PROP_LIST_STYLE_POSITION: - return SearchKeywordTable(aIndex, kListStylePositionKTable); - - - case PROP_LIST_STYLE_TYPE: - return SearchKeywordTable(aIndex, kListStyleKTable); - - case PROP_MARGIN: - case PROP_MARGIN_BOTTOM: - case PROP_MARGIN_LEFT: - case PROP_MARGIN_RIGHT: - case PROP_MARGIN_TOP: - return SearchKeywordTable(aIndex, kMarginSizeKTable); - - case PROP_PADDING: - case PROP_PADDING_BOTTOM: - case PROP_PADDING_LEFT: - case PROP_PADDING_RIGHT: - case PROP_PADDING_TOP: - break; - - case PROP_OPACITY: - break; - - case PROP_OVERFLOW: - return SearchKeywordTable(aIndex, kOverflowKTable); - - case PROP_POSITION: - return SearchKeywordTable(aIndex, kPositionKTable); - - case PROP_TEXT_ALIGN: - return SearchKeywordTable(aIndex, kTextAlignKTable); - - case PROP_TEXT_DECORATION: - case PROP_TEXT_INDENT: - break; - - case PROP_TEXT_TRANSFORM: - return SearchKeywordTable(aIndex, kTextTransformKTable); - - case PROP_TOP: - break; - - case PROP_VERTICAL_ALIGN: - return SearchKeywordTable(aIndex, kVerticalAlignKTable); - - case PROP_VISIBILITY: - return SearchKeywordTable(aIndex, kVisibilityKTable); - - case PROP_WHITE_SPACE: - return SearchKeywordTable(aIndex, kWhitespaceKTable); - - case PROP_WIDTH: - case PROP_LETTER_SPACING: - case PROP_WORD_SPACING: - case PROP_Z_INDEX: - break; - } - return nsnull; -} diff --git a/mozilla/layout/html/style/src/nsCSSProps.h b/mozilla/layout/html/style/src/nsCSSProps.h index 9fddff3b07c..402462b3d73 100644 --- a/mozilla/layout/html/style/src/nsCSSProps.h +++ b/mozilla/layout/html/style/src/nsCSSProps.h @@ -41,6 +41,8 @@ public: // A table whose index is the tag id (from nsCSSPropIDs) static const NameTableEntry kNameTable[]; + + static const PRInt32 kHintTable[]; }; #endif /* nsCSSProps_h___ */ diff --git a/mozilla/layout/html/style/src/nsCSSProps2.cpp b/mozilla/layout/html/style/src/nsCSSProps2.cpp new file mode 100644 index 00000000000..64e571a63ae --- /dev/null +++ b/mozilla/layout/html/style/src/nsCSSProps2.cpp @@ -0,0 +1,495 @@ + +/** + * This is the non-generated part of nsCSSProps + */ + +#include "nsCSSProps.h" +#include "nsCSSKeywordIDs.h" +#include "nsStyleConsts.h" +#include "nsCSSKeywords.h" + + +// Keyword id tables for variant/enum parsing +static PRInt32 kBackgroundAttachmentKTable[] = { + KEYWORD_FIXED, NS_STYLE_BG_ATTACHMENT_FIXED, + KEYWORD_SCROLL, NS_STYLE_BG_ATTACHMENT_SCROLL, + -1,-1 +}; + +static PRInt32 kBackgroundColorKTable[] = { + KEYWORD_TRANSPARENT, NS_STYLE_BG_COLOR_TRANSPARENT, + -1,-1 +}; + +static PRInt32 kBackgroundRepeatKTable[] = { + KEYWORD_NO_REPEAT, NS_STYLE_BG_REPEAT_OFF, + KEYWORD_REPEAT, NS_STYLE_BG_REPEAT_XY, + KEYWORD_REPEAT_X, NS_STYLE_BG_REPEAT_X, + KEYWORD_REPEAT_Y, NS_STYLE_BG_REPEAT_Y, + -1,-1 +}; + +static PRInt32 kBorderStyleKTable[] = { + KEYWORD_NONE, NS_STYLE_BORDER_STYLE_NONE, + KEYWORD_DOTTED, NS_STYLE_BORDER_STYLE_DOTTED, + KEYWORD_DASHED, NS_STYLE_BORDER_STYLE_DASHED, + KEYWORD_SOLID, NS_STYLE_BORDER_STYLE_SOLID, + KEYWORD_DOUBLE, NS_STYLE_BORDER_STYLE_DOUBLE, + KEYWORD_GROOVE, NS_STYLE_BORDER_STYLE_GROOVE, + KEYWORD_RIDGE, NS_STYLE_BORDER_STYLE_RIDGE, + KEYWORD_INSET, NS_STYLE_BORDER_STYLE_INSET, + KEYWORD_OUTSET, NS_STYLE_BORDER_STYLE_OUTSET, + -1,-1 +}; + +static PRInt32 kBorderWidthKTable[] = { + KEYWORD_THIN, NS_STYLE_BORDER_WIDTH_THIN, + KEYWORD_MEDIUM, NS_STYLE_BORDER_WIDTH_MEDIUM, + KEYWORD_THICK, NS_STYLE_BORDER_WIDTH_THICK, + -1,-1 +}; + +static PRInt32 kClearKTable[] = { + KEYWORD_NONE, NS_STYLE_CLEAR_NONE, + KEYWORD_LEFT, NS_STYLE_CLEAR_LEFT, + KEYWORD_RIGHT, NS_STYLE_CLEAR_RIGHT, + KEYWORD_BOTH, NS_STYLE_CLEAR_LEFT_AND_RIGHT, + -1,-1 +}; + +static PRInt32 kCursorKTable[] = { + KEYWORD_IBEAM, NS_STYLE_CURSOR_IBEAM, + KEYWORD_ARROW, NS_STYLE_CURSOR_DEFAULT, + KEYWORD_HAND, NS_STYLE_CURSOR_HAND, + -1,-1 +}; + +static PRInt32 kDirectionKTable[] = { + KEYWORD_LTR, NS_STYLE_DIRECTION_LTR, + KEYWORD_RTL, NS_STYLE_DIRECTION_RTL, + KEYWORD_INHERIT, NS_STYLE_DIRECTION_INHERIT, + -1,-1 +}; + +static PRInt32 kDisplayKTable[] = { + KEYWORD_NONE, NS_STYLE_DISPLAY_NONE, + KEYWORD_BLOCK, NS_STYLE_DISPLAY_BLOCK, + KEYWORD_INLINE, NS_STYLE_DISPLAY_INLINE, + KEYWORD_LIST_ITEM, NS_STYLE_DISPLAY_LIST_ITEM, + KEYWORD_MARKER, NS_STYLE_DISPLAY_MARKER, + KEYWORD_RUN_IN, NS_STYLE_DISPLAY_RUN_IN, + KEYWORD_COMPACT, NS_STYLE_DISPLAY_COMPACT, + KEYWORD_TABLE, NS_STYLE_DISPLAY_TABLE, + KEYWORD_INLINE_TABLE, NS_STYLE_DISPLAY_INLINE_TABLE, + KEYWORD_TABLE_ROW_GROUP, NS_STYLE_DISPLAY_TABLE_ROW_GROUP, + KEYWORD_TABLE_COLUMN, NS_STYLE_DISPLAY_TABLE_COLUMN, + KEYWORD_TABLE_COLUMN_GROUP, NS_STYLE_DISPLAY_TABLE_COLUMN_GROUP, + KEYWORD_TABLE_HEADER_GROUP, NS_STYLE_DISPLAY_TABLE_HEADER_GROUP, + KEYWORD_TABLE_FOOTER_GROUP, NS_STYLE_DISPLAY_TABLE_FOOTER_GROUP, + KEYWORD_TABLE_ROW, NS_STYLE_DISPLAY_TABLE_ROW, + KEYWORD_TABLE_CELL, NS_STYLE_DISPLAY_TABLE_CELL, + KEYWORD_TABLE_CAPTION, NS_STYLE_DISPLAY_TABLE_CAPTION, + -1,-1 +}; + +static PRInt32 kFloatKTable[] = { + KEYWORD_NONE, NS_STYLE_FLOAT_NONE, + KEYWORD_LEFT, NS_STYLE_FLOAT_LEFT, + KEYWORD_RIGHT, NS_STYLE_FLOAT_RIGHT, + -1,-1 +}; + +static PRInt32 kFontSizeKTable[] = { + KEYWORD_XX_SMALL, NS_STYLE_FONT_SIZE_XXSMALL, + KEYWORD_X_SMALL, NS_STYLE_FONT_SIZE_XSMALL, + KEYWORD_SMALL, NS_STYLE_FONT_SIZE_SMALL, + KEYWORD_MEDIUM, NS_STYLE_FONT_SIZE_MEDIUM, + KEYWORD_LARGE, NS_STYLE_FONT_SIZE_LARGE, + KEYWORD_X_LARGE, NS_STYLE_FONT_SIZE_XLARGE, + KEYWORD_XX_LARGE, NS_STYLE_FONT_SIZE_XXLARGE, + KEYWORD_LARGER, NS_STYLE_FONT_SIZE_LARGER, + KEYWORD_SMALLER, NS_STYLE_FONT_SIZE_SMALLER, + -1,-1 +}; + +static PRInt32 kFontStyleKTable[] = { + KEYWORD_NORMAL, NS_STYLE_FONT_STYLE_NORMAL, + KEYWORD_ITALIC, NS_STYLE_FONT_STYLE_ITALIC, + KEYWORD_OBLIQUE, NS_STYLE_FONT_STYLE_OBLIQUE, + -1,-1 +}; + +static PRInt32 kFontVariantKTable[] = { + KEYWORD_NORMAL, NS_STYLE_FONT_VARIANT_NORMAL, + KEYWORD_SMALL_CAPS, NS_STYLE_FONT_VARIANT_SMALL_CAPS, + -1,-1 +}; + +static PRInt32 kListStyleImageKTable[] = { + KEYWORD_NONE, NS_STYLE_LIST_STYLE_IMAGE_NONE, + -1,-1 +}; + +static PRInt32 kListStylePositionKTable[] = { + KEYWORD_INSIDE, NS_STYLE_LIST_STYLE_POSITION_INSIDE, + KEYWORD_OUTSIDE, NS_STYLE_LIST_STYLE_POSITION_OUTSIDE, + -1,-1 +}; + +static PRInt32 kListStyleKTable[] = { + KEYWORD_NONE, NS_STYLE_LIST_STYLE_NONE, + KEYWORD_DISC, NS_STYLE_LIST_STYLE_DISC, + KEYWORD_CIRCLE, NS_STYLE_LIST_STYLE_CIRCLE, + KEYWORD_SQUARE, NS_STYLE_LIST_STYLE_SQUARE, + KEYWORD_DECIMAL, NS_STYLE_LIST_STYLE_DECIMAL, + KEYWORD_LOWER_ROMAN, NS_STYLE_LIST_STYLE_LOWER_ROMAN, + KEYWORD_UPPER_ROMAN, NS_STYLE_LIST_STYLE_UPPER_ROMAN, + KEYWORD_LOWER_ALPHA, NS_STYLE_LIST_STYLE_LOWER_ALPHA, + KEYWORD_UPPER_ALPHA, NS_STYLE_LIST_STYLE_UPPER_ALPHA, + -1,-1 +}; + +static PRInt32 kMarginSizeKTable[] = { + KEYWORD_AUTO, NS_STYLE_MARGIN_SIZE_AUTO, + -1,-1 +}; + +static PRInt32 kOverflowKTable[] = { + KEYWORD_VISIBLE, NS_STYLE_OVERFLOW_VISIBLE, + KEYWORD_HIDDEN, NS_STYLE_OVERFLOW_HIDDEN, + KEYWORD_SCROLL, NS_STYLE_OVERFLOW_SCROLL, + KEYWORD_AUTO, NS_STYLE_OVERFLOW_AUTO, + -1,-1 +}; + +static PRInt32 kPositionKTable[] = { + KEYWORD_RELATIVE, NS_STYLE_POSITION_RELATIVE, + KEYWORD_ABSOLUTE, NS_STYLE_POSITION_ABSOLUTE, + KEYWORD_FIXED, NS_STYLE_POSITION_FIXED, + -1,-1 +}; + +static PRInt32 kTextAlignKTable[] = { + KEYWORD_LEFT, NS_STYLE_TEXT_ALIGN_LEFT, + KEYWORD_RIGHT, NS_STYLE_TEXT_ALIGN_RIGHT, + KEYWORD_CENTER, NS_STYLE_TEXT_ALIGN_CENTER, + KEYWORD_JUSTIFY, NS_STYLE_TEXT_ALIGN_JUSTIFY, + -1,-1 +}; + +static PRInt32 kTextTransformKTable[] = { + KEYWORD_NONE, NS_STYLE_TEXT_TRANSFORM_NONE, + KEYWORD_CAPITALIZE, NS_STYLE_TEXT_TRANSFORM_CAPITALIZE, + KEYWORD_LOWERCASE, NS_STYLE_TEXT_TRANSFORM_LOWERCASE, + KEYWORD_UPPERCASE, NS_STYLE_TEXT_TRANSFORM_UPPERCASE, + -1,-1 +}; + +static PRInt32 kVerticalAlignKTable[] = { + KEYWORD_BASELINE, NS_STYLE_VERTICAL_ALIGN_BASELINE, + KEYWORD_SUB, NS_STYLE_VERTICAL_ALIGN_SUB, + KEYWORD_SUPER, NS_STYLE_VERTICAL_ALIGN_SUPER, + KEYWORD_TOP, NS_STYLE_VERTICAL_ALIGN_TOP, + KEYWORD_TEXT_TOP, NS_STYLE_VERTICAL_ALIGN_TEXT_TOP, + KEYWORD_MIDDLE, NS_STYLE_VERTICAL_ALIGN_MIDDLE, + KEYWORD_BOTTOM, NS_STYLE_VERTICAL_ALIGN_BOTTOM, + KEYWORD_TEXT_BOTTOM, NS_STYLE_VERTICAL_ALIGN_TEXT_BOTTOM, + -1,-1 +}; + +static PRInt32 kVisibilityKTable[] = { + KEYWORD_VISIBLE, NS_STYLE_VISIBILITY_VISIBLE, + KEYWORD_HIDDEN, NS_STYLE_VISIBILITY_HIDDEN, + -1,-1 +}; + +static PRInt32 kWhitespaceKTable[] = { + KEYWORD_NORMAL, NS_STYLE_WHITESPACE_NORMAL, + KEYWORD_PRE, NS_STYLE_WHITESPACE_PRE, + KEYWORD_NOWRAP, NS_STYLE_WHITESPACE_NOWRAP, + -1,-1 +}; + +static const char* kBorderTopNames[] = { + "border-top-width", + "border-top-style", + "border-top-color", +}; +static const char* kBorderRightNames[] = { + "border-right-width", + "border-right-style", + "border-right-color", +}; +static const char* kBorderBottomNames[] = { + "border-bottom-width", + "border-bottom-style", + "border-bottom-color", +}; +static const char* kBorderLeftNames[] = { + "border-left-width", + "border-left-style", + "border-left-color", +}; + +static const char* SearchKeywordTable(PRInt32 aID, PRInt32 aTable[]) +{ + PRInt32 i = 1; + if (aID >= 0) + { + for (;;) { + if (aTable[i] < 0) { + break; + } + if (aID == aTable[i]) { + return nsCSSKeywords::kNameTable[aTable[i-1]].name; + } + i += 2; + } + } + return nsnull; +} + + + +const char* nsCSSProps::LookupProperty(PRInt32 aProp, PRInt32 aIndex) +{ + switch (aProp) { + + case PROP_BACKGROUND: + break; + + case PROP_BACKGROUND_ATTACHMENT: + return SearchKeywordTable(aIndex,kBackgroundAttachmentKTable); + + case PROP_BACKGROUND_COLOR: + return SearchKeywordTable(aIndex,kBackgroundColorKTable); + + case PROP_BACKGROUND_FILTER: + break; + + case PROP_BACKGROUND_IMAGE: + break; + + case PROP_BACKGROUND_POSITION: + break; + + case PROP_BACKGROUND_REPEAT: + return SearchKeywordTable(aIndex,kBackgroundRepeatKTable); + + case PROP_BORDER: + case PROP_BORDER_COLOR: + case PROP_BORDER_STYLE: + case PROP_BORDER_BOTTOM: + case PROP_BORDER_LEFT: + case PROP_BORDER_RIGHT: + case PROP_BORDER_TOP: + case PROP_BORDER_BOTTOM_COLOR: + case PROP_BORDER_LEFT_COLOR: + case PROP_BORDER_RIGHT_COLOR: + case PROP_BORDER_TOP_COLOR: + break; + + case PROP_BORDER_BOTTOM_STYLE: + case PROP_BORDER_LEFT_STYLE: + case PROP_BORDER_RIGHT_STYLE: + case PROP_BORDER_TOP_STYLE: + return SearchKeywordTable(aIndex,kBorderStyleKTable); + + case PROP_BORDER_BOTTOM_WIDTH: + case PROP_BORDER_LEFT_WIDTH: + case PROP_BORDER_RIGHT_WIDTH: + case PROP_BORDER_TOP_WIDTH: + return SearchKeywordTable(aIndex,kBorderWidthKTable); + + case PROP_BORDER_WIDTH: + case PROP_CLEAR: + return SearchKeywordTable(aIndex,kClearKTable); + + case PROP_CLIP: + case PROP_COLOR: + break; + + case PROP_CURSOR: + return SearchKeywordTable(aIndex,kCursorKTable); + + case PROP_DIRECTION: + return SearchKeywordTable(aIndex,kDirectionKTable); + + case PROP_DISPLAY: + return SearchKeywordTable(aIndex,kDisplayKTable); + + case PROP_FILTER: + break; + + case PROP_FLOAT: + return SearchKeywordTable(aIndex,kFloatKTable); + + case PROP_FONT: + case PROP_FONT_FAMILY: + break; + + case PROP_FONT_SIZE: + return SearchKeywordTable(aIndex,kFontSizeKTable); + + case PROP_FONT_STYLE: + return SearchKeywordTable(aIndex,kFontStyleKTable); + + case PROP_FONT_VARIANT: + return SearchKeywordTable(aIndex,kFontVariantKTable); + + + case PROP_FONT_WEIGHT: + case PROP_HEIGHT: + case PROP_LEFT: + case PROP_LINE_HEIGHT: + case PROP_LIST_STYLE: + break; + + case PROP_LIST_STYLE_IMAGE: + return SearchKeywordTable(aIndex, kListStyleImageKTable); + + case PROP_LIST_STYLE_POSITION: + return SearchKeywordTable(aIndex, kListStylePositionKTable); + + + case PROP_LIST_STYLE_TYPE: + return SearchKeywordTable(aIndex, kListStyleKTable); + + case PROP_MARGIN: + case PROP_MARGIN_BOTTOM: + case PROP_MARGIN_LEFT: + case PROP_MARGIN_RIGHT: + case PROP_MARGIN_TOP: + return SearchKeywordTable(aIndex, kMarginSizeKTable); + + case PROP_PADDING: + case PROP_PADDING_BOTTOM: + case PROP_PADDING_LEFT: + case PROP_PADDING_RIGHT: + case PROP_PADDING_TOP: + break; + + case PROP_OPACITY: + break; + + case PROP_OVERFLOW: + return SearchKeywordTable(aIndex, kOverflowKTable); + + case PROP_POSITION: + return SearchKeywordTable(aIndex, kPositionKTable); + + case PROP_TEXT_ALIGN: + return SearchKeywordTable(aIndex, kTextAlignKTable); + + case PROP_TEXT_DECORATION: + case PROP_TEXT_INDENT: + break; + + case PROP_TEXT_TRANSFORM: + return SearchKeywordTable(aIndex, kTextTransformKTable); + + case PROP_TOP: + break; + + case PROP_VERTICAL_ALIGN: + return SearchKeywordTable(aIndex, kVerticalAlignKTable); + + case PROP_VISIBILITY: + return SearchKeywordTable(aIndex, kVisibilityKTable); + + case PROP_WHITE_SPACE: + return SearchKeywordTable(aIndex, kWhitespaceKTable); + + case PROP_WIDTH: + case PROP_LETTER_SPACING: + case PROP_WORD_SPACING: + case PROP_Z_INDEX: + break; + } + return nsnull; +} + + +const PRInt32 nsCSSProps::kHintTable[] = { + NS_STYLE_HINT_VISUAL, // PROP_BACKGROUND + NS_STYLE_HINT_VISUAL, // PROP_BACKGROUND_ATTACHMENT + NS_STYLE_HINT_VISUAL, // PROP_BACKGROUND_COLOR + NS_STYLE_HINT_VISUAL, // PROP_BACKGROUND_FILTER + NS_STYLE_HINT_VISUAL, // PROP_BACKGROUND_IMAGE + NS_STYLE_HINT_VISUAL, // PROP_BACKGROUND_POSITION + NS_STYLE_HINT_VISUAL, // PROP_BACKGROUND_X_POSITION + NS_STYLE_HINT_VISUAL, // PROP_BACKGROUND_Y_POSITION + NS_STYLE_HINT_VISUAL, // PROP_BACKGROUND_REPEAT + NS_STYLE_HINT_REFLOW, // PROP_BORDER + NS_STYLE_HINT_REFLOW, // PROP_BORDER_BOTTOM + NS_STYLE_HINT_VISUAL, // PROP_BORDER_BOTTOM_COLOR + NS_STYLE_HINT_VISUAL, // PROP_BORDER_BOTTOM_STYLE + NS_STYLE_HINT_REFLOW, // PROP_BORDER_BOTTOM_WIDTH + NS_STYLE_HINT_VISUAL, // PROP_BORDER_COLOR + NS_STYLE_HINT_REFLOW, // PROP_BORDER_LEFT + NS_STYLE_HINT_VISUAL, // PROP_BORDER_LEFT_COLOR + NS_STYLE_HINT_VISUAL, // PROP_BORDER_LEFT_STYLE + NS_STYLE_HINT_REFLOW, // PROP_BORDER_LEFT_WIDTH + NS_STYLE_HINT_REFLOW, // PROP_BORDER_RIGHT + NS_STYLE_HINT_VISUAL, // PROP_BORDER_RIGHT_COLOR + NS_STYLE_HINT_VISUAL, // PROP_BORDER_RIGHT_STYLE + NS_STYLE_HINT_REFLOW, // PROP_BORDER_RIGHT_WIDTH + NS_STYLE_HINT_VISUAL, // PROP_BORDER_STYLE + NS_STYLE_HINT_REFLOW, // PROP_BORDER_TOP + NS_STYLE_HINT_VISUAL, // PROP_BORDER_TOP_COLOR + NS_STYLE_HINT_VISUAL, // PROP_BORDER_TOP_STYLE + NS_STYLE_HINT_REFLOW, // PROP_BORDER_TOP_WIDTH + NS_STYLE_HINT_REFLOW, // PROP_BORDER_WIDTH + NS_STYLE_HINT_REFLOW, // PROP_CLEAR + NS_STYLE_HINT_VISUAL, // PROP_CLIP + NS_STYLE_HINT_VISUAL, // PROP_CLIP_BOTTOM + NS_STYLE_HINT_VISUAL, // PROP_CLIP_LEFT + NS_STYLE_HINT_VISUAL, // PROP_CLIP_RIGHT + NS_STYLE_HINT_VISUAL, // PROP_CLIP_TOP + NS_STYLE_HINT_VISUAL, // PROP_COLOR + NS_STYLE_HINT_VISUAL, // PROP_CURSOR + NS_STYLE_HINT_VISUAL, // PROP_CURSOR_IMAGE + NS_STYLE_HINT_REFLOW, // PROP_DIRECTION + NS_STYLE_HINT_FRAMECHANGE, // PROP_DISPLAY + NS_STYLE_HINT_VISUAL, // PROP_FILTER + NS_STYLE_HINT_FRAMECHANGE, // PROP_FLOAT + NS_STYLE_HINT_REFLOW, // PROP_FONT + NS_STYLE_HINT_REFLOW, // PROP_FONT_FAMILY + NS_STYLE_HINT_REFLOW, // PROP_FONT_SIZE + NS_STYLE_HINT_REFLOW, // PROP_FONT_STYLE + NS_STYLE_HINT_REFLOW, // PROP_FONT_VARIANT + NS_STYLE_HINT_REFLOW, // PROP_FONT_WEIGHT + NS_STYLE_HINT_REFLOW, // PROP_HEIGHT + NS_STYLE_HINT_REFLOW, // PROP_LEFT + NS_STYLE_HINT_REFLOW, // PROP_LETTER_SPACING + NS_STYLE_HINT_REFLOW, // PROP_LINE_HEIGHT + NS_STYLE_HINT_REFLOW, // PROP_LIST_STYLE + NS_STYLE_HINT_REFLOW, // PROP_LIST_STYLE_IMAGE + NS_STYLE_HINT_REFLOW, // PROP_LIST_STYLE_POSITION + NS_STYLE_HINT_REFLOW, // PROP_LIST_STYLE_TYPE + NS_STYLE_HINT_REFLOW, // PROP_MARGIN + NS_STYLE_HINT_REFLOW, // PROP_MARGIN_BOTTOM + NS_STYLE_HINT_REFLOW, // PROP_MARGIN_LEFT + NS_STYLE_HINT_REFLOW, // PROP_MARGIN_RIGHT + NS_STYLE_HINT_REFLOW, // PROP_MARGIN_TOP + NS_STYLE_HINT_VISUAL, // PROP_OPACITY + NS_STYLE_HINT_REFLOW, // PROP_OVERFLOW + NS_STYLE_HINT_REFLOW, // PROP_PADDING + NS_STYLE_HINT_REFLOW, // PROP_PADDING_BOTTOM + NS_STYLE_HINT_REFLOW, // PROP_PADDING_LEFT + NS_STYLE_HINT_REFLOW, // PROP_PADDING_RIGHT + NS_STYLE_HINT_REFLOW, // PROP_PADDING_TOP + NS_STYLE_HINT_FRAMECHANGE, // PROP_POSITION + NS_STYLE_HINT_REFLOW, // PROP_TEXT_ALIGN + NS_STYLE_HINT_VISUAL, // PROP_TEXT_DECORATION + NS_STYLE_HINT_REFLOW, // PROP_TEXT_INDENT + NS_STYLE_HINT_REFLOW, // PROP_TEXT_TRANSFORM + NS_STYLE_HINT_REFLOW, // PROP_TOP + NS_STYLE_HINT_REFLOW, // PROP_VERTICAL_ALIGN + NS_STYLE_HINT_REFLOW, // PROP_VISIBILITY (for collapse) + NS_STYLE_HINT_REFLOW, // PROP_WHITE_SPACE + NS_STYLE_HINT_REFLOW, // PROP_WIDTH + NS_STYLE_HINT_REFLOW, // PROP_WORD_SPACING + NS_STYLE_HINT_REFLOW // PROP_Z_INDEX (XXX visual?) +}; + diff --git a/mozilla/layout/style/nsCSSProps.cpp b/mozilla/layout/style/nsCSSProps.cpp index 6b2c8c2acfb..509329f5634 100644 --- a/mozilla/layout/style/nsCSSProps.cpp +++ b/mozilla/layout/style/nsCSSProps.cpp @@ -6,9 +6,6 @@ #include "plstr.h" #include "nsCSSProps.h" -#include "nsCSSKeywordIDs.h" -#include "nsStyleConsts.h" -#include "nsCSSKeywords.h" #define TOTAL_KEYWORDS 80 #define MIN_WORD_LENGTH 3 @@ -370,403 +367,3 @@ const nsCSSProps::NameTableEntry nsCSSProps::kNameTable[] = { - -// Keyword id tables for variant/enum parsing -static PRInt32 kBackgroundAttachmentKTable[] = { - KEYWORD_FIXED, NS_STYLE_BG_ATTACHMENT_FIXED, - KEYWORD_SCROLL, NS_STYLE_BG_ATTACHMENT_SCROLL, - -1,-1 -}; - -static PRInt32 kBackgroundColorKTable[] = { - KEYWORD_TRANSPARENT, NS_STYLE_BG_COLOR_TRANSPARENT, - -1,-1 -}; - -static PRInt32 kBackgroundRepeatKTable[] = { - KEYWORD_NO_REPEAT, NS_STYLE_BG_REPEAT_OFF, - KEYWORD_REPEAT, NS_STYLE_BG_REPEAT_XY, - KEYWORD_REPEAT_X, NS_STYLE_BG_REPEAT_X, - KEYWORD_REPEAT_Y, NS_STYLE_BG_REPEAT_Y, - -1,-1 -}; - -static PRInt32 kBorderStyleKTable[] = { - KEYWORD_NONE, NS_STYLE_BORDER_STYLE_NONE, - KEYWORD_DOTTED, NS_STYLE_BORDER_STYLE_DOTTED, - KEYWORD_DASHED, NS_STYLE_BORDER_STYLE_DASHED, - KEYWORD_SOLID, NS_STYLE_BORDER_STYLE_SOLID, - KEYWORD_DOUBLE, NS_STYLE_BORDER_STYLE_DOUBLE, - KEYWORD_GROOVE, NS_STYLE_BORDER_STYLE_GROOVE, - KEYWORD_RIDGE, NS_STYLE_BORDER_STYLE_RIDGE, - KEYWORD_INSET, NS_STYLE_BORDER_STYLE_INSET, - KEYWORD_OUTSET, NS_STYLE_BORDER_STYLE_OUTSET, - -1,-1 -}; - -static PRInt32 kBorderWidthKTable[] = { - KEYWORD_THIN, NS_STYLE_BORDER_WIDTH_THIN, - KEYWORD_MEDIUM, NS_STYLE_BORDER_WIDTH_MEDIUM, - KEYWORD_THICK, NS_STYLE_BORDER_WIDTH_THICK, - -1,-1 -}; - -static PRInt32 kClearKTable[] = { - KEYWORD_NONE, NS_STYLE_CLEAR_NONE, - KEYWORD_LEFT, NS_STYLE_CLEAR_LEFT, - KEYWORD_RIGHT, NS_STYLE_CLEAR_RIGHT, - KEYWORD_BOTH, NS_STYLE_CLEAR_LEFT_AND_RIGHT, - -1,-1 -}; - -static PRInt32 kCursorKTable[] = { - KEYWORD_IBEAM, NS_STYLE_CURSOR_IBEAM, - KEYWORD_ARROW, NS_STYLE_CURSOR_DEFAULT, - KEYWORD_HAND, NS_STYLE_CURSOR_HAND, - -1,-1 -}; - -static PRInt32 kDirectionKTable[] = { - KEYWORD_LTR, NS_STYLE_DIRECTION_LTR, - KEYWORD_RTL, NS_STYLE_DIRECTION_RTL, - KEYWORD_INHERIT, NS_STYLE_DIRECTION_INHERIT, - -1,-1 -}; - -static PRInt32 kDisplayKTable[] = { - KEYWORD_NONE, NS_STYLE_DISPLAY_NONE, - KEYWORD_BLOCK, NS_STYLE_DISPLAY_BLOCK, - KEYWORD_INLINE, NS_STYLE_DISPLAY_INLINE, - KEYWORD_LIST_ITEM, NS_STYLE_DISPLAY_LIST_ITEM, - KEYWORD_MARKER, NS_STYLE_DISPLAY_MARKER, - KEYWORD_RUN_IN, NS_STYLE_DISPLAY_RUN_IN, - KEYWORD_COMPACT, NS_STYLE_DISPLAY_COMPACT, - KEYWORD_TABLE, NS_STYLE_DISPLAY_TABLE, - KEYWORD_INLINE_TABLE, NS_STYLE_DISPLAY_INLINE_TABLE, - KEYWORD_TABLE_ROW_GROUP, NS_STYLE_DISPLAY_TABLE_ROW_GROUP, - KEYWORD_TABLE_COLUMN, NS_STYLE_DISPLAY_TABLE_COLUMN, - KEYWORD_TABLE_COLUMN_GROUP, NS_STYLE_DISPLAY_TABLE_COLUMN_GROUP, - KEYWORD_TABLE_HEADER_GROUP, NS_STYLE_DISPLAY_TABLE_HEADER_GROUP, - KEYWORD_TABLE_FOOTER_GROUP, NS_STYLE_DISPLAY_TABLE_FOOTER_GROUP, - KEYWORD_TABLE_ROW, NS_STYLE_DISPLAY_TABLE_ROW, - KEYWORD_TABLE_CELL, NS_STYLE_DISPLAY_TABLE_CELL, - KEYWORD_TABLE_CAPTION, NS_STYLE_DISPLAY_TABLE_CAPTION, - -1,-1 -}; - -static PRInt32 kFloatKTable[] = { - KEYWORD_NONE, NS_STYLE_FLOAT_NONE, - KEYWORD_LEFT, NS_STYLE_FLOAT_LEFT, - KEYWORD_RIGHT, NS_STYLE_FLOAT_RIGHT, - -1,-1 -}; - -static PRInt32 kFontSizeKTable[] = { - KEYWORD_XX_SMALL, NS_STYLE_FONT_SIZE_XXSMALL, - KEYWORD_X_SMALL, NS_STYLE_FONT_SIZE_XSMALL, - KEYWORD_SMALL, NS_STYLE_FONT_SIZE_SMALL, - KEYWORD_MEDIUM, NS_STYLE_FONT_SIZE_MEDIUM, - KEYWORD_LARGE, NS_STYLE_FONT_SIZE_LARGE, - KEYWORD_X_LARGE, NS_STYLE_FONT_SIZE_XLARGE, - KEYWORD_XX_LARGE, NS_STYLE_FONT_SIZE_XXLARGE, - KEYWORD_LARGER, NS_STYLE_FONT_SIZE_LARGER, - KEYWORD_SMALLER, NS_STYLE_FONT_SIZE_SMALLER, - -1,-1 -}; - -static PRInt32 kFontStyleKTable[] = { - KEYWORD_NORMAL, NS_STYLE_FONT_STYLE_NORMAL, - KEYWORD_ITALIC, NS_STYLE_FONT_STYLE_ITALIC, - KEYWORD_OBLIQUE, NS_STYLE_FONT_STYLE_OBLIQUE, - -1,-1 -}; - -static PRInt32 kFontVariantKTable[] = { - KEYWORD_NORMAL, NS_STYLE_FONT_VARIANT_NORMAL, - KEYWORD_SMALL_CAPS, NS_STYLE_FONT_VARIANT_SMALL_CAPS, - -1,-1 -}; - -static PRInt32 kListStyleImageKTable[] = { - KEYWORD_NONE, NS_STYLE_LIST_STYLE_IMAGE_NONE, - -1,-1 -}; - -static PRInt32 kListStylePositionKTable[] = { - KEYWORD_INSIDE, NS_STYLE_LIST_STYLE_POSITION_INSIDE, - KEYWORD_OUTSIDE, NS_STYLE_LIST_STYLE_POSITION_OUTSIDE, - -1,-1 -}; - -static PRInt32 kListStyleKTable[] = { - KEYWORD_NONE, NS_STYLE_LIST_STYLE_NONE, - KEYWORD_DISC, NS_STYLE_LIST_STYLE_DISC, - KEYWORD_CIRCLE, NS_STYLE_LIST_STYLE_CIRCLE, - KEYWORD_SQUARE, NS_STYLE_LIST_STYLE_SQUARE, - KEYWORD_DECIMAL, NS_STYLE_LIST_STYLE_DECIMAL, - KEYWORD_LOWER_ROMAN, NS_STYLE_LIST_STYLE_LOWER_ROMAN, - KEYWORD_UPPER_ROMAN, NS_STYLE_LIST_STYLE_UPPER_ROMAN, - KEYWORD_LOWER_ALPHA, NS_STYLE_LIST_STYLE_LOWER_ALPHA, - KEYWORD_UPPER_ALPHA, NS_STYLE_LIST_STYLE_UPPER_ALPHA, - -1,-1 -}; - -static PRInt32 kMarginSizeKTable[] = { - KEYWORD_AUTO, NS_STYLE_MARGIN_SIZE_AUTO, - -1,-1 -}; - -static PRInt32 kOverflowKTable[] = { - KEYWORD_VISIBLE, NS_STYLE_OVERFLOW_VISIBLE, - KEYWORD_HIDDEN, NS_STYLE_OVERFLOW_HIDDEN, - KEYWORD_SCROLL, NS_STYLE_OVERFLOW_SCROLL, - KEYWORD_AUTO, NS_STYLE_OVERFLOW_AUTO, - -1,-1 -}; - -static PRInt32 kPositionKTable[] = { - KEYWORD_RELATIVE, NS_STYLE_POSITION_RELATIVE, - KEYWORD_ABSOLUTE, NS_STYLE_POSITION_ABSOLUTE, - KEYWORD_FIXED, NS_STYLE_POSITION_FIXED, - -1,-1 -}; - -static PRInt32 kTextAlignKTable[] = { - KEYWORD_LEFT, NS_STYLE_TEXT_ALIGN_LEFT, - KEYWORD_RIGHT, NS_STYLE_TEXT_ALIGN_RIGHT, - KEYWORD_CENTER, NS_STYLE_TEXT_ALIGN_CENTER, - KEYWORD_JUSTIFY, NS_STYLE_TEXT_ALIGN_JUSTIFY, - -1,-1 -}; - -static PRInt32 kTextTransformKTable[] = { - KEYWORD_NONE, NS_STYLE_TEXT_TRANSFORM_NONE, - KEYWORD_CAPITALIZE, NS_STYLE_TEXT_TRANSFORM_CAPITALIZE, - KEYWORD_LOWERCASE, NS_STYLE_TEXT_TRANSFORM_LOWERCASE, - KEYWORD_UPPERCASE, NS_STYLE_TEXT_TRANSFORM_UPPERCASE, - -1,-1 -}; - -static PRInt32 kVerticalAlignKTable[] = { - KEYWORD_BASELINE, NS_STYLE_VERTICAL_ALIGN_BASELINE, - KEYWORD_SUB, NS_STYLE_VERTICAL_ALIGN_SUB, - KEYWORD_SUPER, NS_STYLE_VERTICAL_ALIGN_SUPER, - KEYWORD_TOP, NS_STYLE_VERTICAL_ALIGN_TOP, - KEYWORD_TEXT_TOP, NS_STYLE_VERTICAL_ALIGN_TEXT_TOP, - KEYWORD_MIDDLE, NS_STYLE_VERTICAL_ALIGN_MIDDLE, - KEYWORD_BOTTOM, NS_STYLE_VERTICAL_ALIGN_BOTTOM, - KEYWORD_TEXT_BOTTOM, NS_STYLE_VERTICAL_ALIGN_TEXT_BOTTOM, - -1,-1 -}; - -static PRInt32 kVisibilityKTable[] = { - KEYWORD_VISIBLE, NS_STYLE_VISIBILITY_VISIBLE, - KEYWORD_HIDDEN, NS_STYLE_VISIBILITY_HIDDEN, - -1,-1 -}; - -static PRInt32 kWhitespaceKTable[] = { - KEYWORD_NORMAL, NS_STYLE_WHITESPACE_NORMAL, - KEYWORD_PRE, NS_STYLE_WHITESPACE_PRE, - KEYWORD_NOWRAP, NS_STYLE_WHITESPACE_NOWRAP, - -1,-1 -}; - -static const char* kBorderTopNames[] = { - "border-top-width", - "border-top-style", - "border-top-color", -}; -static const char* kBorderRightNames[] = { - "border-right-width", - "border-right-style", - "border-right-color", -}; -static const char* kBorderBottomNames[] = { - "border-bottom-width", - "border-bottom-style", - "border-bottom-color", -}; -static const char* kBorderLeftNames[] = { - "border-left-width", - "border-left-style", - "border-left-color", -}; - -static const char* SearchKeywordTable(PRInt32 aID, PRInt32 aTable[]) -{ - PRInt32 i = 1; - if (aID >= 0) - { - for (;;) { - if (aTable[i] < 0) { - break; - } - if (aID == aTable[i]) { - return nsCSSKeywords::kNameTable[aTable[i-1]].name; - } - i += 2; - } - } - return nsnull; -} - - - -const char* nsCSSProps::LookupProperty(PRInt32 aProp, PRInt32 aIndex) -{ - switch (aProp) { - - case PROP_BACKGROUND: - break; - - case PROP_BACKGROUND_ATTACHMENT: - return SearchKeywordTable(aIndex,kBackgroundAttachmentKTable); - - case PROP_BACKGROUND_COLOR: - return SearchKeywordTable(aIndex,kBackgroundColorKTable); - - case PROP_BACKGROUND_FILTER: - break; - - case PROP_BACKGROUND_IMAGE: - break; - - case PROP_BACKGROUND_POSITION: - break; - - case PROP_BACKGROUND_REPEAT: - return SearchKeywordTable(aIndex,kBackgroundRepeatKTable); - - case PROP_BORDER: - case PROP_BORDER_COLOR: - case PROP_BORDER_STYLE: - case PROP_BORDER_BOTTOM: - case PROP_BORDER_LEFT: - case PROP_BORDER_RIGHT: - case PROP_BORDER_TOP: - case PROP_BORDER_BOTTOM_COLOR: - case PROP_BORDER_LEFT_COLOR: - case PROP_BORDER_RIGHT_COLOR: - case PROP_BORDER_TOP_COLOR: - break; - - case PROP_BORDER_BOTTOM_STYLE: - case PROP_BORDER_LEFT_STYLE: - case PROP_BORDER_RIGHT_STYLE: - case PROP_BORDER_TOP_STYLE: - return SearchKeywordTable(aIndex,kBorderStyleKTable); - - case PROP_BORDER_BOTTOM_WIDTH: - case PROP_BORDER_LEFT_WIDTH: - case PROP_BORDER_RIGHT_WIDTH: - case PROP_BORDER_TOP_WIDTH: - return SearchKeywordTable(aIndex,kBorderWidthKTable); - - case PROP_BORDER_WIDTH: - case PROP_CLEAR: - return SearchKeywordTable(aIndex,kClearKTable); - - case PROP_CLIP: - case PROP_COLOR: - break; - - case PROP_CURSOR: - return SearchKeywordTable(aIndex,kCursorKTable); - - case PROP_DIRECTION: - return SearchKeywordTable(aIndex,kDirectionKTable); - - case PROP_DISPLAY: - return SearchKeywordTable(aIndex,kDisplayKTable); - - case PROP_FILTER: - break; - - case PROP_FLOAT: - return SearchKeywordTable(aIndex,kFloatKTable); - - case PROP_FONT: - case PROP_FONT_FAMILY: - break; - - case PROP_FONT_SIZE: - return SearchKeywordTable(aIndex,kFontSizeKTable); - - case PROP_FONT_STYLE: - return SearchKeywordTable(aIndex,kFontStyleKTable); - - case PROP_FONT_VARIANT: - return SearchKeywordTable(aIndex,kFontVariantKTable); - - - case PROP_FONT_WEIGHT: - case PROP_HEIGHT: - case PROP_LEFT: - case PROP_LINE_HEIGHT: - case PROP_LIST_STYLE: - break; - - case PROP_LIST_STYLE_IMAGE: - return SearchKeywordTable(aIndex, kListStyleImageKTable); - - case PROP_LIST_STYLE_POSITION: - return SearchKeywordTable(aIndex, kListStylePositionKTable); - - - case PROP_LIST_STYLE_TYPE: - return SearchKeywordTable(aIndex, kListStyleKTable); - - case PROP_MARGIN: - case PROP_MARGIN_BOTTOM: - case PROP_MARGIN_LEFT: - case PROP_MARGIN_RIGHT: - case PROP_MARGIN_TOP: - return SearchKeywordTable(aIndex, kMarginSizeKTable); - - case PROP_PADDING: - case PROP_PADDING_BOTTOM: - case PROP_PADDING_LEFT: - case PROP_PADDING_RIGHT: - case PROP_PADDING_TOP: - break; - - case PROP_OPACITY: - break; - - case PROP_OVERFLOW: - return SearchKeywordTable(aIndex, kOverflowKTable); - - case PROP_POSITION: - return SearchKeywordTable(aIndex, kPositionKTable); - - case PROP_TEXT_ALIGN: - return SearchKeywordTable(aIndex, kTextAlignKTable); - - case PROP_TEXT_DECORATION: - case PROP_TEXT_INDENT: - break; - - case PROP_TEXT_TRANSFORM: - return SearchKeywordTable(aIndex, kTextTransformKTable); - - case PROP_TOP: - break; - - case PROP_VERTICAL_ALIGN: - return SearchKeywordTable(aIndex, kVerticalAlignKTable); - - case PROP_VISIBILITY: - return SearchKeywordTable(aIndex, kVisibilityKTable); - - case PROP_WHITE_SPACE: - return SearchKeywordTable(aIndex, kWhitespaceKTable); - - case PROP_WIDTH: - case PROP_LETTER_SPACING: - case PROP_WORD_SPACING: - case PROP_Z_INDEX: - break; - } - return nsnull; -} diff --git a/mozilla/layout/style/nsCSSProps.h b/mozilla/layout/style/nsCSSProps.h index 9fddff3b07c..402462b3d73 100644 --- a/mozilla/layout/style/nsCSSProps.h +++ b/mozilla/layout/style/nsCSSProps.h @@ -41,6 +41,8 @@ public: // A table whose index is the tag id (from nsCSSPropIDs) static const NameTableEntry kNameTable[]; + + static const PRInt32 kHintTable[]; }; #endif /* nsCSSProps_h___ */