mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-09 03:15:11 +00:00
added hint table
moved non-generated code to nsCSSProps2.cpp
This commit is contained in:
parent
fb2c9d7db8
commit
3bc6123a01
@ -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___ */
|
||||
|
@ -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___ */
|
||||
|
@ -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;
|
||||
}
|
||||
|
@ -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;
|
||||
}
|
||||
|
@ -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___ */
|
||||
|
495
layout/html/style/src/nsCSSProps2.cpp
Normal file
495
layout/html/style/src/nsCSSProps2.cpp
Normal file
@ -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?)
|
||||
};
|
||||
|
@ -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;
|
||||
}
|
||||
|
@ -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___ */
|
||||
|
Loading…
Reference in New Issue
Block a user