/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- * * The contents of this file are subject to the Netscape Public License * Version 1.0 (the "NPL"); you may not use this file except in * compliance with the NPL. You may obtain a copy of the NPL at * http://www.mozilla.org/NPL/ * * Software distributed under the NPL is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL * for the specific language governing rights and limitations under the * NPL. * * The Initial Developer of this code under the NPL is Netscape * Communications Corporation. Portions created by Netscape are * Copyright (C) 1998 Netscape Communications Corporation. All Rights * Reserved. */ #include "nsHTMLAtoms.h" nsIAtom* nsHTMLAtoms::_baseHref; nsIAtom* nsHTMLAtoms::_baseTarget; nsIAtom* nsHTMLAtoms::a; nsIAtom* nsHTMLAtoms::above; nsIAtom* nsHTMLAtoms::accept; nsIAtom* nsHTMLAtoms::acceptcharset; nsIAtom* nsHTMLAtoms::accesskey; nsIAtom* nsHTMLAtoms::action; nsIAtom* nsHTMLAtoms::active; nsIAtom* nsHTMLAtoms::align; nsIAtom* nsHTMLAtoms::alink; nsIAtom* nsHTMLAtoms::alt; nsIAtom* nsHTMLAtoms::applet; nsIAtom* nsHTMLAtoms::archive; nsIAtom* nsHTMLAtoms::background; nsIAtom* nsHTMLAtoms::below; nsIAtom* nsHTMLAtoms::bgcolor; nsIAtom* nsHTMLAtoms::body; nsIAtom* nsHTMLAtoms::border; nsIAtom* nsHTMLAtoms::bordercolor; nsIAtom* nsHTMLAtoms::bottompadding; nsIAtom* nsHTMLAtoms::br; nsIAtom* nsHTMLAtoms::cellpadding; nsIAtom* nsHTMLAtoms::cellspacing; nsIAtom* nsHTMLAtoms::checked; nsIAtom* nsHTMLAtoms::kClass; nsIAtom* nsHTMLAtoms::classid; nsIAtom* nsHTMLAtoms::clear; nsIAtom* nsHTMLAtoms::clip; nsIAtom* nsHTMLAtoms::code; nsIAtom* nsHTMLAtoms::codebase; nsIAtom* nsHTMLAtoms::color; nsIAtom* nsHTMLAtoms::cols; nsIAtom* nsHTMLAtoms::colspan; nsIAtom* nsHTMLAtoms::columnPseudo; nsIAtom* nsHTMLAtoms::compact; nsIAtom* nsHTMLAtoms::coords; nsIAtom* nsHTMLAtoms::data; nsIAtom* nsHTMLAtoms::dir; nsIAtom* nsHTMLAtoms::disabled; nsIAtom* nsHTMLAtoms::div; nsIAtom* nsHTMLAtoms::dl; nsIAtom* nsHTMLAtoms::embed; nsIAtom* nsHTMLAtoms::encoding; nsIAtom* nsHTMLAtoms::enctype; nsIAtom* nsHTMLAtoms::face; nsIAtom* nsHTMLAtoms::font; nsIAtom* nsHTMLAtoms::fontWeight; nsIAtom* nsHTMLAtoms::form; nsIAtom* nsHTMLAtoms::frame; nsIAtom* nsHTMLAtoms::frameborder; nsIAtom* nsHTMLAtoms::frameset; nsIAtom* nsHTMLAtoms::gutter; nsIAtom* nsHTMLAtoms::h1; nsIAtom* nsHTMLAtoms::h2; nsIAtom* nsHTMLAtoms::h3; nsIAtom* nsHTMLAtoms::h4; nsIAtom* nsHTMLAtoms::h5; nsIAtom* nsHTMLAtoms::h6; nsIAtom* nsHTMLAtoms::height; nsIAtom* nsHTMLAtoms::hidden; nsIAtom* nsHTMLAtoms::hover; nsIAtom* nsHTMLAtoms::href; nsIAtom* nsHTMLAtoms::hspace; nsIAtom* nsHTMLAtoms::httpEquiv; nsIAtom* nsHTMLAtoms::id; nsIAtom* nsHTMLAtoms::iframe; nsIAtom* nsHTMLAtoms::img; nsIAtom* nsHTMLAtoms::ismap; nsIAtom* nsHTMLAtoms::lang; nsIAtom* nsHTMLAtoms::li; nsIAtom* nsHTMLAtoms::link; nsIAtom* nsHTMLAtoms::left; nsIAtom* nsHTMLAtoms::leftpadding; nsIAtom* nsHTMLAtoms::longdesc; nsIAtom* nsHTMLAtoms::lowsrc; nsIAtom* nsHTMLAtoms::marginheight; nsIAtom* nsHTMLAtoms::marginwidth; nsIAtom* nsHTMLAtoms::maxlength; nsIAtom* nsHTMLAtoms::mayscript; nsIAtom* nsHTMLAtoms::menu; nsIAtom* nsHTMLAtoms::method; nsIAtom* nsHTMLAtoms::multicol; nsIAtom* nsHTMLAtoms::multiple; nsIAtom* nsHTMLAtoms::name; nsIAtom* nsHTMLAtoms::noresize; nsIAtom* nsHTMLAtoms::noshade; nsIAtom* nsHTMLAtoms::nowrap; nsIAtom* nsHTMLAtoms::object; nsIAtom* nsHTMLAtoms::ol; nsIAtom* nsHTMLAtoms::onabort; nsIAtom* nsHTMLAtoms::onblur; nsIAtom* nsHTMLAtoms::onclick; nsIAtom* nsHTMLAtoms::ondblclick; nsIAtom* nsHTMLAtoms::ondragdrop; nsIAtom* nsHTMLAtoms::onerror; nsIAtom* nsHTMLAtoms::onfocus; nsIAtom* nsHTMLAtoms::onkeydown; nsIAtom* nsHTMLAtoms::onkeypress; nsIAtom* nsHTMLAtoms::onkeyup; nsIAtom* nsHTMLAtoms::onload; nsIAtom* nsHTMLAtoms::onmousedown; nsIAtom* nsHTMLAtoms::onmousemove; nsIAtom* nsHTMLAtoms::onmouseover; nsIAtom* nsHTMLAtoms::onmouseout; nsIAtom* nsHTMLAtoms::onmouseup; nsIAtom* nsHTMLAtoms::onunload; nsIAtom* nsHTMLAtoms::outOfDate; nsIAtom* nsHTMLAtoms::overflow; nsIAtom* nsHTMLAtoms::p; nsIAtom* nsHTMLAtoms::pagex; nsIAtom* nsHTMLAtoms::pagey; nsIAtom* nsHTMLAtoms::pointSize; nsIAtom* nsHTMLAtoms::pre; nsIAtom* nsHTMLAtoms::prompt; nsIAtom* nsHTMLAtoms::readonly; nsIAtom* nsHTMLAtoms::rel; nsIAtom* nsHTMLAtoms::repeat; nsIAtom* nsHTMLAtoms::rightpadding; nsIAtom* nsHTMLAtoms::rootContentPseudo; nsIAtom* nsHTMLAtoms::rows; nsIAtom* nsHTMLAtoms::rowspan; nsIAtom* nsHTMLAtoms::scrolling; nsIAtom* nsHTMLAtoms::selected; nsIAtom* nsHTMLAtoms::shape; nsIAtom* nsHTMLAtoms::size; nsIAtom* nsHTMLAtoms::span; nsIAtom* nsHTMLAtoms::src; nsIAtom* nsHTMLAtoms::start; nsIAtom* nsHTMLAtoms::style; nsIAtom* nsHTMLAtoms::summary; nsIAtom* nsHTMLAtoms::suppress; nsIAtom* nsHTMLAtoms::tabindex; nsIAtom* nsHTMLAtoms::table; nsIAtom* nsHTMLAtoms::tabstop; nsIAtom* nsHTMLAtoms::target; nsIAtom* nsHTMLAtoms::text; nsIAtom* nsHTMLAtoms::title; nsIAtom* nsHTMLAtoms::top; nsIAtom* nsHTMLAtoms::toppadding; nsIAtom* nsHTMLAtoms::type; nsIAtom* nsHTMLAtoms::ul; nsIAtom* nsHTMLAtoms::usemap; nsIAtom* nsHTMLAtoms::valign; nsIAtom* nsHTMLAtoms::value; nsIAtom* nsHTMLAtoms::variable; nsIAtom* nsHTMLAtoms::visibility; nsIAtom* nsHTMLAtoms::visited; nsIAtom* nsHTMLAtoms::vlink; nsIAtom* nsHTMLAtoms::vspace; nsIAtom* nsHTMLAtoms::width; nsIAtom* nsHTMLAtoms::wrap; nsIAtom* nsHTMLAtoms::zindex; static nsrefcnt gRefCnt; void nsHTMLAtoms::AddrefAtoms() { if (0 == gRefCnt) { _baseHref = NS_NewAtom(NS_HTML_BASE_HREF); _baseTarget = NS_NewAtom(NS_HTML_BASE_TARGET); a = NS_NewAtom("A"); above = NS_NewAtom("ABOVE"); accept = NS_NewAtom("ACCEPT"); acceptcharset = NS_NewAtom("ACCEPTCHARSET"); accesskey = NS_NewAtom("ACCESSKEY"); action = NS_NewAtom("ACTION"); active = NS_NewAtom("ACTIVE"); align = NS_NewAtom("ALIGN"); alink = NS_NewAtom("ALINK"); alt = NS_NewAtom("ALT"); applet = NS_NewAtom("APPLET"); archive = NS_NewAtom("ARCHIVE"); background = NS_NewAtom("BACKGROUND"); below = NS_NewAtom("BELOW"); bgcolor = NS_NewAtom("BGCOLOR"); body = NS_NewAtom("BODY"); border = NS_NewAtom("BORDER"); bordercolor = NS_NewAtom("BORDERCOLOR"); bottompadding = NS_NewAtom("BOTTOMPADDING"); br = NS_NewAtom("BR"); cellpadding = NS_NewAtom("CELLPADDING"); cellspacing = NS_NewAtom("CELLSPACING"); checked = NS_NewAtom("CHECKED"); kClass = NS_NewAtom("CLASS"); classid = NS_NewAtom("CLASSID"); clear = NS_NewAtom("CLEAR"); clip = NS_NewAtom("CLIP"); code = NS_NewAtom("CODE"); codebase = NS_NewAtom("CODEBASE"); color = NS_NewAtom("COLOR"); cols = NS_NewAtom("COLS"); colspan = NS_NewAtom("COLSPAN"); columnPseudo = NS_NewAtom(":BODY-COLUMN"); compact = NS_NewAtom("COMPACT"); coords = NS_NewAtom("COORDS"); dir = NS_NewAtom("DIR"); div = NS_NewAtom("DIV"); disabled = NS_NewAtom("DISABLED"); dl = NS_NewAtom("DL"); data = NS_NewAtom("DATA"); embed = NS_NewAtom("EMBED"); encoding = NS_NewAtom("ENCODING"); enctype = NS_NewAtom("ENCTYPE"); face = NS_NewAtom("FACE"); font = NS_NewAtom("FONT"); fontWeight = NS_NewAtom("FONT-WEIGHT"); form = NS_NewAtom("FORM"); frame = NS_NewAtom("FRAME"); frameborder = NS_NewAtom("FRAMEBORDER"); frameset = NS_NewAtom("FRAMESET"); gutter = NS_NewAtom("GUTTER"); h1 = NS_NewAtom("H1"); h2 = NS_NewAtom("H2"); h3 = NS_NewAtom("H3"); h4 = NS_NewAtom("H4"); h5 = NS_NewAtom("H5"); h6 = NS_NewAtom("H6"); height = NS_NewAtom("HEIGHT"); hidden = NS_NewAtom("HIDDEN"); hover = NS_NewAtom("HOVER"); href = NS_NewAtom("HREF"); hspace = NS_NewAtom("HSPACE"); httpEquiv = NS_NewAtom("HTTP-EQUIV"); id = NS_NewAtom("ID"); iframe = NS_NewAtom("IFRAME"); img = NS_NewAtom("IMG"); ismap = NS_NewAtom("ISMAP"); lang = NS_NewAtom("LANG"); li = NS_NewAtom("LI"); link = NS_NewAtom("LINK"); left = NS_NewAtom("LEFT"); leftpadding = NS_NewAtom("LEFTPADDING"); lowsrc = NS_NewAtom("LOWSRC"); marginheight = NS_NewAtom("MARGINHEIGHT"); marginwidth = NS_NewAtom("MARGINWIDTH"); maxlength = NS_NewAtom("MAXLENGTH"); mayscript = NS_NewAtom("MAYSCRIPT"); menu = NS_NewAtom("MENU"); method = NS_NewAtom("METHOD"); multicol = NS_NewAtom("MULTICOL"); multiple = NS_NewAtom("MULTIPLE"); name = NS_NewAtom("NAME"); noresize = NS_NewAtom("NORESIZE"); noshade = NS_NewAtom("NOSHADE"); nowrap = NS_NewAtom("NOWRAP"); object = NS_NewAtom("OBJECT"); ol = NS_NewAtom("OL"); onabort = NS_NewAtom("ONABORT"); onblur = NS_NewAtom("ONBLUR"); onclick = NS_NewAtom("ONCLICK"); ondragdrop = NS_NewAtom("ONDBLCLICK"); ondragdrop = NS_NewAtom("ONDRAGDROP"); onerror = NS_NewAtom("ONERROR"); onfocus = NS_NewAtom("ONFOCUS"); onkeydown = NS_NewAtom("ONKEYDOWN"); onkeypress = NS_NewAtom("ONKEYPRESS"); onkeyup = NS_NewAtom("ONKEYUP"); onload = NS_NewAtom("ONLOAD"); onmousedown = NS_NewAtom("ONMOUSEDOWN"); onmousemove = NS_NewAtom("ONMOUSEMOVE"); onmouseover = NS_NewAtom("ONMOUSEOVER"); onmouseout = NS_NewAtom("ONMOUSEOUT"); onmouseup = NS_NewAtom("ONMOUSEUP"); onunload = NS_NewAtom("ONUNLOAD"); outOfDate = NS_NewAtom("OUT-OF-DATE"); overflow = NS_NewAtom("OVERFLOW"); p = NS_NewAtom("P"); pagex = NS_NewAtom("PAGEX"); pagey = NS_NewAtom("PAGEY"); pointSize = NS_NewAtom("POINT-SIZE"); pre = NS_NewAtom("PRE"); prompt = NS_NewAtom("PROMPT"); readonly = NS_NewAtom("READONLY"); rel = NS_NewAtom("REL"); repeat = NS_NewAtom("REPEAT"); rightpadding = NS_NewAtom("RIGHTPADDING"); rootContentPseudo = NS_NewAtom(":ROOT-CONTENT"); rows = NS_NewAtom("ROWS"); rowspan = NS_NewAtom("ROWSPAN"); scrolling = NS_NewAtom("SCROLLING"); selected = NS_NewAtom("SELECTED"); shape = NS_NewAtom("SHAPE"); size = NS_NewAtom("SIZE"); span = NS_NewAtom("SPAN"); src = NS_NewAtom("SRC"); start = NS_NewAtom("START"); style = NS_NewAtom("STYLE"); summary = NS_NewAtom("SUMMARY"); suppress = NS_NewAtom("SUPPRESS"); tabindex = NS_NewAtom("TABINDEX"); table = NS_NewAtom("TABLE"); tabstop = NS_NewAtom("TABSTOP"); target = NS_NewAtom("TARGET"); text = NS_NewAtom("TEXT"); title = NS_NewAtom("TITLE"); top = NS_NewAtom("TOP"); toppadding = NS_NewAtom("TOPPADDING"); type = NS_NewAtom("TYPE"); ul = NS_NewAtom("UL"); usemap = NS_NewAtom("USEMAP"); valign = NS_NewAtom("VALIGN"); value = NS_NewAtom("VALUE"); variable = NS_NewAtom("VARIABLE"); visibility = NS_NewAtom("VISIBILITY"); visited = NS_NewAtom("VISITED"); vlink = NS_NewAtom("VLINK"); vspace = NS_NewAtom("VSPACE"); width = NS_NewAtom("WIDTH"); wrap = NS_NewAtom("WRAP"); zindex = NS_NewAtom("ZINDEX"); } ++gRefCnt; } void nsHTMLAtoms::ReleaseAtoms() { NS_PRECONDITION(gRefCnt != 0, "bad release atoms"); if (--gRefCnt == 0) { NS_RELEASE(_baseHref); NS_RELEASE(_baseTarget); NS_RELEASE(a); NS_RELEASE(above); NS_RELEASE(action); NS_RELEASE(active); NS_RELEASE(align); NS_RELEASE(alink); NS_RELEASE(alt); NS_RELEASE(applet); NS_RELEASE(archive); NS_RELEASE(background); NS_RELEASE(below); NS_RELEASE(bgcolor); NS_RELEASE(body); NS_RELEASE(border); NS_RELEASE(bordercolor); NS_RELEASE(bottompadding); NS_RELEASE(br); NS_RELEASE(cellpadding); NS_RELEASE(cellspacing); NS_RELEASE(checked); NS_RELEASE(kClass); NS_RELEASE(classid); NS_RELEASE(clear); NS_RELEASE(clip); NS_RELEASE(code); NS_RELEASE(codebase); NS_RELEASE(color); NS_RELEASE(cols); NS_RELEASE(colspan); NS_RELEASE(columnPseudo); NS_RELEASE(compact); NS_RELEASE(coords); NS_RELEASE(dir); NS_RELEASE(disabled); NS_RELEASE(div); NS_RELEASE(dl); NS_RELEASE(data); NS_RELEASE(embed); NS_RELEASE(encoding); NS_RELEASE(face); NS_RELEASE(font); NS_RELEASE(fontWeight); NS_RELEASE(frameborder); NS_RELEASE(gutter); NS_RELEASE(h1); NS_RELEASE(h2); NS_RELEASE(h3); NS_RELEASE(h4); NS_RELEASE(h5); NS_RELEASE(h6); NS_RELEASE(height); NS_RELEASE(hidden); NS_RELEASE(hover); NS_RELEASE(href); NS_RELEASE(hspace); NS_RELEASE(httpEquiv); NS_RELEASE(id); NS_RELEASE(ismap); NS_RELEASE(lang); NS_RELEASE(li); NS_RELEASE(link); NS_RELEASE(left); NS_RELEASE(leftpadding); NS_RELEASE(lowsrc); NS_RELEASE(marginheight); NS_RELEASE(marginwidth); NS_RELEASE(maxlength); NS_RELEASE(mayscript); NS_RELEASE(menu); NS_RELEASE(method); NS_RELEASE(multicol); NS_RELEASE(multiple); NS_RELEASE(name); NS_RELEASE(noresize); NS_RELEASE(noshade); NS_RELEASE(nowrap); NS_RELEASE(object); NS_RELEASE(ol); NS_RELEASE(onabort); NS_RELEASE(onblur); NS_RELEASE(onclick); NS_RELEASE(ondblclick); NS_RELEASE(ondragdrop); NS_RELEASE(onerror); NS_RELEASE(onfocus); NS_RELEASE(onkeydown); NS_RELEASE(onkeypress); NS_RELEASE(onkeyup); NS_RELEASE(onload); NS_RELEASE(onmousedown); NS_RELEASE(onmousemove); NS_RELEASE(onmouseover); NS_RELEASE(onmouseout); NS_RELEASE(onmouseup); NS_RELEASE(onunload); NS_RELEASE(outOfDate); NS_RELEASE(overflow); NS_RELEASE(p); NS_RELEASE(pagex); NS_RELEASE(pagey); NS_RELEASE(pointSize); NS_RELEASE(pre); NS_RELEASE(prompt); NS_RELEASE(readonly); NS_RELEASE(rel); NS_RELEASE(repeat); NS_RELEASE(rightpadding); NS_RELEASE(rootContentPseudo); NS_RELEASE(rows); NS_RELEASE(rowspan); NS_RELEASE(scrolling); NS_RELEASE(selected); NS_RELEASE(shape); NS_RELEASE(size); NS_RELEASE(span); NS_RELEASE(src); NS_RELEASE(start); NS_RELEASE(style); NS_RELEASE(summary); NS_RELEASE(suppress); NS_RELEASE(table); NS_RELEASE(tabstop); NS_RELEASE(target); NS_RELEASE(text); NS_RELEASE(top); NS_RELEASE(toppadding); NS_RELEASE(type); NS_RELEASE(ul); NS_RELEASE(usemap); NS_RELEASE(valign); NS_RELEASE(value); NS_RELEASE(variable); NS_RELEASE(visibility); NS_RELEASE(visited); NS_RELEASE(vlink); NS_RELEASE(vspace); NS_RELEASE(width); NS_RELEASE(wrap); NS_RELEASE(zindex); } }