mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-11-26 06:11:37 +00:00
Use hastable based nsStaticNameTable rather than slower and fatter AVLTree for static names. fix bug 48855. r=harishd,attinasi
This commit is contained in:
parent
e38aadaa66
commit
5b1229a9a8
@ -34,315 +34,323 @@
|
||||
It is recommended (but not strictly necessary) to keep all entries
|
||||
in alphabetical order
|
||||
|
||||
Underbars in keywords are automagically converted into hyphens
|
||||
Requirements:
|
||||
|
||||
Entries are in the form: (name,id). 'id' must always be the same as 'name'
|
||||
except that all hyphens ('-') in 'name' are converted to underscores ('_')
|
||||
in 'id'. This lets us do nice things with the macros without having to
|
||||
copy/convert strings at runtime.
|
||||
|
||||
'name' entries *must* use only lowercase characters.
|
||||
|
||||
** Break these invarient and bad things will happen. **
|
||||
|
||||
******/
|
||||
|
||||
|
||||
CSS_KEY(_moz_all)
|
||||
CSS_KEY(_moz_bg_inset)
|
||||
CSS_KEY(_moz_bg_outset)
|
||||
CSS_KEY(_moz_center)
|
||||
CSS_KEY(_moz_right)
|
||||
CSS_KEY(_moz_pre_wrap)
|
||||
CSS_KEY(_moz_scrollbars_none)
|
||||
CSS_KEY(_moz_scrollbars_horizontal)
|
||||
CSS_KEY(_moz_scrollbars_vertical)
|
||||
CSS_KEY(above)
|
||||
CSS_KEY(absolute)
|
||||
CSS_KEY(activeborder)
|
||||
CSS_KEY(activecaption)
|
||||
CSS_KEY(alias)
|
||||
CSS_KEY(all)
|
||||
CSS_KEY(always)
|
||||
CSS_KEY(appworkspace)
|
||||
CSS_KEY(arabic_indic)
|
||||
CSS_KEY(armenian)
|
||||
CSS_KEY(auto)
|
||||
CSS_KEY(avoid)
|
||||
CSS_KEY(background)
|
||||
CSS_KEY(baseline)
|
||||
CSS_KEY(behind)
|
||||
CSS_KEY(below)
|
||||
CSS_KEY(bengali)
|
||||
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(button)
|
||||
CSS_KEY(buttonface)
|
||||
CSS_KEY(buttonhighlight)
|
||||
CSS_KEY(buttonshadow)
|
||||
CSS_KEY(buttontext)
|
||||
CSS_KEY(capitalize)
|
||||
CSS_KEY(caption)
|
||||
CSS_KEY(captiontext)
|
||||
CSS_KEY(cell)
|
||||
CSS_KEY(center)
|
||||
CSS_KEY(center_left)
|
||||
CSS_KEY(center_right)
|
||||
CSS_KEY(ch)
|
||||
CSS_KEY(circle)
|
||||
CSS_KEY(cjk_earthly_branch)
|
||||
CSS_KEY(cjk_heavenly_stem)
|
||||
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(context_menu)
|
||||
CSS_KEY(continuous)
|
||||
CSS_KEY(copy)
|
||||
CSS_KEY(count_down)
|
||||
CSS_KEY(count_up)
|
||||
CSS_KEY(count_up_down)
|
||||
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(desktop)
|
||||
CSS_KEY(devanagari)
|
||||
CSS_KEY(dialog)
|
||||
CSS_KEY(digits)
|
||||
CSS_KEY(disabled)
|
||||
CSS_KEY(disc)
|
||||
CSS_KEY(document)
|
||||
CSS_KEY(dotted)
|
||||
CSS_KEY(double)
|
||||
CSS_KEY(e_resize)
|
||||
CSS_KEY(element)
|
||||
CSS_KEY(elements)
|
||||
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(field)
|
||||
CSS_KEY(fixed)
|
||||
CSS_KEY(georgian)
|
||||
CSS_KEY(grab)
|
||||
CSS_KEY(grabbing)
|
||||
CSS_KEY(grad)
|
||||
CSS_KEY(graytext)
|
||||
CSS_KEY(groove)
|
||||
CSS_KEY(gujarati)
|
||||
CSS_KEY(gurmukhi)
|
||||
CSS_KEY(hebrew)
|
||||
CSS_KEY(help)
|
||||
CSS_KEY(hidden)
|
||||
CSS_KEY(hide)
|
||||
CSS_KEY(high)
|
||||
CSS_KEY(higher)
|
||||
CSS_KEY(highlight)
|
||||
CSS_KEY(highlighttext)
|
||||
CSS_KEY(hiragana)
|
||||
CSS_KEY(hiragana_iroha)
|
||||
CSS_KEY(horizontal)
|
||||
CSS_KEY(hz)
|
||||
CSS_KEY(icon)
|
||||
CSS_KEY(ignore)
|
||||
CSS_KEY(in)
|
||||
CSS_KEY(inactiveborder)
|
||||
CSS_KEY(inactivecaption)
|
||||
CSS_KEY(inactivecaptiontext)
|
||||
CSS_KEY(info)
|
||||
CSS_KEY(infobackground)
|
||||
CSS_KEY(infotext)
|
||||
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(japanese_formal)
|
||||
CSS_KEY(japanese_informal)
|
||||
CSS_KEY(justify)
|
||||
CSS_KEY(kannada)
|
||||
CSS_KEY(katakana)
|
||||
CSS_KEY(katakana_iroha)
|
||||
CSS_KEY(khmer)
|
||||
CSS_KEY(khz)
|
||||
CSS_KEY(landscape)
|
||||
CSS_KEY(lao)
|
||||
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_through)
|
||||
CSS_KEY(list)
|
||||
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(malayalam)
|
||||
CSS_KEY(margin_box)
|
||||
CSS_KEY(marker)
|
||||
CSS_KEY(medium)
|
||||
CSS_KEY(menu)
|
||||
CSS_KEY(menutext)
|
||||
CSS_KEY(message_box)
|
||||
CSS_KEY(middle)
|
||||
CSS_KEY(mix)
|
||||
CSS_KEY(mm)
|
||||
CSS_KEY(move)
|
||||
CSS_KEY(ms)
|
||||
CSS_KEY(myanmar)
|
||||
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(oriya)
|
||||
CSS_KEY(outset)
|
||||
CSS_KEY(outside)
|
||||
CSS_KEY(overline)
|
||||
CSS_KEY(padding_box)
|
||||
CSS_KEY(paragraph)
|
||||
CSS_KEY(pc)
|
||||
CSS_KEY(persian)
|
||||
CSS_KEY(pointer)
|
||||
CSS_KEY(portrait)
|
||||
CSS_KEY(pre)
|
||||
CSS_KEY(pt)
|
||||
CSS_KEY(pull_down_menu)
|
||||
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(scrollbar)
|
||||
CSS_KEY(se_resize)
|
||||
CSS_KEY(select_all)
|
||||
CSS_KEY(select_before)
|
||||
CSS_KEY(select_after)
|
||||
CSS_KEY(select_same)
|
||||
CSS_KEY(select_menu)
|
||||
CSS_KEY(semi_condensed)
|
||||
CSS_KEY(semi_expanded)
|
||||
CSS_KEY(separate)
|
||||
CSS_KEY(show)
|
||||
CSS_KEY(silent)
|
||||
CSS_KEY(simp_chinese_formal)
|
||||
CSS_KEY(simp_chinese_informal)
|
||||
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(spinning)
|
||||
CSS_KEY(square)
|
||||
CSS_KEY(start)
|
||||
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(tamil)
|
||||
CSS_KEY(telugu)
|
||||
CSS_KEY(text)
|
||||
CSS_KEY(text_bottom)
|
||||
CSS_KEY(text_top)
|
||||
CSS_KEY(thai)
|
||||
CSS_KEY(thick)
|
||||
CSS_KEY(thin)
|
||||
CSS_KEY(threeddarkshadow)
|
||||
CSS_KEY(threedface)
|
||||
CSS_KEY(threedhighlight)
|
||||
CSS_KEY(threedlightshadow)
|
||||
CSS_KEY(threedshadow)
|
||||
CSS_KEY(toggle)
|
||||
CSS_KEY(top)
|
||||
CSS_KEY(trad_chinese_formal)
|
||||
CSS_KEY(trad_chinese_informal)
|
||||
CSS_KEY(transparent)
|
||||
CSS_KEY(tri_state)
|
||||
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(urdu)
|
||||
CSS_KEY(vertical)
|
||||
CSS_KEY(visible)
|
||||
CSS_KEY(w_resize)
|
||||
CSS_KEY(wait)
|
||||
CSS_KEY(wider)
|
||||
CSS_KEY(window)
|
||||
CSS_KEY(windowframe)
|
||||
CSS_KEY(windowtext)
|
||||
CSS_KEY(workspace)
|
||||
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)
|
||||
CSS_KEY(-moz-all, _moz_all)
|
||||
CSS_KEY(-moz-bg-inset, _moz_bg_inset)
|
||||
CSS_KEY(-moz-bg-outset, _moz_bg_outset)
|
||||
CSS_KEY(-moz-center, _moz_center)
|
||||
CSS_KEY(-moz-right, _moz_right)
|
||||
CSS_KEY(-moz-pre-wrap, _moz_pre_wrap)
|
||||
CSS_KEY(-moz-scrollbars-none, _moz_scrollbars_none)
|
||||
CSS_KEY(-moz-scrollbars-horizontal, _moz_scrollbars_horizontal)
|
||||
CSS_KEY(-moz-scrollbars-vertical, _moz_scrollbars_vertical)
|
||||
CSS_KEY(above, above)
|
||||
CSS_KEY(absolute, absolute)
|
||||
CSS_KEY(activeborder, activeborder)
|
||||
CSS_KEY(activecaption, activecaption)
|
||||
CSS_KEY(alias, alias)
|
||||
CSS_KEY(all, all)
|
||||
CSS_KEY(always, always)
|
||||
CSS_KEY(appworkspace, appworkspace)
|
||||
CSS_KEY(arabic-indic, arabic_indic)
|
||||
CSS_KEY(armenian, armenian)
|
||||
CSS_KEY(auto, auto)
|
||||
CSS_KEY(avoid, avoid)
|
||||
CSS_KEY(background, background)
|
||||
CSS_KEY(baseline, baseline)
|
||||
CSS_KEY(behind, behind)
|
||||
CSS_KEY(below, below)
|
||||
CSS_KEY(bengali, bengali)
|
||||
CSS_KEY(bidi-override, bidi_override)
|
||||
CSS_KEY(blink, blink)
|
||||
CSS_KEY(block, block)
|
||||
CSS_KEY(bold, bold)
|
||||
CSS_KEY(bolder, bolder)
|
||||
CSS_KEY(border-box, border_box)
|
||||
CSS_KEY(both, both)
|
||||
CSS_KEY(bottom, bottom)
|
||||
CSS_KEY(button, button)
|
||||
CSS_KEY(buttonface, buttonface)
|
||||
CSS_KEY(buttonhighlight, buttonhighlight)
|
||||
CSS_KEY(buttonshadow, buttonshadow)
|
||||
CSS_KEY(buttontext, buttontext)
|
||||
CSS_KEY(capitalize, capitalize)
|
||||
CSS_KEY(caption, caption)
|
||||
CSS_KEY(captiontext, captiontext)
|
||||
CSS_KEY(cell, cell)
|
||||
CSS_KEY(center, center)
|
||||
CSS_KEY(center-left, center_left)
|
||||
CSS_KEY(center-right, center_right)
|
||||
CSS_KEY(ch, ch)
|
||||
CSS_KEY(circle, circle)
|
||||
CSS_KEY(cjk-earthly-branch, cjk_earthly_branch)
|
||||
CSS_KEY(cjk-heavenly-stem, cjk_heavenly_stem)
|
||||
CSS_KEY(cjk-ideographic, cjk_ideographic)
|
||||
CSS_KEY(close-quote, close_quote)
|
||||
CSS_KEY(cm, cm)
|
||||
CSS_KEY(code, code)
|
||||
CSS_KEY(collapse, collapse)
|
||||
CSS_KEY(compact, compact)
|
||||
CSS_KEY(condensed, condensed)
|
||||
CSS_KEY(content-box, content_box)
|
||||
CSS_KEY(context-menu, context_menu)
|
||||
CSS_KEY(continuous, continuous)
|
||||
CSS_KEY(copy, copy)
|
||||
CSS_KEY(count-down, count_down)
|
||||
CSS_KEY(count-up, count_up)
|
||||
CSS_KEY(count-up-down, count_up_down)
|
||||
CSS_KEY(crop, crop)
|
||||
CSS_KEY(cross, cross)
|
||||
CSS_KEY(crosshair, crosshair)
|
||||
CSS_KEY(dashed, dashed)
|
||||
CSS_KEY(decimal, decimal)
|
||||
CSS_KEY(decimal-leading-zero, decimal_leading_zero)
|
||||
CSS_KEY(default, default)
|
||||
CSS_KEY(deg, deg)
|
||||
CSS_KEY(desktop, desktop)
|
||||
CSS_KEY(devanagari, devanagari)
|
||||
CSS_KEY(dialog, dialog)
|
||||
CSS_KEY(digits, digits)
|
||||
CSS_KEY(disabled, disabled)
|
||||
CSS_KEY(disc, disc)
|
||||
CSS_KEY(document, document)
|
||||
CSS_KEY(dotted, dotted)
|
||||
CSS_KEY(double, double)
|
||||
CSS_KEY(e-resize, e_resize)
|
||||
CSS_KEY(element, element)
|
||||
CSS_KEY(elements, elements)
|
||||
CSS_KEY(em, em)
|
||||
CSS_KEY(embed, embed)
|
||||
CSS_KEY(enabled, enabled)
|
||||
CSS_KEY(ex, ex)
|
||||
CSS_KEY(expanded, expanded)
|
||||
CSS_KEY(extra-condensed, extra_condensed)
|
||||
CSS_KEY(extra-expanded, extra_expanded)
|
||||
CSS_KEY(far-left, far_left)
|
||||
CSS_KEY(far-right, far_right)
|
||||
CSS_KEY(fast, fast)
|
||||
CSS_KEY(faster, faster)
|
||||
CSS_KEY(field, field)
|
||||
CSS_KEY(fixed, fixed)
|
||||
CSS_KEY(georgian, georgian)
|
||||
CSS_KEY(grab, grab)
|
||||
CSS_KEY(grabbing, grabbing)
|
||||
CSS_KEY(grad, grad)
|
||||
CSS_KEY(graytext, graytext)
|
||||
CSS_KEY(groove, groove)
|
||||
CSS_KEY(gujarati, gujarati)
|
||||
CSS_KEY(gurmukhi, gurmukhi)
|
||||
CSS_KEY(hebrew, hebrew)
|
||||
CSS_KEY(help, help)
|
||||
CSS_KEY(hidden, hidden)
|
||||
CSS_KEY(hide, hide)
|
||||
CSS_KEY(high, high)
|
||||
CSS_KEY(higher, higher)
|
||||
CSS_KEY(highlight, highlight)
|
||||
CSS_KEY(highlighttext, highlighttext)
|
||||
CSS_KEY(hiragana, hiragana)
|
||||
CSS_KEY(hiragana-iroha, hiragana_iroha)
|
||||
CSS_KEY(horizontal, horizontal)
|
||||
CSS_KEY(hz, hz)
|
||||
CSS_KEY(icon, icon)
|
||||
CSS_KEY(ignore, ignore)
|
||||
CSS_KEY(in, in)
|
||||
CSS_KEY(inactiveborder, inactiveborder)
|
||||
CSS_KEY(inactivecaption, inactivecaption)
|
||||
CSS_KEY(inactivecaptiontext, inactivecaptiontext)
|
||||
CSS_KEY(info, info)
|
||||
CSS_KEY(infobackground, infobackground)
|
||||
CSS_KEY(infotext, infotext)
|
||||
CSS_KEY(inherit, inherit)
|
||||
CSS_KEY(inline, inline)
|
||||
CSS_KEY(inline-block, inline_block)
|
||||
CSS_KEY(inline-table, inline_table)
|
||||
CSS_KEY(inset, inset)
|
||||
CSS_KEY(inside, inside)
|
||||
CSS_KEY(invert, invert)
|
||||
CSS_KEY(italic, italic)
|
||||
CSS_KEY(japanese-formal, japanese_formal)
|
||||
CSS_KEY(japanese-informal, japanese_informal)
|
||||
CSS_KEY(justify, justify)
|
||||
CSS_KEY(kannada, kannada)
|
||||
CSS_KEY(katakana, katakana)
|
||||
CSS_KEY(katakana-iroha, katakana_iroha)
|
||||
CSS_KEY(khmer, khmer)
|
||||
CSS_KEY(khz, khz)
|
||||
CSS_KEY(landscape, landscape)
|
||||
CSS_KEY(lao, lao)
|
||||
CSS_KEY(large, large)
|
||||
CSS_KEY(larger, larger)
|
||||
CSS_KEY(left, left)
|
||||
CSS_KEY(left-side, left_side)
|
||||
CSS_KEY(leftwards, leftwards)
|
||||
CSS_KEY(level, level)
|
||||
CSS_KEY(lighter, lighter)
|
||||
CSS_KEY(line-through, line_through)
|
||||
CSS_KEY(list, list)
|
||||
CSS_KEY(list-item, list_item)
|
||||
CSS_KEY(loud, loud)
|
||||
CSS_KEY(low, low)
|
||||
CSS_KEY(lower, lower)
|
||||
CSS_KEY(lower-alpha, lower_alpha)
|
||||
CSS_KEY(lower-greek, lower_greek)
|
||||
CSS_KEY(lower-latin, lower_latin)
|
||||
CSS_KEY(lower-roman, lower_roman)
|
||||
CSS_KEY(lowercase, lowercase)
|
||||
CSS_KEY(ltr, ltr)
|
||||
CSS_KEY(malayalam, malayalam)
|
||||
CSS_KEY(margin-box, margin_box)
|
||||
CSS_KEY(marker, marker)
|
||||
CSS_KEY(medium, medium)
|
||||
CSS_KEY(menu, menu)
|
||||
CSS_KEY(menutext, menutext)
|
||||
CSS_KEY(message-box, message_box)
|
||||
CSS_KEY(middle, middle)
|
||||
CSS_KEY(mix, mix)
|
||||
CSS_KEY(mm, mm)
|
||||
CSS_KEY(move, move)
|
||||
CSS_KEY(ms, ms)
|
||||
CSS_KEY(myanmar, myanmar)
|
||||
CSS_KEY(n-resize, n_resize)
|
||||
CSS_KEY(narrower, narrower)
|
||||
CSS_KEY(ne-resize, ne_resize)
|
||||
CSS_KEY(no-close-quote, no_close_quote)
|
||||
CSS_KEY(no-open-quote, no_open_quote)
|
||||
CSS_KEY(no-repeat, no_repeat)
|
||||
CSS_KEY(none, none)
|
||||
CSS_KEY(normal, normal)
|
||||
CSS_KEY(noshade, noshade)
|
||||
CSS_KEY(nowrap, nowrap)
|
||||
CSS_KEY(nw-resize, nw_resize)
|
||||
CSS_KEY(oblique, oblique)
|
||||
CSS_KEY(once, once)
|
||||
CSS_KEY(open-quote, open_quote)
|
||||
CSS_KEY(oriya, oriya)
|
||||
CSS_KEY(outset, outset)
|
||||
CSS_KEY(outside, outside)
|
||||
CSS_KEY(overline, overline)
|
||||
CSS_KEY(padding-box, padding_box)
|
||||
CSS_KEY(paragraph, paragraph)
|
||||
CSS_KEY(pc, pc)
|
||||
CSS_KEY(persian, persian)
|
||||
CSS_KEY(pointer, pointer)
|
||||
CSS_KEY(portrait, portrait)
|
||||
CSS_KEY(pre, pre)
|
||||
CSS_KEY(pt, pt)
|
||||
CSS_KEY(pull-down-menu, pull_down_menu)
|
||||
CSS_KEY(px, px)
|
||||
CSS_KEY(rad, rad)
|
||||
CSS_KEY(read-only, read_only)
|
||||
CSS_KEY(read-write, read_write)
|
||||
CSS_KEY(relative, relative)
|
||||
CSS_KEY(repeat, repeat)
|
||||
CSS_KEY(repeat-x, repeat_x)
|
||||
CSS_KEY(repeat-y, repeat_y)
|
||||
CSS_KEY(ridge, ridge)
|
||||
CSS_KEY(right, right)
|
||||
CSS_KEY(right-side, right_side)
|
||||
CSS_KEY(rightwards, rightwards)
|
||||
CSS_KEY(rtl, rtl)
|
||||
CSS_KEY(run-in, run_in)
|
||||
CSS_KEY(s, s)
|
||||
CSS_KEY(s-resize, s_resize)
|
||||
CSS_KEY(scroll, scroll)
|
||||
CSS_KEY(scrollbar, scrollbar)
|
||||
CSS_KEY(se-resize, se_resize)
|
||||
CSS_KEY(select-all, select_all)
|
||||
CSS_KEY(select-before, select_before)
|
||||
CSS_KEY(select-after, select_after)
|
||||
CSS_KEY(select-same, select_same)
|
||||
CSS_KEY(select-menu, select_menu)
|
||||
CSS_KEY(semi-condensed, semi_condensed)
|
||||
CSS_KEY(semi-expanded, semi_expanded)
|
||||
CSS_KEY(separate, separate)
|
||||
CSS_KEY(show, show)
|
||||
CSS_KEY(silent, silent)
|
||||
CSS_KEY(simp-chinese-formal, simp_chinese_formal)
|
||||
CSS_KEY(simp-chinese-informal, simp_chinese_informal)
|
||||
CSS_KEY(slow, slow)
|
||||
CSS_KEY(slower, slower)
|
||||
CSS_KEY(small, small)
|
||||
CSS_KEY(small-caps, small_caps)
|
||||
CSS_KEY(small-caption, small_caption)
|
||||
CSS_KEY(smaller, smaller)
|
||||
CSS_KEY(soft, soft)
|
||||
CSS_KEY(solid, solid)
|
||||
CSS_KEY(spell-out, spell_out)
|
||||
CSS_KEY(spinning, spinning)
|
||||
CSS_KEY(square, square)
|
||||
CSS_KEY(start, start)
|
||||
CSS_KEY(static, static)
|
||||
CSS_KEY(status-bar, status_bar)
|
||||
CSS_KEY(sub, sub)
|
||||
CSS_KEY(super, super)
|
||||
CSS_KEY(sw-resize, sw_resize)
|
||||
CSS_KEY(table, table)
|
||||
CSS_KEY(table-caption, table_caption)
|
||||
CSS_KEY(table-cell, table_cell)
|
||||
CSS_KEY(table-column, table_column)
|
||||
CSS_KEY(table-column-group, table_column_group)
|
||||
CSS_KEY(table-footer-group, table_footer_group)
|
||||
CSS_KEY(table-header-group, table_header_group)
|
||||
CSS_KEY(table-row, table_row)
|
||||
CSS_KEY(table-row-group, table_row_group)
|
||||
CSS_KEY(tamil, tamil)
|
||||
CSS_KEY(telugu, telugu)
|
||||
CSS_KEY(text, text)
|
||||
CSS_KEY(text-bottom, text_bottom)
|
||||
CSS_KEY(text-top, text_top)
|
||||
CSS_KEY(thai, thai)
|
||||
CSS_KEY(thick, thick)
|
||||
CSS_KEY(thin, thin)
|
||||
CSS_KEY(threeddarkshadow, threeddarkshadow)
|
||||
CSS_KEY(threedface, threedface)
|
||||
CSS_KEY(threedhighlight, threedhighlight)
|
||||
CSS_KEY(threedlightshadow, threedlightshadow)
|
||||
CSS_KEY(threedshadow, threedshadow)
|
||||
CSS_KEY(toggle, toggle)
|
||||
CSS_KEY(top, top)
|
||||
CSS_KEY(trad-chinese-formal, trad_chinese_formal)
|
||||
CSS_KEY(trad-chinese-informal, trad_chinese_informal)
|
||||
CSS_KEY(transparent, transparent)
|
||||
CSS_KEY(tri-state, tri_state)
|
||||
CSS_KEY(ultra-condensed, ultra_condensed)
|
||||
CSS_KEY(ultra-expanded, ultra_expanded)
|
||||
CSS_KEY(underline, underline)
|
||||
CSS_KEY(upper-alpha, upper_alpha)
|
||||
CSS_KEY(upper-latin, upper_latin)
|
||||
CSS_KEY(upper-roman, upper_roman)
|
||||
CSS_KEY(uppercase, uppercase)
|
||||
CSS_KEY(urdu, urdu)
|
||||
CSS_KEY(vertical, vertical)
|
||||
CSS_KEY(visible, visible)
|
||||
CSS_KEY(w-resize, w_resize)
|
||||
CSS_KEY(wait, wait)
|
||||
CSS_KEY(wider, wider)
|
||||
CSS_KEY(window, window)
|
||||
CSS_KEY(windowframe, windowframe)
|
||||
CSS_KEY(windowtext, windowtext)
|
||||
CSS_KEY(workspace, workspace)
|
||||
CSS_KEY(write-only, write_only)
|
||||
CSS_KEY(x-fast, x_fast)
|
||||
CSS_KEY(x-high, x_high)
|
||||
CSS_KEY(x-large, x_large)
|
||||
CSS_KEY(x-loud, x_loud)
|
||||
CSS_KEY(x-low, x_low)
|
||||
CSS_KEY(x-slow, x_slow)
|
||||
CSS_KEY(x-small, x_small)
|
||||
CSS_KEY(x-soft, x_soft)
|
||||
CSS_KEY(xx-large, xx_large)
|
||||
CSS_KEY(xx-small, xx_small)
|
||||
|
@ -34,7 +34,7 @@ class nsCString;
|
||||
To change the list of keywords, see nsCSSKeywordList.h
|
||||
|
||||
*/
|
||||
#define CSS_KEY(_key) eCSSKeyword_##_key,
|
||||
#define CSS_KEY(_name,_id) eCSSKeyword_##_id,
|
||||
enum nsCSSKeyword {
|
||||
eCSSKeyword_UNKNOWN = -1,
|
||||
#include "nsCSSKeywordList.h"
|
||||
|
@ -34,171 +34,177 @@
|
||||
It is recommended (but not strictly necessary) to keep all entries
|
||||
in alphabetical order
|
||||
|
||||
Underbars in properties are automagically converted into hyphens
|
||||
Requirements:
|
||||
|
||||
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
|
||||
Entries are in the form: (name,id,impact). 'id' must always be the same as
|
||||
'name' except that all hyphens ('-') in 'name' are converted to underscores
|
||||
('_') in 'id'. This lets us do nice things with the macros without having to
|
||||
copy/convert strings at runtime.
|
||||
|
||||
'name' entries *must* use only lowercase characters.
|
||||
|
||||
** Break these invarient and bad things will happen. **
|
||||
|
||||
The third argument is the style impact resultant in a change to the property
|
||||
******/
|
||||
|
||||
|
||||
CSS_PROP(_moz_border_radius, VISUAL)
|
||||
CSS_PROP(_moz_border_radius_topLeft, VISUAL)
|
||||
CSS_PROP(_moz_border_radius_topRight, VISUAL)
|
||||
CSS_PROP(_moz_border_radius_bottomLeft, VISUAL)
|
||||
CSS_PROP(_moz_border_radius_bottomRight, VISUAL)
|
||||
CSS_PROP(_moz_outline_radius, VISUAL)
|
||||
CSS_PROP(_moz_outline_radius_topLeft, VISUAL)
|
||||
CSS_PROP(_moz_outline_radius_topRight, VISUAL)
|
||||
CSS_PROP(_moz_outline_radius_bottomLeft, VISUAL)
|
||||
CSS_PROP(_moz_outline_radius_bottomRight, VISUAL)
|
||||
CSS_PROP(azimuth, AURAL)
|
||||
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(behavior, REFLOW)
|
||||
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(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(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_focus, CONTENT)
|
||||
CSS_PROP(user_input, FRAMECHANGE) // XXX ???
|
||||
CSS_PROP(user_modify, FRAMECHANGE)
|
||||
CSS_PROP(user_select, CONTENT)
|
||||
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)
|
||||
|
||||
CSS_PROP(-moz-border-radius, _moz_border_radius, VISUAL)
|
||||
CSS_PROP(-moz-border-radius-topleft, _moz_border_radius_topLeft, VISUAL)
|
||||
CSS_PROP(-moz-border-radius-topright, _moz_border_radius_topRight, VISUAL)
|
||||
CSS_PROP(-moz-border-radius-bottomleft, _moz_border_radius_bottomLeft, VISUAL)
|
||||
CSS_PROP(-moz-border-radius-bottomright, _moz_border_radius_bottomRight, VISUAL)
|
||||
CSS_PROP(-moz-outline-radius, _moz_outline_radius, VISUAL)
|
||||
CSS_PROP(-moz-outline-radius-topleft, _moz_outline_radius_topLeft, VISUAL)
|
||||
CSS_PROP(-moz-outline-radius-topright, _moz_outline_radius_topRight, VISUAL)
|
||||
CSS_PROP(-moz-outline-radius-bottomleft, _moz_outline_radius_bottomLeft, VISUAL)
|
||||
CSS_PROP(-moz-outline-radius-bottomright, _moz_outline_radius_bottomRight, VISUAL)
|
||||
CSS_PROP(azimuth, azimuth, AURAL)
|
||||
CSS_PROP(background, background, VISUAL)
|
||||
CSS_PROP(background-attachment, background_attachment, VISUAL)
|
||||
CSS_PROP(background-color, background_color, VISUAL)
|
||||
CSS_PROP(background-image, background_image, VISUAL)
|
||||
CSS_PROP(background-position, background_position, VISUAL)
|
||||
CSS_PROP(background-repeat, background_repeat, VISUAL)
|
||||
CSS_PROP(background-x-position, background_x_position, VISUAL)
|
||||
CSS_PROP(background-y-position, background_y_position, VISUAL)
|
||||
CSS_PROP(behavior, behavior, REFLOW)
|
||||
CSS_PROP(border, border, REFLOW)
|
||||
CSS_PROP(border-bottom, border_bottom, REFLOW)
|
||||
CSS_PROP(border-bottom-color, border_bottom_color, VISUAL)
|
||||
CSS_PROP(border-bottom-style, border_bottom_style, REFLOW) // on/off will need reflow
|
||||
CSS_PROP(border-bottom-width, border_bottom_width, REFLOW)
|
||||
CSS_PROP(border-collapse, border_collapse, REFLOW)
|
||||
CSS_PROP(border-color, border_color, VISUAL)
|
||||
CSS_PROP(border-left, border_left, REFLOW)
|
||||
CSS_PROP(border-left-color, border_left_color, VISUAL)
|
||||
CSS_PROP(border-left-style, border_left_style, REFLOW) // on/off will need reflow
|
||||
CSS_PROP(border-left-width, border_left_width, REFLOW)
|
||||
CSS_PROP(border-right, border_right, REFLOW)
|
||||
CSS_PROP(border-right-color, border_right_color, VISUAL)
|
||||
CSS_PROP(border-right-style, border_right_style, REFLOW) // on/off will need reflow
|
||||
CSS_PROP(border-right-width, border_right_width, REFLOW)
|
||||
CSS_PROP(border-spacing, border_spacing, REFLOW)
|
||||
CSS_PROP(border-style, border_style, REFLOW) // on/off will need reflow
|
||||
CSS_PROP(border-top, border_top, REFLOW)
|
||||
CSS_PROP(border-top-color, border_top_color, VISUAL)
|
||||
CSS_PROP(border-top-style, border_top_style, REFLOW) // on/off will need reflow
|
||||
CSS_PROP(border-top-width, border_top_width, REFLOW)
|
||||
CSS_PROP(border-width, border_width, REFLOW)
|
||||
CSS_PROP(border-x-spacing, border_x_spacing, REFLOW)
|
||||
CSS_PROP(border-y-spacing, border_y_spacing, REFLOW)
|
||||
CSS_PROP(bottom, bottom, REFLOW)
|
||||
CSS_PROP(box-sizing, box_sizing, REFLOW)
|
||||
CSS_PROP(caption-side, caption_side, REFLOW)
|
||||
CSS_PROP(clear, clear, REFLOW)
|
||||
CSS_PROP(clip, clip, VISUAL)
|
||||
CSS_PROP(clip-bottom, clip_bottom, VISUAL)
|
||||
CSS_PROP(clip-left, clip_left, VISUAL)
|
||||
CSS_PROP(clip-right, clip_right, VISUAL)
|
||||
CSS_PROP(clip-top, clip_top, VISUAL)
|
||||
CSS_PROP(color, color, VISUAL)
|
||||
CSS_PROP(content, content, FRAMECHANGE)
|
||||
CSS_PROP(counter-increment, counter_increment, REFLOW)
|
||||
CSS_PROP(counter-reset, counter_reset, REFLOW)
|
||||
CSS_PROP(cue, cue, AURAL)
|
||||
CSS_PROP(cue-after, cue_after, AURAL)
|
||||
CSS_PROP(cue-before, cue_before, AURAL)
|
||||
CSS_PROP(cursor, cursor, VISUAL)
|
||||
CSS_PROP(direction, direction, REFLOW)
|
||||
CSS_PROP(display, display, FRAMECHANGE)
|
||||
CSS_PROP(elevation, elevation, AURAL)
|
||||
CSS_PROP(empty-cells, empty_cells, VISUAL)
|
||||
CSS_PROP(float, float, FRAMECHANGE)
|
||||
CSS_PROP(float-edge, float_edge, REFLOW)
|
||||
CSS_PROP(font, font, REFLOW)
|
||||
CSS_PROP(font-family, font_family, REFLOW)
|
||||
CSS_PROP(font-size, font_size, REFLOW)
|
||||
CSS_PROP(font-size-adjust, font_size_adjust, REFLOW)
|
||||
CSS_PROP(font-stretch, font_stretch, REFLOW)
|
||||
CSS_PROP(font-style, font_style, REFLOW)
|
||||
CSS_PROP(font-variant, font_variant, REFLOW)
|
||||
CSS_PROP(font-weight, font_weight, REFLOW)
|
||||
CSS_PROP(height, height, REFLOW)
|
||||
CSS_PROP(key-equivalent, key_equivalent, CONTENT) // This will need some other notification, but what?
|
||||
CSS_PROP(left, left, REFLOW)
|
||||
CSS_PROP(letter-spacing, letter_spacing, REFLOW)
|
||||
CSS_PROP(line-height, line_height, REFLOW)
|
||||
CSS_PROP(list-style, list_style, REFLOW)
|
||||
CSS_PROP(list-style-image, list_style_image, REFLOW)
|
||||
CSS_PROP(list-style-position, list_style_position, REFLOW)
|
||||
CSS_PROP(list-style-type, list_style_type, REFLOW)
|
||||
CSS_PROP(margin, margin, REFLOW)
|
||||
CSS_PROP(margin-bottom, margin_bottom, REFLOW)
|
||||
CSS_PROP(margin-left, margin_left, REFLOW)
|
||||
CSS_PROP(margin-right, margin_right, REFLOW)
|
||||
CSS_PROP(margin-top, margin_top, REFLOW)
|
||||
CSS_PROP(marker-offset, marker_offset, REFLOW)
|
||||
CSS_PROP(marks, marks, VISUAL)
|
||||
CSS_PROP(max-height, max_height, REFLOW)
|
||||
CSS_PROP(max-width, max_width, REFLOW)
|
||||
CSS_PROP(min-height, min_height, REFLOW)
|
||||
CSS_PROP(min-width, min_width, REFLOW)
|
||||
CSS_PROP(opacity, opacity, VISUAL)
|
||||
CSS_PROP(orphans, orphans, REFLOW)
|
||||
CSS_PROP(outline, outline, VISUAL)
|
||||
CSS_PROP(outline-color, outline_color, VISUAL)
|
||||
CSS_PROP(outline-style, outline_style, VISUAL)
|
||||
CSS_PROP(outline-width, outline_width, VISUAL)
|
||||
CSS_PROP(overflow, overflow, FRAMECHANGE)
|
||||
CSS_PROP(padding, padding, REFLOW)
|
||||
CSS_PROP(padding-bottom, padding_bottom, REFLOW)
|
||||
CSS_PROP(padding-left, padding_left, REFLOW)
|
||||
CSS_PROP(padding-right, padding_right, REFLOW)
|
||||
CSS_PROP(padding-top, padding_top, REFLOW)
|
||||
CSS_PROP(page, page, REFLOW)
|
||||
CSS_PROP(page-break-after, page_break_after, REFLOW)
|
||||
CSS_PROP(page-break-before, page_break_before, REFLOW)
|
||||
CSS_PROP(page-break-inside, page_break_inside, REFLOW)
|
||||
CSS_PROP(pause, pause, AURAL)
|
||||
CSS_PROP(pause-after, pause_after, AURAL)
|
||||
CSS_PROP(pause-before, pause_before, AURAL)
|
||||
CSS_PROP(pitch, pitch, AURAL)
|
||||
CSS_PROP(pitch-range, pitch_range, AURAL)
|
||||
CSS_PROP(play-during, play_during, AURAL)
|
||||
CSS_PROP(play-during-flags, play_during_flags, AURAL)
|
||||
CSS_PROP(position, position, FRAMECHANGE)
|
||||
CSS_PROP(quotes, quotes, REFLOW)
|
||||
CSS_PROP(quotes-close, quotes_close, REFLOW)
|
||||
CSS_PROP(quotes-open, quotes_open, REFLOW)
|
||||
CSS_PROP(resizer, resizer, FRAMECHANGE)
|
||||
CSS_PROP(richness, richness, AURAL)
|
||||
CSS_PROP(right, right, REFLOW)
|
||||
CSS_PROP(size, size, REFLOW)
|
||||
CSS_PROP(size-height, size_height, REFLOW)
|
||||
CSS_PROP(size-width, size_width, REFLOW)
|
||||
CSS_PROP(speak, speak, AURAL)
|
||||
CSS_PROP(speak-header, speak_header, AURAL)
|
||||
CSS_PROP(speak-numeral, speak_numeral, AURAL)
|
||||
CSS_PROP(speak-punctuation, speak_punctuation, AURAL)
|
||||
CSS_PROP(speech-rate, speech_rate, AURAL)
|
||||
CSS_PROP(stress, stress, AURAL)
|
||||
CSS_PROP(table-layout, table_layout, REFLOW)
|
||||
CSS_PROP(text-align, text_align, REFLOW)
|
||||
CSS_PROP(text-decoration, text_decoration, VISUAL)
|
||||
CSS_PROP(text-indent, text_indent, REFLOW)
|
||||
CSS_PROP(text-shadow, text_shadow, VISUAL)
|
||||
CSS_PROP(text-shadow-color, text_shadow_color, VISUAL)
|
||||
CSS_PROP(text-shadow-radius, text_shadow_radius, VISUAL)
|
||||
CSS_PROP(text-shadow-x, text_shadow_x, VISUAL)
|
||||
CSS_PROP(text-shadow-y, text_shadow_y, VISUAL)
|
||||
CSS_PROP(text-transform, text_transform, REFLOW)
|
||||
CSS_PROP(top, top, REFLOW)
|
||||
CSS_PROP(unicode-bidi, unicode_bidi, REFLOW)
|
||||
CSS_PROP(user-focus, user_focus, CONTENT)
|
||||
CSS_PROP(user-input, user_input, FRAMECHANGE) // XXX ???
|
||||
CSS_PROP(user-modify, user_modify, FRAMECHANGE)
|
||||
CSS_PROP(user-select, user_select, CONTENT)
|
||||
CSS_PROP(vertical-align, vertical_align, REFLOW)
|
||||
CSS_PROP(visibility, visibility, REFLOW) // reflow for collapse
|
||||
CSS_PROP(voice-family, voice_family, AURAL)
|
||||
CSS_PROP(volume, volume, AURAL)
|
||||
CSS_PROP(white-space, white_space, REFLOW)
|
||||
CSS_PROP(widows, widows, REFLOW)
|
||||
CSS_PROP(width, width, REFLOW)
|
||||
CSS_PROP(word-spacing, word_spacing, REFLOW)
|
||||
CSS_PROP(z-index, z_index, REFLOW)
|
||||
|
@ -34,7 +34,7 @@ class nsString;
|
||||
To change the list of properties, see nsCSSPropList.h
|
||||
|
||||
*/
|
||||
#define CSS_PROP(_prop, _hint) eCSSProperty_##_prop,
|
||||
#define CSS_PROP(_name, _id, _hint) eCSSProperty_##_id,
|
||||
enum nsCSSProperty {
|
||||
eCSSProperty_UNKNOWN = -1,
|
||||
#include "nsCSSPropList.h"
|
||||
|
@ -34,315 +34,323 @@
|
||||
It is recommended (but not strictly necessary) to keep all entries
|
||||
in alphabetical order
|
||||
|
||||
Underbars in keywords are automagically converted into hyphens
|
||||
Requirements:
|
||||
|
||||
Entries are in the form: (name,id). 'id' must always be the same as 'name'
|
||||
except that all hyphens ('-') in 'name' are converted to underscores ('_')
|
||||
in 'id'. This lets us do nice things with the macros without having to
|
||||
copy/convert strings at runtime.
|
||||
|
||||
'name' entries *must* use only lowercase characters.
|
||||
|
||||
** Break these invarient and bad things will happen. **
|
||||
|
||||
******/
|
||||
|
||||
|
||||
CSS_KEY(_moz_all)
|
||||
CSS_KEY(_moz_bg_inset)
|
||||
CSS_KEY(_moz_bg_outset)
|
||||
CSS_KEY(_moz_center)
|
||||
CSS_KEY(_moz_right)
|
||||
CSS_KEY(_moz_pre_wrap)
|
||||
CSS_KEY(_moz_scrollbars_none)
|
||||
CSS_KEY(_moz_scrollbars_horizontal)
|
||||
CSS_KEY(_moz_scrollbars_vertical)
|
||||
CSS_KEY(above)
|
||||
CSS_KEY(absolute)
|
||||
CSS_KEY(activeborder)
|
||||
CSS_KEY(activecaption)
|
||||
CSS_KEY(alias)
|
||||
CSS_KEY(all)
|
||||
CSS_KEY(always)
|
||||
CSS_KEY(appworkspace)
|
||||
CSS_KEY(arabic_indic)
|
||||
CSS_KEY(armenian)
|
||||
CSS_KEY(auto)
|
||||
CSS_KEY(avoid)
|
||||
CSS_KEY(background)
|
||||
CSS_KEY(baseline)
|
||||
CSS_KEY(behind)
|
||||
CSS_KEY(below)
|
||||
CSS_KEY(bengali)
|
||||
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(button)
|
||||
CSS_KEY(buttonface)
|
||||
CSS_KEY(buttonhighlight)
|
||||
CSS_KEY(buttonshadow)
|
||||
CSS_KEY(buttontext)
|
||||
CSS_KEY(capitalize)
|
||||
CSS_KEY(caption)
|
||||
CSS_KEY(captiontext)
|
||||
CSS_KEY(cell)
|
||||
CSS_KEY(center)
|
||||
CSS_KEY(center_left)
|
||||
CSS_KEY(center_right)
|
||||
CSS_KEY(ch)
|
||||
CSS_KEY(circle)
|
||||
CSS_KEY(cjk_earthly_branch)
|
||||
CSS_KEY(cjk_heavenly_stem)
|
||||
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(context_menu)
|
||||
CSS_KEY(continuous)
|
||||
CSS_KEY(copy)
|
||||
CSS_KEY(count_down)
|
||||
CSS_KEY(count_up)
|
||||
CSS_KEY(count_up_down)
|
||||
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(desktop)
|
||||
CSS_KEY(devanagari)
|
||||
CSS_KEY(dialog)
|
||||
CSS_KEY(digits)
|
||||
CSS_KEY(disabled)
|
||||
CSS_KEY(disc)
|
||||
CSS_KEY(document)
|
||||
CSS_KEY(dotted)
|
||||
CSS_KEY(double)
|
||||
CSS_KEY(e_resize)
|
||||
CSS_KEY(element)
|
||||
CSS_KEY(elements)
|
||||
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(field)
|
||||
CSS_KEY(fixed)
|
||||
CSS_KEY(georgian)
|
||||
CSS_KEY(grab)
|
||||
CSS_KEY(grabbing)
|
||||
CSS_KEY(grad)
|
||||
CSS_KEY(graytext)
|
||||
CSS_KEY(groove)
|
||||
CSS_KEY(gujarati)
|
||||
CSS_KEY(gurmukhi)
|
||||
CSS_KEY(hebrew)
|
||||
CSS_KEY(help)
|
||||
CSS_KEY(hidden)
|
||||
CSS_KEY(hide)
|
||||
CSS_KEY(high)
|
||||
CSS_KEY(higher)
|
||||
CSS_KEY(highlight)
|
||||
CSS_KEY(highlighttext)
|
||||
CSS_KEY(hiragana)
|
||||
CSS_KEY(hiragana_iroha)
|
||||
CSS_KEY(horizontal)
|
||||
CSS_KEY(hz)
|
||||
CSS_KEY(icon)
|
||||
CSS_KEY(ignore)
|
||||
CSS_KEY(in)
|
||||
CSS_KEY(inactiveborder)
|
||||
CSS_KEY(inactivecaption)
|
||||
CSS_KEY(inactivecaptiontext)
|
||||
CSS_KEY(info)
|
||||
CSS_KEY(infobackground)
|
||||
CSS_KEY(infotext)
|
||||
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(japanese_formal)
|
||||
CSS_KEY(japanese_informal)
|
||||
CSS_KEY(justify)
|
||||
CSS_KEY(kannada)
|
||||
CSS_KEY(katakana)
|
||||
CSS_KEY(katakana_iroha)
|
||||
CSS_KEY(khmer)
|
||||
CSS_KEY(khz)
|
||||
CSS_KEY(landscape)
|
||||
CSS_KEY(lao)
|
||||
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_through)
|
||||
CSS_KEY(list)
|
||||
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(malayalam)
|
||||
CSS_KEY(margin_box)
|
||||
CSS_KEY(marker)
|
||||
CSS_KEY(medium)
|
||||
CSS_KEY(menu)
|
||||
CSS_KEY(menutext)
|
||||
CSS_KEY(message_box)
|
||||
CSS_KEY(middle)
|
||||
CSS_KEY(mix)
|
||||
CSS_KEY(mm)
|
||||
CSS_KEY(move)
|
||||
CSS_KEY(ms)
|
||||
CSS_KEY(myanmar)
|
||||
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(oriya)
|
||||
CSS_KEY(outset)
|
||||
CSS_KEY(outside)
|
||||
CSS_KEY(overline)
|
||||
CSS_KEY(padding_box)
|
||||
CSS_KEY(paragraph)
|
||||
CSS_KEY(pc)
|
||||
CSS_KEY(persian)
|
||||
CSS_KEY(pointer)
|
||||
CSS_KEY(portrait)
|
||||
CSS_KEY(pre)
|
||||
CSS_KEY(pt)
|
||||
CSS_KEY(pull_down_menu)
|
||||
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(scrollbar)
|
||||
CSS_KEY(se_resize)
|
||||
CSS_KEY(select_all)
|
||||
CSS_KEY(select_before)
|
||||
CSS_KEY(select_after)
|
||||
CSS_KEY(select_same)
|
||||
CSS_KEY(select_menu)
|
||||
CSS_KEY(semi_condensed)
|
||||
CSS_KEY(semi_expanded)
|
||||
CSS_KEY(separate)
|
||||
CSS_KEY(show)
|
||||
CSS_KEY(silent)
|
||||
CSS_KEY(simp_chinese_formal)
|
||||
CSS_KEY(simp_chinese_informal)
|
||||
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(spinning)
|
||||
CSS_KEY(square)
|
||||
CSS_KEY(start)
|
||||
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(tamil)
|
||||
CSS_KEY(telugu)
|
||||
CSS_KEY(text)
|
||||
CSS_KEY(text_bottom)
|
||||
CSS_KEY(text_top)
|
||||
CSS_KEY(thai)
|
||||
CSS_KEY(thick)
|
||||
CSS_KEY(thin)
|
||||
CSS_KEY(threeddarkshadow)
|
||||
CSS_KEY(threedface)
|
||||
CSS_KEY(threedhighlight)
|
||||
CSS_KEY(threedlightshadow)
|
||||
CSS_KEY(threedshadow)
|
||||
CSS_KEY(toggle)
|
||||
CSS_KEY(top)
|
||||
CSS_KEY(trad_chinese_formal)
|
||||
CSS_KEY(trad_chinese_informal)
|
||||
CSS_KEY(transparent)
|
||||
CSS_KEY(tri_state)
|
||||
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(urdu)
|
||||
CSS_KEY(vertical)
|
||||
CSS_KEY(visible)
|
||||
CSS_KEY(w_resize)
|
||||
CSS_KEY(wait)
|
||||
CSS_KEY(wider)
|
||||
CSS_KEY(window)
|
||||
CSS_KEY(windowframe)
|
||||
CSS_KEY(windowtext)
|
||||
CSS_KEY(workspace)
|
||||
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)
|
||||
CSS_KEY(-moz-all, _moz_all)
|
||||
CSS_KEY(-moz-bg-inset, _moz_bg_inset)
|
||||
CSS_KEY(-moz-bg-outset, _moz_bg_outset)
|
||||
CSS_KEY(-moz-center, _moz_center)
|
||||
CSS_KEY(-moz-right, _moz_right)
|
||||
CSS_KEY(-moz-pre-wrap, _moz_pre_wrap)
|
||||
CSS_KEY(-moz-scrollbars-none, _moz_scrollbars_none)
|
||||
CSS_KEY(-moz-scrollbars-horizontal, _moz_scrollbars_horizontal)
|
||||
CSS_KEY(-moz-scrollbars-vertical, _moz_scrollbars_vertical)
|
||||
CSS_KEY(above, above)
|
||||
CSS_KEY(absolute, absolute)
|
||||
CSS_KEY(activeborder, activeborder)
|
||||
CSS_KEY(activecaption, activecaption)
|
||||
CSS_KEY(alias, alias)
|
||||
CSS_KEY(all, all)
|
||||
CSS_KEY(always, always)
|
||||
CSS_KEY(appworkspace, appworkspace)
|
||||
CSS_KEY(arabic-indic, arabic_indic)
|
||||
CSS_KEY(armenian, armenian)
|
||||
CSS_KEY(auto, auto)
|
||||
CSS_KEY(avoid, avoid)
|
||||
CSS_KEY(background, background)
|
||||
CSS_KEY(baseline, baseline)
|
||||
CSS_KEY(behind, behind)
|
||||
CSS_KEY(below, below)
|
||||
CSS_KEY(bengali, bengali)
|
||||
CSS_KEY(bidi-override, bidi_override)
|
||||
CSS_KEY(blink, blink)
|
||||
CSS_KEY(block, block)
|
||||
CSS_KEY(bold, bold)
|
||||
CSS_KEY(bolder, bolder)
|
||||
CSS_KEY(border-box, border_box)
|
||||
CSS_KEY(both, both)
|
||||
CSS_KEY(bottom, bottom)
|
||||
CSS_KEY(button, button)
|
||||
CSS_KEY(buttonface, buttonface)
|
||||
CSS_KEY(buttonhighlight, buttonhighlight)
|
||||
CSS_KEY(buttonshadow, buttonshadow)
|
||||
CSS_KEY(buttontext, buttontext)
|
||||
CSS_KEY(capitalize, capitalize)
|
||||
CSS_KEY(caption, caption)
|
||||
CSS_KEY(captiontext, captiontext)
|
||||
CSS_KEY(cell, cell)
|
||||
CSS_KEY(center, center)
|
||||
CSS_KEY(center-left, center_left)
|
||||
CSS_KEY(center-right, center_right)
|
||||
CSS_KEY(ch, ch)
|
||||
CSS_KEY(circle, circle)
|
||||
CSS_KEY(cjk-earthly-branch, cjk_earthly_branch)
|
||||
CSS_KEY(cjk-heavenly-stem, cjk_heavenly_stem)
|
||||
CSS_KEY(cjk-ideographic, cjk_ideographic)
|
||||
CSS_KEY(close-quote, close_quote)
|
||||
CSS_KEY(cm, cm)
|
||||
CSS_KEY(code, code)
|
||||
CSS_KEY(collapse, collapse)
|
||||
CSS_KEY(compact, compact)
|
||||
CSS_KEY(condensed, condensed)
|
||||
CSS_KEY(content-box, content_box)
|
||||
CSS_KEY(context-menu, context_menu)
|
||||
CSS_KEY(continuous, continuous)
|
||||
CSS_KEY(copy, copy)
|
||||
CSS_KEY(count-down, count_down)
|
||||
CSS_KEY(count-up, count_up)
|
||||
CSS_KEY(count-up-down, count_up_down)
|
||||
CSS_KEY(crop, crop)
|
||||
CSS_KEY(cross, cross)
|
||||
CSS_KEY(crosshair, crosshair)
|
||||
CSS_KEY(dashed, dashed)
|
||||
CSS_KEY(decimal, decimal)
|
||||
CSS_KEY(decimal-leading-zero, decimal_leading_zero)
|
||||
CSS_KEY(default, default)
|
||||
CSS_KEY(deg, deg)
|
||||
CSS_KEY(desktop, desktop)
|
||||
CSS_KEY(devanagari, devanagari)
|
||||
CSS_KEY(dialog, dialog)
|
||||
CSS_KEY(digits, digits)
|
||||
CSS_KEY(disabled, disabled)
|
||||
CSS_KEY(disc, disc)
|
||||
CSS_KEY(document, document)
|
||||
CSS_KEY(dotted, dotted)
|
||||
CSS_KEY(double, double)
|
||||
CSS_KEY(e-resize, e_resize)
|
||||
CSS_KEY(element, element)
|
||||
CSS_KEY(elements, elements)
|
||||
CSS_KEY(em, em)
|
||||
CSS_KEY(embed, embed)
|
||||
CSS_KEY(enabled, enabled)
|
||||
CSS_KEY(ex, ex)
|
||||
CSS_KEY(expanded, expanded)
|
||||
CSS_KEY(extra-condensed, extra_condensed)
|
||||
CSS_KEY(extra-expanded, extra_expanded)
|
||||
CSS_KEY(far-left, far_left)
|
||||
CSS_KEY(far-right, far_right)
|
||||
CSS_KEY(fast, fast)
|
||||
CSS_KEY(faster, faster)
|
||||
CSS_KEY(field, field)
|
||||
CSS_KEY(fixed, fixed)
|
||||
CSS_KEY(georgian, georgian)
|
||||
CSS_KEY(grab, grab)
|
||||
CSS_KEY(grabbing, grabbing)
|
||||
CSS_KEY(grad, grad)
|
||||
CSS_KEY(graytext, graytext)
|
||||
CSS_KEY(groove, groove)
|
||||
CSS_KEY(gujarati, gujarati)
|
||||
CSS_KEY(gurmukhi, gurmukhi)
|
||||
CSS_KEY(hebrew, hebrew)
|
||||
CSS_KEY(help, help)
|
||||
CSS_KEY(hidden, hidden)
|
||||
CSS_KEY(hide, hide)
|
||||
CSS_KEY(high, high)
|
||||
CSS_KEY(higher, higher)
|
||||
CSS_KEY(highlight, highlight)
|
||||
CSS_KEY(highlighttext, highlighttext)
|
||||
CSS_KEY(hiragana, hiragana)
|
||||
CSS_KEY(hiragana-iroha, hiragana_iroha)
|
||||
CSS_KEY(horizontal, horizontal)
|
||||
CSS_KEY(hz, hz)
|
||||
CSS_KEY(icon, icon)
|
||||
CSS_KEY(ignore, ignore)
|
||||
CSS_KEY(in, in)
|
||||
CSS_KEY(inactiveborder, inactiveborder)
|
||||
CSS_KEY(inactivecaption, inactivecaption)
|
||||
CSS_KEY(inactivecaptiontext, inactivecaptiontext)
|
||||
CSS_KEY(info, info)
|
||||
CSS_KEY(infobackground, infobackground)
|
||||
CSS_KEY(infotext, infotext)
|
||||
CSS_KEY(inherit, inherit)
|
||||
CSS_KEY(inline, inline)
|
||||
CSS_KEY(inline-block, inline_block)
|
||||
CSS_KEY(inline-table, inline_table)
|
||||
CSS_KEY(inset, inset)
|
||||
CSS_KEY(inside, inside)
|
||||
CSS_KEY(invert, invert)
|
||||
CSS_KEY(italic, italic)
|
||||
CSS_KEY(japanese-formal, japanese_formal)
|
||||
CSS_KEY(japanese-informal, japanese_informal)
|
||||
CSS_KEY(justify, justify)
|
||||
CSS_KEY(kannada, kannada)
|
||||
CSS_KEY(katakana, katakana)
|
||||
CSS_KEY(katakana-iroha, katakana_iroha)
|
||||
CSS_KEY(khmer, khmer)
|
||||
CSS_KEY(khz, khz)
|
||||
CSS_KEY(landscape, landscape)
|
||||
CSS_KEY(lao, lao)
|
||||
CSS_KEY(large, large)
|
||||
CSS_KEY(larger, larger)
|
||||
CSS_KEY(left, left)
|
||||
CSS_KEY(left-side, left_side)
|
||||
CSS_KEY(leftwards, leftwards)
|
||||
CSS_KEY(level, level)
|
||||
CSS_KEY(lighter, lighter)
|
||||
CSS_KEY(line-through, line_through)
|
||||
CSS_KEY(list, list)
|
||||
CSS_KEY(list-item, list_item)
|
||||
CSS_KEY(loud, loud)
|
||||
CSS_KEY(low, low)
|
||||
CSS_KEY(lower, lower)
|
||||
CSS_KEY(lower-alpha, lower_alpha)
|
||||
CSS_KEY(lower-greek, lower_greek)
|
||||
CSS_KEY(lower-latin, lower_latin)
|
||||
CSS_KEY(lower-roman, lower_roman)
|
||||
CSS_KEY(lowercase, lowercase)
|
||||
CSS_KEY(ltr, ltr)
|
||||
CSS_KEY(malayalam, malayalam)
|
||||
CSS_KEY(margin-box, margin_box)
|
||||
CSS_KEY(marker, marker)
|
||||
CSS_KEY(medium, medium)
|
||||
CSS_KEY(menu, menu)
|
||||
CSS_KEY(menutext, menutext)
|
||||
CSS_KEY(message-box, message_box)
|
||||
CSS_KEY(middle, middle)
|
||||
CSS_KEY(mix, mix)
|
||||
CSS_KEY(mm, mm)
|
||||
CSS_KEY(move, move)
|
||||
CSS_KEY(ms, ms)
|
||||
CSS_KEY(myanmar, myanmar)
|
||||
CSS_KEY(n-resize, n_resize)
|
||||
CSS_KEY(narrower, narrower)
|
||||
CSS_KEY(ne-resize, ne_resize)
|
||||
CSS_KEY(no-close-quote, no_close_quote)
|
||||
CSS_KEY(no-open-quote, no_open_quote)
|
||||
CSS_KEY(no-repeat, no_repeat)
|
||||
CSS_KEY(none, none)
|
||||
CSS_KEY(normal, normal)
|
||||
CSS_KEY(noshade, noshade)
|
||||
CSS_KEY(nowrap, nowrap)
|
||||
CSS_KEY(nw-resize, nw_resize)
|
||||
CSS_KEY(oblique, oblique)
|
||||
CSS_KEY(once, once)
|
||||
CSS_KEY(open-quote, open_quote)
|
||||
CSS_KEY(oriya, oriya)
|
||||
CSS_KEY(outset, outset)
|
||||
CSS_KEY(outside, outside)
|
||||
CSS_KEY(overline, overline)
|
||||
CSS_KEY(padding-box, padding_box)
|
||||
CSS_KEY(paragraph, paragraph)
|
||||
CSS_KEY(pc, pc)
|
||||
CSS_KEY(persian, persian)
|
||||
CSS_KEY(pointer, pointer)
|
||||
CSS_KEY(portrait, portrait)
|
||||
CSS_KEY(pre, pre)
|
||||
CSS_KEY(pt, pt)
|
||||
CSS_KEY(pull-down-menu, pull_down_menu)
|
||||
CSS_KEY(px, px)
|
||||
CSS_KEY(rad, rad)
|
||||
CSS_KEY(read-only, read_only)
|
||||
CSS_KEY(read-write, read_write)
|
||||
CSS_KEY(relative, relative)
|
||||
CSS_KEY(repeat, repeat)
|
||||
CSS_KEY(repeat-x, repeat_x)
|
||||
CSS_KEY(repeat-y, repeat_y)
|
||||
CSS_KEY(ridge, ridge)
|
||||
CSS_KEY(right, right)
|
||||
CSS_KEY(right-side, right_side)
|
||||
CSS_KEY(rightwards, rightwards)
|
||||
CSS_KEY(rtl, rtl)
|
||||
CSS_KEY(run-in, run_in)
|
||||
CSS_KEY(s, s)
|
||||
CSS_KEY(s-resize, s_resize)
|
||||
CSS_KEY(scroll, scroll)
|
||||
CSS_KEY(scrollbar, scrollbar)
|
||||
CSS_KEY(se-resize, se_resize)
|
||||
CSS_KEY(select-all, select_all)
|
||||
CSS_KEY(select-before, select_before)
|
||||
CSS_KEY(select-after, select_after)
|
||||
CSS_KEY(select-same, select_same)
|
||||
CSS_KEY(select-menu, select_menu)
|
||||
CSS_KEY(semi-condensed, semi_condensed)
|
||||
CSS_KEY(semi-expanded, semi_expanded)
|
||||
CSS_KEY(separate, separate)
|
||||
CSS_KEY(show, show)
|
||||
CSS_KEY(silent, silent)
|
||||
CSS_KEY(simp-chinese-formal, simp_chinese_formal)
|
||||
CSS_KEY(simp-chinese-informal, simp_chinese_informal)
|
||||
CSS_KEY(slow, slow)
|
||||
CSS_KEY(slower, slower)
|
||||
CSS_KEY(small, small)
|
||||
CSS_KEY(small-caps, small_caps)
|
||||
CSS_KEY(small-caption, small_caption)
|
||||
CSS_KEY(smaller, smaller)
|
||||
CSS_KEY(soft, soft)
|
||||
CSS_KEY(solid, solid)
|
||||
CSS_KEY(spell-out, spell_out)
|
||||
CSS_KEY(spinning, spinning)
|
||||
CSS_KEY(square, square)
|
||||
CSS_KEY(start, start)
|
||||
CSS_KEY(static, static)
|
||||
CSS_KEY(status-bar, status_bar)
|
||||
CSS_KEY(sub, sub)
|
||||
CSS_KEY(super, super)
|
||||
CSS_KEY(sw-resize, sw_resize)
|
||||
CSS_KEY(table, table)
|
||||
CSS_KEY(table-caption, table_caption)
|
||||
CSS_KEY(table-cell, table_cell)
|
||||
CSS_KEY(table-column, table_column)
|
||||
CSS_KEY(table-column-group, table_column_group)
|
||||
CSS_KEY(table-footer-group, table_footer_group)
|
||||
CSS_KEY(table-header-group, table_header_group)
|
||||
CSS_KEY(table-row, table_row)
|
||||
CSS_KEY(table-row-group, table_row_group)
|
||||
CSS_KEY(tamil, tamil)
|
||||
CSS_KEY(telugu, telugu)
|
||||
CSS_KEY(text, text)
|
||||
CSS_KEY(text-bottom, text_bottom)
|
||||
CSS_KEY(text-top, text_top)
|
||||
CSS_KEY(thai, thai)
|
||||
CSS_KEY(thick, thick)
|
||||
CSS_KEY(thin, thin)
|
||||
CSS_KEY(threeddarkshadow, threeddarkshadow)
|
||||
CSS_KEY(threedface, threedface)
|
||||
CSS_KEY(threedhighlight, threedhighlight)
|
||||
CSS_KEY(threedlightshadow, threedlightshadow)
|
||||
CSS_KEY(threedshadow, threedshadow)
|
||||
CSS_KEY(toggle, toggle)
|
||||
CSS_KEY(top, top)
|
||||
CSS_KEY(trad-chinese-formal, trad_chinese_formal)
|
||||
CSS_KEY(trad-chinese-informal, trad_chinese_informal)
|
||||
CSS_KEY(transparent, transparent)
|
||||
CSS_KEY(tri-state, tri_state)
|
||||
CSS_KEY(ultra-condensed, ultra_condensed)
|
||||
CSS_KEY(ultra-expanded, ultra_expanded)
|
||||
CSS_KEY(underline, underline)
|
||||
CSS_KEY(upper-alpha, upper_alpha)
|
||||
CSS_KEY(upper-latin, upper_latin)
|
||||
CSS_KEY(upper-roman, upper_roman)
|
||||
CSS_KEY(uppercase, uppercase)
|
||||
CSS_KEY(urdu, urdu)
|
||||
CSS_KEY(vertical, vertical)
|
||||
CSS_KEY(visible, visible)
|
||||
CSS_KEY(w-resize, w_resize)
|
||||
CSS_KEY(wait, wait)
|
||||
CSS_KEY(wider, wider)
|
||||
CSS_KEY(window, window)
|
||||
CSS_KEY(windowframe, windowframe)
|
||||
CSS_KEY(windowtext, windowtext)
|
||||
CSS_KEY(workspace, workspace)
|
||||
CSS_KEY(write-only, write_only)
|
||||
CSS_KEY(x-fast, x_fast)
|
||||
CSS_KEY(x-high, x_high)
|
||||
CSS_KEY(x-large, x_large)
|
||||
CSS_KEY(x-loud, x_loud)
|
||||
CSS_KEY(x-low, x_low)
|
||||
CSS_KEY(x-slow, x_slow)
|
||||
CSS_KEY(x-small, x_small)
|
||||
CSS_KEY(x-soft, x_soft)
|
||||
CSS_KEY(xx-large, xx_large)
|
||||
CSS_KEY(xx-small, xx_small)
|
||||
|
@ -34,7 +34,7 @@ class nsCString;
|
||||
To change the list of keywords, see nsCSSKeywordList.h
|
||||
|
||||
*/
|
||||
#define CSS_KEY(_key) eCSSKeyword_##_key,
|
||||
#define CSS_KEY(_name,_id) eCSSKeyword_##_id,
|
||||
enum nsCSSKeyword {
|
||||
eCSSKeyword_UNKNOWN = -1,
|
||||
#include "nsCSSKeywordList.h"
|
||||
|
@ -34,171 +34,177 @@
|
||||
It is recommended (but not strictly necessary) to keep all entries
|
||||
in alphabetical order
|
||||
|
||||
Underbars in properties are automagically converted into hyphens
|
||||
Requirements:
|
||||
|
||||
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
|
||||
Entries are in the form: (name,id,impact). 'id' must always be the same as
|
||||
'name' except that all hyphens ('-') in 'name' are converted to underscores
|
||||
('_') in 'id'. This lets us do nice things with the macros without having to
|
||||
copy/convert strings at runtime.
|
||||
|
||||
'name' entries *must* use only lowercase characters.
|
||||
|
||||
** Break these invarient and bad things will happen. **
|
||||
|
||||
The third argument is the style impact resultant in a change to the property
|
||||
******/
|
||||
|
||||
|
||||
CSS_PROP(_moz_border_radius, VISUAL)
|
||||
CSS_PROP(_moz_border_radius_topLeft, VISUAL)
|
||||
CSS_PROP(_moz_border_radius_topRight, VISUAL)
|
||||
CSS_PROP(_moz_border_radius_bottomLeft, VISUAL)
|
||||
CSS_PROP(_moz_border_radius_bottomRight, VISUAL)
|
||||
CSS_PROP(_moz_outline_radius, VISUAL)
|
||||
CSS_PROP(_moz_outline_radius_topLeft, VISUAL)
|
||||
CSS_PROP(_moz_outline_radius_topRight, VISUAL)
|
||||
CSS_PROP(_moz_outline_radius_bottomLeft, VISUAL)
|
||||
CSS_PROP(_moz_outline_radius_bottomRight, VISUAL)
|
||||
CSS_PROP(azimuth, AURAL)
|
||||
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(behavior, REFLOW)
|
||||
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(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(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_focus, CONTENT)
|
||||
CSS_PROP(user_input, FRAMECHANGE) // XXX ???
|
||||
CSS_PROP(user_modify, FRAMECHANGE)
|
||||
CSS_PROP(user_select, CONTENT)
|
||||
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)
|
||||
|
||||
CSS_PROP(-moz-border-radius, _moz_border_radius, VISUAL)
|
||||
CSS_PROP(-moz-border-radius-topleft, _moz_border_radius_topLeft, VISUAL)
|
||||
CSS_PROP(-moz-border-radius-topright, _moz_border_radius_topRight, VISUAL)
|
||||
CSS_PROP(-moz-border-radius-bottomleft, _moz_border_radius_bottomLeft, VISUAL)
|
||||
CSS_PROP(-moz-border-radius-bottomright, _moz_border_radius_bottomRight, VISUAL)
|
||||
CSS_PROP(-moz-outline-radius, _moz_outline_radius, VISUAL)
|
||||
CSS_PROP(-moz-outline-radius-topleft, _moz_outline_radius_topLeft, VISUAL)
|
||||
CSS_PROP(-moz-outline-radius-topright, _moz_outline_radius_topRight, VISUAL)
|
||||
CSS_PROP(-moz-outline-radius-bottomleft, _moz_outline_radius_bottomLeft, VISUAL)
|
||||
CSS_PROP(-moz-outline-radius-bottomright, _moz_outline_radius_bottomRight, VISUAL)
|
||||
CSS_PROP(azimuth, azimuth, AURAL)
|
||||
CSS_PROP(background, background, VISUAL)
|
||||
CSS_PROP(background-attachment, background_attachment, VISUAL)
|
||||
CSS_PROP(background-color, background_color, VISUAL)
|
||||
CSS_PROP(background-image, background_image, VISUAL)
|
||||
CSS_PROP(background-position, background_position, VISUAL)
|
||||
CSS_PROP(background-repeat, background_repeat, VISUAL)
|
||||
CSS_PROP(background-x-position, background_x_position, VISUAL)
|
||||
CSS_PROP(background-y-position, background_y_position, VISUAL)
|
||||
CSS_PROP(behavior, behavior, REFLOW)
|
||||
CSS_PROP(border, border, REFLOW)
|
||||
CSS_PROP(border-bottom, border_bottom, REFLOW)
|
||||
CSS_PROP(border-bottom-color, border_bottom_color, VISUAL)
|
||||
CSS_PROP(border-bottom-style, border_bottom_style, REFLOW) // on/off will need reflow
|
||||
CSS_PROP(border-bottom-width, border_bottom_width, REFLOW)
|
||||
CSS_PROP(border-collapse, border_collapse, REFLOW)
|
||||
CSS_PROP(border-color, border_color, VISUAL)
|
||||
CSS_PROP(border-left, border_left, REFLOW)
|
||||
CSS_PROP(border-left-color, border_left_color, VISUAL)
|
||||
CSS_PROP(border-left-style, border_left_style, REFLOW) // on/off will need reflow
|
||||
CSS_PROP(border-left-width, border_left_width, REFLOW)
|
||||
CSS_PROP(border-right, border_right, REFLOW)
|
||||
CSS_PROP(border-right-color, border_right_color, VISUAL)
|
||||
CSS_PROP(border-right-style, border_right_style, REFLOW) // on/off will need reflow
|
||||
CSS_PROP(border-right-width, border_right_width, REFLOW)
|
||||
CSS_PROP(border-spacing, border_spacing, REFLOW)
|
||||
CSS_PROP(border-style, border_style, REFLOW) // on/off will need reflow
|
||||
CSS_PROP(border-top, border_top, REFLOW)
|
||||
CSS_PROP(border-top-color, border_top_color, VISUAL)
|
||||
CSS_PROP(border-top-style, border_top_style, REFLOW) // on/off will need reflow
|
||||
CSS_PROP(border-top-width, border_top_width, REFLOW)
|
||||
CSS_PROP(border-width, border_width, REFLOW)
|
||||
CSS_PROP(border-x-spacing, border_x_spacing, REFLOW)
|
||||
CSS_PROP(border-y-spacing, border_y_spacing, REFLOW)
|
||||
CSS_PROP(bottom, bottom, REFLOW)
|
||||
CSS_PROP(box-sizing, box_sizing, REFLOW)
|
||||
CSS_PROP(caption-side, caption_side, REFLOW)
|
||||
CSS_PROP(clear, clear, REFLOW)
|
||||
CSS_PROP(clip, clip, VISUAL)
|
||||
CSS_PROP(clip-bottom, clip_bottom, VISUAL)
|
||||
CSS_PROP(clip-left, clip_left, VISUAL)
|
||||
CSS_PROP(clip-right, clip_right, VISUAL)
|
||||
CSS_PROP(clip-top, clip_top, VISUAL)
|
||||
CSS_PROP(color, color, VISUAL)
|
||||
CSS_PROP(content, content, FRAMECHANGE)
|
||||
CSS_PROP(counter-increment, counter_increment, REFLOW)
|
||||
CSS_PROP(counter-reset, counter_reset, REFLOW)
|
||||
CSS_PROP(cue, cue, AURAL)
|
||||
CSS_PROP(cue-after, cue_after, AURAL)
|
||||
CSS_PROP(cue-before, cue_before, AURAL)
|
||||
CSS_PROP(cursor, cursor, VISUAL)
|
||||
CSS_PROP(direction, direction, REFLOW)
|
||||
CSS_PROP(display, display, FRAMECHANGE)
|
||||
CSS_PROP(elevation, elevation, AURAL)
|
||||
CSS_PROP(empty-cells, empty_cells, VISUAL)
|
||||
CSS_PROP(float, float, FRAMECHANGE)
|
||||
CSS_PROP(float-edge, float_edge, REFLOW)
|
||||
CSS_PROP(font, font, REFLOW)
|
||||
CSS_PROP(font-family, font_family, REFLOW)
|
||||
CSS_PROP(font-size, font_size, REFLOW)
|
||||
CSS_PROP(font-size-adjust, font_size_adjust, REFLOW)
|
||||
CSS_PROP(font-stretch, font_stretch, REFLOW)
|
||||
CSS_PROP(font-style, font_style, REFLOW)
|
||||
CSS_PROP(font-variant, font_variant, REFLOW)
|
||||
CSS_PROP(font-weight, font_weight, REFLOW)
|
||||
CSS_PROP(height, height, REFLOW)
|
||||
CSS_PROP(key-equivalent, key_equivalent, CONTENT) // This will need some other notification, but what?
|
||||
CSS_PROP(left, left, REFLOW)
|
||||
CSS_PROP(letter-spacing, letter_spacing, REFLOW)
|
||||
CSS_PROP(line-height, line_height, REFLOW)
|
||||
CSS_PROP(list-style, list_style, REFLOW)
|
||||
CSS_PROP(list-style-image, list_style_image, REFLOW)
|
||||
CSS_PROP(list-style-position, list_style_position, REFLOW)
|
||||
CSS_PROP(list-style-type, list_style_type, REFLOW)
|
||||
CSS_PROP(margin, margin, REFLOW)
|
||||
CSS_PROP(margin-bottom, margin_bottom, REFLOW)
|
||||
CSS_PROP(margin-left, margin_left, REFLOW)
|
||||
CSS_PROP(margin-right, margin_right, REFLOW)
|
||||
CSS_PROP(margin-top, margin_top, REFLOW)
|
||||
CSS_PROP(marker-offset, marker_offset, REFLOW)
|
||||
CSS_PROP(marks, marks, VISUAL)
|
||||
CSS_PROP(max-height, max_height, REFLOW)
|
||||
CSS_PROP(max-width, max_width, REFLOW)
|
||||
CSS_PROP(min-height, min_height, REFLOW)
|
||||
CSS_PROP(min-width, min_width, REFLOW)
|
||||
CSS_PROP(opacity, opacity, VISUAL)
|
||||
CSS_PROP(orphans, orphans, REFLOW)
|
||||
CSS_PROP(outline, outline, VISUAL)
|
||||
CSS_PROP(outline-color, outline_color, VISUAL)
|
||||
CSS_PROP(outline-style, outline_style, VISUAL)
|
||||
CSS_PROP(outline-width, outline_width, VISUAL)
|
||||
CSS_PROP(overflow, overflow, FRAMECHANGE)
|
||||
CSS_PROP(padding, padding, REFLOW)
|
||||
CSS_PROP(padding-bottom, padding_bottom, REFLOW)
|
||||
CSS_PROP(padding-left, padding_left, REFLOW)
|
||||
CSS_PROP(padding-right, padding_right, REFLOW)
|
||||
CSS_PROP(padding-top, padding_top, REFLOW)
|
||||
CSS_PROP(page, page, REFLOW)
|
||||
CSS_PROP(page-break-after, page_break_after, REFLOW)
|
||||
CSS_PROP(page-break-before, page_break_before, REFLOW)
|
||||
CSS_PROP(page-break-inside, page_break_inside, REFLOW)
|
||||
CSS_PROP(pause, pause, AURAL)
|
||||
CSS_PROP(pause-after, pause_after, AURAL)
|
||||
CSS_PROP(pause-before, pause_before, AURAL)
|
||||
CSS_PROP(pitch, pitch, AURAL)
|
||||
CSS_PROP(pitch-range, pitch_range, AURAL)
|
||||
CSS_PROP(play-during, play_during, AURAL)
|
||||
CSS_PROP(play-during-flags, play_during_flags, AURAL)
|
||||
CSS_PROP(position, position, FRAMECHANGE)
|
||||
CSS_PROP(quotes, quotes, REFLOW)
|
||||
CSS_PROP(quotes-close, quotes_close, REFLOW)
|
||||
CSS_PROP(quotes-open, quotes_open, REFLOW)
|
||||
CSS_PROP(resizer, resizer, FRAMECHANGE)
|
||||
CSS_PROP(richness, richness, AURAL)
|
||||
CSS_PROP(right, right, REFLOW)
|
||||
CSS_PROP(size, size, REFLOW)
|
||||
CSS_PROP(size-height, size_height, REFLOW)
|
||||
CSS_PROP(size-width, size_width, REFLOW)
|
||||
CSS_PROP(speak, speak, AURAL)
|
||||
CSS_PROP(speak-header, speak_header, AURAL)
|
||||
CSS_PROP(speak-numeral, speak_numeral, AURAL)
|
||||
CSS_PROP(speak-punctuation, speak_punctuation, AURAL)
|
||||
CSS_PROP(speech-rate, speech_rate, AURAL)
|
||||
CSS_PROP(stress, stress, AURAL)
|
||||
CSS_PROP(table-layout, table_layout, REFLOW)
|
||||
CSS_PROP(text-align, text_align, REFLOW)
|
||||
CSS_PROP(text-decoration, text_decoration, VISUAL)
|
||||
CSS_PROP(text-indent, text_indent, REFLOW)
|
||||
CSS_PROP(text-shadow, text_shadow, VISUAL)
|
||||
CSS_PROP(text-shadow-color, text_shadow_color, VISUAL)
|
||||
CSS_PROP(text-shadow-radius, text_shadow_radius, VISUAL)
|
||||
CSS_PROP(text-shadow-x, text_shadow_x, VISUAL)
|
||||
CSS_PROP(text-shadow-y, text_shadow_y, VISUAL)
|
||||
CSS_PROP(text-transform, text_transform, REFLOW)
|
||||
CSS_PROP(top, top, REFLOW)
|
||||
CSS_PROP(unicode-bidi, unicode_bidi, REFLOW)
|
||||
CSS_PROP(user-focus, user_focus, CONTENT)
|
||||
CSS_PROP(user-input, user_input, FRAMECHANGE) // XXX ???
|
||||
CSS_PROP(user-modify, user_modify, FRAMECHANGE)
|
||||
CSS_PROP(user-select, user_select, CONTENT)
|
||||
CSS_PROP(vertical-align, vertical_align, REFLOW)
|
||||
CSS_PROP(visibility, visibility, REFLOW) // reflow for collapse
|
||||
CSS_PROP(voice-family, voice_family, AURAL)
|
||||
CSS_PROP(volume, volume, AURAL)
|
||||
CSS_PROP(white-space, white_space, REFLOW)
|
||||
CSS_PROP(widows, widows, REFLOW)
|
||||
CSS_PROP(width, width, REFLOW)
|
||||
CSS_PROP(word-spacing, word_spacing, REFLOW)
|
||||
CSS_PROP(z-index, z_index, REFLOW)
|
||||
|
@ -34,7 +34,7 @@ class nsString;
|
||||
To change the list of properties, see nsCSSPropList.h
|
||||
|
||||
*/
|
||||
#define CSS_PROP(_prop, _hint) eCSSProperty_##_prop,
|
||||
#define CSS_PROP(_name, _id, _hint) eCSSProperty_##_id,
|
||||
enum nsCSSProperty {
|
||||
eCSSProperty_UNKNOWN = -1,
|
||||
#include "nsCSSPropList.h"
|
||||
|
@ -22,73 +22,39 @@
|
||||
|
||||
#include "nsCSSKeywords.h"
|
||||
#include "nsString.h"
|
||||
#include "nsAVLTree.h"
|
||||
|
||||
#include "nsStaticNameTable.h"
|
||||
|
||||
// define an array of all CSS keywords
|
||||
#define CSS_KEY(_key) #_key,
|
||||
#define CSS_KEY(_name,_id) #_name,
|
||||
const char* kCSSRawKeywords[] = {
|
||||
#include "nsCSSKeywordList.h"
|
||||
};
|
||||
#undef CSS_KEY
|
||||
|
||||
struct KeywordNode {
|
||||
KeywordNode(void)
|
||||
: mStr(),
|
||||
mEnum(eCSSKeyword_UNKNOWN)
|
||||
{}
|
||||
|
||||
KeywordNode(const nsStr& aStringValue, nsCSSKeyword aEnumValue)
|
||||
: mStr(),
|
||||
mEnum(aEnumValue)
|
||||
{ // point to the incomming buffer
|
||||
// note that the incomming buffer may really be 2 byte
|
||||
nsStr::Initialize(mStr, aStringValue.mStr, aStringValue.mCapacity,
|
||||
aStringValue.mLength, aStringValue.mCharSize, PR_FALSE);
|
||||
}
|
||||
|
||||
nsCAutoString mStr;
|
||||
nsCSSKeyword mEnum;
|
||||
};
|
||||
|
||||
class KeywordComparitor: public nsAVLNodeComparitor {
|
||||
public:
|
||||
virtual ~KeywordComparitor(void) {}
|
||||
virtual PRInt32 operator()(void* anItem1,void* anItem2) {
|
||||
KeywordNode* one = (KeywordNode*)anItem1;
|
||||
KeywordNode* two = (KeywordNode*)anItem2;
|
||||
return one->mStr.CompareWithConversion(two->mStr, PR_TRUE);
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
static PRInt32 gTableRefCount;
|
||||
static KeywordNode* gKeywordArray;
|
||||
static nsAVLTree* gKeywordTree;
|
||||
static KeywordComparitor* gComparitor;
|
||||
static nsCString* kNullStr;
|
||||
static PRInt32 gTableRefCount;
|
||||
static nsStaticCaseInsensitiveNameTable* gKeywordTable;
|
||||
|
||||
void
|
||||
nsCSSKeywords::AddRefTable(void)
|
||||
{
|
||||
if (0 == gTableRefCount++) {
|
||||
if (! gKeywordArray) {
|
||||
gKeywordArray = new KeywordNode[eCSSKeyword_COUNT];
|
||||
gComparitor = new KeywordComparitor();
|
||||
if (gComparitor) {
|
||||
gKeywordTree = new nsAVLTree(*gComparitor, nsnull);
|
||||
}
|
||||
if (gKeywordArray && gKeywordTree) {
|
||||
PRInt32 index = -1;
|
||||
while (++index < PRInt32(eCSSKeyword_COUNT)) {
|
||||
gKeywordArray[index].mStr = kCSSRawKeywords[index];
|
||||
gKeywordArray[index].mStr.ReplaceChar('_', '-');
|
||||
gKeywordArray[index].mEnum = nsCSSKeyword(index);
|
||||
gKeywordTree->AddItem(&(gKeywordArray[index]));
|
||||
}
|
||||
NS_ASSERTION(!gKeywordTable, "pre existing array!");
|
||||
gKeywordTable = new nsStaticCaseInsensitiveNameTable();
|
||||
if (gKeywordTable) {
|
||||
#ifdef DEBUG
|
||||
{
|
||||
// let's verify the table...
|
||||
for (PRInt32 index = 0; index < eCSSKeyword_COUNT; ++index) {
|
||||
nsCAutoString temp1(kCSSRawKeywords[index]);
|
||||
nsCAutoString temp2(kCSSRawKeywords[index]);
|
||||
temp1.ToLowerCase();
|
||||
NS_ASSERTION(temp1.Equals(temp2), "upper case char in table");
|
||||
NS_ASSERTION(-1 == temp1.FindChar('_'), "underscore char in table");
|
||||
}
|
||||
}
|
||||
kNullStr = new nsCString();
|
||||
#endif
|
||||
gKeywordTable->Init(kCSSRawKeywords, eCSSKeyword_COUNT);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -96,55 +62,42 @@ void
|
||||
nsCSSKeywords::ReleaseTable(void)
|
||||
{
|
||||
if (0 == --gTableRefCount) {
|
||||
if (gKeywordArray) {
|
||||
delete [] gKeywordArray;
|
||||
gKeywordArray = nsnull;
|
||||
if (gKeywordTable) {
|
||||
delete gKeywordTable;
|
||||
gKeywordTable = nsnull;
|
||||
}
|
||||
if (gKeywordTree) {
|
||||
delete gKeywordTree;
|
||||
gKeywordTree = nsnull;
|
||||
}
|
||||
if (gComparitor) {
|
||||
delete gComparitor;
|
||||
gComparitor = nsnull;
|
||||
}
|
||||
delete kNullStr;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
nsCSSKeyword
|
||||
nsCSSKeywords::LookupKeyword(const nsCString& aKeyword)
|
||||
{
|
||||
NS_ASSERTION(gKeywordTree, "no lookup table, needs addref");
|
||||
if (gKeywordTree) {
|
||||
KeywordNode node(aKeyword, eCSSKeyword_UNKNOWN);
|
||||
KeywordNode* found = (KeywordNode*)gKeywordTree->FindItem(&node);
|
||||
if (found) {
|
||||
NS_ASSERTION(found->mStr.EqualsIgnoreCase(aKeyword), "bad tree");
|
||||
return found->mEnum;
|
||||
}
|
||||
}
|
||||
NS_ASSERTION(gKeywordTable, "no lookup table, needs addref");
|
||||
if (gKeywordTable) {
|
||||
return nsCSSKeyword(gKeywordTable->Lookup(aKeyword));
|
||||
}
|
||||
return eCSSKeyword_UNKNOWN;
|
||||
}
|
||||
|
||||
nsCSSKeyword
|
||||
nsCSSKeywords::LookupKeyword(const nsString& aKeyword) {
|
||||
nsCAutoString theKeyword; theKeyword.AssignWithConversion(aKeyword);
|
||||
return LookupKeyword(theKeyword);
|
||||
nsCSSKeywords::LookupKeyword(const nsString& aKeyword)
|
||||
{
|
||||
NS_ASSERTION(gKeywordTable, "no lookup table, needs addref");
|
||||
if (gKeywordTable) {
|
||||
return nsCSSKeyword(gKeywordTable->Lookup(aKeyword));
|
||||
}
|
||||
return eCSSKeyword_UNKNOWN;
|
||||
}
|
||||
|
||||
|
||||
const nsCString&
|
||||
nsCSSKeywords::GetStringValue(nsCSSKeyword aKeyword)
|
||||
{
|
||||
NS_ASSERTION(gKeywordArray, "no lookup table, needs addref");
|
||||
if ((eCSSKeyword_UNKNOWN < aKeyword) &&
|
||||
(aKeyword < eCSSKeyword_COUNT) && gKeywordArray) {
|
||||
return gKeywordArray[aKeyword].mStr;
|
||||
}
|
||||
else {
|
||||
return *kNullStr;
|
||||
NS_ASSERTION(gKeywordTable, "no lookup table, needs addref");
|
||||
if (gKeywordTable) {
|
||||
return gKeywordTable->GetStringValue(PRInt32(aKeyword));
|
||||
} else {
|
||||
static nsCString kNullStr;
|
||||
return kNullStr;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -27,73 +27,40 @@
|
||||
#include "nsILookAndFeel.h" // for system colors
|
||||
|
||||
#include "nsString.h"
|
||||
#include "nsAVLTree.h"
|
||||
|
||||
#include "nsStaticNameTable.h"
|
||||
|
||||
// define an array of all CSS properties
|
||||
#define CSS_PROP(_prop, _hint) #_prop,
|
||||
#define CSS_PROP(_name, _id, _hint) #_name,
|
||||
const char* kCSSRawProperties[] = {
|
||||
#include "nsCSSPropList.h"
|
||||
};
|
||||
#undef CSS_PROP
|
||||
|
||||
struct PropertyNode {
|
||||
PropertyNode(void)
|
||||
: mStr(),
|
||||
mEnum(eCSSProperty_UNKNOWN)
|
||||
{}
|
||||
|
||||
PropertyNode(const nsStr& aStringValue, nsCSSProperty aEnumValue)
|
||||
: mStr(),
|
||||
mEnum(aEnumValue)
|
||||
{ // point to the incomming buffer
|
||||
// note that the incomming buffer may really be 2 byte
|
||||
nsStr::Initialize(mStr, aStringValue.mStr, aStringValue.mCapacity,
|
||||
aStringValue.mLength, aStringValue.mCharSize, PR_FALSE);
|
||||
}
|
||||
|
||||
nsCAutoString mStr;
|
||||
nsCSSProperty mEnum;
|
||||
};
|
||||
|
||||
class PropertyComparitor: public nsAVLNodeComparitor {
|
||||
public:
|
||||
virtual ~PropertyComparitor(void) {}
|
||||
virtual PRInt32 operator()(void* anItem1,void* anItem2) {
|
||||
PropertyNode* one = (PropertyNode*)anItem1;
|
||||
PropertyNode* two = (PropertyNode*)anItem2;
|
||||
return one->mStr.CompareWithConversion(two->mStr, PR_TRUE);
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
static PRInt32 gTableRefCount;
|
||||
static PropertyNode* gPropertyArray;
|
||||
static nsAVLTree* gPropertyTree;
|
||||
static PropertyComparitor* gComparitor;
|
||||
static nsCString* kNullStr;
|
||||
static PRInt32 gTableRefCount;
|
||||
static nsStaticCaseInsensitiveNameTable* gPropertyTable;
|
||||
|
||||
void
|
||||
nsCSSProps::AddRefTable(void)
|
||||
{
|
||||
if (0 == gTableRefCount++) {
|
||||
if (! gPropertyArray) {
|
||||
gPropertyArray= new PropertyNode[eCSSProperty_COUNT];
|
||||
gComparitor = new PropertyComparitor();
|
||||
if (gComparitor) {
|
||||
gPropertyTree = new nsAVLTree(*gComparitor, nsnull);
|
||||
}
|
||||
if (gPropertyArray && gPropertyTree) {
|
||||
PRInt32 index = -1;
|
||||
while (++index < PRInt32(eCSSProperty_COUNT)) {
|
||||
gPropertyArray[index].mStr = kCSSRawProperties[index];
|
||||
gPropertyArray[index].mStr.ReplaceChar('_', '-');
|
||||
gPropertyArray[index].mEnum = nsCSSProperty(index);
|
||||
gPropertyTree->AddItem(&(gPropertyArray[index]));
|
||||
}
|
||||
NS_ASSERTION(!gPropertyTable, "pre existing array!");
|
||||
gPropertyTable = new nsStaticCaseInsensitiveNameTable();
|
||||
if (gPropertyTable) {
|
||||
#ifdef DEBUG
|
||||
{
|
||||
// let's verify the table...
|
||||
for (PRInt32 index = 0; index < eCSSProperty_COUNT; ++index) {
|
||||
nsCAutoString temp1(kCSSRawProperties[index]);
|
||||
nsCAutoString temp2(kCSSRawProperties[index]);
|
||||
temp1.ToLowerCase();
|
||||
NS_ASSERTION(temp1.Equals(temp2), "upper case char in table");
|
||||
NS_ASSERTION(-1 == temp1.FindChar('_'), "underscore char in table");
|
||||
}
|
||||
}
|
||||
kNullStr = new nsCString();
|
||||
#endif
|
||||
gPropertyTable->Init(kCSSRawProperties, eCSSProperty_COUNT);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -101,60 +68,47 @@ void
|
||||
nsCSSProps::ReleaseTable(void)
|
||||
{
|
||||
if (0 == --gTableRefCount) {
|
||||
if (gPropertyArray) {
|
||||
delete [] gPropertyArray;
|
||||
gPropertyArray = nsnull;
|
||||
if (gPropertyTable) {
|
||||
delete gPropertyTable;
|
||||
gPropertyTable = nsnull;
|
||||
}
|
||||
if (gPropertyTree) {
|
||||
delete gPropertyTree;
|
||||
gPropertyTree = nsnull;
|
||||
}
|
||||
if (gComparitor) {
|
||||
delete gComparitor;
|
||||
gComparitor = nsnull;
|
||||
}
|
||||
delete kNullStr;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
nsCSSProperty
|
||||
nsCSSProps::LookupProperty(const nsCString& aProperty)
|
||||
{
|
||||
NS_ASSERTION(gPropertyTree, "no lookup table, needs addref");
|
||||
if (gPropertyTree) {
|
||||
PropertyNode node(aProperty, eCSSProperty_UNKNOWN);
|
||||
PropertyNode* found = (PropertyNode*)gPropertyTree->FindItem(&node);
|
||||
if (found) {
|
||||
NS_ASSERTION(found->mStr.EqualsIgnoreCase(aProperty), "bad tree");
|
||||
return found->mEnum;
|
||||
}
|
||||
}
|
||||
NS_ASSERTION(gPropertyTable, "no lookup table, needs addref");
|
||||
if (gPropertyTable) {
|
||||
return nsCSSProperty(gPropertyTable->Lookup(aProperty));
|
||||
}
|
||||
return eCSSProperty_UNKNOWN;
|
||||
}
|
||||
|
||||
|
||||
nsCSSProperty
|
||||
nsCSSProps::LookupProperty(const nsString& aProperty) {
|
||||
nsCAutoString theProp; theProp.AssignWithConversion(aProperty);
|
||||
return LookupProperty(theProp);
|
||||
nsCSSProps::LookupProperty(const nsString& aProperty)
|
||||
{
|
||||
NS_ASSERTION(gPropertyTable, "no lookup table, needs addref");
|
||||
if (gPropertyTable) {
|
||||
return nsCSSProperty(gPropertyTable->Lookup(aProperty));
|
||||
}
|
||||
return eCSSProperty_UNKNOWN;
|
||||
}
|
||||
|
||||
|
||||
const nsCString&
|
||||
nsCSSProps::GetStringValue(nsCSSProperty aProperty)
|
||||
{
|
||||
NS_ASSERTION(gPropertyArray, "no lookup table, needs addref");
|
||||
if ((eCSSProperty_UNKNOWN < aProperty) &&
|
||||
(aProperty < eCSSProperty_COUNT) && gPropertyArray) {
|
||||
return gPropertyArray[aProperty].mStr;
|
||||
}
|
||||
else {
|
||||
return *kNullStr;
|
||||
NS_ASSERTION(gPropertyTable, "no lookup table, needs addref");
|
||||
if (gPropertyTable) {
|
||||
return gPropertyTable->GetStringValue(PRInt32(aProperty));
|
||||
} else {
|
||||
static nsCString sNullStr;
|
||||
return sNullStr;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/***************************************************************************/
|
||||
|
||||
// Keyword id tables for variant/enum parsing
|
||||
const PRInt32 nsCSSProps::kAzimuthKTable[] = {
|
||||
@ -726,7 +680,8 @@ SearchKeywordTable(PRInt32 aValue, const PRInt32 aTable[])
|
||||
{
|
||||
PRInt32 i = SearchKeywordTableInt(aValue, aTable);
|
||||
if (i < 0) {
|
||||
return *kNullStr;
|
||||
static nsCString sNullStr;
|
||||
return sNullStr;
|
||||
} else {
|
||||
return nsCSSKeywords::GetStringValue(nsCSSKeyword(i));
|
||||
}
|
||||
@ -1083,7 +1038,8 @@ static const PRInt32 kBackgroundYPositionKTable[] = {
|
||||
NS_ERROR("invalid property");
|
||||
break;
|
||||
}
|
||||
return *kNullStr;
|
||||
static nsCString sNullStr;
|
||||
return sNullStr;
|
||||
}
|
||||
|
||||
PRBool nsCSSProps::GetColorName(PRInt32 aPropValue, nsCString &aStr)
|
||||
@ -1105,7 +1061,7 @@ PRBool nsCSSProps::GetColorName(PRInt32 aPropValue, nsCString &aStr)
|
||||
}
|
||||
|
||||
// define array of all CSS property hints
|
||||
#define CSS_PROP(_prop, _hint) NS_STYLE_HINT_##_hint,
|
||||
#define CSS_PROP(_name, _id, _hint) NS_STYLE_HINT_##_hint,
|
||||
const PRInt32 nsCSSProps::kHintTable[eCSSProperty_COUNT] = {
|
||||
#include "nsCSSPropList.h"
|
||||
};
|
||||
|
@ -22,7 +22,7 @@
|
||||
|
||||
#include "nsColorNames.h"
|
||||
#include "nsString.h"
|
||||
#include "nsAVLTree.h"
|
||||
#include "nsStaticNameTable.h"
|
||||
|
||||
|
||||
// define an array of all color names
|
||||
@ -39,60 +39,29 @@ const nscolor nsColorNames::kColors[] = {
|
||||
};
|
||||
#undef GFX_COLOR
|
||||
|
||||
struct ColorNode {
|
||||
ColorNode(void)
|
||||
: mStr(),
|
||||
mEnum(eColorName_UNKNOWN)
|
||||
{}
|
||||
|
||||
ColorNode(const nsStr& aStringValue, nsColorName aEnumValue)
|
||||
: mStr(),
|
||||
mEnum(aEnumValue)
|
||||
{ // point to the incomming buffer
|
||||
// note that the incomming buffer may really be 2 byte
|
||||
nsStr::Initialize(mStr, aStringValue.mStr, aStringValue.mCapacity,
|
||||
aStringValue.mLength, aStringValue.mCharSize, PR_FALSE);
|
||||
}
|
||||
|
||||
nsCAutoString mStr;
|
||||
nsColorName mEnum;
|
||||
};
|
||||
|
||||
class ColorComparitor: public nsAVLNodeComparitor {
|
||||
public:
|
||||
virtual ~ColorComparitor(void) {}
|
||||
virtual PRInt32 operator()(void* anItem1,void* anItem2) {
|
||||
ColorNode* one = (ColorNode*)anItem1;
|
||||
ColorNode* two = (ColorNode*)anItem2;
|
||||
return one->mStr.CompareWithConversion(two->mStr, PR_TRUE);
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
static PRInt32 gTableRefCount;
|
||||
static ColorNode* gColorArray;
|
||||
static nsAVLTree* gColorTree;
|
||||
static ColorComparitor* gComparitor;
|
||||
static PRInt32 gTableRefCount;
|
||||
static nsStaticCaseInsensitiveNameTable* gColorTable;
|
||||
|
||||
void
|
||||
nsColorNames::AddRefTable(void)
|
||||
{
|
||||
if (0 == gTableRefCount++) {
|
||||
if (! gColorArray) {
|
||||
gColorArray = new ColorNode[eColorName_COUNT];
|
||||
gComparitor = new ColorComparitor();
|
||||
if (gComparitor) {
|
||||
gColorTree = new nsAVLTree(*gComparitor, nsnull);
|
||||
}
|
||||
if (gColorArray && gColorTree) {
|
||||
PRInt32 index = -1;
|
||||
while (++index < PRInt32(eColorName_COUNT)) {
|
||||
gColorArray[index].mStr = kColorNames[index];
|
||||
gColorArray[index].mEnum = nsColorName(index);
|
||||
gColorTree->AddItem(&(gColorArray[index]));
|
||||
}
|
||||
NS_ASSERTION(!gColorTable, "pre existing array!");
|
||||
gColorTable = new nsStaticCaseInsensitiveNameTable();
|
||||
if (gColorTable) {
|
||||
#ifdef DEBUG
|
||||
{
|
||||
// let's verify the table...
|
||||
for (PRInt32 index = 0; index < eColorName_COUNT; ++index) {
|
||||
nsCAutoString temp1(kColorNames[index]);
|
||||
nsCAutoString temp2(kColorNames[index]);
|
||||
temp1.ToLowerCase();
|
||||
NS_ASSERTION(temp1.Equals(temp2), "upper case char in table");
|
||||
}
|
||||
}
|
||||
#endif
|
||||
gColorTable->Init(kColorNames, eColorName_COUNT);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -100,54 +69,41 @@ void
|
||||
nsColorNames::ReleaseTable(void)
|
||||
{
|
||||
if (0 == --gTableRefCount) {
|
||||
if (gColorArray) {
|
||||
delete [] gColorArray;
|
||||
gColorArray = nsnull;
|
||||
}
|
||||
if (gColorTree) {
|
||||
delete gColorTree;
|
||||
gColorTree = nsnull;
|
||||
}
|
||||
if (gComparitor) {
|
||||
delete gComparitor;
|
||||
gComparitor = nsnull;
|
||||
if (gColorTable) {
|
||||
delete gColorTable;
|
||||
gColorTable = nsnull;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
nsColorName
|
||||
nsColorNames::LookupName(const nsCString& aColorName)
|
||||
nsColorNames::LookupName(const nsCString& aColor)
|
||||
{
|
||||
NS_ASSERTION(gColorTree, "no lookup table, needs addref");
|
||||
if (gColorTree) {
|
||||
ColorNode node(aColorName, eColorName_UNKNOWN);
|
||||
ColorNode* found = (ColorNode*)gColorTree->FindItem(&node);
|
||||
if (found) {
|
||||
NS_ASSERTION(found->mStr.EqualsIgnoreCase(aColorName), "bad tree");
|
||||
return found->mEnum;
|
||||
}
|
||||
}
|
||||
NS_ASSERTION(gColorTable, "no lookup table, needs addref");
|
||||
if (gColorTable) {
|
||||
return nsColorName(gColorTable->Lookup(aColor));
|
||||
}
|
||||
return eColorName_UNKNOWN;
|
||||
}
|
||||
|
||||
nsColorName
|
||||
nsColorNames::LookupName(const nsString& aColorName) {
|
||||
nsCAutoString theName; theName.AssignWithConversion(aColorName);
|
||||
return LookupName(theName);
|
||||
nsColorNames::LookupName(const nsString& aColor)
|
||||
{
|
||||
NS_ASSERTION(gColorTable, "no lookup table, needs addref");
|
||||
if (gColorTable) {
|
||||
return nsColorName(gColorTable->Lookup(aColor));
|
||||
}
|
||||
return eColorName_UNKNOWN;
|
||||
}
|
||||
|
||||
|
||||
const nsCString&
|
||||
nsColorNames::GetStringValue(nsColorName aColorName)
|
||||
nsColorNames::GetStringValue(nsColorName aColor)
|
||||
{
|
||||
NS_ASSERTION(gColorArray, "no lookup table, needs addref");
|
||||
if ((eColorName_UNKNOWN < aColorName) &&
|
||||
(aColorName < eColorName_COUNT) && gColorArray) {
|
||||
return gColorArray[aColorName].mStr;
|
||||
}
|
||||
else {
|
||||
static const nsCString kNullStr;
|
||||
NS_ASSERTION(gColorTable, "no lookup table, needs addref");
|
||||
if (gColorTable) {
|
||||
return gColorTable->GetStringValue(PRInt32(aColor));
|
||||
} else {
|
||||
static nsCString kNullStr;
|
||||
return kNullStr;
|
||||
}
|
||||
}
|
||||
|
@ -37,6 +37,10 @@
|
||||
The first argument to HTML_TAG is both the enum identifier of the property
|
||||
and the string value
|
||||
|
||||
Entries *must* use only lowercase characters.
|
||||
|
||||
** Break these invarient and bad things will happen. **
|
||||
|
||||
******/
|
||||
|
||||
HTML_TAG(a)
|
||||
|
@ -23,7 +23,7 @@
|
||||
#include "nsHTMLTags.h"
|
||||
|
||||
#include "nsString.h"
|
||||
#include "nsAVLTree.h"
|
||||
#include "nsStaticNameTable.h"
|
||||
|
||||
// define an array of all HTML tags
|
||||
#define HTML_TAG(_tag) #_tag,
|
||||
@ -32,55 +32,29 @@ static const char* kTagTable[] = {
|
||||
};
|
||||
#undef HTML_TAG
|
||||
|
||||
|
||||
struct TagNode {
|
||||
TagNode(void)
|
||||
: mStr(),
|
||||
mEnum(eHTMLTag_unknown)
|
||||
{}
|
||||
|
||||
TagNode(const nsCString& aString) : mStr(aString), mEnum(eHTMLTag_unknown) {
|
||||
}
|
||||
|
||||
nsCAutoString mStr;
|
||||
nsHTMLTag mEnum;
|
||||
};
|
||||
|
||||
class TagComparitor: public nsAVLNodeComparitor {
|
||||
public:
|
||||
virtual ~TagComparitor(void) {}
|
||||
virtual PRInt32 operator()(void* anItem1,void* anItem2) {
|
||||
TagNode* one = (TagNode*)anItem1;
|
||||
TagNode* two = (TagNode*)anItem2;
|
||||
return one->mStr.CompareWithConversion(two->mStr, PR_TRUE);
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
static PRInt32 gTableRefCount;
|
||||
static TagNode* gTagArray;
|
||||
static nsAVLTree* gTagTree;
|
||||
static TagComparitor* gComparitor;
|
||||
static PRInt32 gTableRefCount;
|
||||
static nsStaticCaseInsensitiveNameTable* gTagTable;
|
||||
|
||||
void
|
||||
nsHTMLTags::AddRefTable(void)
|
||||
{
|
||||
if (0 == gTableRefCount++) {
|
||||
if (! gTagArray) {
|
||||
gTagArray= new TagNode[NS_HTML_TAG_MAX];
|
||||
gComparitor = new TagComparitor();
|
||||
if (gComparitor) {
|
||||
gTagTree = new nsAVLTree(*gComparitor, nsnull);
|
||||
}
|
||||
if (gTagArray && gTagTree) {
|
||||
PRInt32 index = -1;
|
||||
while (++index < NS_HTML_TAG_MAX) {
|
||||
gTagArray[index].mStr = kTagTable[index];
|
||||
gTagArray[index].mEnum = nsHTMLTag(index + 1); // 1 based
|
||||
gTagTree->AddItem(&(gTagArray[index]));
|
||||
}
|
||||
NS_ASSERTION(!gTagTable, "pre existing array!");
|
||||
gTagTable = new nsStaticCaseInsensitiveNameTable();
|
||||
if (gTagTable) {
|
||||
#ifdef DEBUG
|
||||
{
|
||||
// let's verify the table...
|
||||
for (PRInt32 index = 0; index < NS_HTML_TAG_MAX; ++index) {
|
||||
nsCAutoString temp1(kTagTable[index]);
|
||||
nsCAutoString temp2(kTagTable[index]);
|
||||
temp1.ToLowerCase();
|
||||
NS_ASSERTION(temp1.Equals(temp2), "upper case char in table");
|
||||
}
|
||||
}
|
||||
#endif
|
||||
gTagTable->Init(kTagTable, NS_HTML_TAG_MAX);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -88,75 +62,85 @@ void
|
||||
nsHTMLTags::ReleaseTable(void)
|
||||
{
|
||||
if (0 == --gTableRefCount) {
|
||||
if (gTagArray) {
|
||||
delete [] gTagArray;
|
||||
gTagArray = nsnull;
|
||||
}
|
||||
if (gTagTree) {
|
||||
delete gTagTree;
|
||||
gTagTree = nsnull;
|
||||
}
|
||||
if (gComparitor) {
|
||||
delete gComparitor;
|
||||
gComparitor = nsnull;
|
||||
if (gTagTable) {
|
||||
delete gTagTable;
|
||||
gTagTable = nsnull;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
nsHTMLTag
|
||||
nsHTMLTags::LookupTag(const nsCString& aTag)
|
||||
{
|
||||
NS_ASSERTION(gTagTree, "no lookup table, needs addref");
|
||||
if (gTagTree) {
|
||||
TagNode node(aTag);
|
||||
TagNode* found = (TagNode*)gTagTree->FindItem(&node);
|
||||
if (found) {
|
||||
NS_ASSERTION(found->mStr.EqualsWithConversion(aTag,IGNORE_CASE), "bad tree");
|
||||
return found->mEnum;
|
||||
}
|
||||
else {
|
||||
NS_ASSERTION(gTagTable, "no lookup table, needs addref");
|
||||
if (gTagTable) {
|
||||
// table is zero based, but tags are one based
|
||||
nsHTMLTag tag = nsHTMLTag(gTagTable->Lookup(aTag)+1);
|
||||
|
||||
// hack: this can come out when rickg provides a way for the editor to ask
|
||||
// CanContain() questions without having to first fetch the parsers
|
||||
// internal enum values for a tag name.
|
||||
if (aTag.Equals("__moz_text"))
|
||||
return eHTMLTag_text;
|
||||
|
||||
if (tag == eHTMLTag_unknown) {
|
||||
if(aTag.Equals("__moz_text")) {
|
||||
tag = eHTMLTag_text;
|
||||
}
|
||||
else {
|
||||
tag = eHTMLTag_userdefined;
|
||||
}
|
||||
}
|
||||
}
|
||||
return tag;
|
||||
}
|
||||
return eHTMLTag_userdefined;
|
||||
}
|
||||
|
||||
nsHTMLTag
|
||||
nsHTMLTags::LookupTag(const nsString& aTag) {
|
||||
nsCAutoString theTag; theTag.AssignWithConversion(aTag);
|
||||
return LookupTag(theTag);
|
||||
nsHTMLTags::LookupTag(const nsString& aTag)
|
||||
{
|
||||
NS_ASSERTION(gTagTable, "no lookup table, needs addref");
|
||||
if (gTagTable) {
|
||||
// table is zero based, but tags are one based
|
||||
nsHTMLTag tag = nsHTMLTag(gTagTable->Lookup(aTag)+1);
|
||||
|
||||
// hack: this can come out when rickg provides a way for the editor to ask
|
||||
// CanContain() questions without having to first fetch the parsers
|
||||
// internal enum values for a tag name.
|
||||
|
||||
if (tag == eHTMLTag_unknown) {
|
||||
nsCAutoString theTag;
|
||||
theTag.AssignWithConversion(aTag);
|
||||
if (theTag.Equals("__moz_text")) {
|
||||
tag = eHTMLTag_text;
|
||||
}
|
||||
else {
|
||||
tag = eHTMLTag_userdefined;
|
||||
}
|
||||
}
|
||||
return tag;
|
||||
}
|
||||
return eHTMLTag_userdefined;
|
||||
}
|
||||
|
||||
|
||||
|
||||
const nsCString&
|
||||
nsHTMLTags::GetStringValue(nsHTMLTag aTag)
|
||||
{
|
||||
NS_ASSERTION(gTagArray, "no lookup table, needs addref");
|
||||
// Note: NS_HTML_TAG_MAX=113
|
||||
if ((eHTMLTag_unknown < aTag) &&
|
||||
(aTag <= NS_HTML_TAG_MAX) && gTagArray) {
|
||||
return gTagArray[aTag - 1].mStr;
|
||||
}
|
||||
else {
|
||||
static const nsCString* kNullStr=0;
|
||||
if(!kNullStr)
|
||||
kNullStr=new nsCString("");
|
||||
return *kNullStr;
|
||||
NS_ASSERTION(gTagTable, "no lookup table, needs addref");
|
||||
if (gTagTable) {
|
||||
// table is zero based, but tags are one based
|
||||
return gTagTable->GetStringValue(PRInt32(aTag)-1);
|
||||
} else {
|
||||
static nsCString kNullStr;
|
||||
return kNullStr;
|
||||
}
|
||||
}
|
||||
|
||||
const char* nsHTMLTags::GetCStringValue(nsHTMLTag aTag) {
|
||||
NS_ASSERTION(gTagArray, "no lookup table, needs addref");
|
||||
const char*
|
||||
nsHTMLTags::GetCStringValue(nsHTMLTag aTag) {
|
||||
NS_ASSERTION(gTagTable, "no lookup table, needs addref");
|
||||
// Note: NS_HTML_TAG_MAX=113
|
||||
if ((eHTMLTag_unknown < aTag) &&
|
||||
(aTag <= NS_HTML_TAG_MAX) && gTagArray) {
|
||||
return gTagArray[aTag - 1].mStr.mStr;
|
||||
(aTag <= NS_HTML_TAG_MAX)) {
|
||||
return kTagTable[PRInt32(aTag)-1];
|
||||
}
|
||||
else {
|
||||
static const char* kNullStr="";
|
||||
@ -203,4 +187,3 @@ public:
|
||||
};
|
||||
//nsTestTagTable validateTagTable;
|
||||
#endif
|
||||
|
||||
|
@ -34,315 +34,323 @@
|
||||
It is recommended (but not strictly necessary) to keep all entries
|
||||
in alphabetical order
|
||||
|
||||
Underbars in keywords are automagically converted into hyphens
|
||||
Requirements:
|
||||
|
||||
Entries are in the form: (name,id). 'id' must always be the same as 'name'
|
||||
except that all hyphens ('-') in 'name' are converted to underscores ('_')
|
||||
in 'id'. This lets us do nice things with the macros without having to
|
||||
copy/convert strings at runtime.
|
||||
|
||||
'name' entries *must* use only lowercase characters.
|
||||
|
||||
** Break these invarient and bad things will happen. **
|
||||
|
||||
******/
|
||||
|
||||
|
||||
CSS_KEY(_moz_all)
|
||||
CSS_KEY(_moz_bg_inset)
|
||||
CSS_KEY(_moz_bg_outset)
|
||||
CSS_KEY(_moz_center)
|
||||
CSS_KEY(_moz_right)
|
||||
CSS_KEY(_moz_pre_wrap)
|
||||
CSS_KEY(_moz_scrollbars_none)
|
||||
CSS_KEY(_moz_scrollbars_horizontal)
|
||||
CSS_KEY(_moz_scrollbars_vertical)
|
||||
CSS_KEY(above)
|
||||
CSS_KEY(absolute)
|
||||
CSS_KEY(activeborder)
|
||||
CSS_KEY(activecaption)
|
||||
CSS_KEY(alias)
|
||||
CSS_KEY(all)
|
||||
CSS_KEY(always)
|
||||
CSS_KEY(appworkspace)
|
||||
CSS_KEY(arabic_indic)
|
||||
CSS_KEY(armenian)
|
||||
CSS_KEY(auto)
|
||||
CSS_KEY(avoid)
|
||||
CSS_KEY(background)
|
||||
CSS_KEY(baseline)
|
||||
CSS_KEY(behind)
|
||||
CSS_KEY(below)
|
||||
CSS_KEY(bengali)
|
||||
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(button)
|
||||
CSS_KEY(buttonface)
|
||||
CSS_KEY(buttonhighlight)
|
||||
CSS_KEY(buttonshadow)
|
||||
CSS_KEY(buttontext)
|
||||
CSS_KEY(capitalize)
|
||||
CSS_KEY(caption)
|
||||
CSS_KEY(captiontext)
|
||||
CSS_KEY(cell)
|
||||
CSS_KEY(center)
|
||||
CSS_KEY(center_left)
|
||||
CSS_KEY(center_right)
|
||||
CSS_KEY(ch)
|
||||
CSS_KEY(circle)
|
||||
CSS_KEY(cjk_earthly_branch)
|
||||
CSS_KEY(cjk_heavenly_stem)
|
||||
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(context_menu)
|
||||
CSS_KEY(continuous)
|
||||
CSS_KEY(copy)
|
||||
CSS_KEY(count_down)
|
||||
CSS_KEY(count_up)
|
||||
CSS_KEY(count_up_down)
|
||||
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(desktop)
|
||||
CSS_KEY(devanagari)
|
||||
CSS_KEY(dialog)
|
||||
CSS_KEY(digits)
|
||||
CSS_KEY(disabled)
|
||||
CSS_KEY(disc)
|
||||
CSS_KEY(document)
|
||||
CSS_KEY(dotted)
|
||||
CSS_KEY(double)
|
||||
CSS_KEY(e_resize)
|
||||
CSS_KEY(element)
|
||||
CSS_KEY(elements)
|
||||
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(field)
|
||||
CSS_KEY(fixed)
|
||||
CSS_KEY(georgian)
|
||||
CSS_KEY(grab)
|
||||
CSS_KEY(grabbing)
|
||||
CSS_KEY(grad)
|
||||
CSS_KEY(graytext)
|
||||
CSS_KEY(groove)
|
||||
CSS_KEY(gujarati)
|
||||
CSS_KEY(gurmukhi)
|
||||
CSS_KEY(hebrew)
|
||||
CSS_KEY(help)
|
||||
CSS_KEY(hidden)
|
||||
CSS_KEY(hide)
|
||||
CSS_KEY(high)
|
||||
CSS_KEY(higher)
|
||||
CSS_KEY(highlight)
|
||||
CSS_KEY(highlighttext)
|
||||
CSS_KEY(hiragana)
|
||||
CSS_KEY(hiragana_iroha)
|
||||
CSS_KEY(horizontal)
|
||||
CSS_KEY(hz)
|
||||
CSS_KEY(icon)
|
||||
CSS_KEY(ignore)
|
||||
CSS_KEY(in)
|
||||
CSS_KEY(inactiveborder)
|
||||
CSS_KEY(inactivecaption)
|
||||
CSS_KEY(inactivecaptiontext)
|
||||
CSS_KEY(info)
|
||||
CSS_KEY(infobackground)
|
||||
CSS_KEY(infotext)
|
||||
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(japanese_formal)
|
||||
CSS_KEY(japanese_informal)
|
||||
CSS_KEY(justify)
|
||||
CSS_KEY(kannada)
|
||||
CSS_KEY(katakana)
|
||||
CSS_KEY(katakana_iroha)
|
||||
CSS_KEY(khmer)
|
||||
CSS_KEY(khz)
|
||||
CSS_KEY(landscape)
|
||||
CSS_KEY(lao)
|
||||
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_through)
|
||||
CSS_KEY(list)
|
||||
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(malayalam)
|
||||
CSS_KEY(margin_box)
|
||||
CSS_KEY(marker)
|
||||
CSS_KEY(medium)
|
||||
CSS_KEY(menu)
|
||||
CSS_KEY(menutext)
|
||||
CSS_KEY(message_box)
|
||||
CSS_KEY(middle)
|
||||
CSS_KEY(mix)
|
||||
CSS_KEY(mm)
|
||||
CSS_KEY(move)
|
||||
CSS_KEY(ms)
|
||||
CSS_KEY(myanmar)
|
||||
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(oriya)
|
||||
CSS_KEY(outset)
|
||||
CSS_KEY(outside)
|
||||
CSS_KEY(overline)
|
||||
CSS_KEY(padding_box)
|
||||
CSS_KEY(paragraph)
|
||||
CSS_KEY(pc)
|
||||
CSS_KEY(persian)
|
||||
CSS_KEY(pointer)
|
||||
CSS_KEY(portrait)
|
||||
CSS_KEY(pre)
|
||||
CSS_KEY(pt)
|
||||
CSS_KEY(pull_down_menu)
|
||||
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(scrollbar)
|
||||
CSS_KEY(se_resize)
|
||||
CSS_KEY(select_all)
|
||||
CSS_KEY(select_before)
|
||||
CSS_KEY(select_after)
|
||||
CSS_KEY(select_same)
|
||||
CSS_KEY(select_menu)
|
||||
CSS_KEY(semi_condensed)
|
||||
CSS_KEY(semi_expanded)
|
||||
CSS_KEY(separate)
|
||||
CSS_KEY(show)
|
||||
CSS_KEY(silent)
|
||||
CSS_KEY(simp_chinese_formal)
|
||||
CSS_KEY(simp_chinese_informal)
|
||||
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(spinning)
|
||||
CSS_KEY(square)
|
||||
CSS_KEY(start)
|
||||
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(tamil)
|
||||
CSS_KEY(telugu)
|
||||
CSS_KEY(text)
|
||||
CSS_KEY(text_bottom)
|
||||
CSS_KEY(text_top)
|
||||
CSS_KEY(thai)
|
||||
CSS_KEY(thick)
|
||||
CSS_KEY(thin)
|
||||
CSS_KEY(threeddarkshadow)
|
||||
CSS_KEY(threedface)
|
||||
CSS_KEY(threedhighlight)
|
||||
CSS_KEY(threedlightshadow)
|
||||
CSS_KEY(threedshadow)
|
||||
CSS_KEY(toggle)
|
||||
CSS_KEY(top)
|
||||
CSS_KEY(trad_chinese_formal)
|
||||
CSS_KEY(trad_chinese_informal)
|
||||
CSS_KEY(transparent)
|
||||
CSS_KEY(tri_state)
|
||||
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(urdu)
|
||||
CSS_KEY(vertical)
|
||||
CSS_KEY(visible)
|
||||
CSS_KEY(w_resize)
|
||||
CSS_KEY(wait)
|
||||
CSS_KEY(wider)
|
||||
CSS_KEY(window)
|
||||
CSS_KEY(windowframe)
|
||||
CSS_KEY(windowtext)
|
||||
CSS_KEY(workspace)
|
||||
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)
|
||||
CSS_KEY(-moz-all, _moz_all)
|
||||
CSS_KEY(-moz-bg-inset, _moz_bg_inset)
|
||||
CSS_KEY(-moz-bg-outset, _moz_bg_outset)
|
||||
CSS_KEY(-moz-center, _moz_center)
|
||||
CSS_KEY(-moz-right, _moz_right)
|
||||
CSS_KEY(-moz-pre-wrap, _moz_pre_wrap)
|
||||
CSS_KEY(-moz-scrollbars-none, _moz_scrollbars_none)
|
||||
CSS_KEY(-moz-scrollbars-horizontal, _moz_scrollbars_horizontal)
|
||||
CSS_KEY(-moz-scrollbars-vertical, _moz_scrollbars_vertical)
|
||||
CSS_KEY(above, above)
|
||||
CSS_KEY(absolute, absolute)
|
||||
CSS_KEY(activeborder, activeborder)
|
||||
CSS_KEY(activecaption, activecaption)
|
||||
CSS_KEY(alias, alias)
|
||||
CSS_KEY(all, all)
|
||||
CSS_KEY(always, always)
|
||||
CSS_KEY(appworkspace, appworkspace)
|
||||
CSS_KEY(arabic-indic, arabic_indic)
|
||||
CSS_KEY(armenian, armenian)
|
||||
CSS_KEY(auto, auto)
|
||||
CSS_KEY(avoid, avoid)
|
||||
CSS_KEY(background, background)
|
||||
CSS_KEY(baseline, baseline)
|
||||
CSS_KEY(behind, behind)
|
||||
CSS_KEY(below, below)
|
||||
CSS_KEY(bengali, bengali)
|
||||
CSS_KEY(bidi-override, bidi_override)
|
||||
CSS_KEY(blink, blink)
|
||||
CSS_KEY(block, block)
|
||||
CSS_KEY(bold, bold)
|
||||
CSS_KEY(bolder, bolder)
|
||||
CSS_KEY(border-box, border_box)
|
||||
CSS_KEY(both, both)
|
||||
CSS_KEY(bottom, bottom)
|
||||
CSS_KEY(button, button)
|
||||
CSS_KEY(buttonface, buttonface)
|
||||
CSS_KEY(buttonhighlight, buttonhighlight)
|
||||
CSS_KEY(buttonshadow, buttonshadow)
|
||||
CSS_KEY(buttontext, buttontext)
|
||||
CSS_KEY(capitalize, capitalize)
|
||||
CSS_KEY(caption, caption)
|
||||
CSS_KEY(captiontext, captiontext)
|
||||
CSS_KEY(cell, cell)
|
||||
CSS_KEY(center, center)
|
||||
CSS_KEY(center-left, center_left)
|
||||
CSS_KEY(center-right, center_right)
|
||||
CSS_KEY(ch, ch)
|
||||
CSS_KEY(circle, circle)
|
||||
CSS_KEY(cjk-earthly-branch, cjk_earthly_branch)
|
||||
CSS_KEY(cjk-heavenly-stem, cjk_heavenly_stem)
|
||||
CSS_KEY(cjk-ideographic, cjk_ideographic)
|
||||
CSS_KEY(close-quote, close_quote)
|
||||
CSS_KEY(cm, cm)
|
||||
CSS_KEY(code, code)
|
||||
CSS_KEY(collapse, collapse)
|
||||
CSS_KEY(compact, compact)
|
||||
CSS_KEY(condensed, condensed)
|
||||
CSS_KEY(content-box, content_box)
|
||||
CSS_KEY(context-menu, context_menu)
|
||||
CSS_KEY(continuous, continuous)
|
||||
CSS_KEY(copy, copy)
|
||||
CSS_KEY(count-down, count_down)
|
||||
CSS_KEY(count-up, count_up)
|
||||
CSS_KEY(count-up-down, count_up_down)
|
||||
CSS_KEY(crop, crop)
|
||||
CSS_KEY(cross, cross)
|
||||
CSS_KEY(crosshair, crosshair)
|
||||
CSS_KEY(dashed, dashed)
|
||||
CSS_KEY(decimal, decimal)
|
||||
CSS_KEY(decimal-leading-zero, decimal_leading_zero)
|
||||
CSS_KEY(default, default)
|
||||
CSS_KEY(deg, deg)
|
||||
CSS_KEY(desktop, desktop)
|
||||
CSS_KEY(devanagari, devanagari)
|
||||
CSS_KEY(dialog, dialog)
|
||||
CSS_KEY(digits, digits)
|
||||
CSS_KEY(disabled, disabled)
|
||||
CSS_KEY(disc, disc)
|
||||
CSS_KEY(document, document)
|
||||
CSS_KEY(dotted, dotted)
|
||||
CSS_KEY(double, double)
|
||||
CSS_KEY(e-resize, e_resize)
|
||||
CSS_KEY(element, element)
|
||||
CSS_KEY(elements, elements)
|
||||
CSS_KEY(em, em)
|
||||
CSS_KEY(embed, embed)
|
||||
CSS_KEY(enabled, enabled)
|
||||
CSS_KEY(ex, ex)
|
||||
CSS_KEY(expanded, expanded)
|
||||
CSS_KEY(extra-condensed, extra_condensed)
|
||||
CSS_KEY(extra-expanded, extra_expanded)
|
||||
CSS_KEY(far-left, far_left)
|
||||
CSS_KEY(far-right, far_right)
|
||||
CSS_KEY(fast, fast)
|
||||
CSS_KEY(faster, faster)
|
||||
CSS_KEY(field, field)
|
||||
CSS_KEY(fixed, fixed)
|
||||
CSS_KEY(georgian, georgian)
|
||||
CSS_KEY(grab, grab)
|
||||
CSS_KEY(grabbing, grabbing)
|
||||
CSS_KEY(grad, grad)
|
||||
CSS_KEY(graytext, graytext)
|
||||
CSS_KEY(groove, groove)
|
||||
CSS_KEY(gujarati, gujarati)
|
||||
CSS_KEY(gurmukhi, gurmukhi)
|
||||
CSS_KEY(hebrew, hebrew)
|
||||
CSS_KEY(help, help)
|
||||
CSS_KEY(hidden, hidden)
|
||||
CSS_KEY(hide, hide)
|
||||
CSS_KEY(high, high)
|
||||
CSS_KEY(higher, higher)
|
||||
CSS_KEY(highlight, highlight)
|
||||
CSS_KEY(highlighttext, highlighttext)
|
||||
CSS_KEY(hiragana, hiragana)
|
||||
CSS_KEY(hiragana-iroha, hiragana_iroha)
|
||||
CSS_KEY(horizontal, horizontal)
|
||||
CSS_KEY(hz, hz)
|
||||
CSS_KEY(icon, icon)
|
||||
CSS_KEY(ignore, ignore)
|
||||
CSS_KEY(in, in)
|
||||
CSS_KEY(inactiveborder, inactiveborder)
|
||||
CSS_KEY(inactivecaption, inactivecaption)
|
||||
CSS_KEY(inactivecaptiontext, inactivecaptiontext)
|
||||
CSS_KEY(info, info)
|
||||
CSS_KEY(infobackground, infobackground)
|
||||
CSS_KEY(infotext, infotext)
|
||||
CSS_KEY(inherit, inherit)
|
||||
CSS_KEY(inline, inline)
|
||||
CSS_KEY(inline-block, inline_block)
|
||||
CSS_KEY(inline-table, inline_table)
|
||||
CSS_KEY(inset, inset)
|
||||
CSS_KEY(inside, inside)
|
||||
CSS_KEY(invert, invert)
|
||||
CSS_KEY(italic, italic)
|
||||
CSS_KEY(japanese-formal, japanese_formal)
|
||||
CSS_KEY(japanese-informal, japanese_informal)
|
||||
CSS_KEY(justify, justify)
|
||||
CSS_KEY(kannada, kannada)
|
||||
CSS_KEY(katakana, katakana)
|
||||
CSS_KEY(katakana-iroha, katakana_iroha)
|
||||
CSS_KEY(khmer, khmer)
|
||||
CSS_KEY(khz, khz)
|
||||
CSS_KEY(landscape, landscape)
|
||||
CSS_KEY(lao, lao)
|
||||
CSS_KEY(large, large)
|
||||
CSS_KEY(larger, larger)
|
||||
CSS_KEY(left, left)
|
||||
CSS_KEY(left-side, left_side)
|
||||
CSS_KEY(leftwards, leftwards)
|
||||
CSS_KEY(level, level)
|
||||
CSS_KEY(lighter, lighter)
|
||||
CSS_KEY(line-through, line_through)
|
||||
CSS_KEY(list, list)
|
||||
CSS_KEY(list-item, list_item)
|
||||
CSS_KEY(loud, loud)
|
||||
CSS_KEY(low, low)
|
||||
CSS_KEY(lower, lower)
|
||||
CSS_KEY(lower-alpha, lower_alpha)
|
||||
CSS_KEY(lower-greek, lower_greek)
|
||||
CSS_KEY(lower-latin, lower_latin)
|
||||
CSS_KEY(lower-roman, lower_roman)
|
||||
CSS_KEY(lowercase, lowercase)
|
||||
CSS_KEY(ltr, ltr)
|
||||
CSS_KEY(malayalam, malayalam)
|
||||
CSS_KEY(margin-box, margin_box)
|
||||
CSS_KEY(marker, marker)
|
||||
CSS_KEY(medium, medium)
|
||||
CSS_KEY(menu, menu)
|
||||
CSS_KEY(menutext, menutext)
|
||||
CSS_KEY(message-box, message_box)
|
||||
CSS_KEY(middle, middle)
|
||||
CSS_KEY(mix, mix)
|
||||
CSS_KEY(mm, mm)
|
||||
CSS_KEY(move, move)
|
||||
CSS_KEY(ms, ms)
|
||||
CSS_KEY(myanmar, myanmar)
|
||||
CSS_KEY(n-resize, n_resize)
|
||||
CSS_KEY(narrower, narrower)
|
||||
CSS_KEY(ne-resize, ne_resize)
|
||||
CSS_KEY(no-close-quote, no_close_quote)
|
||||
CSS_KEY(no-open-quote, no_open_quote)
|
||||
CSS_KEY(no-repeat, no_repeat)
|
||||
CSS_KEY(none, none)
|
||||
CSS_KEY(normal, normal)
|
||||
CSS_KEY(noshade, noshade)
|
||||
CSS_KEY(nowrap, nowrap)
|
||||
CSS_KEY(nw-resize, nw_resize)
|
||||
CSS_KEY(oblique, oblique)
|
||||
CSS_KEY(once, once)
|
||||
CSS_KEY(open-quote, open_quote)
|
||||
CSS_KEY(oriya, oriya)
|
||||
CSS_KEY(outset, outset)
|
||||
CSS_KEY(outside, outside)
|
||||
CSS_KEY(overline, overline)
|
||||
CSS_KEY(padding-box, padding_box)
|
||||
CSS_KEY(paragraph, paragraph)
|
||||
CSS_KEY(pc, pc)
|
||||
CSS_KEY(persian, persian)
|
||||
CSS_KEY(pointer, pointer)
|
||||
CSS_KEY(portrait, portrait)
|
||||
CSS_KEY(pre, pre)
|
||||
CSS_KEY(pt, pt)
|
||||
CSS_KEY(pull-down-menu, pull_down_menu)
|
||||
CSS_KEY(px, px)
|
||||
CSS_KEY(rad, rad)
|
||||
CSS_KEY(read-only, read_only)
|
||||
CSS_KEY(read-write, read_write)
|
||||
CSS_KEY(relative, relative)
|
||||
CSS_KEY(repeat, repeat)
|
||||
CSS_KEY(repeat-x, repeat_x)
|
||||
CSS_KEY(repeat-y, repeat_y)
|
||||
CSS_KEY(ridge, ridge)
|
||||
CSS_KEY(right, right)
|
||||
CSS_KEY(right-side, right_side)
|
||||
CSS_KEY(rightwards, rightwards)
|
||||
CSS_KEY(rtl, rtl)
|
||||
CSS_KEY(run-in, run_in)
|
||||
CSS_KEY(s, s)
|
||||
CSS_KEY(s-resize, s_resize)
|
||||
CSS_KEY(scroll, scroll)
|
||||
CSS_KEY(scrollbar, scrollbar)
|
||||
CSS_KEY(se-resize, se_resize)
|
||||
CSS_KEY(select-all, select_all)
|
||||
CSS_KEY(select-before, select_before)
|
||||
CSS_KEY(select-after, select_after)
|
||||
CSS_KEY(select-same, select_same)
|
||||
CSS_KEY(select-menu, select_menu)
|
||||
CSS_KEY(semi-condensed, semi_condensed)
|
||||
CSS_KEY(semi-expanded, semi_expanded)
|
||||
CSS_KEY(separate, separate)
|
||||
CSS_KEY(show, show)
|
||||
CSS_KEY(silent, silent)
|
||||
CSS_KEY(simp-chinese-formal, simp_chinese_formal)
|
||||
CSS_KEY(simp-chinese-informal, simp_chinese_informal)
|
||||
CSS_KEY(slow, slow)
|
||||
CSS_KEY(slower, slower)
|
||||
CSS_KEY(small, small)
|
||||
CSS_KEY(small-caps, small_caps)
|
||||
CSS_KEY(small-caption, small_caption)
|
||||
CSS_KEY(smaller, smaller)
|
||||
CSS_KEY(soft, soft)
|
||||
CSS_KEY(solid, solid)
|
||||
CSS_KEY(spell-out, spell_out)
|
||||
CSS_KEY(spinning, spinning)
|
||||
CSS_KEY(square, square)
|
||||
CSS_KEY(start, start)
|
||||
CSS_KEY(static, static)
|
||||
CSS_KEY(status-bar, status_bar)
|
||||
CSS_KEY(sub, sub)
|
||||
CSS_KEY(super, super)
|
||||
CSS_KEY(sw-resize, sw_resize)
|
||||
CSS_KEY(table, table)
|
||||
CSS_KEY(table-caption, table_caption)
|
||||
CSS_KEY(table-cell, table_cell)
|
||||
CSS_KEY(table-column, table_column)
|
||||
CSS_KEY(table-column-group, table_column_group)
|
||||
CSS_KEY(table-footer-group, table_footer_group)
|
||||
CSS_KEY(table-header-group, table_header_group)
|
||||
CSS_KEY(table-row, table_row)
|
||||
CSS_KEY(table-row-group, table_row_group)
|
||||
CSS_KEY(tamil, tamil)
|
||||
CSS_KEY(telugu, telugu)
|
||||
CSS_KEY(text, text)
|
||||
CSS_KEY(text-bottom, text_bottom)
|
||||
CSS_KEY(text-top, text_top)
|
||||
CSS_KEY(thai, thai)
|
||||
CSS_KEY(thick, thick)
|
||||
CSS_KEY(thin, thin)
|
||||
CSS_KEY(threeddarkshadow, threeddarkshadow)
|
||||
CSS_KEY(threedface, threedface)
|
||||
CSS_KEY(threedhighlight, threedhighlight)
|
||||
CSS_KEY(threedlightshadow, threedlightshadow)
|
||||
CSS_KEY(threedshadow, threedshadow)
|
||||
CSS_KEY(toggle, toggle)
|
||||
CSS_KEY(top, top)
|
||||
CSS_KEY(trad-chinese-formal, trad_chinese_formal)
|
||||
CSS_KEY(trad-chinese-informal, trad_chinese_informal)
|
||||
CSS_KEY(transparent, transparent)
|
||||
CSS_KEY(tri-state, tri_state)
|
||||
CSS_KEY(ultra-condensed, ultra_condensed)
|
||||
CSS_KEY(ultra-expanded, ultra_expanded)
|
||||
CSS_KEY(underline, underline)
|
||||
CSS_KEY(upper-alpha, upper_alpha)
|
||||
CSS_KEY(upper-latin, upper_latin)
|
||||
CSS_KEY(upper-roman, upper_roman)
|
||||
CSS_KEY(uppercase, uppercase)
|
||||
CSS_KEY(urdu, urdu)
|
||||
CSS_KEY(vertical, vertical)
|
||||
CSS_KEY(visible, visible)
|
||||
CSS_KEY(w-resize, w_resize)
|
||||
CSS_KEY(wait, wait)
|
||||
CSS_KEY(wider, wider)
|
||||
CSS_KEY(window, window)
|
||||
CSS_KEY(windowframe, windowframe)
|
||||
CSS_KEY(windowtext, windowtext)
|
||||
CSS_KEY(workspace, workspace)
|
||||
CSS_KEY(write-only, write_only)
|
||||
CSS_KEY(x-fast, x_fast)
|
||||
CSS_KEY(x-high, x_high)
|
||||
CSS_KEY(x-large, x_large)
|
||||
CSS_KEY(x-loud, x_loud)
|
||||
CSS_KEY(x-low, x_low)
|
||||
CSS_KEY(x-slow, x_slow)
|
||||
CSS_KEY(x-small, x_small)
|
||||
CSS_KEY(x-soft, x_soft)
|
||||
CSS_KEY(xx-large, xx_large)
|
||||
CSS_KEY(xx-small, xx_small)
|
||||
|
@ -22,73 +22,39 @@
|
||||
|
||||
#include "nsCSSKeywords.h"
|
||||
#include "nsString.h"
|
||||
#include "nsAVLTree.h"
|
||||
|
||||
#include "nsStaticNameTable.h"
|
||||
|
||||
// define an array of all CSS keywords
|
||||
#define CSS_KEY(_key) #_key,
|
||||
#define CSS_KEY(_name,_id) #_name,
|
||||
const char* kCSSRawKeywords[] = {
|
||||
#include "nsCSSKeywordList.h"
|
||||
};
|
||||
#undef CSS_KEY
|
||||
|
||||
struct KeywordNode {
|
||||
KeywordNode(void)
|
||||
: mStr(),
|
||||
mEnum(eCSSKeyword_UNKNOWN)
|
||||
{}
|
||||
|
||||
KeywordNode(const nsStr& aStringValue, nsCSSKeyword aEnumValue)
|
||||
: mStr(),
|
||||
mEnum(aEnumValue)
|
||||
{ // point to the incomming buffer
|
||||
// note that the incomming buffer may really be 2 byte
|
||||
nsStr::Initialize(mStr, aStringValue.mStr, aStringValue.mCapacity,
|
||||
aStringValue.mLength, aStringValue.mCharSize, PR_FALSE);
|
||||
}
|
||||
|
||||
nsCAutoString mStr;
|
||||
nsCSSKeyword mEnum;
|
||||
};
|
||||
|
||||
class KeywordComparitor: public nsAVLNodeComparitor {
|
||||
public:
|
||||
virtual ~KeywordComparitor(void) {}
|
||||
virtual PRInt32 operator()(void* anItem1,void* anItem2) {
|
||||
KeywordNode* one = (KeywordNode*)anItem1;
|
||||
KeywordNode* two = (KeywordNode*)anItem2;
|
||||
return one->mStr.CompareWithConversion(two->mStr, PR_TRUE);
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
static PRInt32 gTableRefCount;
|
||||
static KeywordNode* gKeywordArray;
|
||||
static nsAVLTree* gKeywordTree;
|
||||
static KeywordComparitor* gComparitor;
|
||||
static nsCString* kNullStr;
|
||||
static PRInt32 gTableRefCount;
|
||||
static nsStaticCaseInsensitiveNameTable* gKeywordTable;
|
||||
|
||||
void
|
||||
nsCSSKeywords::AddRefTable(void)
|
||||
{
|
||||
if (0 == gTableRefCount++) {
|
||||
if (! gKeywordArray) {
|
||||
gKeywordArray = new KeywordNode[eCSSKeyword_COUNT];
|
||||
gComparitor = new KeywordComparitor();
|
||||
if (gComparitor) {
|
||||
gKeywordTree = new nsAVLTree(*gComparitor, nsnull);
|
||||
}
|
||||
if (gKeywordArray && gKeywordTree) {
|
||||
PRInt32 index = -1;
|
||||
while (++index < PRInt32(eCSSKeyword_COUNT)) {
|
||||
gKeywordArray[index].mStr = kCSSRawKeywords[index];
|
||||
gKeywordArray[index].mStr.ReplaceChar('_', '-');
|
||||
gKeywordArray[index].mEnum = nsCSSKeyword(index);
|
||||
gKeywordTree->AddItem(&(gKeywordArray[index]));
|
||||
}
|
||||
NS_ASSERTION(!gKeywordTable, "pre existing array!");
|
||||
gKeywordTable = new nsStaticCaseInsensitiveNameTable();
|
||||
if (gKeywordTable) {
|
||||
#ifdef DEBUG
|
||||
{
|
||||
// let's verify the table...
|
||||
for (PRInt32 index = 0; index < eCSSKeyword_COUNT; ++index) {
|
||||
nsCAutoString temp1(kCSSRawKeywords[index]);
|
||||
nsCAutoString temp2(kCSSRawKeywords[index]);
|
||||
temp1.ToLowerCase();
|
||||
NS_ASSERTION(temp1.Equals(temp2), "upper case char in table");
|
||||
NS_ASSERTION(-1 == temp1.FindChar('_'), "underscore char in table");
|
||||
}
|
||||
}
|
||||
kNullStr = new nsCString();
|
||||
#endif
|
||||
gKeywordTable->Init(kCSSRawKeywords, eCSSKeyword_COUNT);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -96,55 +62,42 @@ void
|
||||
nsCSSKeywords::ReleaseTable(void)
|
||||
{
|
||||
if (0 == --gTableRefCount) {
|
||||
if (gKeywordArray) {
|
||||
delete [] gKeywordArray;
|
||||
gKeywordArray = nsnull;
|
||||
if (gKeywordTable) {
|
||||
delete gKeywordTable;
|
||||
gKeywordTable = nsnull;
|
||||
}
|
||||
if (gKeywordTree) {
|
||||
delete gKeywordTree;
|
||||
gKeywordTree = nsnull;
|
||||
}
|
||||
if (gComparitor) {
|
||||
delete gComparitor;
|
||||
gComparitor = nsnull;
|
||||
}
|
||||
delete kNullStr;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
nsCSSKeyword
|
||||
nsCSSKeywords::LookupKeyword(const nsCString& aKeyword)
|
||||
{
|
||||
NS_ASSERTION(gKeywordTree, "no lookup table, needs addref");
|
||||
if (gKeywordTree) {
|
||||
KeywordNode node(aKeyword, eCSSKeyword_UNKNOWN);
|
||||
KeywordNode* found = (KeywordNode*)gKeywordTree->FindItem(&node);
|
||||
if (found) {
|
||||
NS_ASSERTION(found->mStr.EqualsIgnoreCase(aKeyword), "bad tree");
|
||||
return found->mEnum;
|
||||
}
|
||||
}
|
||||
NS_ASSERTION(gKeywordTable, "no lookup table, needs addref");
|
||||
if (gKeywordTable) {
|
||||
return nsCSSKeyword(gKeywordTable->Lookup(aKeyword));
|
||||
}
|
||||
return eCSSKeyword_UNKNOWN;
|
||||
}
|
||||
|
||||
nsCSSKeyword
|
||||
nsCSSKeywords::LookupKeyword(const nsString& aKeyword) {
|
||||
nsCAutoString theKeyword; theKeyword.AssignWithConversion(aKeyword);
|
||||
return LookupKeyword(theKeyword);
|
||||
nsCSSKeywords::LookupKeyword(const nsString& aKeyword)
|
||||
{
|
||||
NS_ASSERTION(gKeywordTable, "no lookup table, needs addref");
|
||||
if (gKeywordTable) {
|
||||
return nsCSSKeyword(gKeywordTable->Lookup(aKeyword));
|
||||
}
|
||||
return eCSSKeyword_UNKNOWN;
|
||||
}
|
||||
|
||||
|
||||
const nsCString&
|
||||
nsCSSKeywords::GetStringValue(nsCSSKeyword aKeyword)
|
||||
{
|
||||
NS_ASSERTION(gKeywordArray, "no lookup table, needs addref");
|
||||
if ((eCSSKeyword_UNKNOWN < aKeyword) &&
|
||||
(aKeyword < eCSSKeyword_COUNT) && gKeywordArray) {
|
||||
return gKeywordArray[aKeyword].mStr;
|
||||
}
|
||||
else {
|
||||
return *kNullStr;
|
||||
NS_ASSERTION(gKeywordTable, "no lookup table, needs addref");
|
||||
if (gKeywordTable) {
|
||||
return gKeywordTable->GetStringValue(PRInt32(aKeyword));
|
||||
} else {
|
||||
static nsCString kNullStr;
|
||||
return kNullStr;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -34,7 +34,7 @@ class nsCString;
|
||||
To change the list of keywords, see nsCSSKeywordList.h
|
||||
|
||||
*/
|
||||
#define CSS_KEY(_key) eCSSKeyword_##_key,
|
||||
#define CSS_KEY(_name,_id) eCSSKeyword_##_id,
|
||||
enum nsCSSKeyword {
|
||||
eCSSKeyword_UNKNOWN = -1,
|
||||
#include "nsCSSKeywordList.h"
|
||||
|
@ -34,171 +34,177 @@
|
||||
It is recommended (but not strictly necessary) to keep all entries
|
||||
in alphabetical order
|
||||
|
||||
Underbars in properties are automagically converted into hyphens
|
||||
Requirements:
|
||||
|
||||
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
|
||||
Entries are in the form: (name,id,impact). 'id' must always be the same as
|
||||
'name' except that all hyphens ('-') in 'name' are converted to underscores
|
||||
('_') in 'id'. This lets us do nice things with the macros without having to
|
||||
copy/convert strings at runtime.
|
||||
|
||||
'name' entries *must* use only lowercase characters.
|
||||
|
||||
** Break these invarient and bad things will happen. **
|
||||
|
||||
The third argument is the style impact resultant in a change to the property
|
||||
******/
|
||||
|
||||
|
||||
CSS_PROP(_moz_border_radius, VISUAL)
|
||||
CSS_PROP(_moz_border_radius_topLeft, VISUAL)
|
||||
CSS_PROP(_moz_border_radius_topRight, VISUAL)
|
||||
CSS_PROP(_moz_border_radius_bottomLeft, VISUAL)
|
||||
CSS_PROP(_moz_border_radius_bottomRight, VISUAL)
|
||||
CSS_PROP(_moz_outline_radius, VISUAL)
|
||||
CSS_PROP(_moz_outline_radius_topLeft, VISUAL)
|
||||
CSS_PROP(_moz_outline_radius_topRight, VISUAL)
|
||||
CSS_PROP(_moz_outline_radius_bottomLeft, VISUAL)
|
||||
CSS_PROP(_moz_outline_radius_bottomRight, VISUAL)
|
||||
CSS_PROP(azimuth, AURAL)
|
||||
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(behavior, REFLOW)
|
||||
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(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(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_focus, CONTENT)
|
||||
CSS_PROP(user_input, FRAMECHANGE) // XXX ???
|
||||
CSS_PROP(user_modify, FRAMECHANGE)
|
||||
CSS_PROP(user_select, CONTENT)
|
||||
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)
|
||||
|
||||
CSS_PROP(-moz-border-radius, _moz_border_radius, VISUAL)
|
||||
CSS_PROP(-moz-border-radius-topleft, _moz_border_radius_topLeft, VISUAL)
|
||||
CSS_PROP(-moz-border-radius-topright, _moz_border_radius_topRight, VISUAL)
|
||||
CSS_PROP(-moz-border-radius-bottomleft, _moz_border_radius_bottomLeft, VISUAL)
|
||||
CSS_PROP(-moz-border-radius-bottomright, _moz_border_radius_bottomRight, VISUAL)
|
||||
CSS_PROP(-moz-outline-radius, _moz_outline_radius, VISUAL)
|
||||
CSS_PROP(-moz-outline-radius-topleft, _moz_outline_radius_topLeft, VISUAL)
|
||||
CSS_PROP(-moz-outline-radius-topright, _moz_outline_radius_topRight, VISUAL)
|
||||
CSS_PROP(-moz-outline-radius-bottomleft, _moz_outline_radius_bottomLeft, VISUAL)
|
||||
CSS_PROP(-moz-outline-radius-bottomright, _moz_outline_radius_bottomRight, VISUAL)
|
||||
CSS_PROP(azimuth, azimuth, AURAL)
|
||||
CSS_PROP(background, background, VISUAL)
|
||||
CSS_PROP(background-attachment, background_attachment, VISUAL)
|
||||
CSS_PROP(background-color, background_color, VISUAL)
|
||||
CSS_PROP(background-image, background_image, VISUAL)
|
||||
CSS_PROP(background-position, background_position, VISUAL)
|
||||
CSS_PROP(background-repeat, background_repeat, VISUAL)
|
||||
CSS_PROP(background-x-position, background_x_position, VISUAL)
|
||||
CSS_PROP(background-y-position, background_y_position, VISUAL)
|
||||
CSS_PROP(behavior, behavior, REFLOW)
|
||||
CSS_PROP(border, border, REFLOW)
|
||||
CSS_PROP(border-bottom, border_bottom, REFLOW)
|
||||
CSS_PROP(border-bottom-color, border_bottom_color, VISUAL)
|
||||
CSS_PROP(border-bottom-style, border_bottom_style, REFLOW) // on/off will need reflow
|
||||
CSS_PROP(border-bottom-width, border_bottom_width, REFLOW)
|
||||
CSS_PROP(border-collapse, border_collapse, REFLOW)
|
||||
CSS_PROP(border-color, border_color, VISUAL)
|
||||
CSS_PROP(border-left, border_left, REFLOW)
|
||||
CSS_PROP(border-left-color, border_left_color, VISUAL)
|
||||
CSS_PROP(border-left-style, border_left_style, REFLOW) // on/off will need reflow
|
||||
CSS_PROP(border-left-width, border_left_width, REFLOW)
|
||||
CSS_PROP(border-right, border_right, REFLOW)
|
||||
CSS_PROP(border-right-color, border_right_color, VISUAL)
|
||||
CSS_PROP(border-right-style, border_right_style, REFLOW) // on/off will need reflow
|
||||
CSS_PROP(border-right-width, border_right_width, REFLOW)
|
||||
CSS_PROP(border-spacing, border_spacing, REFLOW)
|
||||
CSS_PROP(border-style, border_style, REFLOW) // on/off will need reflow
|
||||
CSS_PROP(border-top, border_top, REFLOW)
|
||||
CSS_PROP(border-top-color, border_top_color, VISUAL)
|
||||
CSS_PROP(border-top-style, border_top_style, REFLOW) // on/off will need reflow
|
||||
CSS_PROP(border-top-width, border_top_width, REFLOW)
|
||||
CSS_PROP(border-width, border_width, REFLOW)
|
||||
CSS_PROP(border-x-spacing, border_x_spacing, REFLOW)
|
||||
CSS_PROP(border-y-spacing, border_y_spacing, REFLOW)
|
||||
CSS_PROP(bottom, bottom, REFLOW)
|
||||
CSS_PROP(box-sizing, box_sizing, REFLOW)
|
||||
CSS_PROP(caption-side, caption_side, REFLOW)
|
||||
CSS_PROP(clear, clear, REFLOW)
|
||||
CSS_PROP(clip, clip, VISUAL)
|
||||
CSS_PROP(clip-bottom, clip_bottom, VISUAL)
|
||||
CSS_PROP(clip-left, clip_left, VISUAL)
|
||||
CSS_PROP(clip-right, clip_right, VISUAL)
|
||||
CSS_PROP(clip-top, clip_top, VISUAL)
|
||||
CSS_PROP(color, color, VISUAL)
|
||||
CSS_PROP(content, content, FRAMECHANGE)
|
||||
CSS_PROP(counter-increment, counter_increment, REFLOW)
|
||||
CSS_PROP(counter-reset, counter_reset, REFLOW)
|
||||
CSS_PROP(cue, cue, AURAL)
|
||||
CSS_PROP(cue-after, cue_after, AURAL)
|
||||
CSS_PROP(cue-before, cue_before, AURAL)
|
||||
CSS_PROP(cursor, cursor, VISUAL)
|
||||
CSS_PROP(direction, direction, REFLOW)
|
||||
CSS_PROP(display, display, FRAMECHANGE)
|
||||
CSS_PROP(elevation, elevation, AURAL)
|
||||
CSS_PROP(empty-cells, empty_cells, VISUAL)
|
||||
CSS_PROP(float, float, FRAMECHANGE)
|
||||
CSS_PROP(float-edge, float_edge, REFLOW)
|
||||
CSS_PROP(font, font, REFLOW)
|
||||
CSS_PROP(font-family, font_family, REFLOW)
|
||||
CSS_PROP(font-size, font_size, REFLOW)
|
||||
CSS_PROP(font-size-adjust, font_size_adjust, REFLOW)
|
||||
CSS_PROP(font-stretch, font_stretch, REFLOW)
|
||||
CSS_PROP(font-style, font_style, REFLOW)
|
||||
CSS_PROP(font-variant, font_variant, REFLOW)
|
||||
CSS_PROP(font-weight, font_weight, REFLOW)
|
||||
CSS_PROP(height, height, REFLOW)
|
||||
CSS_PROP(key-equivalent, key_equivalent, CONTENT) // This will need some other notification, but what?
|
||||
CSS_PROP(left, left, REFLOW)
|
||||
CSS_PROP(letter-spacing, letter_spacing, REFLOW)
|
||||
CSS_PROP(line-height, line_height, REFLOW)
|
||||
CSS_PROP(list-style, list_style, REFLOW)
|
||||
CSS_PROP(list-style-image, list_style_image, REFLOW)
|
||||
CSS_PROP(list-style-position, list_style_position, REFLOW)
|
||||
CSS_PROP(list-style-type, list_style_type, REFLOW)
|
||||
CSS_PROP(margin, margin, REFLOW)
|
||||
CSS_PROP(margin-bottom, margin_bottom, REFLOW)
|
||||
CSS_PROP(margin-left, margin_left, REFLOW)
|
||||
CSS_PROP(margin-right, margin_right, REFLOW)
|
||||
CSS_PROP(margin-top, margin_top, REFLOW)
|
||||
CSS_PROP(marker-offset, marker_offset, REFLOW)
|
||||
CSS_PROP(marks, marks, VISUAL)
|
||||
CSS_PROP(max-height, max_height, REFLOW)
|
||||
CSS_PROP(max-width, max_width, REFLOW)
|
||||
CSS_PROP(min-height, min_height, REFLOW)
|
||||
CSS_PROP(min-width, min_width, REFLOW)
|
||||
CSS_PROP(opacity, opacity, VISUAL)
|
||||
CSS_PROP(orphans, orphans, REFLOW)
|
||||
CSS_PROP(outline, outline, VISUAL)
|
||||
CSS_PROP(outline-color, outline_color, VISUAL)
|
||||
CSS_PROP(outline-style, outline_style, VISUAL)
|
||||
CSS_PROP(outline-width, outline_width, VISUAL)
|
||||
CSS_PROP(overflow, overflow, FRAMECHANGE)
|
||||
CSS_PROP(padding, padding, REFLOW)
|
||||
CSS_PROP(padding-bottom, padding_bottom, REFLOW)
|
||||
CSS_PROP(padding-left, padding_left, REFLOW)
|
||||
CSS_PROP(padding-right, padding_right, REFLOW)
|
||||
CSS_PROP(padding-top, padding_top, REFLOW)
|
||||
CSS_PROP(page, page, REFLOW)
|
||||
CSS_PROP(page-break-after, page_break_after, REFLOW)
|
||||
CSS_PROP(page-break-before, page_break_before, REFLOW)
|
||||
CSS_PROP(page-break-inside, page_break_inside, REFLOW)
|
||||
CSS_PROP(pause, pause, AURAL)
|
||||
CSS_PROP(pause-after, pause_after, AURAL)
|
||||
CSS_PROP(pause-before, pause_before, AURAL)
|
||||
CSS_PROP(pitch, pitch, AURAL)
|
||||
CSS_PROP(pitch-range, pitch_range, AURAL)
|
||||
CSS_PROP(play-during, play_during, AURAL)
|
||||
CSS_PROP(play-during-flags, play_during_flags, AURAL)
|
||||
CSS_PROP(position, position, FRAMECHANGE)
|
||||
CSS_PROP(quotes, quotes, REFLOW)
|
||||
CSS_PROP(quotes-close, quotes_close, REFLOW)
|
||||
CSS_PROP(quotes-open, quotes_open, REFLOW)
|
||||
CSS_PROP(resizer, resizer, FRAMECHANGE)
|
||||
CSS_PROP(richness, richness, AURAL)
|
||||
CSS_PROP(right, right, REFLOW)
|
||||
CSS_PROP(size, size, REFLOW)
|
||||
CSS_PROP(size-height, size_height, REFLOW)
|
||||
CSS_PROP(size-width, size_width, REFLOW)
|
||||
CSS_PROP(speak, speak, AURAL)
|
||||
CSS_PROP(speak-header, speak_header, AURAL)
|
||||
CSS_PROP(speak-numeral, speak_numeral, AURAL)
|
||||
CSS_PROP(speak-punctuation, speak_punctuation, AURAL)
|
||||
CSS_PROP(speech-rate, speech_rate, AURAL)
|
||||
CSS_PROP(stress, stress, AURAL)
|
||||
CSS_PROP(table-layout, table_layout, REFLOW)
|
||||
CSS_PROP(text-align, text_align, REFLOW)
|
||||
CSS_PROP(text-decoration, text_decoration, VISUAL)
|
||||
CSS_PROP(text-indent, text_indent, REFLOW)
|
||||
CSS_PROP(text-shadow, text_shadow, VISUAL)
|
||||
CSS_PROP(text-shadow-color, text_shadow_color, VISUAL)
|
||||
CSS_PROP(text-shadow-radius, text_shadow_radius, VISUAL)
|
||||
CSS_PROP(text-shadow-x, text_shadow_x, VISUAL)
|
||||
CSS_PROP(text-shadow-y, text_shadow_y, VISUAL)
|
||||
CSS_PROP(text-transform, text_transform, REFLOW)
|
||||
CSS_PROP(top, top, REFLOW)
|
||||
CSS_PROP(unicode-bidi, unicode_bidi, REFLOW)
|
||||
CSS_PROP(user-focus, user_focus, CONTENT)
|
||||
CSS_PROP(user-input, user_input, FRAMECHANGE) // XXX ???
|
||||
CSS_PROP(user-modify, user_modify, FRAMECHANGE)
|
||||
CSS_PROP(user-select, user_select, CONTENT)
|
||||
CSS_PROP(vertical-align, vertical_align, REFLOW)
|
||||
CSS_PROP(visibility, visibility, REFLOW) // reflow for collapse
|
||||
CSS_PROP(voice-family, voice_family, AURAL)
|
||||
CSS_PROP(volume, volume, AURAL)
|
||||
CSS_PROP(white-space, white_space, REFLOW)
|
||||
CSS_PROP(widows, widows, REFLOW)
|
||||
CSS_PROP(width, width, REFLOW)
|
||||
CSS_PROP(word-spacing, word_spacing, REFLOW)
|
||||
CSS_PROP(z-index, z_index, REFLOW)
|
||||
|
@ -27,73 +27,40 @@
|
||||
#include "nsILookAndFeel.h" // for system colors
|
||||
|
||||
#include "nsString.h"
|
||||
#include "nsAVLTree.h"
|
||||
|
||||
#include "nsStaticNameTable.h"
|
||||
|
||||
// define an array of all CSS properties
|
||||
#define CSS_PROP(_prop, _hint) #_prop,
|
||||
#define CSS_PROP(_name, _id, _hint) #_name,
|
||||
const char* kCSSRawProperties[] = {
|
||||
#include "nsCSSPropList.h"
|
||||
};
|
||||
#undef CSS_PROP
|
||||
|
||||
struct PropertyNode {
|
||||
PropertyNode(void)
|
||||
: mStr(),
|
||||
mEnum(eCSSProperty_UNKNOWN)
|
||||
{}
|
||||
|
||||
PropertyNode(const nsStr& aStringValue, nsCSSProperty aEnumValue)
|
||||
: mStr(),
|
||||
mEnum(aEnumValue)
|
||||
{ // point to the incomming buffer
|
||||
// note that the incomming buffer may really be 2 byte
|
||||
nsStr::Initialize(mStr, aStringValue.mStr, aStringValue.mCapacity,
|
||||
aStringValue.mLength, aStringValue.mCharSize, PR_FALSE);
|
||||
}
|
||||
|
||||
nsCAutoString mStr;
|
||||
nsCSSProperty mEnum;
|
||||
};
|
||||
|
||||
class PropertyComparitor: public nsAVLNodeComparitor {
|
||||
public:
|
||||
virtual ~PropertyComparitor(void) {}
|
||||
virtual PRInt32 operator()(void* anItem1,void* anItem2) {
|
||||
PropertyNode* one = (PropertyNode*)anItem1;
|
||||
PropertyNode* two = (PropertyNode*)anItem2;
|
||||
return one->mStr.CompareWithConversion(two->mStr, PR_TRUE);
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
static PRInt32 gTableRefCount;
|
||||
static PropertyNode* gPropertyArray;
|
||||
static nsAVLTree* gPropertyTree;
|
||||
static PropertyComparitor* gComparitor;
|
||||
static nsCString* kNullStr;
|
||||
static PRInt32 gTableRefCount;
|
||||
static nsStaticCaseInsensitiveNameTable* gPropertyTable;
|
||||
|
||||
void
|
||||
nsCSSProps::AddRefTable(void)
|
||||
{
|
||||
if (0 == gTableRefCount++) {
|
||||
if (! gPropertyArray) {
|
||||
gPropertyArray= new PropertyNode[eCSSProperty_COUNT];
|
||||
gComparitor = new PropertyComparitor();
|
||||
if (gComparitor) {
|
||||
gPropertyTree = new nsAVLTree(*gComparitor, nsnull);
|
||||
}
|
||||
if (gPropertyArray && gPropertyTree) {
|
||||
PRInt32 index = -1;
|
||||
while (++index < PRInt32(eCSSProperty_COUNT)) {
|
||||
gPropertyArray[index].mStr = kCSSRawProperties[index];
|
||||
gPropertyArray[index].mStr.ReplaceChar('_', '-');
|
||||
gPropertyArray[index].mEnum = nsCSSProperty(index);
|
||||
gPropertyTree->AddItem(&(gPropertyArray[index]));
|
||||
}
|
||||
NS_ASSERTION(!gPropertyTable, "pre existing array!");
|
||||
gPropertyTable = new nsStaticCaseInsensitiveNameTable();
|
||||
if (gPropertyTable) {
|
||||
#ifdef DEBUG
|
||||
{
|
||||
// let's verify the table...
|
||||
for (PRInt32 index = 0; index < eCSSProperty_COUNT; ++index) {
|
||||
nsCAutoString temp1(kCSSRawProperties[index]);
|
||||
nsCAutoString temp2(kCSSRawProperties[index]);
|
||||
temp1.ToLowerCase();
|
||||
NS_ASSERTION(temp1.Equals(temp2), "upper case char in table");
|
||||
NS_ASSERTION(-1 == temp1.FindChar('_'), "underscore char in table");
|
||||
}
|
||||
}
|
||||
kNullStr = new nsCString();
|
||||
#endif
|
||||
gPropertyTable->Init(kCSSRawProperties, eCSSProperty_COUNT);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -101,60 +68,47 @@ void
|
||||
nsCSSProps::ReleaseTable(void)
|
||||
{
|
||||
if (0 == --gTableRefCount) {
|
||||
if (gPropertyArray) {
|
||||
delete [] gPropertyArray;
|
||||
gPropertyArray = nsnull;
|
||||
if (gPropertyTable) {
|
||||
delete gPropertyTable;
|
||||
gPropertyTable = nsnull;
|
||||
}
|
||||
if (gPropertyTree) {
|
||||
delete gPropertyTree;
|
||||
gPropertyTree = nsnull;
|
||||
}
|
||||
if (gComparitor) {
|
||||
delete gComparitor;
|
||||
gComparitor = nsnull;
|
||||
}
|
||||
delete kNullStr;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
nsCSSProperty
|
||||
nsCSSProps::LookupProperty(const nsCString& aProperty)
|
||||
{
|
||||
NS_ASSERTION(gPropertyTree, "no lookup table, needs addref");
|
||||
if (gPropertyTree) {
|
||||
PropertyNode node(aProperty, eCSSProperty_UNKNOWN);
|
||||
PropertyNode* found = (PropertyNode*)gPropertyTree->FindItem(&node);
|
||||
if (found) {
|
||||
NS_ASSERTION(found->mStr.EqualsIgnoreCase(aProperty), "bad tree");
|
||||
return found->mEnum;
|
||||
}
|
||||
}
|
||||
NS_ASSERTION(gPropertyTable, "no lookup table, needs addref");
|
||||
if (gPropertyTable) {
|
||||
return nsCSSProperty(gPropertyTable->Lookup(aProperty));
|
||||
}
|
||||
return eCSSProperty_UNKNOWN;
|
||||
}
|
||||
|
||||
|
||||
nsCSSProperty
|
||||
nsCSSProps::LookupProperty(const nsString& aProperty) {
|
||||
nsCAutoString theProp; theProp.AssignWithConversion(aProperty);
|
||||
return LookupProperty(theProp);
|
||||
nsCSSProps::LookupProperty(const nsString& aProperty)
|
||||
{
|
||||
NS_ASSERTION(gPropertyTable, "no lookup table, needs addref");
|
||||
if (gPropertyTable) {
|
||||
return nsCSSProperty(gPropertyTable->Lookup(aProperty));
|
||||
}
|
||||
return eCSSProperty_UNKNOWN;
|
||||
}
|
||||
|
||||
|
||||
const nsCString&
|
||||
nsCSSProps::GetStringValue(nsCSSProperty aProperty)
|
||||
{
|
||||
NS_ASSERTION(gPropertyArray, "no lookup table, needs addref");
|
||||
if ((eCSSProperty_UNKNOWN < aProperty) &&
|
||||
(aProperty < eCSSProperty_COUNT) && gPropertyArray) {
|
||||
return gPropertyArray[aProperty].mStr;
|
||||
}
|
||||
else {
|
||||
return *kNullStr;
|
||||
NS_ASSERTION(gPropertyTable, "no lookup table, needs addref");
|
||||
if (gPropertyTable) {
|
||||
return gPropertyTable->GetStringValue(PRInt32(aProperty));
|
||||
} else {
|
||||
static nsCString sNullStr;
|
||||
return sNullStr;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/***************************************************************************/
|
||||
|
||||
// Keyword id tables for variant/enum parsing
|
||||
const PRInt32 nsCSSProps::kAzimuthKTable[] = {
|
||||
@ -726,7 +680,8 @@ SearchKeywordTable(PRInt32 aValue, const PRInt32 aTable[])
|
||||
{
|
||||
PRInt32 i = SearchKeywordTableInt(aValue, aTable);
|
||||
if (i < 0) {
|
||||
return *kNullStr;
|
||||
static nsCString sNullStr;
|
||||
return sNullStr;
|
||||
} else {
|
||||
return nsCSSKeywords::GetStringValue(nsCSSKeyword(i));
|
||||
}
|
||||
@ -1083,7 +1038,8 @@ static const PRInt32 kBackgroundYPositionKTable[] = {
|
||||
NS_ERROR("invalid property");
|
||||
break;
|
||||
}
|
||||
return *kNullStr;
|
||||
static nsCString sNullStr;
|
||||
return sNullStr;
|
||||
}
|
||||
|
||||
PRBool nsCSSProps::GetColorName(PRInt32 aPropValue, nsCString &aStr)
|
||||
@ -1105,7 +1061,7 @@ PRBool nsCSSProps::GetColorName(PRInt32 aPropValue, nsCString &aStr)
|
||||
}
|
||||
|
||||
// define array of all CSS property hints
|
||||
#define CSS_PROP(_prop, _hint) NS_STYLE_HINT_##_hint,
|
||||
#define CSS_PROP(_name, _id, _hint) NS_STYLE_HINT_##_hint,
|
||||
const PRInt32 nsCSSProps::kHintTable[eCSSProperty_COUNT] = {
|
||||
#include "nsCSSPropList.h"
|
||||
};
|
||||
|
@ -34,7 +34,7 @@ class nsString;
|
||||
To change the list of properties, see nsCSSPropList.h
|
||||
|
||||
*/
|
||||
#define CSS_PROP(_prop, _hint) eCSSProperty_##_prop,
|
||||
#define CSS_PROP(_name, _id, _hint) eCSSProperty_##_id,
|
||||
enum nsCSSProperty {
|
||||
eCSSProperty_UNKNOWN = -1,
|
||||
#include "nsCSSPropList.h"
|
||||
|
@ -34,315 +34,323 @@
|
||||
It is recommended (but not strictly necessary) to keep all entries
|
||||
in alphabetical order
|
||||
|
||||
Underbars in keywords are automagically converted into hyphens
|
||||
Requirements:
|
||||
|
||||
Entries are in the form: (name,id). 'id' must always be the same as 'name'
|
||||
except that all hyphens ('-') in 'name' are converted to underscores ('_')
|
||||
in 'id'. This lets us do nice things with the macros without having to
|
||||
copy/convert strings at runtime.
|
||||
|
||||
'name' entries *must* use only lowercase characters.
|
||||
|
||||
** Break these invarient and bad things will happen. **
|
||||
|
||||
******/
|
||||
|
||||
|
||||
CSS_KEY(_moz_all)
|
||||
CSS_KEY(_moz_bg_inset)
|
||||
CSS_KEY(_moz_bg_outset)
|
||||
CSS_KEY(_moz_center)
|
||||
CSS_KEY(_moz_right)
|
||||
CSS_KEY(_moz_pre_wrap)
|
||||
CSS_KEY(_moz_scrollbars_none)
|
||||
CSS_KEY(_moz_scrollbars_horizontal)
|
||||
CSS_KEY(_moz_scrollbars_vertical)
|
||||
CSS_KEY(above)
|
||||
CSS_KEY(absolute)
|
||||
CSS_KEY(activeborder)
|
||||
CSS_KEY(activecaption)
|
||||
CSS_KEY(alias)
|
||||
CSS_KEY(all)
|
||||
CSS_KEY(always)
|
||||
CSS_KEY(appworkspace)
|
||||
CSS_KEY(arabic_indic)
|
||||
CSS_KEY(armenian)
|
||||
CSS_KEY(auto)
|
||||
CSS_KEY(avoid)
|
||||
CSS_KEY(background)
|
||||
CSS_KEY(baseline)
|
||||
CSS_KEY(behind)
|
||||
CSS_KEY(below)
|
||||
CSS_KEY(bengali)
|
||||
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(button)
|
||||
CSS_KEY(buttonface)
|
||||
CSS_KEY(buttonhighlight)
|
||||
CSS_KEY(buttonshadow)
|
||||
CSS_KEY(buttontext)
|
||||
CSS_KEY(capitalize)
|
||||
CSS_KEY(caption)
|
||||
CSS_KEY(captiontext)
|
||||
CSS_KEY(cell)
|
||||
CSS_KEY(center)
|
||||
CSS_KEY(center_left)
|
||||
CSS_KEY(center_right)
|
||||
CSS_KEY(ch)
|
||||
CSS_KEY(circle)
|
||||
CSS_KEY(cjk_earthly_branch)
|
||||
CSS_KEY(cjk_heavenly_stem)
|
||||
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(context_menu)
|
||||
CSS_KEY(continuous)
|
||||
CSS_KEY(copy)
|
||||
CSS_KEY(count_down)
|
||||
CSS_KEY(count_up)
|
||||
CSS_KEY(count_up_down)
|
||||
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(desktop)
|
||||
CSS_KEY(devanagari)
|
||||
CSS_KEY(dialog)
|
||||
CSS_KEY(digits)
|
||||
CSS_KEY(disabled)
|
||||
CSS_KEY(disc)
|
||||
CSS_KEY(document)
|
||||
CSS_KEY(dotted)
|
||||
CSS_KEY(double)
|
||||
CSS_KEY(e_resize)
|
||||
CSS_KEY(element)
|
||||
CSS_KEY(elements)
|
||||
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(field)
|
||||
CSS_KEY(fixed)
|
||||
CSS_KEY(georgian)
|
||||
CSS_KEY(grab)
|
||||
CSS_KEY(grabbing)
|
||||
CSS_KEY(grad)
|
||||
CSS_KEY(graytext)
|
||||
CSS_KEY(groove)
|
||||
CSS_KEY(gujarati)
|
||||
CSS_KEY(gurmukhi)
|
||||
CSS_KEY(hebrew)
|
||||
CSS_KEY(help)
|
||||
CSS_KEY(hidden)
|
||||
CSS_KEY(hide)
|
||||
CSS_KEY(high)
|
||||
CSS_KEY(higher)
|
||||
CSS_KEY(highlight)
|
||||
CSS_KEY(highlighttext)
|
||||
CSS_KEY(hiragana)
|
||||
CSS_KEY(hiragana_iroha)
|
||||
CSS_KEY(horizontal)
|
||||
CSS_KEY(hz)
|
||||
CSS_KEY(icon)
|
||||
CSS_KEY(ignore)
|
||||
CSS_KEY(in)
|
||||
CSS_KEY(inactiveborder)
|
||||
CSS_KEY(inactivecaption)
|
||||
CSS_KEY(inactivecaptiontext)
|
||||
CSS_KEY(info)
|
||||
CSS_KEY(infobackground)
|
||||
CSS_KEY(infotext)
|
||||
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(japanese_formal)
|
||||
CSS_KEY(japanese_informal)
|
||||
CSS_KEY(justify)
|
||||
CSS_KEY(kannada)
|
||||
CSS_KEY(katakana)
|
||||
CSS_KEY(katakana_iroha)
|
||||
CSS_KEY(khmer)
|
||||
CSS_KEY(khz)
|
||||
CSS_KEY(landscape)
|
||||
CSS_KEY(lao)
|
||||
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_through)
|
||||
CSS_KEY(list)
|
||||
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(malayalam)
|
||||
CSS_KEY(margin_box)
|
||||
CSS_KEY(marker)
|
||||
CSS_KEY(medium)
|
||||
CSS_KEY(menu)
|
||||
CSS_KEY(menutext)
|
||||
CSS_KEY(message_box)
|
||||
CSS_KEY(middle)
|
||||
CSS_KEY(mix)
|
||||
CSS_KEY(mm)
|
||||
CSS_KEY(move)
|
||||
CSS_KEY(ms)
|
||||
CSS_KEY(myanmar)
|
||||
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(oriya)
|
||||
CSS_KEY(outset)
|
||||
CSS_KEY(outside)
|
||||
CSS_KEY(overline)
|
||||
CSS_KEY(padding_box)
|
||||
CSS_KEY(paragraph)
|
||||
CSS_KEY(pc)
|
||||
CSS_KEY(persian)
|
||||
CSS_KEY(pointer)
|
||||
CSS_KEY(portrait)
|
||||
CSS_KEY(pre)
|
||||
CSS_KEY(pt)
|
||||
CSS_KEY(pull_down_menu)
|
||||
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(scrollbar)
|
||||
CSS_KEY(se_resize)
|
||||
CSS_KEY(select_all)
|
||||
CSS_KEY(select_before)
|
||||
CSS_KEY(select_after)
|
||||
CSS_KEY(select_same)
|
||||
CSS_KEY(select_menu)
|
||||
CSS_KEY(semi_condensed)
|
||||
CSS_KEY(semi_expanded)
|
||||
CSS_KEY(separate)
|
||||
CSS_KEY(show)
|
||||
CSS_KEY(silent)
|
||||
CSS_KEY(simp_chinese_formal)
|
||||
CSS_KEY(simp_chinese_informal)
|
||||
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(spinning)
|
||||
CSS_KEY(square)
|
||||
CSS_KEY(start)
|
||||
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(tamil)
|
||||
CSS_KEY(telugu)
|
||||
CSS_KEY(text)
|
||||
CSS_KEY(text_bottom)
|
||||
CSS_KEY(text_top)
|
||||
CSS_KEY(thai)
|
||||
CSS_KEY(thick)
|
||||
CSS_KEY(thin)
|
||||
CSS_KEY(threeddarkshadow)
|
||||
CSS_KEY(threedface)
|
||||
CSS_KEY(threedhighlight)
|
||||
CSS_KEY(threedlightshadow)
|
||||
CSS_KEY(threedshadow)
|
||||
CSS_KEY(toggle)
|
||||
CSS_KEY(top)
|
||||
CSS_KEY(trad_chinese_formal)
|
||||
CSS_KEY(trad_chinese_informal)
|
||||
CSS_KEY(transparent)
|
||||
CSS_KEY(tri_state)
|
||||
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(urdu)
|
||||
CSS_KEY(vertical)
|
||||
CSS_KEY(visible)
|
||||
CSS_KEY(w_resize)
|
||||
CSS_KEY(wait)
|
||||
CSS_KEY(wider)
|
||||
CSS_KEY(window)
|
||||
CSS_KEY(windowframe)
|
||||
CSS_KEY(windowtext)
|
||||
CSS_KEY(workspace)
|
||||
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)
|
||||
CSS_KEY(-moz-all, _moz_all)
|
||||
CSS_KEY(-moz-bg-inset, _moz_bg_inset)
|
||||
CSS_KEY(-moz-bg-outset, _moz_bg_outset)
|
||||
CSS_KEY(-moz-center, _moz_center)
|
||||
CSS_KEY(-moz-right, _moz_right)
|
||||
CSS_KEY(-moz-pre-wrap, _moz_pre_wrap)
|
||||
CSS_KEY(-moz-scrollbars-none, _moz_scrollbars_none)
|
||||
CSS_KEY(-moz-scrollbars-horizontal, _moz_scrollbars_horizontal)
|
||||
CSS_KEY(-moz-scrollbars-vertical, _moz_scrollbars_vertical)
|
||||
CSS_KEY(above, above)
|
||||
CSS_KEY(absolute, absolute)
|
||||
CSS_KEY(activeborder, activeborder)
|
||||
CSS_KEY(activecaption, activecaption)
|
||||
CSS_KEY(alias, alias)
|
||||
CSS_KEY(all, all)
|
||||
CSS_KEY(always, always)
|
||||
CSS_KEY(appworkspace, appworkspace)
|
||||
CSS_KEY(arabic-indic, arabic_indic)
|
||||
CSS_KEY(armenian, armenian)
|
||||
CSS_KEY(auto, auto)
|
||||
CSS_KEY(avoid, avoid)
|
||||
CSS_KEY(background, background)
|
||||
CSS_KEY(baseline, baseline)
|
||||
CSS_KEY(behind, behind)
|
||||
CSS_KEY(below, below)
|
||||
CSS_KEY(bengali, bengali)
|
||||
CSS_KEY(bidi-override, bidi_override)
|
||||
CSS_KEY(blink, blink)
|
||||
CSS_KEY(block, block)
|
||||
CSS_KEY(bold, bold)
|
||||
CSS_KEY(bolder, bolder)
|
||||
CSS_KEY(border-box, border_box)
|
||||
CSS_KEY(both, both)
|
||||
CSS_KEY(bottom, bottom)
|
||||
CSS_KEY(button, button)
|
||||
CSS_KEY(buttonface, buttonface)
|
||||
CSS_KEY(buttonhighlight, buttonhighlight)
|
||||
CSS_KEY(buttonshadow, buttonshadow)
|
||||
CSS_KEY(buttontext, buttontext)
|
||||
CSS_KEY(capitalize, capitalize)
|
||||
CSS_KEY(caption, caption)
|
||||
CSS_KEY(captiontext, captiontext)
|
||||
CSS_KEY(cell, cell)
|
||||
CSS_KEY(center, center)
|
||||
CSS_KEY(center-left, center_left)
|
||||
CSS_KEY(center-right, center_right)
|
||||
CSS_KEY(ch, ch)
|
||||
CSS_KEY(circle, circle)
|
||||
CSS_KEY(cjk-earthly-branch, cjk_earthly_branch)
|
||||
CSS_KEY(cjk-heavenly-stem, cjk_heavenly_stem)
|
||||
CSS_KEY(cjk-ideographic, cjk_ideographic)
|
||||
CSS_KEY(close-quote, close_quote)
|
||||
CSS_KEY(cm, cm)
|
||||
CSS_KEY(code, code)
|
||||
CSS_KEY(collapse, collapse)
|
||||
CSS_KEY(compact, compact)
|
||||
CSS_KEY(condensed, condensed)
|
||||
CSS_KEY(content-box, content_box)
|
||||
CSS_KEY(context-menu, context_menu)
|
||||
CSS_KEY(continuous, continuous)
|
||||
CSS_KEY(copy, copy)
|
||||
CSS_KEY(count-down, count_down)
|
||||
CSS_KEY(count-up, count_up)
|
||||
CSS_KEY(count-up-down, count_up_down)
|
||||
CSS_KEY(crop, crop)
|
||||
CSS_KEY(cross, cross)
|
||||
CSS_KEY(crosshair, crosshair)
|
||||
CSS_KEY(dashed, dashed)
|
||||
CSS_KEY(decimal, decimal)
|
||||
CSS_KEY(decimal-leading-zero, decimal_leading_zero)
|
||||
CSS_KEY(default, default)
|
||||
CSS_KEY(deg, deg)
|
||||
CSS_KEY(desktop, desktop)
|
||||
CSS_KEY(devanagari, devanagari)
|
||||
CSS_KEY(dialog, dialog)
|
||||
CSS_KEY(digits, digits)
|
||||
CSS_KEY(disabled, disabled)
|
||||
CSS_KEY(disc, disc)
|
||||
CSS_KEY(document, document)
|
||||
CSS_KEY(dotted, dotted)
|
||||
CSS_KEY(double, double)
|
||||
CSS_KEY(e-resize, e_resize)
|
||||
CSS_KEY(element, element)
|
||||
CSS_KEY(elements, elements)
|
||||
CSS_KEY(em, em)
|
||||
CSS_KEY(embed, embed)
|
||||
CSS_KEY(enabled, enabled)
|
||||
CSS_KEY(ex, ex)
|
||||
CSS_KEY(expanded, expanded)
|
||||
CSS_KEY(extra-condensed, extra_condensed)
|
||||
CSS_KEY(extra-expanded, extra_expanded)
|
||||
CSS_KEY(far-left, far_left)
|
||||
CSS_KEY(far-right, far_right)
|
||||
CSS_KEY(fast, fast)
|
||||
CSS_KEY(faster, faster)
|
||||
CSS_KEY(field, field)
|
||||
CSS_KEY(fixed, fixed)
|
||||
CSS_KEY(georgian, georgian)
|
||||
CSS_KEY(grab, grab)
|
||||
CSS_KEY(grabbing, grabbing)
|
||||
CSS_KEY(grad, grad)
|
||||
CSS_KEY(graytext, graytext)
|
||||
CSS_KEY(groove, groove)
|
||||
CSS_KEY(gujarati, gujarati)
|
||||
CSS_KEY(gurmukhi, gurmukhi)
|
||||
CSS_KEY(hebrew, hebrew)
|
||||
CSS_KEY(help, help)
|
||||
CSS_KEY(hidden, hidden)
|
||||
CSS_KEY(hide, hide)
|
||||
CSS_KEY(high, high)
|
||||
CSS_KEY(higher, higher)
|
||||
CSS_KEY(highlight, highlight)
|
||||
CSS_KEY(highlighttext, highlighttext)
|
||||
CSS_KEY(hiragana, hiragana)
|
||||
CSS_KEY(hiragana-iroha, hiragana_iroha)
|
||||
CSS_KEY(horizontal, horizontal)
|
||||
CSS_KEY(hz, hz)
|
||||
CSS_KEY(icon, icon)
|
||||
CSS_KEY(ignore, ignore)
|
||||
CSS_KEY(in, in)
|
||||
CSS_KEY(inactiveborder, inactiveborder)
|
||||
CSS_KEY(inactivecaption, inactivecaption)
|
||||
CSS_KEY(inactivecaptiontext, inactivecaptiontext)
|
||||
CSS_KEY(info, info)
|
||||
CSS_KEY(infobackground, infobackground)
|
||||
CSS_KEY(infotext, infotext)
|
||||
CSS_KEY(inherit, inherit)
|
||||
CSS_KEY(inline, inline)
|
||||
CSS_KEY(inline-block, inline_block)
|
||||
CSS_KEY(inline-table, inline_table)
|
||||
CSS_KEY(inset, inset)
|
||||
CSS_KEY(inside, inside)
|
||||
CSS_KEY(invert, invert)
|
||||
CSS_KEY(italic, italic)
|
||||
CSS_KEY(japanese-formal, japanese_formal)
|
||||
CSS_KEY(japanese-informal, japanese_informal)
|
||||
CSS_KEY(justify, justify)
|
||||
CSS_KEY(kannada, kannada)
|
||||
CSS_KEY(katakana, katakana)
|
||||
CSS_KEY(katakana-iroha, katakana_iroha)
|
||||
CSS_KEY(khmer, khmer)
|
||||
CSS_KEY(khz, khz)
|
||||
CSS_KEY(landscape, landscape)
|
||||
CSS_KEY(lao, lao)
|
||||
CSS_KEY(large, large)
|
||||
CSS_KEY(larger, larger)
|
||||
CSS_KEY(left, left)
|
||||
CSS_KEY(left-side, left_side)
|
||||
CSS_KEY(leftwards, leftwards)
|
||||
CSS_KEY(level, level)
|
||||
CSS_KEY(lighter, lighter)
|
||||
CSS_KEY(line-through, line_through)
|
||||
CSS_KEY(list, list)
|
||||
CSS_KEY(list-item, list_item)
|
||||
CSS_KEY(loud, loud)
|
||||
CSS_KEY(low, low)
|
||||
CSS_KEY(lower, lower)
|
||||
CSS_KEY(lower-alpha, lower_alpha)
|
||||
CSS_KEY(lower-greek, lower_greek)
|
||||
CSS_KEY(lower-latin, lower_latin)
|
||||
CSS_KEY(lower-roman, lower_roman)
|
||||
CSS_KEY(lowercase, lowercase)
|
||||
CSS_KEY(ltr, ltr)
|
||||
CSS_KEY(malayalam, malayalam)
|
||||
CSS_KEY(margin-box, margin_box)
|
||||
CSS_KEY(marker, marker)
|
||||
CSS_KEY(medium, medium)
|
||||
CSS_KEY(menu, menu)
|
||||
CSS_KEY(menutext, menutext)
|
||||
CSS_KEY(message-box, message_box)
|
||||
CSS_KEY(middle, middle)
|
||||
CSS_KEY(mix, mix)
|
||||
CSS_KEY(mm, mm)
|
||||
CSS_KEY(move, move)
|
||||
CSS_KEY(ms, ms)
|
||||
CSS_KEY(myanmar, myanmar)
|
||||
CSS_KEY(n-resize, n_resize)
|
||||
CSS_KEY(narrower, narrower)
|
||||
CSS_KEY(ne-resize, ne_resize)
|
||||
CSS_KEY(no-close-quote, no_close_quote)
|
||||
CSS_KEY(no-open-quote, no_open_quote)
|
||||
CSS_KEY(no-repeat, no_repeat)
|
||||
CSS_KEY(none, none)
|
||||
CSS_KEY(normal, normal)
|
||||
CSS_KEY(noshade, noshade)
|
||||
CSS_KEY(nowrap, nowrap)
|
||||
CSS_KEY(nw-resize, nw_resize)
|
||||
CSS_KEY(oblique, oblique)
|
||||
CSS_KEY(once, once)
|
||||
CSS_KEY(open-quote, open_quote)
|
||||
CSS_KEY(oriya, oriya)
|
||||
CSS_KEY(outset, outset)
|
||||
CSS_KEY(outside, outside)
|
||||
CSS_KEY(overline, overline)
|
||||
CSS_KEY(padding-box, padding_box)
|
||||
CSS_KEY(paragraph, paragraph)
|
||||
CSS_KEY(pc, pc)
|
||||
CSS_KEY(persian, persian)
|
||||
CSS_KEY(pointer, pointer)
|
||||
CSS_KEY(portrait, portrait)
|
||||
CSS_KEY(pre, pre)
|
||||
CSS_KEY(pt, pt)
|
||||
CSS_KEY(pull-down-menu, pull_down_menu)
|
||||
CSS_KEY(px, px)
|
||||
CSS_KEY(rad, rad)
|
||||
CSS_KEY(read-only, read_only)
|
||||
CSS_KEY(read-write, read_write)
|
||||
CSS_KEY(relative, relative)
|
||||
CSS_KEY(repeat, repeat)
|
||||
CSS_KEY(repeat-x, repeat_x)
|
||||
CSS_KEY(repeat-y, repeat_y)
|
||||
CSS_KEY(ridge, ridge)
|
||||
CSS_KEY(right, right)
|
||||
CSS_KEY(right-side, right_side)
|
||||
CSS_KEY(rightwards, rightwards)
|
||||
CSS_KEY(rtl, rtl)
|
||||
CSS_KEY(run-in, run_in)
|
||||
CSS_KEY(s, s)
|
||||
CSS_KEY(s-resize, s_resize)
|
||||
CSS_KEY(scroll, scroll)
|
||||
CSS_KEY(scrollbar, scrollbar)
|
||||
CSS_KEY(se-resize, se_resize)
|
||||
CSS_KEY(select-all, select_all)
|
||||
CSS_KEY(select-before, select_before)
|
||||
CSS_KEY(select-after, select_after)
|
||||
CSS_KEY(select-same, select_same)
|
||||
CSS_KEY(select-menu, select_menu)
|
||||
CSS_KEY(semi-condensed, semi_condensed)
|
||||
CSS_KEY(semi-expanded, semi_expanded)
|
||||
CSS_KEY(separate, separate)
|
||||
CSS_KEY(show, show)
|
||||
CSS_KEY(silent, silent)
|
||||
CSS_KEY(simp-chinese-formal, simp_chinese_formal)
|
||||
CSS_KEY(simp-chinese-informal, simp_chinese_informal)
|
||||
CSS_KEY(slow, slow)
|
||||
CSS_KEY(slower, slower)
|
||||
CSS_KEY(small, small)
|
||||
CSS_KEY(small-caps, small_caps)
|
||||
CSS_KEY(small-caption, small_caption)
|
||||
CSS_KEY(smaller, smaller)
|
||||
CSS_KEY(soft, soft)
|
||||
CSS_KEY(solid, solid)
|
||||
CSS_KEY(spell-out, spell_out)
|
||||
CSS_KEY(spinning, spinning)
|
||||
CSS_KEY(square, square)
|
||||
CSS_KEY(start, start)
|
||||
CSS_KEY(static, static)
|
||||
CSS_KEY(status-bar, status_bar)
|
||||
CSS_KEY(sub, sub)
|
||||
CSS_KEY(super, super)
|
||||
CSS_KEY(sw-resize, sw_resize)
|
||||
CSS_KEY(table, table)
|
||||
CSS_KEY(table-caption, table_caption)
|
||||
CSS_KEY(table-cell, table_cell)
|
||||
CSS_KEY(table-column, table_column)
|
||||
CSS_KEY(table-column-group, table_column_group)
|
||||
CSS_KEY(table-footer-group, table_footer_group)
|
||||
CSS_KEY(table-header-group, table_header_group)
|
||||
CSS_KEY(table-row, table_row)
|
||||
CSS_KEY(table-row-group, table_row_group)
|
||||
CSS_KEY(tamil, tamil)
|
||||
CSS_KEY(telugu, telugu)
|
||||
CSS_KEY(text, text)
|
||||
CSS_KEY(text-bottom, text_bottom)
|
||||
CSS_KEY(text-top, text_top)
|
||||
CSS_KEY(thai, thai)
|
||||
CSS_KEY(thick, thick)
|
||||
CSS_KEY(thin, thin)
|
||||
CSS_KEY(threeddarkshadow, threeddarkshadow)
|
||||
CSS_KEY(threedface, threedface)
|
||||
CSS_KEY(threedhighlight, threedhighlight)
|
||||
CSS_KEY(threedlightshadow, threedlightshadow)
|
||||
CSS_KEY(threedshadow, threedshadow)
|
||||
CSS_KEY(toggle, toggle)
|
||||
CSS_KEY(top, top)
|
||||
CSS_KEY(trad-chinese-formal, trad_chinese_formal)
|
||||
CSS_KEY(trad-chinese-informal, trad_chinese_informal)
|
||||
CSS_KEY(transparent, transparent)
|
||||
CSS_KEY(tri-state, tri_state)
|
||||
CSS_KEY(ultra-condensed, ultra_condensed)
|
||||
CSS_KEY(ultra-expanded, ultra_expanded)
|
||||
CSS_KEY(underline, underline)
|
||||
CSS_KEY(upper-alpha, upper_alpha)
|
||||
CSS_KEY(upper-latin, upper_latin)
|
||||
CSS_KEY(upper-roman, upper_roman)
|
||||
CSS_KEY(uppercase, uppercase)
|
||||
CSS_KEY(urdu, urdu)
|
||||
CSS_KEY(vertical, vertical)
|
||||
CSS_KEY(visible, visible)
|
||||
CSS_KEY(w-resize, w_resize)
|
||||
CSS_KEY(wait, wait)
|
||||
CSS_KEY(wider, wider)
|
||||
CSS_KEY(window, window)
|
||||
CSS_KEY(windowframe, windowframe)
|
||||
CSS_KEY(windowtext, windowtext)
|
||||
CSS_KEY(workspace, workspace)
|
||||
CSS_KEY(write-only, write_only)
|
||||
CSS_KEY(x-fast, x_fast)
|
||||
CSS_KEY(x-high, x_high)
|
||||
CSS_KEY(x-large, x_large)
|
||||
CSS_KEY(x-loud, x_loud)
|
||||
CSS_KEY(x-low, x_low)
|
||||
CSS_KEY(x-slow, x_slow)
|
||||
CSS_KEY(x-small, x_small)
|
||||
CSS_KEY(x-soft, x_soft)
|
||||
CSS_KEY(xx-large, xx_large)
|
||||
CSS_KEY(xx-small, xx_small)
|
||||
|
@ -22,73 +22,39 @@
|
||||
|
||||
#include "nsCSSKeywords.h"
|
||||
#include "nsString.h"
|
||||
#include "nsAVLTree.h"
|
||||
|
||||
#include "nsStaticNameTable.h"
|
||||
|
||||
// define an array of all CSS keywords
|
||||
#define CSS_KEY(_key) #_key,
|
||||
#define CSS_KEY(_name,_id) #_name,
|
||||
const char* kCSSRawKeywords[] = {
|
||||
#include "nsCSSKeywordList.h"
|
||||
};
|
||||
#undef CSS_KEY
|
||||
|
||||
struct KeywordNode {
|
||||
KeywordNode(void)
|
||||
: mStr(),
|
||||
mEnum(eCSSKeyword_UNKNOWN)
|
||||
{}
|
||||
|
||||
KeywordNode(const nsStr& aStringValue, nsCSSKeyword aEnumValue)
|
||||
: mStr(),
|
||||
mEnum(aEnumValue)
|
||||
{ // point to the incomming buffer
|
||||
// note that the incomming buffer may really be 2 byte
|
||||
nsStr::Initialize(mStr, aStringValue.mStr, aStringValue.mCapacity,
|
||||
aStringValue.mLength, aStringValue.mCharSize, PR_FALSE);
|
||||
}
|
||||
|
||||
nsCAutoString mStr;
|
||||
nsCSSKeyword mEnum;
|
||||
};
|
||||
|
||||
class KeywordComparitor: public nsAVLNodeComparitor {
|
||||
public:
|
||||
virtual ~KeywordComparitor(void) {}
|
||||
virtual PRInt32 operator()(void* anItem1,void* anItem2) {
|
||||
KeywordNode* one = (KeywordNode*)anItem1;
|
||||
KeywordNode* two = (KeywordNode*)anItem2;
|
||||
return one->mStr.CompareWithConversion(two->mStr, PR_TRUE);
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
static PRInt32 gTableRefCount;
|
||||
static KeywordNode* gKeywordArray;
|
||||
static nsAVLTree* gKeywordTree;
|
||||
static KeywordComparitor* gComparitor;
|
||||
static nsCString* kNullStr;
|
||||
static PRInt32 gTableRefCount;
|
||||
static nsStaticCaseInsensitiveNameTable* gKeywordTable;
|
||||
|
||||
void
|
||||
nsCSSKeywords::AddRefTable(void)
|
||||
{
|
||||
if (0 == gTableRefCount++) {
|
||||
if (! gKeywordArray) {
|
||||
gKeywordArray = new KeywordNode[eCSSKeyword_COUNT];
|
||||
gComparitor = new KeywordComparitor();
|
||||
if (gComparitor) {
|
||||
gKeywordTree = new nsAVLTree(*gComparitor, nsnull);
|
||||
}
|
||||
if (gKeywordArray && gKeywordTree) {
|
||||
PRInt32 index = -1;
|
||||
while (++index < PRInt32(eCSSKeyword_COUNT)) {
|
||||
gKeywordArray[index].mStr = kCSSRawKeywords[index];
|
||||
gKeywordArray[index].mStr.ReplaceChar('_', '-');
|
||||
gKeywordArray[index].mEnum = nsCSSKeyword(index);
|
||||
gKeywordTree->AddItem(&(gKeywordArray[index]));
|
||||
}
|
||||
NS_ASSERTION(!gKeywordTable, "pre existing array!");
|
||||
gKeywordTable = new nsStaticCaseInsensitiveNameTable();
|
||||
if (gKeywordTable) {
|
||||
#ifdef DEBUG
|
||||
{
|
||||
// let's verify the table...
|
||||
for (PRInt32 index = 0; index < eCSSKeyword_COUNT; ++index) {
|
||||
nsCAutoString temp1(kCSSRawKeywords[index]);
|
||||
nsCAutoString temp2(kCSSRawKeywords[index]);
|
||||
temp1.ToLowerCase();
|
||||
NS_ASSERTION(temp1.Equals(temp2), "upper case char in table");
|
||||
NS_ASSERTION(-1 == temp1.FindChar('_'), "underscore char in table");
|
||||
}
|
||||
}
|
||||
kNullStr = new nsCString();
|
||||
#endif
|
||||
gKeywordTable->Init(kCSSRawKeywords, eCSSKeyword_COUNT);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -96,55 +62,42 @@ void
|
||||
nsCSSKeywords::ReleaseTable(void)
|
||||
{
|
||||
if (0 == --gTableRefCount) {
|
||||
if (gKeywordArray) {
|
||||
delete [] gKeywordArray;
|
||||
gKeywordArray = nsnull;
|
||||
if (gKeywordTable) {
|
||||
delete gKeywordTable;
|
||||
gKeywordTable = nsnull;
|
||||
}
|
||||
if (gKeywordTree) {
|
||||
delete gKeywordTree;
|
||||
gKeywordTree = nsnull;
|
||||
}
|
||||
if (gComparitor) {
|
||||
delete gComparitor;
|
||||
gComparitor = nsnull;
|
||||
}
|
||||
delete kNullStr;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
nsCSSKeyword
|
||||
nsCSSKeywords::LookupKeyword(const nsCString& aKeyword)
|
||||
{
|
||||
NS_ASSERTION(gKeywordTree, "no lookup table, needs addref");
|
||||
if (gKeywordTree) {
|
||||
KeywordNode node(aKeyword, eCSSKeyword_UNKNOWN);
|
||||
KeywordNode* found = (KeywordNode*)gKeywordTree->FindItem(&node);
|
||||
if (found) {
|
||||
NS_ASSERTION(found->mStr.EqualsIgnoreCase(aKeyword), "bad tree");
|
||||
return found->mEnum;
|
||||
}
|
||||
}
|
||||
NS_ASSERTION(gKeywordTable, "no lookup table, needs addref");
|
||||
if (gKeywordTable) {
|
||||
return nsCSSKeyword(gKeywordTable->Lookup(aKeyword));
|
||||
}
|
||||
return eCSSKeyword_UNKNOWN;
|
||||
}
|
||||
|
||||
nsCSSKeyword
|
||||
nsCSSKeywords::LookupKeyword(const nsString& aKeyword) {
|
||||
nsCAutoString theKeyword; theKeyword.AssignWithConversion(aKeyword);
|
||||
return LookupKeyword(theKeyword);
|
||||
nsCSSKeywords::LookupKeyword(const nsString& aKeyword)
|
||||
{
|
||||
NS_ASSERTION(gKeywordTable, "no lookup table, needs addref");
|
||||
if (gKeywordTable) {
|
||||
return nsCSSKeyword(gKeywordTable->Lookup(aKeyword));
|
||||
}
|
||||
return eCSSKeyword_UNKNOWN;
|
||||
}
|
||||
|
||||
|
||||
const nsCString&
|
||||
nsCSSKeywords::GetStringValue(nsCSSKeyword aKeyword)
|
||||
{
|
||||
NS_ASSERTION(gKeywordArray, "no lookup table, needs addref");
|
||||
if ((eCSSKeyword_UNKNOWN < aKeyword) &&
|
||||
(aKeyword < eCSSKeyword_COUNT) && gKeywordArray) {
|
||||
return gKeywordArray[aKeyword].mStr;
|
||||
}
|
||||
else {
|
||||
return *kNullStr;
|
||||
NS_ASSERTION(gKeywordTable, "no lookup table, needs addref");
|
||||
if (gKeywordTable) {
|
||||
return gKeywordTable->GetStringValue(PRInt32(aKeyword));
|
||||
} else {
|
||||
static nsCString kNullStr;
|
||||
return kNullStr;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -34,7 +34,7 @@ class nsCString;
|
||||
To change the list of keywords, see nsCSSKeywordList.h
|
||||
|
||||
*/
|
||||
#define CSS_KEY(_key) eCSSKeyword_##_key,
|
||||
#define CSS_KEY(_name,_id) eCSSKeyword_##_id,
|
||||
enum nsCSSKeyword {
|
||||
eCSSKeyword_UNKNOWN = -1,
|
||||
#include "nsCSSKeywordList.h"
|
||||
|
@ -34,171 +34,177 @@
|
||||
It is recommended (but not strictly necessary) to keep all entries
|
||||
in alphabetical order
|
||||
|
||||
Underbars in properties are automagically converted into hyphens
|
||||
Requirements:
|
||||
|
||||
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
|
||||
Entries are in the form: (name,id,impact). 'id' must always be the same as
|
||||
'name' except that all hyphens ('-') in 'name' are converted to underscores
|
||||
('_') in 'id'. This lets us do nice things with the macros without having to
|
||||
copy/convert strings at runtime.
|
||||
|
||||
'name' entries *must* use only lowercase characters.
|
||||
|
||||
** Break these invarient and bad things will happen. **
|
||||
|
||||
The third argument is the style impact resultant in a change to the property
|
||||
******/
|
||||
|
||||
|
||||
CSS_PROP(_moz_border_radius, VISUAL)
|
||||
CSS_PROP(_moz_border_radius_topLeft, VISUAL)
|
||||
CSS_PROP(_moz_border_radius_topRight, VISUAL)
|
||||
CSS_PROP(_moz_border_radius_bottomLeft, VISUAL)
|
||||
CSS_PROP(_moz_border_radius_bottomRight, VISUAL)
|
||||
CSS_PROP(_moz_outline_radius, VISUAL)
|
||||
CSS_PROP(_moz_outline_radius_topLeft, VISUAL)
|
||||
CSS_PROP(_moz_outline_radius_topRight, VISUAL)
|
||||
CSS_PROP(_moz_outline_radius_bottomLeft, VISUAL)
|
||||
CSS_PROP(_moz_outline_radius_bottomRight, VISUAL)
|
||||
CSS_PROP(azimuth, AURAL)
|
||||
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(behavior, REFLOW)
|
||||
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(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(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_focus, CONTENT)
|
||||
CSS_PROP(user_input, FRAMECHANGE) // XXX ???
|
||||
CSS_PROP(user_modify, FRAMECHANGE)
|
||||
CSS_PROP(user_select, CONTENT)
|
||||
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)
|
||||
|
||||
CSS_PROP(-moz-border-radius, _moz_border_radius, VISUAL)
|
||||
CSS_PROP(-moz-border-radius-topleft, _moz_border_radius_topLeft, VISUAL)
|
||||
CSS_PROP(-moz-border-radius-topright, _moz_border_radius_topRight, VISUAL)
|
||||
CSS_PROP(-moz-border-radius-bottomleft, _moz_border_radius_bottomLeft, VISUAL)
|
||||
CSS_PROP(-moz-border-radius-bottomright, _moz_border_radius_bottomRight, VISUAL)
|
||||
CSS_PROP(-moz-outline-radius, _moz_outline_radius, VISUAL)
|
||||
CSS_PROP(-moz-outline-radius-topleft, _moz_outline_radius_topLeft, VISUAL)
|
||||
CSS_PROP(-moz-outline-radius-topright, _moz_outline_radius_topRight, VISUAL)
|
||||
CSS_PROP(-moz-outline-radius-bottomleft, _moz_outline_radius_bottomLeft, VISUAL)
|
||||
CSS_PROP(-moz-outline-radius-bottomright, _moz_outline_radius_bottomRight, VISUAL)
|
||||
CSS_PROP(azimuth, azimuth, AURAL)
|
||||
CSS_PROP(background, background, VISUAL)
|
||||
CSS_PROP(background-attachment, background_attachment, VISUAL)
|
||||
CSS_PROP(background-color, background_color, VISUAL)
|
||||
CSS_PROP(background-image, background_image, VISUAL)
|
||||
CSS_PROP(background-position, background_position, VISUAL)
|
||||
CSS_PROP(background-repeat, background_repeat, VISUAL)
|
||||
CSS_PROP(background-x-position, background_x_position, VISUAL)
|
||||
CSS_PROP(background-y-position, background_y_position, VISUAL)
|
||||
CSS_PROP(behavior, behavior, REFLOW)
|
||||
CSS_PROP(border, border, REFLOW)
|
||||
CSS_PROP(border-bottom, border_bottom, REFLOW)
|
||||
CSS_PROP(border-bottom-color, border_bottom_color, VISUAL)
|
||||
CSS_PROP(border-bottom-style, border_bottom_style, REFLOW) // on/off will need reflow
|
||||
CSS_PROP(border-bottom-width, border_bottom_width, REFLOW)
|
||||
CSS_PROP(border-collapse, border_collapse, REFLOW)
|
||||
CSS_PROP(border-color, border_color, VISUAL)
|
||||
CSS_PROP(border-left, border_left, REFLOW)
|
||||
CSS_PROP(border-left-color, border_left_color, VISUAL)
|
||||
CSS_PROP(border-left-style, border_left_style, REFLOW) // on/off will need reflow
|
||||
CSS_PROP(border-left-width, border_left_width, REFLOW)
|
||||
CSS_PROP(border-right, border_right, REFLOW)
|
||||
CSS_PROP(border-right-color, border_right_color, VISUAL)
|
||||
CSS_PROP(border-right-style, border_right_style, REFLOW) // on/off will need reflow
|
||||
CSS_PROP(border-right-width, border_right_width, REFLOW)
|
||||
CSS_PROP(border-spacing, border_spacing, REFLOW)
|
||||
CSS_PROP(border-style, border_style, REFLOW) // on/off will need reflow
|
||||
CSS_PROP(border-top, border_top, REFLOW)
|
||||
CSS_PROP(border-top-color, border_top_color, VISUAL)
|
||||
CSS_PROP(border-top-style, border_top_style, REFLOW) // on/off will need reflow
|
||||
CSS_PROP(border-top-width, border_top_width, REFLOW)
|
||||
CSS_PROP(border-width, border_width, REFLOW)
|
||||
CSS_PROP(border-x-spacing, border_x_spacing, REFLOW)
|
||||
CSS_PROP(border-y-spacing, border_y_spacing, REFLOW)
|
||||
CSS_PROP(bottom, bottom, REFLOW)
|
||||
CSS_PROP(box-sizing, box_sizing, REFLOW)
|
||||
CSS_PROP(caption-side, caption_side, REFLOW)
|
||||
CSS_PROP(clear, clear, REFLOW)
|
||||
CSS_PROP(clip, clip, VISUAL)
|
||||
CSS_PROP(clip-bottom, clip_bottom, VISUAL)
|
||||
CSS_PROP(clip-left, clip_left, VISUAL)
|
||||
CSS_PROP(clip-right, clip_right, VISUAL)
|
||||
CSS_PROP(clip-top, clip_top, VISUAL)
|
||||
CSS_PROP(color, color, VISUAL)
|
||||
CSS_PROP(content, content, FRAMECHANGE)
|
||||
CSS_PROP(counter-increment, counter_increment, REFLOW)
|
||||
CSS_PROP(counter-reset, counter_reset, REFLOW)
|
||||
CSS_PROP(cue, cue, AURAL)
|
||||
CSS_PROP(cue-after, cue_after, AURAL)
|
||||
CSS_PROP(cue-before, cue_before, AURAL)
|
||||
CSS_PROP(cursor, cursor, VISUAL)
|
||||
CSS_PROP(direction, direction, REFLOW)
|
||||
CSS_PROP(display, display, FRAMECHANGE)
|
||||
CSS_PROP(elevation, elevation, AURAL)
|
||||
CSS_PROP(empty-cells, empty_cells, VISUAL)
|
||||
CSS_PROP(float, float, FRAMECHANGE)
|
||||
CSS_PROP(float-edge, float_edge, REFLOW)
|
||||
CSS_PROP(font, font, REFLOW)
|
||||
CSS_PROP(font-family, font_family, REFLOW)
|
||||
CSS_PROP(font-size, font_size, REFLOW)
|
||||
CSS_PROP(font-size-adjust, font_size_adjust, REFLOW)
|
||||
CSS_PROP(font-stretch, font_stretch, REFLOW)
|
||||
CSS_PROP(font-style, font_style, REFLOW)
|
||||
CSS_PROP(font-variant, font_variant, REFLOW)
|
||||
CSS_PROP(font-weight, font_weight, REFLOW)
|
||||
CSS_PROP(height, height, REFLOW)
|
||||
CSS_PROP(key-equivalent, key_equivalent, CONTENT) // This will need some other notification, but what?
|
||||
CSS_PROP(left, left, REFLOW)
|
||||
CSS_PROP(letter-spacing, letter_spacing, REFLOW)
|
||||
CSS_PROP(line-height, line_height, REFLOW)
|
||||
CSS_PROP(list-style, list_style, REFLOW)
|
||||
CSS_PROP(list-style-image, list_style_image, REFLOW)
|
||||
CSS_PROP(list-style-position, list_style_position, REFLOW)
|
||||
CSS_PROP(list-style-type, list_style_type, REFLOW)
|
||||
CSS_PROP(margin, margin, REFLOW)
|
||||
CSS_PROP(margin-bottom, margin_bottom, REFLOW)
|
||||
CSS_PROP(margin-left, margin_left, REFLOW)
|
||||
CSS_PROP(margin-right, margin_right, REFLOW)
|
||||
CSS_PROP(margin-top, margin_top, REFLOW)
|
||||
CSS_PROP(marker-offset, marker_offset, REFLOW)
|
||||
CSS_PROP(marks, marks, VISUAL)
|
||||
CSS_PROP(max-height, max_height, REFLOW)
|
||||
CSS_PROP(max-width, max_width, REFLOW)
|
||||
CSS_PROP(min-height, min_height, REFLOW)
|
||||
CSS_PROP(min-width, min_width, REFLOW)
|
||||
CSS_PROP(opacity, opacity, VISUAL)
|
||||
CSS_PROP(orphans, orphans, REFLOW)
|
||||
CSS_PROP(outline, outline, VISUAL)
|
||||
CSS_PROP(outline-color, outline_color, VISUAL)
|
||||
CSS_PROP(outline-style, outline_style, VISUAL)
|
||||
CSS_PROP(outline-width, outline_width, VISUAL)
|
||||
CSS_PROP(overflow, overflow, FRAMECHANGE)
|
||||
CSS_PROP(padding, padding, REFLOW)
|
||||
CSS_PROP(padding-bottom, padding_bottom, REFLOW)
|
||||
CSS_PROP(padding-left, padding_left, REFLOW)
|
||||
CSS_PROP(padding-right, padding_right, REFLOW)
|
||||
CSS_PROP(padding-top, padding_top, REFLOW)
|
||||
CSS_PROP(page, page, REFLOW)
|
||||
CSS_PROP(page-break-after, page_break_after, REFLOW)
|
||||
CSS_PROP(page-break-before, page_break_before, REFLOW)
|
||||
CSS_PROP(page-break-inside, page_break_inside, REFLOW)
|
||||
CSS_PROP(pause, pause, AURAL)
|
||||
CSS_PROP(pause-after, pause_after, AURAL)
|
||||
CSS_PROP(pause-before, pause_before, AURAL)
|
||||
CSS_PROP(pitch, pitch, AURAL)
|
||||
CSS_PROP(pitch-range, pitch_range, AURAL)
|
||||
CSS_PROP(play-during, play_during, AURAL)
|
||||
CSS_PROP(play-during-flags, play_during_flags, AURAL)
|
||||
CSS_PROP(position, position, FRAMECHANGE)
|
||||
CSS_PROP(quotes, quotes, REFLOW)
|
||||
CSS_PROP(quotes-close, quotes_close, REFLOW)
|
||||
CSS_PROP(quotes-open, quotes_open, REFLOW)
|
||||
CSS_PROP(resizer, resizer, FRAMECHANGE)
|
||||
CSS_PROP(richness, richness, AURAL)
|
||||
CSS_PROP(right, right, REFLOW)
|
||||
CSS_PROP(size, size, REFLOW)
|
||||
CSS_PROP(size-height, size_height, REFLOW)
|
||||
CSS_PROP(size-width, size_width, REFLOW)
|
||||
CSS_PROP(speak, speak, AURAL)
|
||||
CSS_PROP(speak-header, speak_header, AURAL)
|
||||
CSS_PROP(speak-numeral, speak_numeral, AURAL)
|
||||
CSS_PROP(speak-punctuation, speak_punctuation, AURAL)
|
||||
CSS_PROP(speech-rate, speech_rate, AURAL)
|
||||
CSS_PROP(stress, stress, AURAL)
|
||||
CSS_PROP(table-layout, table_layout, REFLOW)
|
||||
CSS_PROP(text-align, text_align, REFLOW)
|
||||
CSS_PROP(text-decoration, text_decoration, VISUAL)
|
||||
CSS_PROP(text-indent, text_indent, REFLOW)
|
||||
CSS_PROP(text-shadow, text_shadow, VISUAL)
|
||||
CSS_PROP(text-shadow-color, text_shadow_color, VISUAL)
|
||||
CSS_PROP(text-shadow-radius, text_shadow_radius, VISUAL)
|
||||
CSS_PROP(text-shadow-x, text_shadow_x, VISUAL)
|
||||
CSS_PROP(text-shadow-y, text_shadow_y, VISUAL)
|
||||
CSS_PROP(text-transform, text_transform, REFLOW)
|
||||
CSS_PROP(top, top, REFLOW)
|
||||
CSS_PROP(unicode-bidi, unicode_bidi, REFLOW)
|
||||
CSS_PROP(user-focus, user_focus, CONTENT)
|
||||
CSS_PROP(user-input, user_input, FRAMECHANGE) // XXX ???
|
||||
CSS_PROP(user-modify, user_modify, FRAMECHANGE)
|
||||
CSS_PROP(user-select, user_select, CONTENT)
|
||||
CSS_PROP(vertical-align, vertical_align, REFLOW)
|
||||
CSS_PROP(visibility, visibility, REFLOW) // reflow for collapse
|
||||
CSS_PROP(voice-family, voice_family, AURAL)
|
||||
CSS_PROP(volume, volume, AURAL)
|
||||
CSS_PROP(white-space, white_space, REFLOW)
|
||||
CSS_PROP(widows, widows, REFLOW)
|
||||
CSS_PROP(width, width, REFLOW)
|
||||
CSS_PROP(word-spacing, word_spacing, REFLOW)
|
||||
CSS_PROP(z-index, z_index, REFLOW)
|
||||
|
@ -27,73 +27,40 @@
|
||||
#include "nsILookAndFeel.h" // for system colors
|
||||
|
||||
#include "nsString.h"
|
||||
#include "nsAVLTree.h"
|
||||
|
||||
#include "nsStaticNameTable.h"
|
||||
|
||||
// define an array of all CSS properties
|
||||
#define CSS_PROP(_prop, _hint) #_prop,
|
||||
#define CSS_PROP(_name, _id, _hint) #_name,
|
||||
const char* kCSSRawProperties[] = {
|
||||
#include "nsCSSPropList.h"
|
||||
};
|
||||
#undef CSS_PROP
|
||||
|
||||
struct PropertyNode {
|
||||
PropertyNode(void)
|
||||
: mStr(),
|
||||
mEnum(eCSSProperty_UNKNOWN)
|
||||
{}
|
||||
|
||||
PropertyNode(const nsStr& aStringValue, nsCSSProperty aEnumValue)
|
||||
: mStr(),
|
||||
mEnum(aEnumValue)
|
||||
{ // point to the incomming buffer
|
||||
// note that the incomming buffer may really be 2 byte
|
||||
nsStr::Initialize(mStr, aStringValue.mStr, aStringValue.mCapacity,
|
||||
aStringValue.mLength, aStringValue.mCharSize, PR_FALSE);
|
||||
}
|
||||
|
||||
nsCAutoString mStr;
|
||||
nsCSSProperty mEnum;
|
||||
};
|
||||
|
||||
class PropertyComparitor: public nsAVLNodeComparitor {
|
||||
public:
|
||||
virtual ~PropertyComparitor(void) {}
|
||||
virtual PRInt32 operator()(void* anItem1,void* anItem2) {
|
||||
PropertyNode* one = (PropertyNode*)anItem1;
|
||||
PropertyNode* two = (PropertyNode*)anItem2;
|
||||
return one->mStr.CompareWithConversion(two->mStr, PR_TRUE);
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
static PRInt32 gTableRefCount;
|
||||
static PropertyNode* gPropertyArray;
|
||||
static nsAVLTree* gPropertyTree;
|
||||
static PropertyComparitor* gComparitor;
|
||||
static nsCString* kNullStr;
|
||||
static PRInt32 gTableRefCount;
|
||||
static nsStaticCaseInsensitiveNameTable* gPropertyTable;
|
||||
|
||||
void
|
||||
nsCSSProps::AddRefTable(void)
|
||||
{
|
||||
if (0 == gTableRefCount++) {
|
||||
if (! gPropertyArray) {
|
||||
gPropertyArray= new PropertyNode[eCSSProperty_COUNT];
|
||||
gComparitor = new PropertyComparitor();
|
||||
if (gComparitor) {
|
||||
gPropertyTree = new nsAVLTree(*gComparitor, nsnull);
|
||||
}
|
||||
if (gPropertyArray && gPropertyTree) {
|
||||
PRInt32 index = -1;
|
||||
while (++index < PRInt32(eCSSProperty_COUNT)) {
|
||||
gPropertyArray[index].mStr = kCSSRawProperties[index];
|
||||
gPropertyArray[index].mStr.ReplaceChar('_', '-');
|
||||
gPropertyArray[index].mEnum = nsCSSProperty(index);
|
||||
gPropertyTree->AddItem(&(gPropertyArray[index]));
|
||||
}
|
||||
NS_ASSERTION(!gPropertyTable, "pre existing array!");
|
||||
gPropertyTable = new nsStaticCaseInsensitiveNameTable();
|
||||
if (gPropertyTable) {
|
||||
#ifdef DEBUG
|
||||
{
|
||||
// let's verify the table...
|
||||
for (PRInt32 index = 0; index < eCSSProperty_COUNT; ++index) {
|
||||
nsCAutoString temp1(kCSSRawProperties[index]);
|
||||
nsCAutoString temp2(kCSSRawProperties[index]);
|
||||
temp1.ToLowerCase();
|
||||
NS_ASSERTION(temp1.Equals(temp2), "upper case char in table");
|
||||
NS_ASSERTION(-1 == temp1.FindChar('_'), "underscore char in table");
|
||||
}
|
||||
}
|
||||
kNullStr = new nsCString();
|
||||
#endif
|
||||
gPropertyTable->Init(kCSSRawProperties, eCSSProperty_COUNT);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -101,60 +68,47 @@ void
|
||||
nsCSSProps::ReleaseTable(void)
|
||||
{
|
||||
if (0 == --gTableRefCount) {
|
||||
if (gPropertyArray) {
|
||||
delete [] gPropertyArray;
|
||||
gPropertyArray = nsnull;
|
||||
if (gPropertyTable) {
|
||||
delete gPropertyTable;
|
||||
gPropertyTable = nsnull;
|
||||
}
|
||||
if (gPropertyTree) {
|
||||
delete gPropertyTree;
|
||||
gPropertyTree = nsnull;
|
||||
}
|
||||
if (gComparitor) {
|
||||
delete gComparitor;
|
||||
gComparitor = nsnull;
|
||||
}
|
||||
delete kNullStr;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
nsCSSProperty
|
||||
nsCSSProps::LookupProperty(const nsCString& aProperty)
|
||||
{
|
||||
NS_ASSERTION(gPropertyTree, "no lookup table, needs addref");
|
||||
if (gPropertyTree) {
|
||||
PropertyNode node(aProperty, eCSSProperty_UNKNOWN);
|
||||
PropertyNode* found = (PropertyNode*)gPropertyTree->FindItem(&node);
|
||||
if (found) {
|
||||
NS_ASSERTION(found->mStr.EqualsIgnoreCase(aProperty), "bad tree");
|
||||
return found->mEnum;
|
||||
}
|
||||
}
|
||||
NS_ASSERTION(gPropertyTable, "no lookup table, needs addref");
|
||||
if (gPropertyTable) {
|
||||
return nsCSSProperty(gPropertyTable->Lookup(aProperty));
|
||||
}
|
||||
return eCSSProperty_UNKNOWN;
|
||||
}
|
||||
|
||||
|
||||
nsCSSProperty
|
||||
nsCSSProps::LookupProperty(const nsString& aProperty) {
|
||||
nsCAutoString theProp; theProp.AssignWithConversion(aProperty);
|
||||
return LookupProperty(theProp);
|
||||
nsCSSProps::LookupProperty(const nsString& aProperty)
|
||||
{
|
||||
NS_ASSERTION(gPropertyTable, "no lookup table, needs addref");
|
||||
if (gPropertyTable) {
|
||||
return nsCSSProperty(gPropertyTable->Lookup(aProperty));
|
||||
}
|
||||
return eCSSProperty_UNKNOWN;
|
||||
}
|
||||
|
||||
|
||||
const nsCString&
|
||||
nsCSSProps::GetStringValue(nsCSSProperty aProperty)
|
||||
{
|
||||
NS_ASSERTION(gPropertyArray, "no lookup table, needs addref");
|
||||
if ((eCSSProperty_UNKNOWN < aProperty) &&
|
||||
(aProperty < eCSSProperty_COUNT) && gPropertyArray) {
|
||||
return gPropertyArray[aProperty].mStr;
|
||||
}
|
||||
else {
|
||||
return *kNullStr;
|
||||
NS_ASSERTION(gPropertyTable, "no lookup table, needs addref");
|
||||
if (gPropertyTable) {
|
||||
return gPropertyTable->GetStringValue(PRInt32(aProperty));
|
||||
} else {
|
||||
static nsCString sNullStr;
|
||||
return sNullStr;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/***************************************************************************/
|
||||
|
||||
// Keyword id tables for variant/enum parsing
|
||||
const PRInt32 nsCSSProps::kAzimuthKTable[] = {
|
||||
@ -726,7 +680,8 @@ SearchKeywordTable(PRInt32 aValue, const PRInt32 aTable[])
|
||||
{
|
||||
PRInt32 i = SearchKeywordTableInt(aValue, aTable);
|
||||
if (i < 0) {
|
||||
return *kNullStr;
|
||||
static nsCString sNullStr;
|
||||
return sNullStr;
|
||||
} else {
|
||||
return nsCSSKeywords::GetStringValue(nsCSSKeyword(i));
|
||||
}
|
||||
@ -1083,7 +1038,8 @@ static const PRInt32 kBackgroundYPositionKTable[] = {
|
||||
NS_ERROR("invalid property");
|
||||
break;
|
||||
}
|
||||
return *kNullStr;
|
||||
static nsCString sNullStr;
|
||||
return sNullStr;
|
||||
}
|
||||
|
||||
PRBool nsCSSProps::GetColorName(PRInt32 aPropValue, nsCString &aStr)
|
||||
@ -1105,7 +1061,7 @@ PRBool nsCSSProps::GetColorName(PRInt32 aPropValue, nsCString &aStr)
|
||||
}
|
||||
|
||||
// define array of all CSS property hints
|
||||
#define CSS_PROP(_prop, _hint) NS_STYLE_HINT_##_hint,
|
||||
#define CSS_PROP(_name, _id, _hint) NS_STYLE_HINT_##_hint,
|
||||
const PRInt32 nsCSSProps::kHintTable[eCSSProperty_COUNT] = {
|
||||
#include "nsCSSPropList.h"
|
||||
};
|
||||
|
@ -34,7 +34,7 @@ class nsString;
|
||||
To change the list of properties, see nsCSSPropList.h
|
||||
|
||||
*/
|
||||
#define CSS_PROP(_prop, _hint) eCSSProperty_##_prop,
|
||||
#define CSS_PROP(_name, _id, _hint) eCSSProperty_##_id,
|
||||
enum nsCSSProperty {
|
||||
eCSSProperty_UNKNOWN = -1,
|
||||
#include "nsCSSPropList.h"
|
||||
|
@ -37,6 +37,10 @@
|
||||
The first argument to HTML_TAG is both the enum identifier of the property
|
||||
and the string value
|
||||
|
||||
Entries *must* use only lowercase characters.
|
||||
|
||||
** Break these invarient and bad things will happen. **
|
||||
|
||||
******/
|
||||
|
||||
HTML_TAG(a)
|
||||
|
@ -23,7 +23,7 @@
|
||||
#include "nsHTMLTags.h"
|
||||
|
||||
#include "nsString.h"
|
||||
#include "nsAVLTree.h"
|
||||
#include "nsStaticNameTable.h"
|
||||
|
||||
// define an array of all HTML tags
|
||||
#define HTML_TAG(_tag) #_tag,
|
||||
@ -32,55 +32,29 @@ static const char* kTagTable[] = {
|
||||
};
|
||||
#undef HTML_TAG
|
||||
|
||||
|
||||
struct TagNode {
|
||||
TagNode(void)
|
||||
: mStr(),
|
||||
mEnum(eHTMLTag_unknown)
|
||||
{}
|
||||
|
||||
TagNode(const nsCString& aString) : mStr(aString), mEnum(eHTMLTag_unknown) {
|
||||
}
|
||||
|
||||
nsCAutoString mStr;
|
||||
nsHTMLTag mEnum;
|
||||
};
|
||||
|
||||
class TagComparitor: public nsAVLNodeComparitor {
|
||||
public:
|
||||
virtual ~TagComparitor(void) {}
|
||||
virtual PRInt32 operator()(void* anItem1,void* anItem2) {
|
||||
TagNode* one = (TagNode*)anItem1;
|
||||
TagNode* two = (TagNode*)anItem2;
|
||||
return one->mStr.CompareWithConversion(two->mStr, PR_TRUE);
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
static PRInt32 gTableRefCount;
|
||||
static TagNode* gTagArray;
|
||||
static nsAVLTree* gTagTree;
|
||||
static TagComparitor* gComparitor;
|
||||
static PRInt32 gTableRefCount;
|
||||
static nsStaticCaseInsensitiveNameTable* gTagTable;
|
||||
|
||||
void
|
||||
nsHTMLTags::AddRefTable(void)
|
||||
{
|
||||
if (0 == gTableRefCount++) {
|
||||
if (! gTagArray) {
|
||||
gTagArray= new TagNode[NS_HTML_TAG_MAX];
|
||||
gComparitor = new TagComparitor();
|
||||
if (gComparitor) {
|
||||
gTagTree = new nsAVLTree(*gComparitor, nsnull);
|
||||
}
|
||||
if (gTagArray && gTagTree) {
|
||||
PRInt32 index = -1;
|
||||
while (++index < NS_HTML_TAG_MAX) {
|
||||
gTagArray[index].mStr = kTagTable[index];
|
||||
gTagArray[index].mEnum = nsHTMLTag(index + 1); // 1 based
|
||||
gTagTree->AddItem(&(gTagArray[index]));
|
||||
}
|
||||
NS_ASSERTION(!gTagTable, "pre existing array!");
|
||||
gTagTable = new nsStaticCaseInsensitiveNameTable();
|
||||
if (gTagTable) {
|
||||
#ifdef DEBUG
|
||||
{
|
||||
// let's verify the table...
|
||||
for (PRInt32 index = 0; index < NS_HTML_TAG_MAX; ++index) {
|
||||
nsCAutoString temp1(kTagTable[index]);
|
||||
nsCAutoString temp2(kTagTable[index]);
|
||||
temp1.ToLowerCase();
|
||||
NS_ASSERTION(temp1.Equals(temp2), "upper case char in table");
|
||||
}
|
||||
}
|
||||
#endif
|
||||
gTagTable->Init(kTagTable, NS_HTML_TAG_MAX);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -88,75 +62,85 @@ void
|
||||
nsHTMLTags::ReleaseTable(void)
|
||||
{
|
||||
if (0 == --gTableRefCount) {
|
||||
if (gTagArray) {
|
||||
delete [] gTagArray;
|
||||
gTagArray = nsnull;
|
||||
}
|
||||
if (gTagTree) {
|
||||
delete gTagTree;
|
||||
gTagTree = nsnull;
|
||||
}
|
||||
if (gComparitor) {
|
||||
delete gComparitor;
|
||||
gComparitor = nsnull;
|
||||
if (gTagTable) {
|
||||
delete gTagTable;
|
||||
gTagTable = nsnull;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
nsHTMLTag
|
||||
nsHTMLTags::LookupTag(const nsCString& aTag)
|
||||
{
|
||||
NS_ASSERTION(gTagTree, "no lookup table, needs addref");
|
||||
if (gTagTree) {
|
||||
TagNode node(aTag);
|
||||
TagNode* found = (TagNode*)gTagTree->FindItem(&node);
|
||||
if (found) {
|
||||
NS_ASSERTION(found->mStr.EqualsWithConversion(aTag,IGNORE_CASE), "bad tree");
|
||||
return found->mEnum;
|
||||
}
|
||||
else {
|
||||
NS_ASSERTION(gTagTable, "no lookup table, needs addref");
|
||||
if (gTagTable) {
|
||||
// table is zero based, but tags are one based
|
||||
nsHTMLTag tag = nsHTMLTag(gTagTable->Lookup(aTag)+1);
|
||||
|
||||
// hack: this can come out when rickg provides a way for the editor to ask
|
||||
// CanContain() questions without having to first fetch the parsers
|
||||
// internal enum values for a tag name.
|
||||
if (aTag.Equals("__moz_text"))
|
||||
return eHTMLTag_text;
|
||||
|
||||
if (tag == eHTMLTag_unknown) {
|
||||
if(aTag.Equals("__moz_text")) {
|
||||
tag = eHTMLTag_text;
|
||||
}
|
||||
else {
|
||||
tag = eHTMLTag_userdefined;
|
||||
}
|
||||
}
|
||||
}
|
||||
return tag;
|
||||
}
|
||||
return eHTMLTag_userdefined;
|
||||
}
|
||||
|
||||
nsHTMLTag
|
||||
nsHTMLTags::LookupTag(const nsString& aTag) {
|
||||
nsCAutoString theTag; theTag.AssignWithConversion(aTag);
|
||||
return LookupTag(theTag);
|
||||
nsHTMLTags::LookupTag(const nsString& aTag)
|
||||
{
|
||||
NS_ASSERTION(gTagTable, "no lookup table, needs addref");
|
||||
if (gTagTable) {
|
||||
// table is zero based, but tags are one based
|
||||
nsHTMLTag tag = nsHTMLTag(gTagTable->Lookup(aTag)+1);
|
||||
|
||||
// hack: this can come out when rickg provides a way for the editor to ask
|
||||
// CanContain() questions without having to first fetch the parsers
|
||||
// internal enum values for a tag name.
|
||||
|
||||
if (tag == eHTMLTag_unknown) {
|
||||
nsCAutoString theTag;
|
||||
theTag.AssignWithConversion(aTag);
|
||||
if (theTag.Equals("__moz_text")) {
|
||||
tag = eHTMLTag_text;
|
||||
}
|
||||
else {
|
||||
tag = eHTMLTag_userdefined;
|
||||
}
|
||||
}
|
||||
return tag;
|
||||
}
|
||||
return eHTMLTag_userdefined;
|
||||
}
|
||||
|
||||
|
||||
|
||||
const nsCString&
|
||||
nsHTMLTags::GetStringValue(nsHTMLTag aTag)
|
||||
{
|
||||
NS_ASSERTION(gTagArray, "no lookup table, needs addref");
|
||||
// Note: NS_HTML_TAG_MAX=113
|
||||
if ((eHTMLTag_unknown < aTag) &&
|
||||
(aTag <= NS_HTML_TAG_MAX) && gTagArray) {
|
||||
return gTagArray[aTag - 1].mStr;
|
||||
}
|
||||
else {
|
||||
static const nsCString* kNullStr=0;
|
||||
if(!kNullStr)
|
||||
kNullStr=new nsCString("");
|
||||
return *kNullStr;
|
||||
NS_ASSERTION(gTagTable, "no lookup table, needs addref");
|
||||
if (gTagTable) {
|
||||
// table is zero based, but tags are one based
|
||||
return gTagTable->GetStringValue(PRInt32(aTag)-1);
|
||||
} else {
|
||||
static nsCString kNullStr;
|
||||
return kNullStr;
|
||||
}
|
||||
}
|
||||
|
||||
const char* nsHTMLTags::GetCStringValue(nsHTMLTag aTag) {
|
||||
NS_ASSERTION(gTagArray, "no lookup table, needs addref");
|
||||
const char*
|
||||
nsHTMLTags::GetCStringValue(nsHTMLTag aTag) {
|
||||
NS_ASSERTION(gTagTable, "no lookup table, needs addref");
|
||||
// Note: NS_HTML_TAG_MAX=113
|
||||
if ((eHTMLTag_unknown < aTag) &&
|
||||
(aTag <= NS_HTML_TAG_MAX) && gTagArray) {
|
||||
return gTagArray[aTag - 1].mStr.mStr;
|
||||
(aTag <= NS_HTML_TAG_MAX)) {
|
||||
return kTagTable[PRInt32(aTag)-1];
|
||||
}
|
||||
else {
|
||||
static const char* kNullStr="";
|
||||
@ -203,4 +187,3 @@ public:
|
||||
};
|
||||
//nsTestTagTable validateTagTable;
|
||||
#endif
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user