switch to preprocessor for code generation

This commit is contained in:
peterl%netscape.com 1999-07-18 00:32:32 +00:00
Родитель 6de833e76e
Коммит 18bb385451
25 изменённых файлов: 5421 добавлений и 4905 удалений

Просмотреть файл

@ -0,0 +1,265 @@
/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*-
*
* The contents of this file are subject to the Netscape Public License
* Version 1.0 (the "NPL"); you may not use this file except in
* compliance with the NPL. You may obtain a copy of the NPL at
* http://www.mozilla.org/NPL/
*
* Software distributed under the NPL is distributed on an "AS IS" basis,
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
* for the specific language governing rights and limitations under the
* NPL.
*
* The Initial Developer of this code under the NPL is Netscape
* Communications Corporation. Portions created by Netscape are
* Copyright (C) 1999 Netscape Communications Corporation. All Rights
* Reserved.
*/
/******
This file contains the list of all parsed CSS keywords
See nsCSSKeywords.h for access to the enum values for keywords
It is designed to be used as inline input to nsCSSKeywords.cpp *only*
through the magic of C preprocessing.
All entires must be enclosed in the macro CSS_KEY which will have cruel
and unusual things done to it
It is recommended (but not strictly necessary) to keep all entries
in alphabetical order
Underbars in keywords are automagically converted into hyphens
******/
CSS_KEY(_moz_bg_inset)
CSS_KEY(_moz_bg_outset)
CSS_KEY(_moz_pre_wrap)
CSS_KEY(_moz_center)
CSS_KEY(_moz_right)
CSS_KEY(above)
CSS_KEY(absolute)
CSS_KEY(activate_next)
CSS_KEY(all)
CSS_KEY(always)
CSS_KEY(any)
CSS_KEY(armenian)
CSS_KEY(auto)
CSS_KEY(avoid)
CSS_KEY(baseline)
CSS_KEY(behind)
CSS_KEY(below)
CSS_KEY(bidi_override)
CSS_KEY(blink)
CSS_KEY(block)
CSS_KEY(bold)
CSS_KEY(bolder)
CSS_KEY(border_box)
CSS_KEY(both)
CSS_KEY(bottom)
CSS_KEY(capitalize)
CSS_KEY(caption)
CSS_KEY(center)
CSS_KEY(center_left)
CSS_KEY(center_right)
CSS_KEY(ch)
CSS_KEY(circle)
CSS_KEY(cjk_ideographic)
CSS_KEY(close_quote)
CSS_KEY(cm)
CSS_KEY(code)
CSS_KEY(collapse)
CSS_KEY(compact)
CSS_KEY(condensed)
CSS_KEY(content_box)
CSS_KEY(continuous)
CSS_KEY(crop)
CSS_KEY(cross)
CSS_KEY(crosshair)
CSS_KEY(dashed)
CSS_KEY(decimal)
CSS_KEY(decimal_leading_zero)
CSS_KEY(default)
CSS_KEY(deg)
CSS_KEY(digits)
CSS_KEY(disabled)
CSS_KEY(disc)
CSS_KEY(dotted)
CSS_KEY(double)
CSS_KEY(e_resize)
CSS_KEY(em)
CSS_KEY(embed)
CSS_KEY(enabled)
CSS_KEY(ex)
CSS_KEY(expanded)
CSS_KEY(extra_condensed)
CSS_KEY(extra_expanded)
CSS_KEY(far_left)
CSS_KEY(far_right)
CSS_KEY(fast)
CSS_KEY(faster)
CSS_KEY(fixed)
CSS_KEY(georgian)
CSS_KEY(grad)
CSS_KEY(groove)
CSS_KEY(hebrew)
CSS_KEY(help)
CSS_KEY(hidden)
CSS_KEY(hide)
CSS_KEY(high)
CSS_KEY(higher)
CSS_KEY(hiragana)
CSS_KEY(hiragana_iroha)
CSS_KEY(horizontal)
CSS_KEY(hz)
CSS_KEY(icon)
CSS_KEY(in)
CSS_KEY(inherit)
CSS_KEY(inline)
CSS_KEY(inline_block)
CSS_KEY(inline_table)
CSS_KEY(inset)
CSS_KEY(inside)
CSS_KEY(invert)
CSS_KEY(italic)
CSS_KEY(justify)
CSS_KEY(katakana)
CSS_KEY(katakana_iroha)
CSS_KEY(khz)
CSS_KEY(landscape)
CSS_KEY(large)
CSS_KEY(larger)
CSS_KEY(left)
CSS_KEY(left_side)
CSS_KEY(leftwards)
CSS_KEY(level)
CSS_KEY(lighter)
CSS_KEY(line)
CSS_KEY(line_through)
CSS_KEY(list_item)
CSS_KEY(loud)
CSS_KEY(low)
CSS_KEY(lower)
CSS_KEY(lower_alpha)
CSS_KEY(lower_greek)
CSS_KEY(lower_latin)
CSS_KEY(lower_roman)
CSS_KEY(lowercase)
CSS_KEY(ltr)
CSS_KEY(margin_box)
CSS_KEY(marker)
CSS_KEY(medium)
CSS_KEY(menu)
CSS_KEY(message_box)
CSS_KEY(middle)
CSS_KEY(mix)
CSS_KEY(mm)
CSS_KEY(move)
CSS_KEY(ms)
CSS_KEY(n_resize)
CSS_KEY(narrower)
CSS_KEY(ne_resize)
CSS_KEY(no_close_quote)
CSS_KEY(no_open_quote)
CSS_KEY(no_repeat)
CSS_KEY(none)
CSS_KEY(normal)
CSS_KEY(noshade)
CSS_KEY(nowrap)
CSS_KEY(nw_resize)
CSS_KEY(oblique)
CSS_KEY(once)
CSS_KEY(open_quote)
CSS_KEY(outset)
CSS_KEY(outside)
CSS_KEY(overline)
CSS_KEY(padding_box)
CSS_KEY(paragraph)
CSS_KEY(pc)
CSS_KEY(pointer)
CSS_KEY(portrait)
CSS_KEY(pre)
CSS_KEY(pt)
CSS_KEY(px)
CSS_KEY(rad)
CSS_KEY(read_only)
CSS_KEY(read_write)
CSS_KEY(relative)
CSS_KEY(repeat)
CSS_KEY(repeat_x)
CSS_KEY(repeat_y)
CSS_KEY(ridge)
CSS_KEY(right)
CSS_KEY(right_side)
CSS_KEY(rightwards)
CSS_KEY(rtl)
CSS_KEY(run_in)
CSS_KEY(s)
CSS_KEY(s_resize)
CSS_KEY(scroll)
CSS_KEY(se_resize)
CSS_KEY(select)
CSS_KEY(select_next)
CSS_KEY(semi_condensed)
CSS_KEY(semi_expanded)
CSS_KEY(separate)
CSS_KEY(show)
CSS_KEY(silent)
CSS_KEY(slow)
CSS_KEY(slower)
CSS_KEY(small)
CSS_KEY(small_caps)
CSS_KEY(small_caption)
CSS_KEY(smaller)
CSS_KEY(soft)
CSS_KEY(solid)
CSS_KEY(spell_out)
CSS_KEY(square)
CSS_KEY(static)
CSS_KEY(status_bar)
CSS_KEY(sub)
CSS_KEY(super)
CSS_KEY(sw_resize)
CSS_KEY(table)
CSS_KEY(table_caption)
CSS_KEY(table_cell)
CSS_KEY(table_column)
CSS_KEY(table_column_group)
CSS_KEY(table_footer_group)
CSS_KEY(table_header_group)
CSS_KEY(table_row)
CSS_KEY(table_row_group)
CSS_KEY(text)
CSS_KEY(text_bottom)
CSS_KEY(text_top)
CSS_KEY(thick)
CSS_KEY(thin)
CSS_KEY(toggle)
CSS_KEY(top)
CSS_KEY(transparent)
CSS_KEY(ultra_condensed)
CSS_KEY(ultra_expanded)
CSS_KEY(underline)
CSS_KEY(upper_alpha)
CSS_KEY(upper_latin)
CSS_KEY(upper_roman)
CSS_KEY(uppercase)
CSS_KEY(vertical)
CSS_KEY(visible)
CSS_KEY(w_resize)
CSS_KEY(wait)
CSS_KEY(wider)
CSS_KEY(write_only)
CSS_KEY(x_fast)
CSS_KEY(x_high)
CSS_KEY(x_large)
CSS_KEY(x_loud)
CSS_KEY(x_low)
CSS_KEY(x_slow)
CSS_KEY(x_small)
CSS_KEY(x_soft)
CSS_KEY(xx_large)
CSS_KEY(xx_small)

Просмотреть файл

@ -19,22 +19,36 @@
#define nsCSSKeywords_h___
#include "nslayout.h"
#include "nsCSSKeywordIDs.h"
struct nsStr;
class nsCString;
/*
Declare the enum list using the magic of preprocessing
enum values are "eCSSKeyword_foo" (where foo is the keyword)
To change the list of keywords, see nsCSSKeywordList.h
*/
#define CSS_KEY(_key) eCSSKeyword_##_key,
enum nsCSSKeyword {
eCSSKeyword_UNKNOWN = -1,
#include "nsCSSKeywordList.h"
eCSSKeyword_COUNT
};
#undef CSS_KEY
class NS_LAYOUT nsCSSKeywords {
public:
// Given a null terminated string of 7 bit characters, return the
// tag id (see nsHTMLTagIDs.h) for the tag or -1 if the tag is not
// known. The lookup function uses a perfect hash.
static PRInt32 LookupName(const char* str);
static void AddRefTable(void);
static void ReleaseTable(void);
struct NameTableEntry {
const char* name;
PRInt32 id;
};
// Given a keyword string, return the enum value
static nsCSSKeyword LookupKeyword(const nsStr& aKeyword);
// A table whose index is the tag id (from LookupName)
static const NameTableEntry kNameTable[];
// Given a keyword enum, get the string value
static const nsCString& GetStringValue(nsCSSKeyword aKeyword);
};
#endif /* nsCSSKeywords_h___ */

Просмотреть файл

@ -0,0 +1,191 @@
/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*-
*
* The contents of this file are subject to the Netscape Public License
* Version 1.0 (the "NPL"); you may not use this file except in
* compliance with the NPL. You may obtain a copy of the NPL at
* http://www.mozilla.org/NPL/
*
* Software distributed under the NPL is distributed on an "AS IS" basis,
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
* for the specific language governing rights and limitations under the
* NPL.
*
* The Initial Developer of this code under the NPL is Netscape
* Communications Corporation. Portions created by Netscape are
* Copyright (C) 1999 Netscape Communications Corporation. All Rights
* Reserved.
*/
/******
This file contains the list of all parsed CSS properties
See nsCSSProps.h for access to the enum values for properties
It is designed to be used as inline input to nsCSSProps.cpp *only*
through the magic of C preprocessing.
All entires must be enclosed in the macro CSS_PROP which will have cruel
and unusual things done to it
It is recommended (but not strictly necessary) to keep all entries
in alphabetical order
Underbars in properties are automagically converted into hyphens
The first argument to CSS_PROP is both the enum identifier of the property
and the string value
The second argument is the style impact resultant in a change to the property
******/
CSS_PROP(_moz_border_radius, VISUAL)
CSS_PROP(azimuth, AURAL)
CSS_PROP(auto_select, CONTENT)
CSS_PROP(auto_tab, CONTENT)
CSS_PROP(background, VISUAL)
CSS_PROP(background_attachment, VISUAL)
CSS_PROP(background_color, VISUAL)
CSS_PROP(background_image, VISUAL)
CSS_PROP(background_position, VISUAL)
CSS_PROP(background_repeat, VISUAL)
CSS_PROP(background_x_position, VISUAL)
CSS_PROP(background_y_position, VISUAL)
CSS_PROP(border, REFLOW)
CSS_PROP(border_bottom, REFLOW)
CSS_PROP(border_bottom_color, VISUAL)
CSS_PROP(border_bottom_style, REFLOW) // on/off will need reflow
CSS_PROP(border_bottom_width, REFLOW)
CSS_PROP(border_collapse, REFLOW)
CSS_PROP(border_color, VISUAL)
CSS_PROP(border_left, REFLOW)
CSS_PROP(border_left_color, VISUAL)
CSS_PROP(border_left_style, REFLOW) // on/off will need reflow
CSS_PROP(border_left_width, REFLOW)
CSS_PROP(border_right, REFLOW)
CSS_PROP(border_right_color, VISUAL)
CSS_PROP(border_right_style, REFLOW) // on/off will need reflow
CSS_PROP(border_right_width, REFLOW)
CSS_PROP(border_spacing, REFLOW)
CSS_PROP(border_style, REFLOW) // on/off will need reflow
CSS_PROP(border_top, REFLOW)
CSS_PROP(border_top_color, VISUAL)
CSS_PROP(border_top_style, REFLOW) // on/off will need reflow
CSS_PROP(border_top_width, REFLOW)
CSS_PROP(border_width, REFLOW)
CSS_PROP(border_x_spacing, REFLOW)
CSS_PROP(border_y_spacing, REFLOW)
CSS_PROP(bottom, REFLOW)
CSS_PROP(box_sizing, REFLOW)
CSS_PROP(caption_side, REFLOW)
CSS_PROP(clear, REFLOW)
CSS_PROP(clip, VISUAL)
CSS_PROP(clip_bottom, VISUAL)
CSS_PROP(clip_left, VISUAL)
CSS_PROP(clip_right, VISUAL)
CSS_PROP(clip_top, VISUAL)
CSS_PROP(color, VISUAL)
CSS_PROP(content, FRAMECHANGE)
CSS_PROP(counter_increment, REFLOW)
CSS_PROP(counter_reset, REFLOW)
CSS_PROP(cue, AURAL)
CSS_PROP(cue_after, AURAL)
CSS_PROP(cue_before, AURAL)
CSS_PROP(cursor, VISUAL)
CSS_PROP(direction, REFLOW)
CSS_PROP(display, FRAMECHANGE)
CSS_PROP(elevation, AURAL)
CSS_PROP(empty_cells, VISUAL)
CSS_PROP(float, FRAMECHANGE)
CSS_PROP(float_edge, REFLOW)
CSS_PROP(font, REFLOW)
CSS_PROP(font_family, REFLOW)
CSS_PROP(font_size, REFLOW)
CSS_PROP(font_size_adjust, REFLOW)
CSS_PROP(font_stretch, REFLOW)
CSS_PROP(font_style, REFLOW)
CSS_PROP(font_variant, REFLOW)
CSS_PROP(font_weight, REFLOW)
CSS_PROP(height, REFLOW)
CSS_PROP(key_equivalent, CONTENT) // This will need some other notification, but what?
CSS_PROP(left, REFLOW)
CSS_PROP(letter_spacing, REFLOW)
CSS_PROP(line_height, REFLOW)
CSS_PROP(list_style, REFLOW)
CSS_PROP(list_style_image, REFLOW)
CSS_PROP(list_style_position, REFLOW)
CSS_PROP(list_style_type, REFLOW)
CSS_PROP(margin, REFLOW)
CSS_PROP(margin_bottom, REFLOW)
CSS_PROP(margin_left, REFLOW)
CSS_PROP(margin_right, REFLOW)
CSS_PROP(margin_top, REFLOW)
CSS_PROP(marker_offset, REFLOW)
CSS_PROP(marks, VISUAL)
CSS_PROP(max_height, REFLOW)
CSS_PROP(max_width, REFLOW)
CSS_PROP(min_height, REFLOW)
CSS_PROP(min_width, REFLOW)
CSS_PROP(modify_content, FRAMECHANGE)
CSS_PROP(opacity, VISUAL)
CSS_PROP(orphans, REFLOW)
CSS_PROP(outline, VISUAL)
CSS_PROP(outline_color, VISUAL)
CSS_PROP(outline_style, VISUAL)
CSS_PROP(outline_width, VISUAL)
CSS_PROP(overflow, FRAMECHANGE)
CSS_PROP(padding, REFLOW)
CSS_PROP(padding_bottom, REFLOW)
CSS_PROP(padding_left, REFLOW)
CSS_PROP(padding_right, REFLOW)
CSS_PROP(padding_top, REFLOW)
CSS_PROP(page, REFLOW)
CSS_PROP(page_break_after, REFLOW)
CSS_PROP(page_break_before, REFLOW)
CSS_PROP(page_break_inside, REFLOW)
CSS_PROP(pause, AURAL)
CSS_PROP(pause_after, AURAL)
CSS_PROP(pause_before, AURAL)
CSS_PROP(pitch, AURAL)
CSS_PROP(pitch_range, AURAL)
CSS_PROP(play_during, AURAL)
CSS_PROP(play_during_flags, AURAL)
CSS_PROP(position, FRAMECHANGE)
CSS_PROP(quotes, REFLOW)
CSS_PROP(quotes_close, REFLOW)
CSS_PROP(quotes_open, REFLOW)
CSS_PROP(resizer, FRAMECHANGE)
CSS_PROP(richness, AURAL)
CSS_PROP(right, REFLOW)
CSS_PROP(selection_style, CONTENT)
CSS_PROP(size, REFLOW)
CSS_PROP(size_height, REFLOW)
CSS_PROP(size_width, REFLOW)
CSS_PROP(speak, AURAL)
CSS_PROP(speak_header, AURAL)
CSS_PROP(speak_numeral, AURAL)
CSS_PROP(speak_punctuation, AURAL)
CSS_PROP(speech_rate, AURAL)
CSS_PROP(stress, AURAL)
CSS_PROP(table_layout, REFLOW)
CSS_PROP(text_align, REFLOW)
CSS_PROP(text_decoration, VISUAL)
CSS_PROP(text_indent, REFLOW)
CSS_PROP(text_shadow, VISUAL)
CSS_PROP(text_shadow_color, VISUAL)
CSS_PROP(text_shadow_radius, VISUAL)
CSS_PROP(text_shadow_x, VISUAL)
CSS_PROP(text_shadow_y, VISUAL)
CSS_PROP(text_transform, REFLOW)
CSS_PROP(top, REFLOW)
CSS_PROP(unicode_bidi, REFLOW)
CSS_PROP(user_input, FRAMECHANGE) // XXX ???
CSS_PROP(vertical_align, REFLOW)
CSS_PROP(visibility, REFLOW) // reflow for collapse
CSS_PROP(voice_family, AURAL)
CSS_PROP(volume, AURAL)
CSS_PROP(white_space, REFLOW)
CSS_PROP(widows, REFLOW)
CSS_PROP(width, REFLOW)
CSS_PROP(word_spacing, REFLOW)
CSS_PROP(z_index, REFLOW)

Просмотреть файл

@ -19,33 +19,48 @@
#define nsCSSProps_h___
#include "nslayout.h"
#include "nsCSSPropIDs.h"
struct nsStr;
class nsCString;
/*
Declare the enum list using the magic of preprocessing
enum values are "eCSSProperty_foo" (where foo is the property)
To change the list of properties, see nsCSSPropList.h
*/
#define CSS_PROP(_prop, _hint) eCSSProperty_##_prop,
enum nsCSSProperty {
eCSSProperty_UNKNOWN = -1,
#include "nsCSSPropList.h"
eCSSProperty_COUNT
};
#undef CSS_PROP
class NS_LAYOUT nsCSSProps {
public:
// Given a null terminated string of 7 bit characters, return the
// tag id (see nsCSSPropIDs.h) for the tag or -1 if the tag is not
// known. The lookup function uses a perfect hash.
static PRInt32 LookupName(const char* str);
static void AddRefTable(void);
static void ReleaseTable(void);
// Given a CSS Property ID and an Property Value Index
// Return back a const char* representation of the
// value. Return back nsnull if no value is found
static const char* LookupProperty(PRInt32 aProp, PRInt32 aIndex);
// Given a property string, return the enum value
static nsCSSProperty LookupProperty(const nsStr& aProperty);
struct NameTableEntry {
const char* name;
PRInt32 id;
};
// Given a property enum, get the string value
static const nsCString& GetStringValue(nsCSSProperty aProperty);
// A table whose index is the tag id (from nsCSSPropIDs)
static const NameTableEntry kNameTable[];
// Given a CSS Property and a Property Enum Value
// Return back a const nsString& representation of the
// value. Return back nullstr if no value is found
static const nsCString& LookupPropertyValue(nsCSSProperty aProperty, PRInt32 aValue);
static const PRInt32 kHintTable[];
// Keyword/Enum value tables
static const PRInt32 kAzimuthKTable[];
static const PRInt32 kAutoSelectKTable[];
static const PRInt32 kAutoTabKTable[];
static const PRInt32 kBackgroundAttachmentKTable[];
static const PRInt32 kBackgroundColorKTable[];
static const PRInt32 kBackgroundRepeatKTable[];
@ -53,6 +68,7 @@ public:
static const PRInt32 kBorderColorKTable[];
static const PRInt32 kBorderStyleKTable[];
static const PRInt32 kBorderWidthKTable[];
static const PRInt32 kBoxSizingKTable[];
static const PRInt32 kCaptionSideKTable[];
static const PRInt32 kClearKTable[];
static const PRInt32 kContentKTable[];
@ -62,14 +78,17 @@ public:
static const PRInt32 kElevationKTable[];
static const PRInt32 kEmptyCellsKTable[];
static const PRInt32 kFloatKTable[];
static const PRInt32 kFloatEdgeKTable[];
static const PRInt32 kFontKTable[];
static const PRInt32 kFontSizeKTable[];
static const PRInt32 kFontStretchKTable[];
static const PRInt32 kFontStyleKTable[];
static const PRInt32 kFontVariantKTable[];
static const PRInt32 kFontWeightKTable[];
static const PRInt32 kKeyEquivalentKTable[];
static const PRInt32 kListStylePositionKTable[];
static const PRInt32 kListStyleKTable[];
static const PRInt32 kModifyContentKTable[];
static const PRInt32 kOutlineColorKTable[];
static const PRInt32 kOverflowKTable[];
static const PRInt32 kPageBreakKTable[];
@ -79,6 +98,8 @@ public:
static const PRInt32 kPitchKTable[];
static const PRInt32 kPlayDuringKTable[];
static const PRInt32 kPositionKTable[];
static const PRInt32 kResizerKTable[];
static const PRInt32 kSelectionStyleKTable[];
static const PRInt32 kSpeakKTable[];
static const PRInt32 kSpeakHeaderKTable[];
static const PRInt32 kSpeakNumeralKTable[];
@ -89,6 +110,7 @@ public:
static const PRInt32 kTextDecorationKTable[];
static const PRInt32 kTextTransformKTable[];
static const PRInt32 kUnicodeBidiKTable[];
static const PRInt32 kUserInputKTable[];
static const PRInt32 kVerticalAlignKTable[];
static const PRInt32 kVisibilityKTable[];
static const PRInt32 kVolumeKTable[];

Просмотреть файл

@ -0,0 +1,265 @@
/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*-
*
* The contents of this file are subject to the Netscape Public License
* Version 1.0 (the "NPL"); you may not use this file except in
* compliance with the NPL. You may obtain a copy of the NPL at
* http://www.mozilla.org/NPL/
*
* Software distributed under the NPL is distributed on an "AS IS" basis,
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
* for the specific language governing rights and limitations under the
* NPL.
*
* The Initial Developer of this code under the NPL is Netscape
* Communications Corporation. Portions created by Netscape are
* Copyright (C) 1999 Netscape Communications Corporation. All Rights
* Reserved.
*/
/******
This file contains the list of all parsed CSS keywords
See nsCSSKeywords.h for access to the enum values for keywords
It is designed to be used as inline input to nsCSSKeywords.cpp *only*
through the magic of C preprocessing.
All entires must be enclosed in the macro CSS_KEY which will have cruel
and unusual things done to it
It is recommended (but not strictly necessary) to keep all entries
in alphabetical order
Underbars in keywords are automagically converted into hyphens
******/
CSS_KEY(_moz_bg_inset)
CSS_KEY(_moz_bg_outset)
CSS_KEY(_moz_pre_wrap)
CSS_KEY(_moz_center)
CSS_KEY(_moz_right)
CSS_KEY(above)
CSS_KEY(absolute)
CSS_KEY(activate_next)
CSS_KEY(all)
CSS_KEY(always)
CSS_KEY(any)
CSS_KEY(armenian)
CSS_KEY(auto)
CSS_KEY(avoid)
CSS_KEY(baseline)
CSS_KEY(behind)
CSS_KEY(below)
CSS_KEY(bidi_override)
CSS_KEY(blink)
CSS_KEY(block)
CSS_KEY(bold)
CSS_KEY(bolder)
CSS_KEY(border_box)
CSS_KEY(both)
CSS_KEY(bottom)
CSS_KEY(capitalize)
CSS_KEY(caption)
CSS_KEY(center)
CSS_KEY(center_left)
CSS_KEY(center_right)
CSS_KEY(ch)
CSS_KEY(circle)
CSS_KEY(cjk_ideographic)
CSS_KEY(close_quote)
CSS_KEY(cm)
CSS_KEY(code)
CSS_KEY(collapse)
CSS_KEY(compact)
CSS_KEY(condensed)
CSS_KEY(content_box)
CSS_KEY(continuous)
CSS_KEY(crop)
CSS_KEY(cross)
CSS_KEY(crosshair)
CSS_KEY(dashed)
CSS_KEY(decimal)
CSS_KEY(decimal_leading_zero)
CSS_KEY(default)
CSS_KEY(deg)
CSS_KEY(digits)
CSS_KEY(disabled)
CSS_KEY(disc)
CSS_KEY(dotted)
CSS_KEY(double)
CSS_KEY(e_resize)
CSS_KEY(em)
CSS_KEY(embed)
CSS_KEY(enabled)
CSS_KEY(ex)
CSS_KEY(expanded)
CSS_KEY(extra_condensed)
CSS_KEY(extra_expanded)
CSS_KEY(far_left)
CSS_KEY(far_right)
CSS_KEY(fast)
CSS_KEY(faster)
CSS_KEY(fixed)
CSS_KEY(georgian)
CSS_KEY(grad)
CSS_KEY(groove)
CSS_KEY(hebrew)
CSS_KEY(help)
CSS_KEY(hidden)
CSS_KEY(hide)
CSS_KEY(high)
CSS_KEY(higher)
CSS_KEY(hiragana)
CSS_KEY(hiragana_iroha)
CSS_KEY(horizontal)
CSS_KEY(hz)
CSS_KEY(icon)
CSS_KEY(in)
CSS_KEY(inherit)
CSS_KEY(inline)
CSS_KEY(inline_block)
CSS_KEY(inline_table)
CSS_KEY(inset)
CSS_KEY(inside)
CSS_KEY(invert)
CSS_KEY(italic)
CSS_KEY(justify)
CSS_KEY(katakana)
CSS_KEY(katakana_iroha)
CSS_KEY(khz)
CSS_KEY(landscape)
CSS_KEY(large)
CSS_KEY(larger)
CSS_KEY(left)
CSS_KEY(left_side)
CSS_KEY(leftwards)
CSS_KEY(level)
CSS_KEY(lighter)
CSS_KEY(line)
CSS_KEY(line_through)
CSS_KEY(list_item)
CSS_KEY(loud)
CSS_KEY(low)
CSS_KEY(lower)
CSS_KEY(lower_alpha)
CSS_KEY(lower_greek)
CSS_KEY(lower_latin)
CSS_KEY(lower_roman)
CSS_KEY(lowercase)
CSS_KEY(ltr)
CSS_KEY(margin_box)
CSS_KEY(marker)
CSS_KEY(medium)
CSS_KEY(menu)
CSS_KEY(message_box)
CSS_KEY(middle)
CSS_KEY(mix)
CSS_KEY(mm)
CSS_KEY(move)
CSS_KEY(ms)
CSS_KEY(n_resize)
CSS_KEY(narrower)
CSS_KEY(ne_resize)
CSS_KEY(no_close_quote)
CSS_KEY(no_open_quote)
CSS_KEY(no_repeat)
CSS_KEY(none)
CSS_KEY(normal)
CSS_KEY(noshade)
CSS_KEY(nowrap)
CSS_KEY(nw_resize)
CSS_KEY(oblique)
CSS_KEY(once)
CSS_KEY(open_quote)
CSS_KEY(outset)
CSS_KEY(outside)
CSS_KEY(overline)
CSS_KEY(padding_box)
CSS_KEY(paragraph)
CSS_KEY(pc)
CSS_KEY(pointer)
CSS_KEY(portrait)
CSS_KEY(pre)
CSS_KEY(pt)
CSS_KEY(px)
CSS_KEY(rad)
CSS_KEY(read_only)
CSS_KEY(read_write)
CSS_KEY(relative)
CSS_KEY(repeat)
CSS_KEY(repeat_x)
CSS_KEY(repeat_y)
CSS_KEY(ridge)
CSS_KEY(right)
CSS_KEY(right_side)
CSS_KEY(rightwards)
CSS_KEY(rtl)
CSS_KEY(run_in)
CSS_KEY(s)
CSS_KEY(s_resize)
CSS_KEY(scroll)
CSS_KEY(se_resize)
CSS_KEY(select)
CSS_KEY(select_next)
CSS_KEY(semi_condensed)
CSS_KEY(semi_expanded)
CSS_KEY(separate)
CSS_KEY(show)
CSS_KEY(silent)
CSS_KEY(slow)
CSS_KEY(slower)
CSS_KEY(small)
CSS_KEY(small_caps)
CSS_KEY(small_caption)
CSS_KEY(smaller)
CSS_KEY(soft)
CSS_KEY(solid)
CSS_KEY(spell_out)
CSS_KEY(square)
CSS_KEY(static)
CSS_KEY(status_bar)
CSS_KEY(sub)
CSS_KEY(super)
CSS_KEY(sw_resize)
CSS_KEY(table)
CSS_KEY(table_caption)
CSS_KEY(table_cell)
CSS_KEY(table_column)
CSS_KEY(table_column_group)
CSS_KEY(table_footer_group)
CSS_KEY(table_header_group)
CSS_KEY(table_row)
CSS_KEY(table_row_group)
CSS_KEY(text)
CSS_KEY(text_bottom)
CSS_KEY(text_top)
CSS_KEY(thick)
CSS_KEY(thin)
CSS_KEY(toggle)
CSS_KEY(top)
CSS_KEY(transparent)
CSS_KEY(ultra_condensed)
CSS_KEY(ultra_expanded)
CSS_KEY(underline)
CSS_KEY(upper_alpha)
CSS_KEY(upper_latin)
CSS_KEY(upper_roman)
CSS_KEY(uppercase)
CSS_KEY(vertical)
CSS_KEY(visible)
CSS_KEY(w_resize)
CSS_KEY(wait)
CSS_KEY(wider)
CSS_KEY(write_only)
CSS_KEY(x_fast)
CSS_KEY(x_high)
CSS_KEY(x_large)
CSS_KEY(x_loud)
CSS_KEY(x_low)
CSS_KEY(x_slow)
CSS_KEY(x_small)
CSS_KEY(x_soft)
CSS_KEY(xx_large)
CSS_KEY(xx_small)

Просмотреть файл

@ -19,22 +19,36 @@
#define nsCSSKeywords_h___
#include "nslayout.h"
#include "nsCSSKeywordIDs.h"
struct nsStr;
class nsCString;
/*
Declare the enum list using the magic of preprocessing
enum values are "eCSSKeyword_foo" (where foo is the keyword)
To change the list of keywords, see nsCSSKeywordList.h
*/
#define CSS_KEY(_key) eCSSKeyword_##_key,
enum nsCSSKeyword {
eCSSKeyword_UNKNOWN = -1,
#include "nsCSSKeywordList.h"
eCSSKeyword_COUNT
};
#undef CSS_KEY
class NS_LAYOUT nsCSSKeywords {
public:
// Given a null terminated string of 7 bit characters, return the
// tag id (see nsHTMLTagIDs.h) for the tag or -1 if the tag is not
// known. The lookup function uses a perfect hash.
static PRInt32 LookupName(const char* str);
static void AddRefTable(void);
static void ReleaseTable(void);
struct NameTableEntry {
const char* name;
PRInt32 id;
};
// Given a keyword string, return the enum value
static nsCSSKeyword LookupKeyword(const nsStr& aKeyword);
// A table whose index is the tag id (from LookupName)
static const NameTableEntry kNameTable[];
// Given a keyword enum, get the string value
static const nsCString& GetStringValue(nsCSSKeyword aKeyword);
};
#endif /* nsCSSKeywords_h___ */

Просмотреть файл

@ -0,0 +1,191 @@
/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*-
*
* The contents of this file are subject to the Netscape Public License
* Version 1.0 (the "NPL"); you may not use this file except in
* compliance with the NPL. You may obtain a copy of the NPL at
* http://www.mozilla.org/NPL/
*
* Software distributed under the NPL is distributed on an "AS IS" basis,
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
* for the specific language governing rights and limitations under the
* NPL.
*
* The Initial Developer of this code under the NPL is Netscape
* Communications Corporation. Portions created by Netscape are
* Copyright (C) 1999 Netscape Communications Corporation. All Rights
* Reserved.
*/
/******
This file contains the list of all parsed CSS properties
See nsCSSProps.h for access to the enum values for properties
It is designed to be used as inline input to nsCSSProps.cpp *only*
through the magic of C preprocessing.
All entires must be enclosed in the macro CSS_PROP which will have cruel
and unusual things done to it
It is recommended (but not strictly necessary) to keep all entries
in alphabetical order
Underbars in properties are automagically converted into hyphens
The first argument to CSS_PROP is both the enum identifier of the property
and the string value
The second argument is the style impact resultant in a change to the property
******/
CSS_PROP(_moz_border_radius, VISUAL)
CSS_PROP(azimuth, AURAL)
CSS_PROP(auto_select, CONTENT)
CSS_PROP(auto_tab, CONTENT)
CSS_PROP(background, VISUAL)
CSS_PROP(background_attachment, VISUAL)
CSS_PROP(background_color, VISUAL)
CSS_PROP(background_image, VISUAL)
CSS_PROP(background_position, VISUAL)
CSS_PROP(background_repeat, VISUAL)
CSS_PROP(background_x_position, VISUAL)
CSS_PROP(background_y_position, VISUAL)
CSS_PROP(border, REFLOW)
CSS_PROP(border_bottom, REFLOW)
CSS_PROP(border_bottom_color, VISUAL)
CSS_PROP(border_bottom_style, REFLOW) // on/off will need reflow
CSS_PROP(border_bottom_width, REFLOW)
CSS_PROP(border_collapse, REFLOW)
CSS_PROP(border_color, VISUAL)
CSS_PROP(border_left, REFLOW)
CSS_PROP(border_left_color, VISUAL)
CSS_PROP(border_left_style, REFLOW) // on/off will need reflow
CSS_PROP(border_left_width, REFLOW)
CSS_PROP(border_right, REFLOW)
CSS_PROP(border_right_color, VISUAL)
CSS_PROP(border_right_style, REFLOW) // on/off will need reflow
CSS_PROP(border_right_width, REFLOW)
CSS_PROP(border_spacing, REFLOW)
CSS_PROP(border_style, REFLOW) // on/off will need reflow
CSS_PROP(border_top, REFLOW)
CSS_PROP(border_top_color, VISUAL)
CSS_PROP(border_top_style, REFLOW) // on/off will need reflow
CSS_PROP(border_top_width, REFLOW)
CSS_PROP(border_width, REFLOW)
CSS_PROP(border_x_spacing, REFLOW)
CSS_PROP(border_y_spacing, REFLOW)
CSS_PROP(bottom, REFLOW)
CSS_PROP(box_sizing, REFLOW)
CSS_PROP(caption_side, REFLOW)
CSS_PROP(clear, REFLOW)
CSS_PROP(clip, VISUAL)
CSS_PROP(clip_bottom, VISUAL)
CSS_PROP(clip_left, VISUAL)
CSS_PROP(clip_right, VISUAL)
CSS_PROP(clip_top, VISUAL)
CSS_PROP(color, VISUAL)
CSS_PROP(content, FRAMECHANGE)
CSS_PROP(counter_increment, REFLOW)
CSS_PROP(counter_reset, REFLOW)
CSS_PROP(cue, AURAL)
CSS_PROP(cue_after, AURAL)
CSS_PROP(cue_before, AURAL)
CSS_PROP(cursor, VISUAL)
CSS_PROP(direction, REFLOW)
CSS_PROP(display, FRAMECHANGE)
CSS_PROP(elevation, AURAL)
CSS_PROP(empty_cells, VISUAL)
CSS_PROP(float, FRAMECHANGE)
CSS_PROP(float_edge, REFLOW)
CSS_PROP(font, REFLOW)
CSS_PROP(font_family, REFLOW)
CSS_PROP(font_size, REFLOW)
CSS_PROP(font_size_adjust, REFLOW)
CSS_PROP(font_stretch, REFLOW)
CSS_PROP(font_style, REFLOW)
CSS_PROP(font_variant, REFLOW)
CSS_PROP(font_weight, REFLOW)
CSS_PROP(height, REFLOW)
CSS_PROP(key_equivalent, CONTENT) // This will need some other notification, but what?
CSS_PROP(left, REFLOW)
CSS_PROP(letter_spacing, REFLOW)
CSS_PROP(line_height, REFLOW)
CSS_PROP(list_style, REFLOW)
CSS_PROP(list_style_image, REFLOW)
CSS_PROP(list_style_position, REFLOW)
CSS_PROP(list_style_type, REFLOW)
CSS_PROP(margin, REFLOW)
CSS_PROP(margin_bottom, REFLOW)
CSS_PROP(margin_left, REFLOW)
CSS_PROP(margin_right, REFLOW)
CSS_PROP(margin_top, REFLOW)
CSS_PROP(marker_offset, REFLOW)
CSS_PROP(marks, VISUAL)
CSS_PROP(max_height, REFLOW)
CSS_PROP(max_width, REFLOW)
CSS_PROP(min_height, REFLOW)
CSS_PROP(min_width, REFLOW)
CSS_PROP(modify_content, FRAMECHANGE)
CSS_PROP(opacity, VISUAL)
CSS_PROP(orphans, REFLOW)
CSS_PROP(outline, VISUAL)
CSS_PROP(outline_color, VISUAL)
CSS_PROP(outline_style, VISUAL)
CSS_PROP(outline_width, VISUAL)
CSS_PROP(overflow, FRAMECHANGE)
CSS_PROP(padding, REFLOW)
CSS_PROP(padding_bottom, REFLOW)
CSS_PROP(padding_left, REFLOW)
CSS_PROP(padding_right, REFLOW)
CSS_PROP(padding_top, REFLOW)
CSS_PROP(page, REFLOW)
CSS_PROP(page_break_after, REFLOW)
CSS_PROP(page_break_before, REFLOW)
CSS_PROP(page_break_inside, REFLOW)
CSS_PROP(pause, AURAL)
CSS_PROP(pause_after, AURAL)
CSS_PROP(pause_before, AURAL)
CSS_PROP(pitch, AURAL)
CSS_PROP(pitch_range, AURAL)
CSS_PROP(play_during, AURAL)
CSS_PROP(play_during_flags, AURAL)
CSS_PROP(position, FRAMECHANGE)
CSS_PROP(quotes, REFLOW)
CSS_PROP(quotes_close, REFLOW)
CSS_PROP(quotes_open, REFLOW)
CSS_PROP(resizer, FRAMECHANGE)
CSS_PROP(richness, AURAL)
CSS_PROP(right, REFLOW)
CSS_PROP(selection_style, CONTENT)
CSS_PROP(size, REFLOW)
CSS_PROP(size_height, REFLOW)
CSS_PROP(size_width, REFLOW)
CSS_PROP(speak, AURAL)
CSS_PROP(speak_header, AURAL)
CSS_PROP(speak_numeral, AURAL)
CSS_PROP(speak_punctuation, AURAL)
CSS_PROP(speech_rate, AURAL)
CSS_PROP(stress, AURAL)
CSS_PROP(table_layout, REFLOW)
CSS_PROP(text_align, REFLOW)
CSS_PROP(text_decoration, VISUAL)
CSS_PROP(text_indent, REFLOW)
CSS_PROP(text_shadow, VISUAL)
CSS_PROP(text_shadow_color, VISUAL)
CSS_PROP(text_shadow_radius, VISUAL)
CSS_PROP(text_shadow_x, VISUAL)
CSS_PROP(text_shadow_y, VISUAL)
CSS_PROP(text_transform, REFLOW)
CSS_PROP(top, REFLOW)
CSS_PROP(unicode_bidi, REFLOW)
CSS_PROP(user_input, FRAMECHANGE) // XXX ???
CSS_PROP(vertical_align, REFLOW)
CSS_PROP(visibility, REFLOW) // reflow for collapse
CSS_PROP(voice_family, AURAL)
CSS_PROP(volume, AURAL)
CSS_PROP(white_space, REFLOW)
CSS_PROP(widows, REFLOW)
CSS_PROP(width, REFLOW)
CSS_PROP(word_spacing, REFLOW)
CSS_PROP(z_index, REFLOW)

Просмотреть файл

@ -19,33 +19,48 @@
#define nsCSSProps_h___
#include "nslayout.h"
#include "nsCSSPropIDs.h"
struct nsStr;
class nsCString;
/*
Declare the enum list using the magic of preprocessing
enum values are "eCSSProperty_foo" (where foo is the property)
To change the list of properties, see nsCSSPropList.h
*/
#define CSS_PROP(_prop, _hint) eCSSProperty_##_prop,
enum nsCSSProperty {
eCSSProperty_UNKNOWN = -1,
#include "nsCSSPropList.h"
eCSSProperty_COUNT
};
#undef CSS_PROP
class NS_LAYOUT nsCSSProps {
public:
// Given a null terminated string of 7 bit characters, return the
// tag id (see nsCSSPropIDs.h) for the tag or -1 if the tag is not
// known. The lookup function uses a perfect hash.
static PRInt32 LookupName(const char* str);
static void AddRefTable(void);
static void ReleaseTable(void);
// Given a CSS Property ID and an Property Value Index
// Return back a const char* representation of the
// value. Return back nsnull if no value is found
static const char* LookupProperty(PRInt32 aProp, PRInt32 aIndex);
// Given a property string, return the enum value
static nsCSSProperty LookupProperty(const nsStr& aProperty);
struct NameTableEntry {
const char* name;
PRInt32 id;
};
// Given a property enum, get the string value
static const nsCString& GetStringValue(nsCSSProperty aProperty);
// A table whose index is the tag id (from nsCSSPropIDs)
static const NameTableEntry kNameTable[];
// Given a CSS Property and a Property Enum Value
// Return back a const nsString& representation of the
// value. Return back nullstr if no value is found
static const nsCString& LookupPropertyValue(nsCSSProperty aProperty, PRInt32 aValue);
static const PRInt32 kHintTable[];
// Keyword/Enum value tables
static const PRInt32 kAzimuthKTable[];
static const PRInt32 kAutoSelectKTable[];
static const PRInt32 kAutoTabKTable[];
static const PRInt32 kBackgroundAttachmentKTable[];
static const PRInt32 kBackgroundColorKTable[];
static const PRInt32 kBackgroundRepeatKTable[];
@ -53,6 +68,7 @@ public:
static const PRInt32 kBorderColorKTable[];
static const PRInt32 kBorderStyleKTable[];
static const PRInt32 kBorderWidthKTable[];
static const PRInt32 kBoxSizingKTable[];
static const PRInt32 kCaptionSideKTable[];
static const PRInt32 kClearKTable[];
static const PRInt32 kContentKTable[];
@ -62,14 +78,17 @@ public:
static const PRInt32 kElevationKTable[];
static const PRInt32 kEmptyCellsKTable[];
static const PRInt32 kFloatKTable[];
static const PRInt32 kFloatEdgeKTable[];
static const PRInt32 kFontKTable[];
static const PRInt32 kFontSizeKTable[];
static const PRInt32 kFontStretchKTable[];
static const PRInt32 kFontStyleKTable[];
static const PRInt32 kFontVariantKTable[];
static const PRInt32 kFontWeightKTable[];
static const PRInt32 kKeyEquivalentKTable[];
static const PRInt32 kListStylePositionKTable[];
static const PRInt32 kListStyleKTable[];
static const PRInt32 kModifyContentKTable[];
static const PRInt32 kOutlineColorKTable[];
static const PRInt32 kOverflowKTable[];
static const PRInt32 kPageBreakKTable[];
@ -79,6 +98,8 @@ public:
static const PRInt32 kPitchKTable[];
static const PRInt32 kPlayDuringKTable[];
static const PRInt32 kPositionKTable[];
static const PRInt32 kResizerKTable[];
static const PRInt32 kSelectionStyleKTable[];
static const PRInt32 kSpeakKTable[];
static const PRInt32 kSpeakHeaderKTable[];
static const PRInt32 kSpeakNumeralKTable[];
@ -89,6 +110,7 @@ public:
static const PRInt32 kTextDecorationKTable[];
static const PRInt32 kTextTransformKTable[];
static const PRInt32 kUnicodeBidiKTable[];
static const PRInt32 kUserInputKTable[];
static const PRInt32 kVerticalAlignKTable[];
static const PRInt32 kVisibilityKTable[];
static const PRInt32 kVolumeKTable[];

Разница между файлами не показана из-за своего большого размера Загрузить разницу

Разница между файлами не показана из-за своего большого размера Загрузить разницу

Просмотреть файл

@ -1,6 +1,8 @@
nsDOMCSSDeclaration.h
nsCSSKeywords.h
nsCSSKeywordList.h
nsCSSProps.h
nsCSSPropIDs.h
nsCSSPropList.h
nsCSSValue.h
nsICSSRule.h
nsICSSGroupRule.h

Просмотреть файл

@ -37,7 +37,6 @@ CPPSRCS = \
nsCSSLoader.cpp \
nsCSSParser.cpp \
nsCSSProps.cpp \
nsCSSProps2.cpp \
nsCSSRendering.cpp \
nsCSSScanner.cpp \
nsCSSRule.cpp \
@ -55,8 +54,10 @@ CPPSRCS = \
EXPORTS = \
nsDOMCSSDeclaration.h \
nsCSSKeywords.h \
nsCSSKeywordList.h \
nsCSSProps.h \
nsCSSPropIDs.h \
nsCSSPropList.h \
nsCSSValue.h \
nsICSSRule.h \
nsICSSGroupRule.h \

Просмотреть файл

@ -24,8 +24,10 @@ REQUIRES=xpcom raptor dom js
DEFINES=-D_IMPL_NS_HTML -DWIN32_LEAN_AND_MEAN
EXPORTS = \
nsCSSKeywords.h \
nsCSSKeywordList.h \
nsCSSProps.h \
nsCSSPropIDs.h \
nsCSSPropList.h \
nsCSSValue.h \
nsICSSRule.h \
nsICSSGroupRule.h \
@ -49,7 +51,6 @@ CPPSRCS= \
nsCSSLoader.cpp \
nsCSSParser.cpp \
nsCSSProps.cpp \
nsCSSProps2.cpp \
nsCSSRendering.cpp \
nsCSSScanner.cpp \
nsCSSRule.cpp \
@ -73,7 +74,6 @@ CPP_OBJS = \
.\$(OBJDIR)\nsCSSLoader.obj \
.\$(OBJDIR)\nsCSSParser.obj \
.\$(OBJDIR)\nsCSSProps.obj \
.\$(OBJDIR)\nsCSSProps2.obj \
.\$(OBJDIR)\nsCSSRendering.obj \
.\$(OBJDIR)\nsCSSScanner.obj \
.\$(OBJDIR)\nsCSSRule.obj \

Просмотреть файл

@ -0,0 +1,265 @@
/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*-
*
* The contents of this file are subject to the Netscape Public License
* Version 1.0 (the "NPL"); you may not use this file except in
* compliance with the NPL. You may obtain a copy of the NPL at
* http://www.mozilla.org/NPL/
*
* Software distributed under the NPL is distributed on an "AS IS" basis,
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
* for the specific language governing rights and limitations under the
* NPL.
*
* The Initial Developer of this code under the NPL is Netscape
* Communications Corporation. Portions created by Netscape are
* Copyright (C) 1999 Netscape Communications Corporation. All Rights
* Reserved.
*/
/******
This file contains the list of all parsed CSS keywords
See nsCSSKeywords.h for access to the enum values for keywords
It is designed to be used as inline input to nsCSSKeywords.cpp *only*
through the magic of C preprocessing.
All entires must be enclosed in the macro CSS_KEY which will have cruel
and unusual things done to it
It is recommended (but not strictly necessary) to keep all entries
in alphabetical order
Underbars in keywords are automagically converted into hyphens
******/
CSS_KEY(_moz_bg_inset)
CSS_KEY(_moz_bg_outset)
CSS_KEY(_moz_pre_wrap)
CSS_KEY(_moz_center)
CSS_KEY(_moz_right)
CSS_KEY(above)
CSS_KEY(absolute)
CSS_KEY(activate_next)
CSS_KEY(all)
CSS_KEY(always)
CSS_KEY(any)
CSS_KEY(armenian)
CSS_KEY(auto)
CSS_KEY(avoid)
CSS_KEY(baseline)
CSS_KEY(behind)
CSS_KEY(below)
CSS_KEY(bidi_override)
CSS_KEY(blink)
CSS_KEY(block)
CSS_KEY(bold)
CSS_KEY(bolder)
CSS_KEY(border_box)
CSS_KEY(both)
CSS_KEY(bottom)
CSS_KEY(capitalize)
CSS_KEY(caption)
CSS_KEY(center)
CSS_KEY(center_left)
CSS_KEY(center_right)
CSS_KEY(ch)
CSS_KEY(circle)
CSS_KEY(cjk_ideographic)
CSS_KEY(close_quote)
CSS_KEY(cm)
CSS_KEY(code)
CSS_KEY(collapse)
CSS_KEY(compact)
CSS_KEY(condensed)
CSS_KEY(content_box)
CSS_KEY(continuous)
CSS_KEY(crop)
CSS_KEY(cross)
CSS_KEY(crosshair)
CSS_KEY(dashed)
CSS_KEY(decimal)
CSS_KEY(decimal_leading_zero)
CSS_KEY(default)
CSS_KEY(deg)
CSS_KEY(digits)
CSS_KEY(disabled)
CSS_KEY(disc)
CSS_KEY(dotted)
CSS_KEY(double)
CSS_KEY(e_resize)
CSS_KEY(em)
CSS_KEY(embed)
CSS_KEY(enabled)
CSS_KEY(ex)
CSS_KEY(expanded)
CSS_KEY(extra_condensed)
CSS_KEY(extra_expanded)
CSS_KEY(far_left)
CSS_KEY(far_right)
CSS_KEY(fast)
CSS_KEY(faster)
CSS_KEY(fixed)
CSS_KEY(georgian)
CSS_KEY(grad)
CSS_KEY(groove)
CSS_KEY(hebrew)
CSS_KEY(help)
CSS_KEY(hidden)
CSS_KEY(hide)
CSS_KEY(high)
CSS_KEY(higher)
CSS_KEY(hiragana)
CSS_KEY(hiragana_iroha)
CSS_KEY(horizontal)
CSS_KEY(hz)
CSS_KEY(icon)
CSS_KEY(in)
CSS_KEY(inherit)
CSS_KEY(inline)
CSS_KEY(inline_block)
CSS_KEY(inline_table)
CSS_KEY(inset)
CSS_KEY(inside)
CSS_KEY(invert)
CSS_KEY(italic)
CSS_KEY(justify)
CSS_KEY(katakana)
CSS_KEY(katakana_iroha)
CSS_KEY(khz)
CSS_KEY(landscape)
CSS_KEY(large)
CSS_KEY(larger)
CSS_KEY(left)
CSS_KEY(left_side)
CSS_KEY(leftwards)
CSS_KEY(level)
CSS_KEY(lighter)
CSS_KEY(line)
CSS_KEY(line_through)
CSS_KEY(list_item)
CSS_KEY(loud)
CSS_KEY(low)
CSS_KEY(lower)
CSS_KEY(lower_alpha)
CSS_KEY(lower_greek)
CSS_KEY(lower_latin)
CSS_KEY(lower_roman)
CSS_KEY(lowercase)
CSS_KEY(ltr)
CSS_KEY(margin_box)
CSS_KEY(marker)
CSS_KEY(medium)
CSS_KEY(menu)
CSS_KEY(message_box)
CSS_KEY(middle)
CSS_KEY(mix)
CSS_KEY(mm)
CSS_KEY(move)
CSS_KEY(ms)
CSS_KEY(n_resize)
CSS_KEY(narrower)
CSS_KEY(ne_resize)
CSS_KEY(no_close_quote)
CSS_KEY(no_open_quote)
CSS_KEY(no_repeat)
CSS_KEY(none)
CSS_KEY(normal)
CSS_KEY(noshade)
CSS_KEY(nowrap)
CSS_KEY(nw_resize)
CSS_KEY(oblique)
CSS_KEY(once)
CSS_KEY(open_quote)
CSS_KEY(outset)
CSS_KEY(outside)
CSS_KEY(overline)
CSS_KEY(padding_box)
CSS_KEY(paragraph)
CSS_KEY(pc)
CSS_KEY(pointer)
CSS_KEY(portrait)
CSS_KEY(pre)
CSS_KEY(pt)
CSS_KEY(px)
CSS_KEY(rad)
CSS_KEY(read_only)
CSS_KEY(read_write)
CSS_KEY(relative)
CSS_KEY(repeat)
CSS_KEY(repeat_x)
CSS_KEY(repeat_y)
CSS_KEY(ridge)
CSS_KEY(right)
CSS_KEY(right_side)
CSS_KEY(rightwards)
CSS_KEY(rtl)
CSS_KEY(run_in)
CSS_KEY(s)
CSS_KEY(s_resize)
CSS_KEY(scroll)
CSS_KEY(se_resize)
CSS_KEY(select)
CSS_KEY(select_next)
CSS_KEY(semi_condensed)
CSS_KEY(semi_expanded)
CSS_KEY(separate)
CSS_KEY(show)
CSS_KEY(silent)
CSS_KEY(slow)
CSS_KEY(slower)
CSS_KEY(small)
CSS_KEY(small_caps)
CSS_KEY(small_caption)
CSS_KEY(smaller)
CSS_KEY(soft)
CSS_KEY(solid)
CSS_KEY(spell_out)
CSS_KEY(square)
CSS_KEY(static)
CSS_KEY(status_bar)
CSS_KEY(sub)
CSS_KEY(super)
CSS_KEY(sw_resize)
CSS_KEY(table)
CSS_KEY(table_caption)
CSS_KEY(table_cell)
CSS_KEY(table_column)
CSS_KEY(table_column_group)
CSS_KEY(table_footer_group)
CSS_KEY(table_header_group)
CSS_KEY(table_row)
CSS_KEY(table_row_group)
CSS_KEY(text)
CSS_KEY(text_bottom)
CSS_KEY(text_top)
CSS_KEY(thick)
CSS_KEY(thin)
CSS_KEY(toggle)
CSS_KEY(top)
CSS_KEY(transparent)
CSS_KEY(ultra_condensed)
CSS_KEY(ultra_expanded)
CSS_KEY(underline)
CSS_KEY(upper_alpha)
CSS_KEY(upper_latin)
CSS_KEY(upper_roman)
CSS_KEY(uppercase)
CSS_KEY(vertical)
CSS_KEY(visible)
CSS_KEY(w_resize)
CSS_KEY(wait)
CSS_KEY(wider)
CSS_KEY(write_only)
CSS_KEY(x_fast)
CSS_KEY(x_high)
CSS_KEY(x_large)
CSS_KEY(x_loud)
CSS_KEY(x_low)
CSS_KEY(x_slow)
CSS_KEY(x_small)
CSS_KEY(x_soft)
CSS_KEY(xx_large)
CSS_KEY(xx_small)

Разница между файлами не показана из-за своего большого размера Загрузить разницу

Просмотреть файл

@ -19,22 +19,36 @@
#define nsCSSKeywords_h___
#include "nslayout.h"
#include "nsCSSKeywordIDs.h"
struct nsStr;
class nsCString;
/*
Declare the enum list using the magic of preprocessing
enum values are "eCSSKeyword_foo" (where foo is the keyword)
To change the list of keywords, see nsCSSKeywordList.h
*/
#define CSS_KEY(_key) eCSSKeyword_##_key,
enum nsCSSKeyword {
eCSSKeyword_UNKNOWN = -1,
#include "nsCSSKeywordList.h"
eCSSKeyword_COUNT
};
#undef CSS_KEY
class NS_LAYOUT nsCSSKeywords {
public:
// Given a null terminated string of 7 bit characters, return the
// tag id (see nsHTMLTagIDs.h) for the tag or -1 if the tag is not
// known. The lookup function uses a perfect hash.
static PRInt32 LookupName(const char* str);
static void AddRefTable(void);
static void ReleaseTable(void);
struct NameTableEntry {
const char* name;
PRInt32 id;
};
// Given a keyword string, return the enum value
static nsCSSKeyword LookupKeyword(const nsStr& aKeyword);
// A table whose index is the tag id (from LookupName)
static const NameTableEntry kNameTable[];
// Given a keyword enum, get the string value
static const nsCString& GetStringValue(nsCSSKeyword aKeyword);
};
#endif /* nsCSSKeywords_h___ */

Просмотреть файл

@ -0,0 +1,191 @@
/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*-
*
* The contents of this file are subject to the Netscape Public License
* Version 1.0 (the "NPL"); you may not use this file except in
* compliance with the NPL. You may obtain a copy of the NPL at
* http://www.mozilla.org/NPL/
*
* Software distributed under the NPL is distributed on an "AS IS" basis,
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
* for the specific language governing rights and limitations under the
* NPL.
*
* The Initial Developer of this code under the NPL is Netscape
* Communications Corporation. Portions created by Netscape are
* Copyright (C) 1999 Netscape Communications Corporation. All Rights
* Reserved.
*/
/******
This file contains the list of all parsed CSS properties
See nsCSSProps.h for access to the enum values for properties
It is designed to be used as inline input to nsCSSProps.cpp *only*
through the magic of C preprocessing.
All entires must be enclosed in the macro CSS_PROP which will have cruel
and unusual things done to it
It is recommended (but not strictly necessary) to keep all entries
in alphabetical order
Underbars in properties are automagically converted into hyphens
The first argument to CSS_PROP is both the enum identifier of the property
and the string value
The second argument is the style impact resultant in a change to the property
******/
CSS_PROP(_moz_border_radius, VISUAL)
CSS_PROP(azimuth, AURAL)
CSS_PROP(auto_select, CONTENT)
CSS_PROP(auto_tab, CONTENT)
CSS_PROP(background, VISUAL)
CSS_PROP(background_attachment, VISUAL)
CSS_PROP(background_color, VISUAL)
CSS_PROP(background_image, VISUAL)
CSS_PROP(background_position, VISUAL)
CSS_PROP(background_repeat, VISUAL)
CSS_PROP(background_x_position, VISUAL)
CSS_PROP(background_y_position, VISUAL)
CSS_PROP(border, REFLOW)
CSS_PROP(border_bottom, REFLOW)
CSS_PROP(border_bottom_color, VISUAL)
CSS_PROP(border_bottom_style, REFLOW) // on/off will need reflow
CSS_PROP(border_bottom_width, REFLOW)
CSS_PROP(border_collapse, REFLOW)
CSS_PROP(border_color, VISUAL)
CSS_PROP(border_left, REFLOW)
CSS_PROP(border_left_color, VISUAL)
CSS_PROP(border_left_style, REFLOW) // on/off will need reflow
CSS_PROP(border_left_width, REFLOW)
CSS_PROP(border_right, REFLOW)
CSS_PROP(border_right_color, VISUAL)
CSS_PROP(border_right_style, REFLOW) // on/off will need reflow
CSS_PROP(border_right_width, REFLOW)
CSS_PROP(border_spacing, REFLOW)
CSS_PROP(border_style, REFLOW) // on/off will need reflow
CSS_PROP(border_top, REFLOW)
CSS_PROP(border_top_color, VISUAL)
CSS_PROP(border_top_style, REFLOW) // on/off will need reflow
CSS_PROP(border_top_width, REFLOW)
CSS_PROP(border_width, REFLOW)
CSS_PROP(border_x_spacing, REFLOW)
CSS_PROP(border_y_spacing, REFLOW)
CSS_PROP(bottom, REFLOW)
CSS_PROP(box_sizing, REFLOW)
CSS_PROP(caption_side, REFLOW)
CSS_PROP(clear, REFLOW)
CSS_PROP(clip, VISUAL)
CSS_PROP(clip_bottom, VISUAL)
CSS_PROP(clip_left, VISUAL)
CSS_PROP(clip_right, VISUAL)
CSS_PROP(clip_top, VISUAL)
CSS_PROP(color, VISUAL)
CSS_PROP(content, FRAMECHANGE)
CSS_PROP(counter_increment, REFLOW)
CSS_PROP(counter_reset, REFLOW)
CSS_PROP(cue, AURAL)
CSS_PROP(cue_after, AURAL)
CSS_PROP(cue_before, AURAL)
CSS_PROP(cursor, VISUAL)
CSS_PROP(direction, REFLOW)
CSS_PROP(display, FRAMECHANGE)
CSS_PROP(elevation, AURAL)
CSS_PROP(empty_cells, VISUAL)
CSS_PROP(float, FRAMECHANGE)
CSS_PROP(float_edge, REFLOW)
CSS_PROP(font, REFLOW)
CSS_PROP(font_family, REFLOW)
CSS_PROP(font_size, REFLOW)
CSS_PROP(font_size_adjust, REFLOW)
CSS_PROP(font_stretch, REFLOW)
CSS_PROP(font_style, REFLOW)
CSS_PROP(font_variant, REFLOW)
CSS_PROP(font_weight, REFLOW)
CSS_PROP(height, REFLOW)
CSS_PROP(key_equivalent, CONTENT) // This will need some other notification, but what?
CSS_PROP(left, REFLOW)
CSS_PROP(letter_spacing, REFLOW)
CSS_PROP(line_height, REFLOW)
CSS_PROP(list_style, REFLOW)
CSS_PROP(list_style_image, REFLOW)
CSS_PROP(list_style_position, REFLOW)
CSS_PROP(list_style_type, REFLOW)
CSS_PROP(margin, REFLOW)
CSS_PROP(margin_bottom, REFLOW)
CSS_PROP(margin_left, REFLOW)
CSS_PROP(margin_right, REFLOW)
CSS_PROP(margin_top, REFLOW)
CSS_PROP(marker_offset, REFLOW)
CSS_PROP(marks, VISUAL)
CSS_PROP(max_height, REFLOW)
CSS_PROP(max_width, REFLOW)
CSS_PROP(min_height, REFLOW)
CSS_PROP(min_width, REFLOW)
CSS_PROP(modify_content, FRAMECHANGE)
CSS_PROP(opacity, VISUAL)
CSS_PROP(orphans, REFLOW)
CSS_PROP(outline, VISUAL)
CSS_PROP(outline_color, VISUAL)
CSS_PROP(outline_style, VISUAL)
CSS_PROP(outline_width, VISUAL)
CSS_PROP(overflow, FRAMECHANGE)
CSS_PROP(padding, REFLOW)
CSS_PROP(padding_bottom, REFLOW)
CSS_PROP(padding_left, REFLOW)
CSS_PROP(padding_right, REFLOW)
CSS_PROP(padding_top, REFLOW)
CSS_PROP(page, REFLOW)
CSS_PROP(page_break_after, REFLOW)
CSS_PROP(page_break_before, REFLOW)
CSS_PROP(page_break_inside, REFLOW)
CSS_PROP(pause, AURAL)
CSS_PROP(pause_after, AURAL)
CSS_PROP(pause_before, AURAL)
CSS_PROP(pitch, AURAL)
CSS_PROP(pitch_range, AURAL)
CSS_PROP(play_during, AURAL)
CSS_PROP(play_during_flags, AURAL)
CSS_PROP(position, FRAMECHANGE)
CSS_PROP(quotes, REFLOW)
CSS_PROP(quotes_close, REFLOW)
CSS_PROP(quotes_open, REFLOW)
CSS_PROP(resizer, FRAMECHANGE)
CSS_PROP(richness, AURAL)
CSS_PROP(right, REFLOW)
CSS_PROP(selection_style, CONTENT)
CSS_PROP(size, REFLOW)
CSS_PROP(size_height, REFLOW)
CSS_PROP(size_width, REFLOW)
CSS_PROP(speak, AURAL)
CSS_PROP(speak_header, AURAL)
CSS_PROP(speak_numeral, AURAL)
CSS_PROP(speak_punctuation, AURAL)
CSS_PROP(speech_rate, AURAL)
CSS_PROP(stress, AURAL)
CSS_PROP(table_layout, REFLOW)
CSS_PROP(text_align, REFLOW)
CSS_PROP(text_decoration, VISUAL)
CSS_PROP(text_indent, REFLOW)
CSS_PROP(text_shadow, VISUAL)
CSS_PROP(text_shadow_color, VISUAL)
CSS_PROP(text_shadow_radius, VISUAL)
CSS_PROP(text_shadow_x, VISUAL)
CSS_PROP(text_shadow_y, VISUAL)
CSS_PROP(text_transform, REFLOW)
CSS_PROP(top, REFLOW)
CSS_PROP(unicode_bidi, REFLOW)
CSS_PROP(user_input, FRAMECHANGE) // XXX ???
CSS_PROP(vertical_align, REFLOW)
CSS_PROP(visibility, REFLOW) // reflow for collapse
CSS_PROP(voice_family, AURAL)
CSS_PROP(volume, AURAL)
CSS_PROP(white_space, REFLOW)
CSS_PROP(widows, REFLOW)
CSS_PROP(width, REFLOW)
CSS_PROP(word_spacing, REFLOW)
CSS_PROP(z_index, REFLOW)

Разница между файлами не показана из-за своего большого размера Загрузить разницу

Просмотреть файл

@ -19,33 +19,48 @@
#define nsCSSProps_h___
#include "nslayout.h"
#include "nsCSSPropIDs.h"
struct nsStr;
class nsCString;
/*
Declare the enum list using the magic of preprocessing
enum values are "eCSSProperty_foo" (where foo is the property)
To change the list of properties, see nsCSSPropList.h
*/
#define CSS_PROP(_prop, _hint) eCSSProperty_##_prop,
enum nsCSSProperty {
eCSSProperty_UNKNOWN = -1,
#include "nsCSSPropList.h"
eCSSProperty_COUNT
};
#undef CSS_PROP
class NS_LAYOUT nsCSSProps {
public:
// Given a null terminated string of 7 bit characters, return the
// tag id (see nsCSSPropIDs.h) for the tag or -1 if the tag is not
// known. The lookup function uses a perfect hash.
static PRInt32 LookupName(const char* str);
static void AddRefTable(void);
static void ReleaseTable(void);
// Given a CSS Property ID and an Property Value Index
// Return back a const char* representation of the
// value. Return back nsnull if no value is found
static const char* LookupProperty(PRInt32 aProp, PRInt32 aIndex);
// Given a property string, return the enum value
static nsCSSProperty LookupProperty(const nsStr& aProperty);
struct NameTableEntry {
const char* name;
PRInt32 id;
};
// Given a property enum, get the string value
static const nsCString& GetStringValue(nsCSSProperty aProperty);
// A table whose index is the tag id (from nsCSSPropIDs)
static const NameTableEntry kNameTable[];
// Given a CSS Property and a Property Enum Value
// Return back a const nsString& representation of the
// value. Return back nullstr if no value is found
static const nsCString& LookupPropertyValue(nsCSSProperty aProperty, PRInt32 aValue);
static const PRInt32 kHintTable[];
// Keyword/Enum value tables
static const PRInt32 kAzimuthKTable[];
static const PRInt32 kAutoSelectKTable[];
static const PRInt32 kAutoTabKTable[];
static const PRInt32 kBackgroundAttachmentKTable[];
static const PRInt32 kBackgroundColorKTable[];
static const PRInt32 kBackgroundRepeatKTable[];
@ -53,6 +68,7 @@ public:
static const PRInt32 kBorderColorKTable[];
static const PRInt32 kBorderStyleKTable[];
static const PRInt32 kBorderWidthKTable[];
static const PRInt32 kBoxSizingKTable[];
static const PRInt32 kCaptionSideKTable[];
static const PRInt32 kClearKTable[];
static const PRInt32 kContentKTable[];
@ -62,14 +78,17 @@ public:
static const PRInt32 kElevationKTable[];
static const PRInt32 kEmptyCellsKTable[];
static const PRInt32 kFloatKTable[];
static const PRInt32 kFloatEdgeKTable[];
static const PRInt32 kFontKTable[];
static const PRInt32 kFontSizeKTable[];
static const PRInt32 kFontStretchKTable[];
static const PRInt32 kFontStyleKTable[];
static const PRInt32 kFontVariantKTable[];
static const PRInt32 kFontWeightKTable[];
static const PRInt32 kKeyEquivalentKTable[];
static const PRInt32 kListStylePositionKTable[];
static const PRInt32 kListStyleKTable[];
static const PRInt32 kModifyContentKTable[];
static const PRInt32 kOutlineColorKTable[];
static const PRInt32 kOverflowKTable[];
static const PRInt32 kPageBreakKTable[];
@ -79,6 +98,8 @@ public:
static const PRInt32 kPitchKTable[];
static const PRInt32 kPlayDuringKTable[];
static const PRInt32 kPositionKTable[];
static const PRInt32 kResizerKTable[];
static const PRInt32 kSelectionStyleKTable[];
static const PRInt32 kSpeakKTable[];
static const PRInt32 kSpeakHeaderKTable[];
static const PRInt32 kSpeakNumeralKTable[];
@ -89,6 +110,7 @@ public:
static const PRInt32 kTextDecorationKTable[];
static const PRInt32 kTextTransformKTable[];
static const PRInt32 kUnicodeBidiKTable[];
static const PRInt32 kUserInputKTable[];
static const PRInt32 kVerticalAlignKTable[];
static const PRInt32 kVisibilityKTable[];
static const PRInt32 kVolumeKTable[];

Просмотреть файл

@ -0,0 +1,265 @@
/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*-
*
* The contents of this file are subject to the Netscape Public License
* Version 1.0 (the "NPL"); you may not use this file except in
* compliance with the NPL. You may obtain a copy of the NPL at
* http://www.mozilla.org/NPL/
*
* Software distributed under the NPL is distributed on an "AS IS" basis,
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
* for the specific language governing rights and limitations under the
* NPL.
*
* The Initial Developer of this code under the NPL is Netscape
* Communications Corporation. Portions created by Netscape are
* Copyright (C) 1999 Netscape Communications Corporation. All Rights
* Reserved.
*/
/******
This file contains the list of all parsed CSS keywords
See nsCSSKeywords.h for access to the enum values for keywords
It is designed to be used as inline input to nsCSSKeywords.cpp *only*
through the magic of C preprocessing.
All entires must be enclosed in the macro CSS_KEY which will have cruel
and unusual things done to it
It is recommended (but not strictly necessary) to keep all entries
in alphabetical order
Underbars in keywords are automagically converted into hyphens
******/
CSS_KEY(_moz_bg_inset)
CSS_KEY(_moz_bg_outset)
CSS_KEY(_moz_pre_wrap)
CSS_KEY(_moz_center)
CSS_KEY(_moz_right)
CSS_KEY(above)
CSS_KEY(absolute)
CSS_KEY(activate_next)
CSS_KEY(all)
CSS_KEY(always)
CSS_KEY(any)
CSS_KEY(armenian)
CSS_KEY(auto)
CSS_KEY(avoid)
CSS_KEY(baseline)
CSS_KEY(behind)
CSS_KEY(below)
CSS_KEY(bidi_override)
CSS_KEY(blink)
CSS_KEY(block)
CSS_KEY(bold)
CSS_KEY(bolder)
CSS_KEY(border_box)
CSS_KEY(both)
CSS_KEY(bottom)
CSS_KEY(capitalize)
CSS_KEY(caption)
CSS_KEY(center)
CSS_KEY(center_left)
CSS_KEY(center_right)
CSS_KEY(ch)
CSS_KEY(circle)
CSS_KEY(cjk_ideographic)
CSS_KEY(close_quote)
CSS_KEY(cm)
CSS_KEY(code)
CSS_KEY(collapse)
CSS_KEY(compact)
CSS_KEY(condensed)
CSS_KEY(content_box)
CSS_KEY(continuous)
CSS_KEY(crop)
CSS_KEY(cross)
CSS_KEY(crosshair)
CSS_KEY(dashed)
CSS_KEY(decimal)
CSS_KEY(decimal_leading_zero)
CSS_KEY(default)
CSS_KEY(deg)
CSS_KEY(digits)
CSS_KEY(disabled)
CSS_KEY(disc)
CSS_KEY(dotted)
CSS_KEY(double)
CSS_KEY(e_resize)
CSS_KEY(em)
CSS_KEY(embed)
CSS_KEY(enabled)
CSS_KEY(ex)
CSS_KEY(expanded)
CSS_KEY(extra_condensed)
CSS_KEY(extra_expanded)
CSS_KEY(far_left)
CSS_KEY(far_right)
CSS_KEY(fast)
CSS_KEY(faster)
CSS_KEY(fixed)
CSS_KEY(georgian)
CSS_KEY(grad)
CSS_KEY(groove)
CSS_KEY(hebrew)
CSS_KEY(help)
CSS_KEY(hidden)
CSS_KEY(hide)
CSS_KEY(high)
CSS_KEY(higher)
CSS_KEY(hiragana)
CSS_KEY(hiragana_iroha)
CSS_KEY(horizontal)
CSS_KEY(hz)
CSS_KEY(icon)
CSS_KEY(in)
CSS_KEY(inherit)
CSS_KEY(inline)
CSS_KEY(inline_block)
CSS_KEY(inline_table)
CSS_KEY(inset)
CSS_KEY(inside)
CSS_KEY(invert)
CSS_KEY(italic)
CSS_KEY(justify)
CSS_KEY(katakana)
CSS_KEY(katakana_iroha)
CSS_KEY(khz)
CSS_KEY(landscape)
CSS_KEY(large)
CSS_KEY(larger)
CSS_KEY(left)
CSS_KEY(left_side)
CSS_KEY(leftwards)
CSS_KEY(level)
CSS_KEY(lighter)
CSS_KEY(line)
CSS_KEY(line_through)
CSS_KEY(list_item)
CSS_KEY(loud)
CSS_KEY(low)
CSS_KEY(lower)
CSS_KEY(lower_alpha)
CSS_KEY(lower_greek)
CSS_KEY(lower_latin)
CSS_KEY(lower_roman)
CSS_KEY(lowercase)
CSS_KEY(ltr)
CSS_KEY(margin_box)
CSS_KEY(marker)
CSS_KEY(medium)
CSS_KEY(menu)
CSS_KEY(message_box)
CSS_KEY(middle)
CSS_KEY(mix)
CSS_KEY(mm)
CSS_KEY(move)
CSS_KEY(ms)
CSS_KEY(n_resize)
CSS_KEY(narrower)
CSS_KEY(ne_resize)
CSS_KEY(no_close_quote)
CSS_KEY(no_open_quote)
CSS_KEY(no_repeat)
CSS_KEY(none)
CSS_KEY(normal)
CSS_KEY(noshade)
CSS_KEY(nowrap)
CSS_KEY(nw_resize)
CSS_KEY(oblique)
CSS_KEY(once)
CSS_KEY(open_quote)
CSS_KEY(outset)
CSS_KEY(outside)
CSS_KEY(overline)
CSS_KEY(padding_box)
CSS_KEY(paragraph)
CSS_KEY(pc)
CSS_KEY(pointer)
CSS_KEY(portrait)
CSS_KEY(pre)
CSS_KEY(pt)
CSS_KEY(px)
CSS_KEY(rad)
CSS_KEY(read_only)
CSS_KEY(read_write)
CSS_KEY(relative)
CSS_KEY(repeat)
CSS_KEY(repeat_x)
CSS_KEY(repeat_y)
CSS_KEY(ridge)
CSS_KEY(right)
CSS_KEY(right_side)
CSS_KEY(rightwards)
CSS_KEY(rtl)
CSS_KEY(run_in)
CSS_KEY(s)
CSS_KEY(s_resize)
CSS_KEY(scroll)
CSS_KEY(se_resize)
CSS_KEY(select)
CSS_KEY(select_next)
CSS_KEY(semi_condensed)
CSS_KEY(semi_expanded)
CSS_KEY(separate)
CSS_KEY(show)
CSS_KEY(silent)
CSS_KEY(slow)
CSS_KEY(slower)
CSS_KEY(small)
CSS_KEY(small_caps)
CSS_KEY(small_caption)
CSS_KEY(smaller)
CSS_KEY(soft)
CSS_KEY(solid)
CSS_KEY(spell_out)
CSS_KEY(square)
CSS_KEY(static)
CSS_KEY(status_bar)
CSS_KEY(sub)
CSS_KEY(super)
CSS_KEY(sw_resize)
CSS_KEY(table)
CSS_KEY(table_caption)
CSS_KEY(table_cell)
CSS_KEY(table_column)
CSS_KEY(table_column_group)
CSS_KEY(table_footer_group)
CSS_KEY(table_header_group)
CSS_KEY(table_row)
CSS_KEY(table_row_group)
CSS_KEY(text)
CSS_KEY(text_bottom)
CSS_KEY(text_top)
CSS_KEY(thick)
CSS_KEY(thin)
CSS_KEY(toggle)
CSS_KEY(top)
CSS_KEY(transparent)
CSS_KEY(ultra_condensed)
CSS_KEY(ultra_expanded)
CSS_KEY(underline)
CSS_KEY(upper_alpha)
CSS_KEY(upper_latin)
CSS_KEY(upper_roman)
CSS_KEY(uppercase)
CSS_KEY(vertical)
CSS_KEY(visible)
CSS_KEY(w_resize)
CSS_KEY(wait)
CSS_KEY(wider)
CSS_KEY(write_only)
CSS_KEY(x_fast)
CSS_KEY(x_high)
CSS_KEY(x_large)
CSS_KEY(x_loud)
CSS_KEY(x_low)
CSS_KEY(x_slow)
CSS_KEY(x_small)
CSS_KEY(x_soft)
CSS_KEY(xx_large)
CSS_KEY(xx_small)

Разница между файлами не показана из-за своего большого размера Загрузить разницу

Просмотреть файл

@ -19,22 +19,36 @@
#define nsCSSKeywords_h___
#include "nslayout.h"
#include "nsCSSKeywordIDs.h"
struct nsStr;
class nsCString;
/*
Declare the enum list using the magic of preprocessing
enum values are "eCSSKeyword_foo" (where foo is the keyword)
To change the list of keywords, see nsCSSKeywordList.h
*/
#define CSS_KEY(_key) eCSSKeyword_##_key,
enum nsCSSKeyword {
eCSSKeyword_UNKNOWN = -1,
#include "nsCSSKeywordList.h"
eCSSKeyword_COUNT
};
#undef CSS_KEY
class NS_LAYOUT nsCSSKeywords {
public:
// Given a null terminated string of 7 bit characters, return the
// tag id (see nsHTMLTagIDs.h) for the tag or -1 if the tag is not
// known. The lookup function uses a perfect hash.
static PRInt32 LookupName(const char* str);
static void AddRefTable(void);
static void ReleaseTable(void);
struct NameTableEntry {
const char* name;
PRInt32 id;
};
// Given a keyword string, return the enum value
static nsCSSKeyword LookupKeyword(const nsStr& aKeyword);
// A table whose index is the tag id (from LookupName)
static const NameTableEntry kNameTable[];
// Given a keyword enum, get the string value
static const nsCString& GetStringValue(nsCSSKeyword aKeyword);
};
#endif /* nsCSSKeywords_h___ */

Просмотреть файл

@ -0,0 +1,191 @@
/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*-
*
* The contents of this file are subject to the Netscape Public License
* Version 1.0 (the "NPL"); you may not use this file except in
* compliance with the NPL. You may obtain a copy of the NPL at
* http://www.mozilla.org/NPL/
*
* Software distributed under the NPL is distributed on an "AS IS" basis,
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
* for the specific language governing rights and limitations under the
* NPL.
*
* The Initial Developer of this code under the NPL is Netscape
* Communications Corporation. Portions created by Netscape are
* Copyright (C) 1999 Netscape Communications Corporation. All Rights
* Reserved.
*/
/******
This file contains the list of all parsed CSS properties
See nsCSSProps.h for access to the enum values for properties
It is designed to be used as inline input to nsCSSProps.cpp *only*
through the magic of C preprocessing.
All entires must be enclosed in the macro CSS_PROP which will have cruel
and unusual things done to it
It is recommended (but not strictly necessary) to keep all entries
in alphabetical order
Underbars in properties are automagically converted into hyphens
The first argument to CSS_PROP is both the enum identifier of the property
and the string value
The second argument is the style impact resultant in a change to the property
******/
CSS_PROP(_moz_border_radius, VISUAL)
CSS_PROP(azimuth, AURAL)
CSS_PROP(auto_select, CONTENT)
CSS_PROP(auto_tab, CONTENT)
CSS_PROP(background, VISUAL)
CSS_PROP(background_attachment, VISUAL)
CSS_PROP(background_color, VISUAL)
CSS_PROP(background_image, VISUAL)
CSS_PROP(background_position, VISUAL)
CSS_PROP(background_repeat, VISUAL)
CSS_PROP(background_x_position, VISUAL)
CSS_PROP(background_y_position, VISUAL)
CSS_PROP(border, REFLOW)
CSS_PROP(border_bottom, REFLOW)
CSS_PROP(border_bottom_color, VISUAL)
CSS_PROP(border_bottom_style, REFLOW) // on/off will need reflow
CSS_PROP(border_bottom_width, REFLOW)
CSS_PROP(border_collapse, REFLOW)
CSS_PROP(border_color, VISUAL)
CSS_PROP(border_left, REFLOW)
CSS_PROP(border_left_color, VISUAL)
CSS_PROP(border_left_style, REFLOW) // on/off will need reflow
CSS_PROP(border_left_width, REFLOW)
CSS_PROP(border_right, REFLOW)
CSS_PROP(border_right_color, VISUAL)
CSS_PROP(border_right_style, REFLOW) // on/off will need reflow
CSS_PROP(border_right_width, REFLOW)
CSS_PROP(border_spacing, REFLOW)
CSS_PROP(border_style, REFLOW) // on/off will need reflow
CSS_PROP(border_top, REFLOW)
CSS_PROP(border_top_color, VISUAL)
CSS_PROP(border_top_style, REFLOW) // on/off will need reflow
CSS_PROP(border_top_width, REFLOW)
CSS_PROP(border_width, REFLOW)
CSS_PROP(border_x_spacing, REFLOW)
CSS_PROP(border_y_spacing, REFLOW)
CSS_PROP(bottom, REFLOW)
CSS_PROP(box_sizing, REFLOW)
CSS_PROP(caption_side, REFLOW)
CSS_PROP(clear, REFLOW)
CSS_PROP(clip, VISUAL)
CSS_PROP(clip_bottom, VISUAL)
CSS_PROP(clip_left, VISUAL)
CSS_PROP(clip_right, VISUAL)
CSS_PROP(clip_top, VISUAL)
CSS_PROP(color, VISUAL)
CSS_PROP(content, FRAMECHANGE)
CSS_PROP(counter_increment, REFLOW)
CSS_PROP(counter_reset, REFLOW)
CSS_PROP(cue, AURAL)
CSS_PROP(cue_after, AURAL)
CSS_PROP(cue_before, AURAL)
CSS_PROP(cursor, VISUAL)
CSS_PROP(direction, REFLOW)
CSS_PROP(display, FRAMECHANGE)
CSS_PROP(elevation, AURAL)
CSS_PROP(empty_cells, VISUAL)
CSS_PROP(float, FRAMECHANGE)
CSS_PROP(float_edge, REFLOW)
CSS_PROP(font, REFLOW)
CSS_PROP(font_family, REFLOW)
CSS_PROP(font_size, REFLOW)
CSS_PROP(font_size_adjust, REFLOW)
CSS_PROP(font_stretch, REFLOW)
CSS_PROP(font_style, REFLOW)
CSS_PROP(font_variant, REFLOW)
CSS_PROP(font_weight, REFLOW)
CSS_PROP(height, REFLOW)
CSS_PROP(key_equivalent, CONTENT) // This will need some other notification, but what?
CSS_PROP(left, REFLOW)
CSS_PROP(letter_spacing, REFLOW)
CSS_PROP(line_height, REFLOW)
CSS_PROP(list_style, REFLOW)
CSS_PROP(list_style_image, REFLOW)
CSS_PROP(list_style_position, REFLOW)
CSS_PROP(list_style_type, REFLOW)
CSS_PROP(margin, REFLOW)
CSS_PROP(margin_bottom, REFLOW)
CSS_PROP(margin_left, REFLOW)
CSS_PROP(margin_right, REFLOW)
CSS_PROP(margin_top, REFLOW)
CSS_PROP(marker_offset, REFLOW)
CSS_PROP(marks, VISUAL)
CSS_PROP(max_height, REFLOW)
CSS_PROP(max_width, REFLOW)
CSS_PROP(min_height, REFLOW)
CSS_PROP(min_width, REFLOW)
CSS_PROP(modify_content, FRAMECHANGE)
CSS_PROP(opacity, VISUAL)
CSS_PROP(orphans, REFLOW)
CSS_PROP(outline, VISUAL)
CSS_PROP(outline_color, VISUAL)
CSS_PROP(outline_style, VISUAL)
CSS_PROP(outline_width, VISUAL)
CSS_PROP(overflow, FRAMECHANGE)
CSS_PROP(padding, REFLOW)
CSS_PROP(padding_bottom, REFLOW)
CSS_PROP(padding_left, REFLOW)
CSS_PROP(padding_right, REFLOW)
CSS_PROP(padding_top, REFLOW)
CSS_PROP(page, REFLOW)
CSS_PROP(page_break_after, REFLOW)
CSS_PROP(page_break_before, REFLOW)
CSS_PROP(page_break_inside, REFLOW)
CSS_PROP(pause, AURAL)
CSS_PROP(pause_after, AURAL)
CSS_PROP(pause_before, AURAL)
CSS_PROP(pitch, AURAL)
CSS_PROP(pitch_range, AURAL)
CSS_PROP(play_during, AURAL)
CSS_PROP(play_during_flags, AURAL)
CSS_PROP(position, FRAMECHANGE)
CSS_PROP(quotes, REFLOW)
CSS_PROP(quotes_close, REFLOW)
CSS_PROP(quotes_open, REFLOW)
CSS_PROP(resizer, FRAMECHANGE)
CSS_PROP(richness, AURAL)
CSS_PROP(right, REFLOW)
CSS_PROP(selection_style, CONTENT)
CSS_PROP(size, REFLOW)
CSS_PROP(size_height, REFLOW)
CSS_PROP(size_width, REFLOW)
CSS_PROP(speak, AURAL)
CSS_PROP(speak_header, AURAL)
CSS_PROP(speak_numeral, AURAL)
CSS_PROP(speak_punctuation, AURAL)
CSS_PROP(speech_rate, AURAL)
CSS_PROP(stress, AURAL)
CSS_PROP(table_layout, REFLOW)
CSS_PROP(text_align, REFLOW)
CSS_PROP(text_decoration, VISUAL)
CSS_PROP(text_indent, REFLOW)
CSS_PROP(text_shadow, VISUAL)
CSS_PROP(text_shadow_color, VISUAL)
CSS_PROP(text_shadow_radius, VISUAL)
CSS_PROP(text_shadow_x, VISUAL)
CSS_PROP(text_shadow_y, VISUAL)
CSS_PROP(text_transform, REFLOW)
CSS_PROP(top, REFLOW)
CSS_PROP(unicode_bidi, REFLOW)
CSS_PROP(user_input, FRAMECHANGE) // XXX ???
CSS_PROP(vertical_align, REFLOW)
CSS_PROP(visibility, REFLOW) // reflow for collapse
CSS_PROP(voice_family, AURAL)
CSS_PROP(volume, AURAL)
CSS_PROP(white_space, REFLOW)
CSS_PROP(widows, REFLOW)
CSS_PROP(width, REFLOW)
CSS_PROP(word_spacing, REFLOW)
CSS_PROP(z_index, REFLOW)

Разница между файлами не показана из-за своего большого размера Загрузить разницу

Просмотреть файл

@ -19,33 +19,48 @@
#define nsCSSProps_h___
#include "nslayout.h"
#include "nsCSSPropIDs.h"
struct nsStr;
class nsCString;
/*
Declare the enum list using the magic of preprocessing
enum values are "eCSSProperty_foo" (where foo is the property)
To change the list of properties, see nsCSSPropList.h
*/
#define CSS_PROP(_prop, _hint) eCSSProperty_##_prop,
enum nsCSSProperty {
eCSSProperty_UNKNOWN = -1,
#include "nsCSSPropList.h"
eCSSProperty_COUNT
};
#undef CSS_PROP
class NS_LAYOUT nsCSSProps {
public:
// Given a null terminated string of 7 bit characters, return the
// tag id (see nsCSSPropIDs.h) for the tag or -1 if the tag is not
// known. The lookup function uses a perfect hash.
static PRInt32 LookupName(const char* str);
static void AddRefTable(void);
static void ReleaseTable(void);
// Given a CSS Property ID and an Property Value Index
// Return back a const char* representation of the
// value. Return back nsnull if no value is found
static const char* LookupProperty(PRInt32 aProp, PRInt32 aIndex);
// Given a property string, return the enum value
static nsCSSProperty LookupProperty(const nsStr& aProperty);
struct NameTableEntry {
const char* name;
PRInt32 id;
};
// Given a property enum, get the string value
static const nsCString& GetStringValue(nsCSSProperty aProperty);
// A table whose index is the tag id (from nsCSSPropIDs)
static const NameTableEntry kNameTable[];
// Given a CSS Property and a Property Enum Value
// Return back a const nsString& representation of the
// value. Return back nullstr if no value is found
static const nsCString& LookupPropertyValue(nsCSSProperty aProperty, PRInt32 aValue);
static const PRInt32 kHintTable[];
// Keyword/Enum value tables
static const PRInt32 kAzimuthKTable[];
static const PRInt32 kAutoSelectKTable[];
static const PRInt32 kAutoTabKTable[];
static const PRInt32 kBackgroundAttachmentKTable[];
static const PRInt32 kBackgroundColorKTable[];
static const PRInt32 kBackgroundRepeatKTable[];
@ -53,6 +68,7 @@ public:
static const PRInt32 kBorderColorKTable[];
static const PRInt32 kBorderStyleKTable[];
static const PRInt32 kBorderWidthKTable[];
static const PRInt32 kBoxSizingKTable[];
static const PRInt32 kCaptionSideKTable[];
static const PRInt32 kClearKTable[];
static const PRInt32 kContentKTable[];
@ -62,14 +78,17 @@ public:
static const PRInt32 kElevationKTable[];
static const PRInt32 kEmptyCellsKTable[];
static const PRInt32 kFloatKTable[];
static const PRInt32 kFloatEdgeKTable[];
static const PRInt32 kFontKTable[];
static const PRInt32 kFontSizeKTable[];
static const PRInt32 kFontStretchKTable[];
static const PRInt32 kFontStyleKTable[];
static const PRInt32 kFontVariantKTable[];
static const PRInt32 kFontWeightKTable[];
static const PRInt32 kKeyEquivalentKTable[];
static const PRInt32 kListStylePositionKTable[];
static const PRInt32 kListStyleKTable[];
static const PRInt32 kModifyContentKTable[];
static const PRInt32 kOutlineColorKTable[];
static const PRInt32 kOverflowKTable[];
static const PRInt32 kPageBreakKTable[];
@ -79,6 +98,8 @@ public:
static const PRInt32 kPitchKTable[];
static const PRInt32 kPlayDuringKTable[];
static const PRInt32 kPositionKTable[];
static const PRInt32 kResizerKTable[];
static const PRInt32 kSelectionStyleKTable[];
static const PRInt32 kSpeakKTable[];
static const PRInt32 kSpeakHeaderKTable[];
static const PRInt32 kSpeakNumeralKTable[];
@ -89,6 +110,7 @@ public:
static const PRInt32 kTextDecorationKTable[];
static const PRInt32 kTextTransformKTable[];
static const PRInt32 kUnicodeBidiKTable[];
static const PRInt32 kUserInputKTable[];
static const PRInt32 kVerticalAlignKTable[];
static const PRInt32 kVisibilityKTable[];
static const PRInt32 kVolumeKTable[];