Files
Mozilla/mozilla/layout/html/style/src/nsCSSProps2.cpp
peterl%netscape.com 9a50248463 tweaked style hint for overflow
git-svn-id: svn://10.0.0.236/trunk@22336 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-27 07:16:27 +00:00

904 lines
27 KiB
C++

/**
* 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
const PRInt32 nsCSSProps::kAzimuthKTable[] = {
KEYWORD_LEFT_SIDE, NS_STYLE_AZIMUTH_LEFT_SIDE,
KEYWORD_FAR_LEFT, NS_STYLE_AZIMUTH_FAR_LEFT,
KEYWORD_LEFT, NS_STYLE_AZIMUTH_LEFT,
KEYWORD_CENTER_LEFT, NS_STYLE_AZIMUTH_CENTER_LEFT,
KEYWORD_CENTER, NS_STYLE_AZIMUTH_CENTER,
KEYWORD_CENTER_RIGHT, NS_STYLE_AZIMUTH_CENTER_RIGHT,
KEYWORD_RIGHT, NS_STYLE_AZIMUTH_RIGHT,
KEYWORD_FAR_RIGHT, NS_STYLE_AZIMUTH_FAR_RIGHT,
KEYWORD_RIGHT_SIDE, NS_STYLE_AZIMUTH_RIGHT_SIDE,
KEYWORD_BEHIND, NS_STYLE_AZIMUTH_BEHIND,
KEYWORD_LEFTWARDS, NS_STYLE_AZIMUTH_LEFTWARDS,
KEYWORD_RIGHTWARDS, NS_STYLE_AZIMUTH_RIGHTWARDS,
-1,-1
};
const PRInt32 nsCSSProps::kBackgroundAttachmentKTable[] = {
KEYWORD_FIXED, NS_STYLE_BG_ATTACHMENT_FIXED,
KEYWORD_SCROLL, NS_STYLE_BG_ATTACHMENT_SCROLL,
-1,-1
};
const PRInt32 nsCSSProps::kBackgroundColorKTable[] = {
KEYWORD_TRANSPARENT, NS_STYLE_BG_COLOR_TRANSPARENT,
-1,-1
};
const PRInt32 nsCSSProps::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
};
const PRInt32 nsCSSProps::kBorderCollapseKTable[] = {
KEYWORD_COLLAPSE, NS_STYLE_BORDER_COLLAPSE,
KEYWORD_SEPARATE, NS_STYLE_BORDER_SEPARATE,
-1,-1
};
const PRInt32 nsCSSProps::kBorderColorKTable[] = {
KEYWORD_TRANSPARENT, NS_STYLE_COLOR_TRANSPARENT,
-1,-1
};
const PRInt32 nsCSSProps::kBorderStyleKTable[] = {
KEYWORD_HIDDEN, NS_STYLE_BORDER_STYLE_HIDDEN,
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,
KEYWORD__MOZ_BG_INSET, NS_STYLE_BORDER_STYLE_BG_INSET,
KEYWORD__MOZ_BG_OUTSET, NS_STYLE_BORDER_STYLE_BG_OUTSET,
-1,-1
};
const PRInt32 nsCSSProps::kBorderWidthKTable[] = {
KEYWORD_THIN, NS_STYLE_BORDER_WIDTH_THIN,
KEYWORD_MEDIUM, NS_STYLE_BORDER_WIDTH_MEDIUM,
KEYWORD_THICK, NS_STYLE_BORDER_WIDTH_THICK,
-1,-1
};
const PRInt32 nsCSSProps::kCaptionSideKTable[] = {
KEYWORD_TOP, NS_SIDE_TOP,
KEYWORD_RIGHT, NS_SIDE_RIGHT,
KEYWORD_BOTTOM, NS_SIDE_BOTTOM,
KEYWORD_LEFT, NS_SIDE_LEFT,
-1,-1
};
const PRInt32 nsCSSProps::kClearKTable[] = {
KEYWORD_LEFT, NS_STYLE_CLEAR_LEFT,
KEYWORD_RIGHT, NS_STYLE_CLEAR_RIGHT,
KEYWORD_BOTH, NS_STYLE_CLEAR_LEFT_AND_RIGHT,
-1,-1
};
const PRInt32 nsCSSProps::kContentKTable[] = {
KEYWORD_OPEN_QUOTE, NS_STYLE_CONTENT_OPEN_QUOTE,
KEYWORD_CLOSE_QUOTE, NS_STYLE_CONTENT_CLOSE_QUOTE,
KEYWORD_NO_OPEN_QUOTE, NS_STYLE_CONTENT_NO_OPEN_QUOTE,
KEYWORD_NO_CLOSE_QUOTE, NS_STYLE_CONTENT_NO_CLOSE_QUOTE,
-1,-1
};
const PRInt32 nsCSSProps::kCursorKTable[] = {
KEYWORD_CROSSHAIR, NS_STYLE_CURSOR_CROSSHAIR,
KEYWORD_DEFAULT, NS_STYLE_CURSOR_DEFAULT,
KEYWORD_POINTER, NS_STYLE_CURSOR_POINTER,
KEYWORD_MOVE, NS_STYLE_CURSOR_MOVE,
KEYWORD_E_RESIZE, NS_STYLE_CURSOR_E_RESIZE,
KEYWORD_NE_RESIZE, NS_STYLE_CURSOR_NE_RESIZE,
KEYWORD_NW_RESIZE, NS_STYLE_CURSOR_NW_RESIZE,
KEYWORD_N_RESIZE, NS_STYLE_CURSOR_N_RESIZE,
KEYWORD_SE_RESIZE, NS_STYLE_CURSOR_SE_RESIZE,
KEYWORD_SW_RESIZE, NS_STYLE_CURSOR_SW_RESIZE,
KEYWORD_S_RESIZE, NS_STYLE_CURSOR_S_RESIZE,
KEYWORD_W_RESIZE, NS_STYLE_CURSOR_W_RESIZE,
KEYWORD_TEXT, NS_STYLE_CURSOR_TEXT,
KEYWORD_WAIT, NS_STYLE_CURSOR_WAIT,
KEYWORD_HELP, NS_STYLE_CURSOR_HELP,
-1,-1
};
const PRInt32 nsCSSProps::kDirectionKTable[] = {
KEYWORD_LTR, NS_STYLE_DIRECTION_LTR,
KEYWORD_RTL, NS_STYLE_DIRECTION_RTL,
-1,-1
};
const PRInt32 nsCSSProps::kDisplayKTable[] = {
KEYWORD_INLINE, NS_STYLE_DISPLAY_INLINE,
KEYWORD_BLOCK, NS_STYLE_DISPLAY_BLOCK,
KEYWORD_LIST_ITEM, NS_STYLE_DISPLAY_LIST_ITEM,
KEYWORD_RUN_IN, NS_STYLE_DISPLAY_RUN_IN,
KEYWORD_COMPACT, NS_STYLE_DISPLAY_COMPACT,
KEYWORD_MARKER, NS_STYLE_DISPLAY_MARKER,
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_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_COLUMN_GROUP, NS_STYLE_DISPLAY_TABLE_COLUMN_GROUP,
KEYWORD_TABLE_COLUMN, NS_STYLE_DISPLAY_TABLE_COLUMN,
KEYWORD_TABLE_CELL, NS_STYLE_DISPLAY_TABLE_CELL,
KEYWORD_TABLE_CAPTION, NS_STYLE_DISPLAY_TABLE_CAPTION,
-1,-1
};
const PRInt32 nsCSSProps::kElevationKTable[] = {
KEYWORD_BELOW, NS_STYLE_ELEVATION_BELOW,
KEYWORD_LEVEL, NS_STYLE_ELEVATION_LEVEL,
KEYWORD_ABOVE, NS_STYLE_ELEVATION_ABOVE,
KEYWORD_HIGHER, NS_STYLE_ELEVATION_HIGHER,
KEYWORD_LOWER, NS_STYLE_ELEVATION_LOWER,
-1,-1
};
const PRInt32 nsCSSProps::kEmptyCellsKTable[] = {
KEYWORD_SHOW, NS_STYLE_TABLE_EMPTY_CELLS_SHOW,
KEYWORD_HIDE, NS_STYLE_TABLE_EMPTY_CELLS_HIDE,
-1,-1
};
const PRInt32 nsCSSProps::kFloatKTable[] = {
KEYWORD_LEFT, NS_STYLE_FLOAT_LEFT,
KEYWORD_RIGHT, NS_STYLE_FLOAT_RIGHT,
-1,-1
};
const PRInt32 nsCSSProps::kFontKTable[] = {
KEYWORD_CAPTION, NS_STYLE_FONT_CAPTION,
KEYWORD_ICON, NS_STYLE_FONT_ICON,
KEYWORD_MENU, NS_STYLE_FONT_MENU,
KEYWORD_MESSAGE_BOX, NS_STYLE_FONT_MESSAGE_BOX,
KEYWORD_SMALL_CAPTION, NS_STYLE_FONT_SMALL_CAPTION,
KEYWORD_STATUS_BAR, NS_STYLE_FONT_STATUS_BAR,
-1,-1
};
const PRInt32 nsCSSProps::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
};
const PRInt32 nsCSSProps::kFontStretchKTable[] = {
KEYWORD_WIDER, NS_STYLE_FONT_STRETCH_WIDER,
KEYWORD_NARROWER, NS_STYLE_FONT_STRETCH_NARROWER,
KEYWORD_ULTRA_CONDENSED, NS_STYLE_FONT_STRETCH_ULTRA_CONDENSED,
KEYWORD_EXTRA_CONDENSED, NS_STYLE_FONT_STRETCH_EXTRA_CONDENSED,
KEYWORD_CONDENSED, NS_STYLE_FONT_STRETCH_CONDENSED,
KEYWORD_SEMI_CONDENSED, NS_STYLE_FONT_STRETCH_SEMI_CONDENSED,
KEYWORD_SEMI_EXPANDED, NS_STYLE_FONT_STRETCH_SEMI_EXPANDED,
KEYWORD_EXPANDED, NS_STYLE_FONT_STRETCH_EXPANDED,
KEYWORD_EXTRA_EXPANDED, NS_STYLE_FONT_STRETCH_EXTRA_EXPANDED,
KEYWORD_ULTRA_EXPANDED, NS_STYLE_FONT_STRETCH_ULTRA_EXPANDED,
-1,-1
};
const PRInt32 nsCSSProps::kFontStyleKTable[] = {
KEYWORD_ITALIC, NS_STYLE_FONT_STYLE_ITALIC,
KEYWORD_OBLIQUE, NS_STYLE_FONT_STYLE_OBLIQUE,
-1,-1
};
const PRInt32 nsCSSProps::kFontVariantKTable[] = {
KEYWORD_SMALL_CAPS, NS_STYLE_FONT_VARIANT_SMALL_CAPS,
-1,-1
};
const PRInt32 nsCSSProps::kFontWeightKTable[] = {
KEYWORD_BOLD, NS_STYLE_FONT_WEIGHT_BOLD,
KEYWORD_BOLDER, NS_STYLE_FONT_WEIGHT_BOLDER,
KEYWORD_LIGHTER, NS_STYLE_FONT_WEIGHT_LIGHTER,
-1,-1
};
const PRInt32 nsCSSProps::kListStylePositionKTable[] = {
KEYWORD_INSIDE, NS_STYLE_LIST_STYLE_POSITION_INSIDE,
KEYWORD_OUTSIDE, NS_STYLE_LIST_STYLE_POSITION_OUTSIDE,
-1,-1
};
const PRInt32 nsCSSProps::kListStyleKTable[] = {
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_DECIMAL_LEADING_ZERO, NS_STYLE_LIST_STYLE_DECIMAL_LEADING_ZERO,
KEYWORD_LOWER_ROMAN, NS_STYLE_LIST_STYLE_LOWER_ROMAN,
KEYWORD_UPPER_ROMAN, NS_STYLE_LIST_STYLE_UPPER_ROMAN,
KEYWORD_LOWER_GREEK, NS_STYLE_LIST_STYLE_LOWER_GREEK,
KEYWORD_LOWER_ALPHA, NS_STYLE_LIST_STYLE_LOWER_ALPHA,
KEYWORD_LOWER_LATIN, NS_STYLE_LIST_STYLE_LOWER_LATIN,
KEYWORD_UPPER_ALPHA, NS_STYLE_LIST_STYLE_UPPER_ALPHA,
KEYWORD_UPPER_LATIN, NS_STYLE_LIST_STYLE_UPPER_LATIN,
KEYWORD_HEBREW, NS_STYLE_LIST_STYLE_HEBREW,
KEYWORD_ARMENIAN, NS_STYLE_LIST_STYLE_ARMENIAN,
KEYWORD_GEORGIAN, NS_STYLE_LIST_STYLE_GEORGIAN,
KEYWORD_CJK_IDEOGRAPHIC, NS_STYLE_LIST_STYLE_CJK_IDEOGRAPHIC,
KEYWORD_HIRAGANA, NS_STYLE_LIST_STYLE_HIRAGANA,
KEYWORD_KATAKANA, NS_STYLE_LIST_STYLE_KATAKANA,
KEYWORD_HIRAGANA_IROHA, NS_STYLE_LIST_STYLE_HIRAGANA_IROHA,
KEYWORD_KATAKANA_IROHA, NS_STYLE_LIST_STYLE_KATAKANA_IROHA,
-1,-1
};
const PRInt32 nsCSSProps::kOutlineColorKTable[] = {
KEYWORD_INVERT, NS_STYLE_COLOR_INVERT,
-1,-1
};
const PRInt32 nsCSSProps::kOverflowKTable[] = {
KEYWORD_VISIBLE, NS_STYLE_OVERFLOW_VISIBLE,
KEYWORD_HIDDEN, NS_STYLE_OVERFLOW_HIDDEN,
KEYWORD_SCROLL, NS_STYLE_OVERFLOW_SCROLL,
-1,-1
};
const PRInt32 nsCSSProps::kPageBreakKTable[] = {
KEYWORD_ALWAYS, NS_STYLE_PAGE_BREAK_ALWAYS,
KEYWORD_AVOID, NS_STYLE_PAGE_BREAK_AVOID,
KEYWORD_LEFT, NS_STYLE_PAGE_BREAK_LEFT,
KEYWORD_RIGHT, NS_STYLE_PAGE_BREAK_RIGHT,
-1,-1
};
const PRInt32 nsCSSProps::kPageBreakInsideKTable[] = {
KEYWORD_AVOID, NS_STYLE_PAGE_BREAK_AVOID,
-1,-1
};
const PRInt32 nsCSSProps::kPageMarksKTable[] = {
KEYWORD_CROP, NS_STYLE_PAGE_MARKS_CROP,
KEYWORD_CROSS, NS_STYLE_PAGE_MARKS_REGISTER,
-1,-1
};
const PRInt32 nsCSSProps::kPageSizeKTable[] = {
KEYWORD_LANDSCAPE, NS_STYLE_PAGE_SIZE_LANDSCAPE,
KEYWORD_PORTRAIT, NS_STYLE_PAGE_SIZE_PORTRAIT,
-1,-1
};
const PRInt32 nsCSSProps::kPitchKTable[] = {
KEYWORD_X_LOW, NS_STYLE_PITCH_X_LOW,
KEYWORD_LOW, NS_STYLE_PITCH_LOW,
KEYWORD_MEDIUM, NS_STYLE_PITCH_MEDIUM,
KEYWORD_HIGH, NS_STYLE_PITCH_HIGH,
KEYWORD_X_HIGH, NS_STYLE_PITCH_X_HIGH,
-1,-1
};
const PRInt32 nsCSSProps::kPlayDuringKTable[] = {
KEYWORD_MIX, NS_STYLE_PLAY_DURING_MIX,
KEYWORD_REPEAT, NS_STYLE_PLAY_DURING_REPEAT,
-1,-1
};
const PRInt32 nsCSSProps::kPositionKTable[] = {
KEYWORD_STATIC, NS_STYLE_POSITION_NORMAL,
KEYWORD_RELATIVE, NS_STYLE_POSITION_RELATIVE,
KEYWORD_ABSOLUTE, NS_STYLE_POSITION_ABSOLUTE,
KEYWORD_FIXED, NS_STYLE_POSITION_FIXED,
-1,-1
};
const PRInt32 nsCSSProps::kSpeakKTable[] = {
KEYWORD_SPELL_OUT, NS_STYLE_SPEAK_SPELL_OUT,
-1,-1
};
const PRInt32 nsCSSProps::kSpeakHeaderKTable[] = {
KEYWORD_ONCE, NS_STYLE_SPEAK_HEADER_ONCE,
KEYWORD_ALWAYS, NS_STYLE_SPEAK_HEADER_ALWAYS,
-1,-1
};
const PRInt32 nsCSSProps::kSpeakNumeralKTable[] = {
KEYWORD_DIGITS, NS_STYLE_SPEAK_NUMERAL_DIGITS,
KEYWORD_CONTINUOUS, NS_STYLE_SPEAK_NUMERAL_CONTINUOUS,
-1,-1
};
const PRInt32 nsCSSProps::kSpeakPunctuationKTable[] = {
KEYWORD_CODE, NS_STYLE_SPEAK_PUNCTUATION_CODE,
-1,-1
};
const PRInt32 nsCSSProps::kSpeechRateKTable[] = {
KEYWORD_X_SLOW, NS_STYLE_SPEECH_RATE_X_SLOW,
KEYWORD_SLOW, NS_STYLE_SPEECH_RATE_SLOW,
KEYWORD_MEDIUM, NS_STYLE_SPEECH_RATE_MEDIUM,
KEYWORD_FAST, NS_STYLE_SPEECH_RATE_FAST,
KEYWORD_X_FAST, NS_STYLE_SPEECH_RATE_X_FAST,
KEYWORD_FASTER, NS_STYLE_SPEECH_RATE_FASTER,
KEYWORD_SLOWER, NS_STYLE_SPEECH_RATE_SLOWER,
-1,-1
};
const PRInt32 nsCSSProps::kTableLayoutKTable[] = {
KEYWORD_FIXED, NS_STYLE_TABLE_LAYOUT_FIXED,
-1,-1
};
const PRInt32 nsCSSProps::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
};
const PRInt32 nsCSSProps::kTextDecorationKTable[] = {
KEYWORD_UNDERLINE, NS_STYLE_TEXT_DECORATION_UNDERLINE,
KEYWORD_OVERLINE, NS_STYLE_TEXT_DECORATION_OVERLINE,
KEYWORD_LINE_THROUGH, NS_STYLE_TEXT_DECORATION_LINE_THROUGH,
KEYWORD_BLINK, NS_STYLE_TEXT_DECORATION_BLINK,
-1,-1
};
const PRInt32 nsCSSProps::kTextTransformKTable[] = {
KEYWORD_CAPITALIZE, NS_STYLE_TEXT_TRANSFORM_CAPITALIZE,
KEYWORD_LOWERCASE, NS_STYLE_TEXT_TRANSFORM_LOWERCASE,
KEYWORD_UPPERCASE, NS_STYLE_TEXT_TRANSFORM_UPPERCASE,
-1,-1
};
const PRInt32 nsCSSProps::kUnicodeBidiKTable[] = {
KEYWORD_EMBED, NS_STYLE_UNICODE_BIDI_EMBED,
KEYWORD_BIDI_OVERRIDE, NS_STYLE_UNICODE_BIDI_OVERRIDE,
-1,-1
};
const PRInt32 nsCSSProps::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
};
const PRInt32 nsCSSProps::kVisibilityKTable[] = {
KEYWORD_VISIBLE, NS_STYLE_VISIBILITY_VISIBLE,
KEYWORD_HIDDEN, NS_STYLE_VISIBILITY_HIDDEN,
KEYWORD_COLLAPSE, NS_STYLE_VISIBILITY_COLLAPSE,
-1,-1
};
const PRInt32 nsCSSProps::kVolumeKTable[] = {
KEYWORD_SILENT, NS_STYLE_VOLUME_SILENT,
KEYWORD_X_SOFT, NS_STYLE_VOLUME_X_SOFT,
KEYWORD_SOFT, NS_STYLE_VOLUME_SOFT,
KEYWORD_MEDIUM, NS_STYLE_VOLUME_MEDIUM,
KEYWORD_LOUD, NS_STYLE_VOLUME_LOUD,
KEYWORD_X_LOUD, NS_STYLE_VOLUME_X_LOUD,
-1,-1
};
const PRInt32 nsCSSProps::kWhitespaceKTable[] = {
KEYWORD_PRE, NS_STYLE_WHITESPACE_PRE,
KEYWORD_NOWRAP, NS_STYLE_WHITESPACE_NOWRAP,
-1,-1
};
static const char* SearchKeywordTable(PRInt32 aID, const 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)
{
static const PRInt32 kBackgroundXPositionKTable[] = {
KEYWORD_LEFT, 0,
KEYWORD_CENTER, 50,
KEYWORD_RIGHT, 100,
-1,-1
};
static const PRInt32 kBackgroundYPositionKTable[] = {
KEYWORD_TOP, 0,
KEYWORD_CENTER, 50,
KEYWORD_BOTTOM, 100,
-1,-1
};
switch (aProp) {
case PROP_AZIMUTH:
return SearchKeywordTable(aIndex, kAzimuthKTable);
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_BACKGROUND_X_POSITION:
return SearchKeywordTable(aIndex, kBackgroundXPositionKTable);
case PROP_BACKGROUND_Y_POSITION:
return SearchKeywordTable(aIndex, kBackgroundYPositionKTable);
case PROP_BORDER:
break;
case PROP_BORDER_COLLAPSE:
return SearchKeywordTable(aIndex, kBorderCollapseKTable);
case PROP_BORDER_COLOR:
case PROP_BORDER_SPACING:
case PROP_BORDER_STYLE:
case PROP_BORDER_BOTTOM:
case PROP_BORDER_LEFT:
case PROP_BORDER_RIGHT:
case PROP_BORDER_TOP:
break;
case PROP_BORDER_BOTTOM_COLOR:
case PROP_BORDER_LEFT_COLOR:
case PROP_BORDER_RIGHT_COLOR:
case PROP_BORDER_TOP_COLOR:
return SearchKeywordTable(aIndex, kBorderColorKTable);
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_BORDER_X_SPACING:
case PROP_BORDER_Y_SPACING:
case PROP_BOTTOM:
break;
case PROP_CAPTION_SIDE:
return SearchKeywordTable(aIndex, kCaptionSideKTable);
case PROP_CLEAR:
return SearchKeywordTable(aIndex, kClearKTable);
case PROP_CLIP:
case PROP_CLIP_BOTTOM:
case PROP_CLIP_LEFT:
case PROP_CLIP_RIGHT:
case PROP_CLIP_TOP:
case PROP_COLOR:
break;
case PROP_CONTENT:
return SearchKeywordTable(aIndex, kContentKTable);
case PROP_COUNTER_INCREMENT:
case PROP_COUNTER_RESET:
case PROP_CUE:
case PROP_CUE_AFTER:
case PROP_CUE_BEFORE:
break;
case PROP_CURSOR:
return SearchKeywordTable(aIndex, kCursorKTable);
case PROP_DIRECTION:
return SearchKeywordTable(aIndex, kDirectionKTable);
case PROP_DISPLAY:
return SearchKeywordTable(aIndex, kDisplayKTable);
case PROP_ELEVATION:
return SearchKeywordTable(aIndex, kElevationKTable);
case PROP_EMPTY_CELLS:
return SearchKeywordTable(aIndex, kEmptyCellsKTable);
case PROP_FILTER:
break;
case PROP_FLOAT:
return SearchKeywordTable(aIndex, kFloatKTable);
case PROP_FONT:
break;
case PROP_FONT_FAMILY:
return SearchKeywordTable(aIndex, kFontKTable);
case PROP_FONT_SIZE:
return SearchKeywordTable(aIndex, kFontSizeKTable);
case PROP_FONT_SIZE_ADJUST:
break;
case PROP_FONT_STRETCH:
return SearchKeywordTable(aIndex, kFontStretchKTable);
case PROP_FONT_STYLE:
return SearchKeywordTable(aIndex, kFontStyleKTable);
case PROP_FONT_VARIANT:
return SearchKeywordTable(aIndex, kFontVariantKTable);
case PROP_FONT_WEIGHT:
return SearchKeywordTable(aIndex, kFontWeightKTable);
case PROP_HEIGHT:
case PROP_LEFT:
case PROP_LETTER_SPACING:
case PROP_LINE_HEIGHT:
case PROP_LIST_STYLE:
case PROP_LIST_STYLE_IMAGE:
break;
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:
case PROP_MARKER_OFFSET:
break;
case PROP_MARKS:
return SearchKeywordTable(aIndex, kPageMarksKTable);
case PROP_MAX_HEIGHT:
case PROP_MAX_WIDTH:
case PROP_MIN_HEIGHT:
case PROP_MIN_WIDTH:
case PROP_OPACITY:
case PROP_ORPHANS:
case PROP_OUTLINE:
break;
case PROP_OUTLINE_COLOR:
return SearchKeywordTable(aIndex, kOutlineColorKTable);
case PROP_OUTLINE_STYLE:
return SearchKeywordTable(aIndex, kBorderStyleKTable);
case PROP_OUTLINE_WIDTH:
return SearchKeywordTable(aIndex, kBorderWidthKTable);
case PROP_OVERFLOW:
return SearchKeywordTable(aIndex, kOverflowKTable);
case PROP_PADDING:
case PROP_PADDING_BOTTOM:
case PROP_PADDING_LEFT:
case PROP_PADDING_RIGHT:
case PROP_PADDING_TOP:
case PROP_PAGE:
break;
case PROP_PAGE_BREAK_BEFORE:
case PROP_PAGE_BREAK_AFTER:
return SearchKeywordTable(aIndex, kPageBreakKTable);
case PROP_PAGE_BREAK_INSIDE:
return SearchKeywordTable(aIndex, kPageBreakInsideKTable);
case PROP_PAUSE:
case PROP_PAUSE_AFTER:
case PROP_PAUSE_BEFORE:
break;
case PROP_PITCH:
return SearchKeywordTable(aIndex, kPitchKTable);
case PROP_PITCH_RANGE:
case PROP_PLAY_DURING:
break;
case PROP_PLAY_DURING_FLAGS:
return SearchKeywordTable(aIndex, kPlayDuringKTable);
case PROP_POSITION:
return SearchKeywordTable(aIndex, kPositionKTable);
case PROP_QUOTES:
case PROP_QUOTES_CLOSE:
case PROP_QUOTES_OPEN:
case PROP_RICHNESS:
case PROP_RIGHT:
case PROP_SIZE:
break;
case PROP_SIZE_HEIGHT:
case PROP_SIZE_WIDTH:
return SearchKeywordTable(aIndex, kPageSizeKTable);
case PROP_SPEAK:
return SearchKeywordTable(aIndex, kSpeakKTable);
case PROP_SPEAK_HEADER:
return SearchKeywordTable(aIndex, kSpeakHeaderKTable);
case PROP_SPEAK_NUMERAL:
return SearchKeywordTable(aIndex, kSpeakNumeralKTable);
case PROP_SPEAK_PUNCTUATION:
return SearchKeywordTable(aIndex, kSpeakPunctuationKTable);
case PROP_SPEECH_RATE:
return SearchKeywordTable(aIndex, kSpeechRateKTable);
case PROP_STRESS:
break;
case PROP_TABLE_LAYOUT:
return SearchKeywordTable(aIndex, kTableLayoutKTable);
case PROP_TEXT_ALIGN:
return SearchKeywordTable(aIndex, kTextAlignKTable);
case PROP_TEXT_DECORATION:
return SearchKeywordTable(aIndex, kTextDecorationKTable);
case PROP_TEXT_INDENT:
case PROP_TEXT_SHADOW:
case PROP_TEXT_SHADOW_COLOR:
case PROP_TEXT_SHADOW_RADIUS:
case PROP_TEXT_SHADOW_X:
case PROP_TEXT_SHADOW_Y:
break;
case PROP_TEXT_TRANSFORM:
return SearchKeywordTable(aIndex, kTextTransformKTable);
case PROP_TOP:
break;
case PROP_UNICODE_BIDI:
return SearchKeywordTable(aIndex, kUnicodeBidiKTable);
case PROP_VERTICAL_ALIGN:
return SearchKeywordTable(aIndex, kVerticalAlignKTable);
case PROP_VISIBILITY:
return SearchKeywordTable(aIndex, kVisibilityKTable);
case PROP_VOICE_FAMILY:
break;
case PROP_VOLUME:
return SearchKeywordTable(aIndex, kVolumeKTable);
case PROP_WHITE_SPACE:
return SearchKeywordTable(aIndex, kWhitespaceKTable);
case PROP_WIDOWS:
case PROP_WIDTH:
case PROP_WORD_SPACING:
case PROP_Z_INDEX:
break;
default:
NS_ERROR("unsupported property");
break;
}
return nsnull;
}
const PRInt32 nsCSSProps::kHintTable[PROP_MAX] = {
NS_STYLE_HINT_AURAL, // PROP_AZIMUTH
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_REPEAT
NS_STYLE_HINT_VISUAL, // PROP_BACKGROUND_X_POSITION
NS_STYLE_HINT_VISUAL, // PROP_BACKGROUND_Y_POSITION
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_REFLOW, // PROP_BORDER_COLLAPSE
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_REFLOW, // PROP_BORDER_SPACING
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_BORDER_X_SPACING XXX
NS_STYLE_HINT_REFLOW, // PROP_BORDER_Y_SPACING XXX
NS_STYLE_HINT_REFLOW, // PROP_BOTTOM
NS_STYLE_HINT_REFLOW, // PROP_CAPTION_SIDE
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_FRAMECHANGE, // PROP_CONTENT
NS_STYLE_HINT_REFLOW, // PROP_COUNTER_INCREMENT
NS_STYLE_HINT_REFLOW, // PROP_COUNTER_RESET
NS_STYLE_HINT_AURAL, // PROP_CUE
NS_STYLE_HINT_AURAL, // PROP_CUE_AFTER
NS_STYLE_HINT_AURAL, // PROP_CUE_BEFORE
NS_STYLE_HINT_VISUAL, // PROP_CURSOR
NS_STYLE_HINT_REFLOW, // PROP_DIRECTION
NS_STYLE_HINT_FRAMECHANGE, // PROP_DISPLAY
NS_STYLE_HINT_AURAL, // PROP_ELEVATION
NS_STYLE_HINT_VISUAL, // PROP_EMPTY_CELLS
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_SIZE_ADJUST
NS_STYLE_HINT_REFLOW, // PROP_FONT_STRETCH
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_REFLOW, // PROP_MARKER_OFFSET
NS_STYLE_HINT_VISUAL, // PROP_MARKS
NS_STYLE_HINT_REFLOW, // PROP_MAX_HEIGHT
NS_STYLE_HINT_REFLOW, // PROP_MAX_WIDTH
NS_STYLE_HINT_REFLOW, // PROP_MIN_HEIGHT
NS_STYLE_HINT_REFLOW, // PROP_MIN_WIDTH
NS_STYLE_HINT_VISUAL, // PROP_OPACITY
NS_STYLE_HINT_REFLOW, // PROP_ORPHANS
NS_STYLE_HINT_VISUAL, // PROP_OUTLINE
NS_STYLE_HINT_VISUAL, // PROP_OUTLINE_COLOR
NS_STYLE_HINT_VISUAL, // PROP_OUTLINE_STYLE
NS_STYLE_HINT_VISUAL, // PROP_OUTLINE_WIDTH
NS_STYLE_HINT_FRAMECHANGE, // 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_REFLOW, // PROP_PAGE
NS_STYLE_HINT_REFLOW, // PROP_PAGE_BREAK_AFTER
NS_STYLE_HINT_REFLOW, // PROP_PAGE_BREAK_BEFORE
NS_STYLE_HINT_REFLOW, // PROP_PAGE_BREAK_INSIDE
NS_STYLE_HINT_AURAL, // PROP_PAUSE
NS_STYLE_HINT_AURAL, // PROP_PAUSE_AFTER
NS_STYLE_HINT_AURAL, // PROP_PAUSE_BEFORE
NS_STYLE_HINT_AURAL, // PROP_PITCH
NS_STYLE_HINT_AURAL, // PROP_PITCH_RANGE
NS_STYLE_HINT_AURAL, // PROP_PLAY_DURING
NS_STYLE_HINT_AURAL, // PROP_PLAY_DURING_FLAGS
NS_STYLE_HINT_FRAMECHANGE, // PROP_POSITION
NS_STYLE_HINT_REFLOW, // PROP_QUOTES
NS_STYLE_HINT_REFLOW, // PROP_QUOTES_CLOSE
NS_STYLE_HINT_REFLOW, // PROP_QUOTES_OPEN
NS_STYLE_HINT_AURAL, // PROP_RICHNESS
NS_STYLE_HINT_REFLOW, // PROP_RIGHT
NS_STYLE_HINT_REFLOW, // PROP_SIZE
NS_STYLE_HINT_REFLOW, // PROP_SIZE_HEIGHT
NS_STYLE_HINT_REFLOW, // PROP_SIZE_WIDTH
NS_STYLE_HINT_AURAL, // PROP_SPEAK
NS_STYLE_HINT_AURAL, // PROP_SPEAK_HEADER
NS_STYLE_HINT_AURAL, // PROP_SPEAK_NUMERAL
NS_STYLE_HINT_AURAL, // PROP_SPEAK_PUNCTUATION
NS_STYLE_HINT_AURAL, // PROP_SPEECH_RATE
NS_STYLE_HINT_AURAL, // PROP_STRESS
NS_STYLE_HINT_REFLOW, // PROP_TABLE_LAYOUT
NS_STYLE_HINT_REFLOW, // PROP_TEXT_ALIGN
NS_STYLE_HINT_VISUAL, // PROP_TEXT_DECORATION
NS_STYLE_HINT_REFLOW, // PROP_TEXT_INDENT
NS_STYLE_HINT_VISUAL, // PROP_TEXT_SHADOW
NS_STYLE_HINT_VISUAL, // PROP_TEXT_SHADOW_COLOR
NS_STYLE_HINT_VISUAL, // PROP_TEXT_SHADOW_RADIUS
NS_STYLE_HINT_VISUAL, // PROP_TEXT_SHADOW_X
NS_STYLE_HINT_VISUAL, // PROP_TEXT_SHADOW_Y
NS_STYLE_HINT_REFLOW, // PROP_TEXT_TRANSFORM
NS_STYLE_HINT_REFLOW, // PROP_TOP
NS_STYLE_HINT_REFLOW, // PROP_UNICODE_BIDI
NS_STYLE_HINT_REFLOW, // PROP_VERTICAL_ALIGN
NS_STYLE_HINT_REFLOW, // PROP_VISIBILITY (for collapse)
NS_STYLE_HINT_AURAL, // PROP_VOICE_FAMILY
NS_STYLE_HINT_AURAL, // PROP_VOLUME
NS_STYLE_HINT_REFLOW, // PROP_WHITE_SPACE
NS_STYLE_HINT_REFLOW, // PROP_WIDOWS
NS_STYLE_HINT_REFLOW, // PROP_WIDTH
NS_STYLE_HINT_REFLOW, // PROP_WORD_SPACING
NS_STYLE_HINT_REFLOW // PROP_Z_INDEX (XXX visual?)
};