in a new class nsMarkupDocument. The point of nsMarkupDocument is to hold methods which are common to HTML and XML but not relevant to the base nsDocument class. 2) Added Selection support methods for Rod. 3) Added LookupProperty to nsCSSProperty: Given a property ID and Property Index returns back the string representation of the property. This was need to convert CSSValues back to strings for saving. TODO: Make sure that our URL Information stored in a CSSDeclaration contains enough information to return it to it's original form on output. git-svn-id: svn://10.0.0.236/trunk@5855 18797224-902f-48f8-a5cc-f745e15eee43
781 lines
22 KiB
C++
781 lines
22 KiB
C++
|
|
/*
|
|
** This is a generated file, do not edit it. This file is created by
|
|
** genhash.pl
|
|
*/
|
|
|
|
#include "plstr.h"
|
|
#include "nsCSSProps.h"
|
|
#include "nsCSSKeywordIDs.h"
|
|
#include "nsStyleConsts.h"
|
|
#include "nsCSSKeywords.h"
|
|
|
|
#define TOTAL_KEYWORDS 80
|
|
#define MIN_WORD_LENGTH 3
|
|
#define MAX_WORD_LENGTH 21
|
|
#define MIN_HASH_VALUE 6
|
|
#define MAX_HASH_VALUE 261
|
|
/* maximum key range = 256, duplicates = 0 */
|
|
|
|
|
|
struct StaticNameTable {
|
|
char* tag;
|
|
PRInt32 id;
|
|
};
|
|
|
|
static const unsigned char kLowerLookup[256] = {
|
|
0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,
|
|
16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,
|
|
32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,
|
|
48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,
|
|
64,
|
|
97,98,99,100,101,102,103,104,105,106,107,108,109,
|
|
110,111,112,113,114,115,116,117,118,119,120,121,122,
|
|
|
|
91, 92, 93, 94, 95, 96, 97, 98, 99,100,101,102,103,104,105,106,107,108,109,110,111,
|
|
112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,
|
|
|
|
128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,
|
|
144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,
|
|
160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,
|
|
176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,
|
|
192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,
|
|
208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,
|
|
224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,
|
|
240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255
|
|
};
|
|
|
|
#define MYLOWER(x) kLowerLookup[((x) & 0x7f)]
|
|
|
|
/**
|
|
* Map a name to an ID or -1
|
|
*/
|
|
PRInt32 nsCSSProps::LookupName(const char* str)
|
|
{
|
|
static unsigned short asso_values[] =
|
|
{
|
|
262, 262, 262, 262, 262, 262, 262, 262, 262, 262,
|
|
262, 262, 262, 262, 262, 262, 262, 262, 262, 262,
|
|
262, 262, 262, 262, 262, 262, 262, 262, 262, 262,
|
|
262, 262, 262, 262, 262, 262, 262, 262, 262, 262,
|
|
262, 262, 262, 262, 262, 65, 262, 262, 262, 262,
|
|
262, 262, 262, 262, 262, 262, 262, 262, 262, 262,
|
|
262, 262, 262, 262, 262, 262, 262, 262, 262, 262,
|
|
262, 262, 262, 262, 262, 262, 262, 262, 262, 262,
|
|
262, 262, 262, 262, 262, 262, 262, 262, 262, 262,
|
|
262, 262, 262, 262, 262, 262, 262, 45, 0, 85,
|
|
100, 25, 5, 0, 80, 0, 262, 262, 25, 90,
|
|
0, 0, 5, 262, 0, 65, 40, 20, 0, 80,
|
|
10, 25, 5, 262, 262, 262, 262, 262,
|
|
};
|
|
static unsigned char lengthtable[] =
|
|
{
|
|
0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 6, 12, 8,
|
|
0, 10, 0, 0, 0, 19, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 19, 0, 11, 0, 3, 4, 0, 11, 0, 0, 0, 0,
|
|
0, 7, 18, 0, 0, 0, 12, 0, 14, 0, 11, 17, 0, 19,
|
|
0, 0, 0, 0, 0, 5, 21, 7, 0, 0, 0, 0, 17, 18,
|
|
0, 0, 16, 0, 0, 0, 5, 21, 12, 0, 4, 0, 0, 12,
|
|
0, 19, 0, 16, 17, 13, 9, 10, 16, 17, 0, 0, 0, 6,
|
|
7, 8, 19, 5, 11, 0, 0, 4, 10, 0, 0, 0, 14, 10,
|
|
0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 11, 0, 18, 0,
|
|
0, 6, 12, 0, 0, 0, 16, 0, 0, 9, 10, 21, 0, 0,
|
|
0, 10, 11, 12, 0, 0, 10, 0, 17, 8, 0, 5, 0, 12,
|
|
0, 0, 15, 0, 12, 0, 0, 0, 16, 7, 0, 0, 0, 0,
|
|
0, 13, 9, 0, 11, 0, 0, 0, 0, 6, 0, 0, 14, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14,
|
|
0, 11, 0, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0,
|
|
0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 11,
|
|
};
|
|
static struct StaticNameTable wordlist[] =
|
|
{
|
|
{"",}, {"",}, {"",}, {"",}, {"",}, {"",},
|
|
{"border", 9},
|
|
{"",}, {"",}, {"",}, {"",},
|
|
{"filter", 40},
|
|
{"border-color", 14},
|
|
{"position", 68},
|
|
{"",},
|
|
{"border-top", 24},
|
|
{"",}, {"",}, {"",},
|
|
{"border-bottom-color", 11},
|
|
{"",}, {"",}, {"",}, {"",}, {"",}, {"",}, {"",}, {"",}, {"",},
|
|
{"",}, {"",}, {"",}, {"",}, {"",}, {"",},
|
|
{"visibility", 75},
|
|
{"",}, {"",}, {"",}, {"",}, {"",}, {"",}, {"",}, {"",},
|
|
{"border-bottom-style", 12},
|
|
{"",},
|
|
{"font-family", 43},
|
|
{"",},
|
|
{"top", 73},
|
|
{"font", 42},
|
|
{"",},
|
|
{"border-left", 15},
|
|
{"",}, {"",}, {"",}, {"",}, {"",},
|
|
{"padding", 63},
|
|
{"border-right-color", 20},
|
|
{"",}, {"",}, {"",},
|
|
{"border-style", 23},
|
|
{"",},
|
|
{"letter-spacing", 50},
|
|
{"",},
|
|
{"padding-top", 67},
|
|
{"background-filter", 3},
|
|
{"",},
|
|
{"background-position", 5},
|
|
{"",}, {"",}, {"",}, {"",}, {"",},
|
|
{"float", 41},
|
|
{"background-x-position", 6},
|
|
{"opacity", 61},
|
|
{"",}, {"",}, {"",}, {"",},
|
|
{"border-left-color", 16},
|
|
{"border-right-style", 21},
|
|
{"",}, {"",},
|
|
{"background-image", 4},
|
|
{"",}, {"",}, {"",},
|
|
{"color", 35},
|
|
{"background-y-position", 7},
|
|
{"border-right", 19},
|
|
{"",},
|
|
{"left", 49},
|
|
{"",}, {"",},
|
|
{"font-variant", 46},
|
|
{"",},
|
|
{"border-bottom-width", 13},
|
|
{"",},
|
|
{"border-top-color", 25},
|
|
{"background-repeat", 8},
|
|
{"border-bottom", 10},
|
|
{"font-size", 44},
|
|
{"font-style", 45},
|
|
{"border-top-style", 26},
|
|
{"border-left-style", 17},
|
|
{"",}, {"",}, {"",},
|
|
{"cursor", 36},
|
|
{"z-index", 79},
|
|
{"overflow", 62},
|
|
{"list-style-position", 54},
|
|
{"clear", 29},
|
|
{"text-indent", 71},
|
|
{"",}, {"",},
|
|
{"clip", 30},
|
|
{"text-align", 69},
|
|
{"",}, {"",}, {"",},
|
|
{"vertical-align", 74},
|
|
{"list-style", 52},
|
|
{"",}, {"",}, {"",}, {"",}, {"",},
|
|
{"list-style-image", 53},
|
|
{"",}, {"",}, {"",}, {"",},
|
|
{"font-weight", 47},
|
|
{"",},
|
|
{"border-right-width", 22},
|
|
{"",}, {"",},
|
|
{"margin", 56},
|
|
{"padding-left", 65},
|
|
{"",}, {"",}, {"",},
|
|
{"background-color", 2},
|
|
{"",}, {"",},
|
|
{"direction", 38},
|
|
{"margin-top", 60},
|
|
{"background-attachment", 1},
|
|
{"",}, {"",}, {"",},
|
|
{"background", 0},
|
|
{"line-height", 51},
|
|
{"word-spacing", 78},
|
|
{"",}, {"",},
|
|
{"clip-right", 33},
|
|
{"",},
|
|
{"border-left-width", 18},
|
|
{"clip-top", 34},
|
|
{"",},
|
|
{"width", 77},
|
|
{"",},
|
|
{"cursor-image", 37},
|
|
{"",}, {"",},
|
|
{"list-style-type", 55},
|
|
{"",},
|
|
{"border-width", 28},
|
|
{"",}, {"",}, {"",},
|
|
{"border-top-width", 27},
|
|
{"display", 39},
|
|
{"",}, {"",}, {"",}, {"",}, {"",},
|
|
{"padding-right", 66},
|
|
{"clip-left", 32},
|
|
{"",},
|
|
{"margin-left", 58},
|
|
{"",}, {"",}, {"",}, {"",},
|
|
{"height", 48},
|
|
{"",}, {"",},
|
|
{"padding-bottom", 64},
|
|
{"",}, {"",}, {"",}, {"",}, {"",}, {"",}, {"",}, {"",}, {"",},
|
|
{"",}, {"",}, {"",}, {"",}, {"",},
|
|
{"text-transform", 72},
|
|
{"",},
|
|
{"clip-bottom", 31},
|
|
{"",}, {"",}, {"",}, {"",}, {"",}, {"",}, {"",}, {"",},
|
|
{"text-decoration", 70},
|
|
{"",}, {"",}, {"",}, {"",}, {"",}, {"",},
|
|
{"margin-right", 59},
|
|
{"",}, {"",}, {"",}, {"",}, {"",}, {"",}, {"",}, {"",}, {"",},
|
|
{"",},
|
|
{"margin-bottom", 57},
|
|
{"",}, {"",}, {"",}, {"",}, {"",}, {"",}, {"",}, {"",}, {"",},
|
|
{"",}, {"",}, {"",}, {"",}, {"",}, {"",}, {"",}, {"",}, {"",},
|
|
{"",}, {"",}, {"",}, {"",},
|
|
{"white-space", 76},
|
|
};
|
|
|
|
if (str != NULL) {
|
|
int len = PL_strlen(str);
|
|
if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH) {
|
|
register int hval = len;
|
|
|
|
switch (hval)
|
|
{
|
|
default:
|
|
case 12:
|
|
hval += asso_values[MYLOWER(str[11])];
|
|
case 11:
|
|
case 10:
|
|
case 9:
|
|
case 8:
|
|
case 7:
|
|
case 6:
|
|
hval += asso_values[MYLOWER(str[5])];
|
|
case 5:
|
|
case 4:
|
|
case 3:
|
|
case 2:
|
|
hval += asso_values[MYLOWER(str[1])];
|
|
case 1:
|
|
hval += asso_values[MYLOWER(str[0])];
|
|
break;
|
|
}
|
|
hval += asso_values[MYLOWER(str[len - 1])];
|
|
if (hval <= MAX_HASH_VALUE && hval >= MIN_HASH_VALUE) {
|
|
if (len == lengthtable[hval]) {
|
|
register const char *tag = wordlist[hval].tag;
|
|
|
|
/*
|
|
** While not at the end of the string, if they ever differ
|
|
** they are not equal. We know "tag" is already lower case.
|
|
*/
|
|
while ((*tag != '\0')&&(*str != '\0')) {
|
|
if (*tag != (char) MYLOWER(*str)) {
|
|
return -1;
|
|
}
|
|
tag++;
|
|
str++;
|
|
}
|
|
|
|
/*
|
|
** One of the strings has ended, if they are both ended, then they
|
|
** are equal, otherwise not.
|
|
*/
|
|
if ((*tag == '\0')&&(*str == '\0')) {
|
|
return wordlist[hval].id;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
return -1;
|
|
}
|
|
|
|
const nsCSSProps::NameTableEntry nsCSSProps::kNameTable[] = {
|
|
{ "background", 0 },
|
|
{ "background-attachment", 1 },
|
|
{ "background-color", 2 },
|
|
{ "background-filter", 3 },
|
|
{ "background-image", 4 },
|
|
{ "background-position", 5 },
|
|
{ "background-x-position", 6 },
|
|
{ "background-y-position", 7 },
|
|
{ "background-repeat", 8 },
|
|
{ "border", 9 },
|
|
{ "border-bottom", 10 },
|
|
{ "border-bottom-color", 11 },
|
|
{ "border-bottom-style", 12 },
|
|
{ "border-bottom-width", 13 },
|
|
{ "border-color", 14 },
|
|
{ "border-left", 15 },
|
|
{ "border-left-color", 16 },
|
|
{ "border-left-style", 17 },
|
|
{ "border-left-width", 18 },
|
|
{ "border-right", 19 },
|
|
{ "border-right-color", 20 },
|
|
{ "border-right-style", 21 },
|
|
{ "border-right-width", 22 },
|
|
{ "border-style", 23 },
|
|
{ "border-top", 24 },
|
|
{ "border-top-color", 25 },
|
|
{ "border-top-style", 26 },
|
|
{ "border-top-width", 27 },
|
|
{ "border-width", 28 },
|
|
{ "clear", 29 },
|
|
{ "clip", 30 },
|
|
{ "clip-bottom", 31 },
|
|
{ "clip-left", 32 },
|
|
{ "clip-right", 33 },
|
|
{ "clip-top", 34 },
|
|
{ "color", 35 },
|
|
{ "cursor", 36 },
|
|
{ "cursor-image", 37 },
|
|
{ "direction", 38 },
|
|
{ "display", 39 },
|
|
{ "filter", 40 },
|
|
{ "float", 41 },
|
|
{ "font", 42 },
|
|
{ "font-family", 43 },
|
|
{ "font-size", 44 },
|
|
{ "font-style", 45 },
|
|
{ "font-variant", 46 },
|
|
{ "font-weight", 47 },
|
|
{ "height", 48 },
|
|
{ "left", 49 },
|
|
{ "letter-spacing", 50 },
|
|
{ "line-height", 51 },
|
|
{ "list-style", 52 },
|
|
{ "list-style-image", 53 },
|
|
{ "list-style-position", 54 },
|
|
{ "list-style-type", 55 },
|
|
{ "margin", 56 },
|
|
{ "margin-bottom", 57 },
|
|
{ "margin-left", 58 },
|
|
{ "margin-right", 59 },
|
|
{ "margin-top", 60 },
|
|
{ "opacity", 61 },
|
|
{ "overflow", 62 },
|
|
{ "padding", 63 },
|
|
{ "padding-bottom", 64 },
|
|
{ "padding-left", 65 },
|
|
{ "padding-right", 66 },
|
|
{ "padding-top", 67 },
|
|
{ "position", 68 },
|
|
{ "text-align", 69 },
|
|
{ "text-decoration", 70 },
|
|
{ "text-indent", 71 },
|
|
{ "text-transform", 72 },
|
|
{ "top", 73 },
|
|
{ "vertical-align", 74 },
|
|
{ "visibility", 75 },
|
|
{ "white-space", 76 },
|
|
{ "width", 77 },
|
|
{ "word-spacing", 78 },
|
|
{ "z-index", 79 },
|
|
};
|
|
|
|
|
|
|
|
|
|
// 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);
|
|
break;
|
|
|
|
case PROP_BORDER_BOTTOM_WIDTH:
|
|
case PROP_BORDER_LEFT_WIDTH:
|
|
case PROP_BORDER_RIGHT_WIDTH:
|
|
case PROP_BORDER_TOP_WIDTH:
|
|
return SearchKeywordTable(aIndex,kBorderWidthKTable);
|
|
break;
|
|
|
|
case PROP_BORDER_WIDTH:
|
|
case PROP_CLEAR:
|
|
return SearchKeywordTable(aIndex,kClearKTable);
|
|
break;
|
|
|
|
case PROP_CLIP:
|
|
case PROP_COLOR:
|
|
break;
|
|
|
|
case PROP_CURSOR:
|
|
return SearchKeywordTable(aIndex,kCursorKTable);
|
|
break;
|
|
|
|
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);
|
|
break;
|
|
|
|
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);
|
|
break;
|
|
|
|
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);
|
|
break;
|
|
|
|
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);
|
|
break;
|
|
|
|
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;
|
|
}
|