mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-12-02 10:00:54 +00:00
Expanded nsIEditPropery to include all (I hope) HTML tags
This commit is contained in:
parent
42235c8acd
commit
ea7bde4716
@ -29,86 +29,256 @@ NS_IMPL_RELEASE(nsEditProperty)
|
||||
|
||||
// XXX: remove when html atoms are exported from layout
|
||||
// inline tags
|
||||
nsIAtom * nsIEditProperty::a;
|
||||
nsIAtom * nsIEditProperty::b;
|
||||
nsIAtom * nsIEditProperty::big;
|
||||
nsIAtom * nsIEditProperty::font;
|
||||
nsIAtom * nsIEditProperty::i;
|
||||
nsIAtom * nsIEditProperty::img;
|
||||
nsIAtom * nsIEditProperty::span;
|
||||
nsIAtom * nsIEditProperty::small;
|
||||
nsIAtom * nsIEditProperty::strike;
|
||||
nsIAtom * nsIEditProperty::sub;
|
||||
nsIAtom * nsIEditProperty::sup;
|
||||
nsIAtom * nsIEditProperty::tt;
|
||||
nsIAtom * nsIEditProperty::u;
|
||||
// block tags
|
||||
nsIAtom * nsIEditProperty::blockquote;
|
||||
nsIAtom * nsIEditProperty::br;
|
||||
nsIAtom * nsIEditProperty::h1;
|
||||
nsIAtom * nsIEditProperty::h2;
|
||||
// properties
|
||||
nsIAtom * nsIEditProperty::color;
|
||||
nsIAtom * nsIEditProperty::face;
|
||||
nsIAtom * nsIEditProperty::size;
|
||||
nsIAtom * nsIEditProperty::b;
|
||||
nsIAtom * nsIEditProperty::big;
|
||||
nsIAtom * nsIEditProperty::i;
|
||||
nsIAtom * nsIEditProperty::small;
|
||||
nsIAtom * nsIEditProperty::strike;
|
||||
nsIAtom * nsIEditProperty::sub;
|
||||
nsIAtom * nsIEditProperty::sup;
|
||||
nsIAtom * nsIEditProperty::tt;
|
||||
nsIAtom * nsIEditProperty::u;
|
||||
nsIAtom * nsIEditProperty::em;
|
||||
nsIAtom * nsIEditProperty::strong;
|
||||
nsIAtom * nsIEditProperty::dfn;
|
||||
nsIAtom * nsIEditProperty::code;
|
||||
nsIAtom * nsIEditProperty::samp;
|
||||
nsIAtom * nsIEditProperty::kbd;
|
||||
nsIAtom * nsIEditProperty::var;
|
||||
nsIAtom * nsIEditProperty::cite;
|
||||
nsIAtom * nsIEditProperty::abbr;
|
||||
nsIAtom * nsIEditProperty::acronym;
|
||||
nsIAtom * nsIEditProperty::font;
|
||||
nsIAtom * nsIEditProperty::a;
|
||||
nsIAtom * nsIEditProperty::img;
|
||||
nsIAtom * nsIEditProperty::object;
|
||||
nsIAtom * nsIEditProperty::br;
|
||||
nsIAtom * nsIEditProperty::script;
|
||||
nsIAtom * nsIEditProperty::map;
|
||||
nsIAtom * nsIEditProperty::q;
|
||||
nsIAtom * nsIEditProperty::span;
|
||||
nsIAtom * nsIEditProperty::bdo;
|
||||
nsIAtom * nsIEditProperty::input;
|
||||
nsIAtom * nsIEditProperty::select;
|
||||
nsIAtom * nsIEditProperty::textarea;
|
||||
nsIAtom * nsIEditProperty::label;
|
||||
nsIAtom * nsIEditProperty::button;
|
||||
nsIAtom * nsIEditProperty::p;
|
||||
nsIAtom * nsIEditProperty::div;
|
||||
nsIAtom * nsIEditProperty::blockquote;
|
||||
nsIAtom * nsIEditProperty::h1;
|
||||
nsIAtom * nsIEditProperty::h2;
|
||||
nsIAtom * nsIEditProperty::h3;
|
||||
nsIAtom * nsIEditProperty::h4;
|
||||
nsIAtom * nsIEditProperty::h5;
|
||||
nsIAtom * nsIEditProperty::h6;
|
||||
nsIAtom * nsIEditProperty::ul;
|
||||
nsIAtom * nsIEditProperty::ol;
|
||||
nsIAtom * nsIEditProperty::dl;
|
||||
nsIAtom * nsIEditProperty::pre;
|
||||
nsIAtom * nsIEditProperty::noscript;
|
||||
nsIAtom * nsIEditProperty::form;
|
||||
nsIAtom * nsIEditProperty::hr;
|
||||
nsIAtom * nsIEditProperty::table;
|
||||
nsIAtom * nsIEditProperty::fieldset;
|
||||
nsIAtom * nsIEditProperty::address;
|
||||
nsIAtom * nsIEditProperty::body;
|
||||
nsIAtom * nsIEditProperty::tr;
|
||||
nsIAtom * nsIEditProperty::td;
|
||||
nsIAtom * nsIEditProperty::th;
|
||||
nsIAtom * nsIEditProperty::caption;
|
||||
nsIAtom * nsIEditProperty::col;
|
||||
nsIAtom * nsIEditProperty::colgroup;
|
||||
nsIAtom * nsIEditProperty::thead;
|
||||
nsIAtom * nsIEditProperty::tfoot;
|
||||
nsIAtom * nsIEditProperty::li;
|
||||
nsIAtom * nsIEditProperty::dt;
|
||||
nsIAtom * nsIEditProperty::dd;
|
||||
nsIAtom * nsIEditProperty::legend;
|
||||
nsIAtom * nsIEditProperty::color;
|
||||
nsIAtom * nsIEditProperty::face;
|
||||
nsIAtom * nsIEditProperty::size;
|
||||
|
||||
// special
|
||||
nsString * nsIEditProperty::allProperties;
|
||||
|
||||
/* From the HTML 4.0 DTD,
|
||||
|
||||
INLINE:
|
||||
<!-- %inline; covers inline or "text-level" elements -->
|
||||
<!ENTITY % inline "#PCDATA | %fontstyle; | %phrase; | %special; | %formctrl;">
|
||||
<!ENTITY % fontstyle "TT | I | B | BIG | SMALL">
|
||||
<!ENTITY % phrase "EM | STRONG | DFN | CODE |
|
||||
SAMP | KBD | VAR | CITE | ABBR | ACRONYM" >
|
||||
<!ENTITY % special
|
||||
"A | IMG | OBJECT | BR | SCRIPT | MAP | Q | SUB | SUP | SPAN | BDO">
|
||||
<!ENTITY % formctrl "INPUT | SELECT | TEXTAREA | LABEL | BUTTON">
|
||||
|
||||
BLOCK:
|
||||
<!ENTITY % block
|
||||
"P | %heading (h1-h6); | %list (UL | OL); | %preformatted (PRE); | DL | DIV | NOSCRIPT |
|
||||
BLOCKQUOTE | FORM | HR | TABLE | FIELDSET | ADDRESS">
|
||||
|
||||
But what about BODY, TR, TD, TH, CAPTION, COL, COLGROUP, THEAD, TFOOT, LI, DT, DD, LEGEND, etc.?
|
||||
|
||||
|
||||
*/
|
||||
nsEditProperty::nsEditProperty()
|
||||
{
|
||||
NS_INIT_REFCNT();
|
||||
// tags
|
||||
nsIEditProperty::a = NS_NewAtom("a");
|
||||
nsIEditProperty::b = NS_NewAtom("b");
|
||||
nsIEditProperty::big = NS_NewAtom("big");
|
||||
nsIEditProperty::font = NS_NewAtom("font");
|
||||
nsIEditProperty::i = NS_NewAtom("i");
|
||||
nsIEditProperty::i = NS_NewAtom("img");
|
||||
nsIEditProperty::span = NS_NewAtom("span");
|
||||
nsIEditProperty::small =NS_NewAtom("small");
|
||||
nsIEditProperty::strike=NS_NewAtom("strike");
|
||||
nsIEditProperty::sub = NS_NewAtom("sub");
|
||||
nsIEditProperty::sup = NS_NewAtom("sup");
|
||||
nsIEditProperty::tt = NS_NewAtom("tt");
|
||||
nsIEditProperty::u = NS_NewAtom("u");
|
||||
// tags
|
||||
// inline tags
|
||||
nsIEditProperty::b = NS_NewAtom("b");
|
||||
nsIEditProperty::big = NS_NewAtom("big");
|
||||
nsIEditProperty::i = NS_NewAtom("i");
|
||||
nsIEditProperty::small = NS_NewAtom("small");
|
||||
nsIEditProperty::strike = NS_NewAtom("strike");
|
||||
nsIEditProperty::sub = NS_NewAtom("sub");
|
||||
nsIEditProperty::sup = NS_NewAtom("sup");
|
||||
nsIEditProperty::tt = NS_NewAtom("tt");
|
||||
nsIEditProperty::u = NS_NewAtom("u");
|
||||
nsIEditProperty::em = NS_NewAtom("em");
|
||||
nsIEditProperty::strong = NS_NewAtom("strong");
|
||||
nsIEditProperty::dfn = NS_NewAtom("dfn");
|
||||
nsIEditProperty::code = NS_NewAtom("code");
|
||||
nsIEditProperty::samp = NS_NewAtom("samp");
|
||||
nsIEditProperty::kbd = NS_NewAtom("kbd");
|
||||
nsIEditProperty::var = NS_NewAtom("var");
|
||||
nsIEditProperty::cite = NS_NewAtom("cite");
|
||||
nsIEditProperty::abbr = NS_NewAtom("abbr");
|
||||
nsIEditProperty::acronym = NS_NewAtom("acronym");
|
||||
nsIEditProperty::font = NS_NewAtom("font");
|
||||
nsIEditProperty::a = NS_NewAtom("a");
|
||||
nsIEditProperty::img = NS_NewAtom("img");
|
||||
nsIEditProperty::object = NS_NewAtom("object");
|
||||
nsIEditProperty::br = NS_NewAtom("br");
|
||||
nsIEditProperty::script = NS_NewAtom("script");
|
||||
nsIEditProperty::map = NS_NewAtom("map");
|
||||
nsIEditProperty::q = NS_NewAtom("q");
|
||||
nsIEditProperty::span = NS_NewAtom("span");
|
||||
nsIEditProperty::bdo = NS_NewAtom("bdo");
|
||||
nsIEditProperty::input = NS_NewAtom("input");
|
||||
nsIEditProperty::select = NS_NewAtom("select");
|
||||
nsIEditProperty::textarea = NS_NewAtom("textarea");
|
||||
nsIEditProperty::label = NS_NewAtom("label");
|
||||
nsIEditProperty::button = NS_NewAtom("button");
|
||||
// block tags
|
||||
nsIEditProperty::p = NS_NewAtom("p");
|
||||
nsIEditProperty::div = NS_NewAtom("div");
|
||||
nsIEditProperty::blockquote = NS_NewAtom("blockquote");
|
||||
nsIEditProperty::br = NS_NewAtom("br");
|
||||
nsIEditProperty::h1 = NS_NewAtom("h1");
|
||||
nsIEditProperty::h2 = NS_NewAtom("h2");
|
||||
nsIEditProperty::h1 = NS_NewAtom("h1");
|
||||
nsIEditProperty::h2 = NS_NewAtom("h2");
|
||||
nsIEditProperty::h3 = NS_NewAtom("h3");
|
||||
nsIEditProperty::h4 = NS_NewAtom("h4");
|
||||
nsIEditProperty::h5 = NS_NewAtom("h5");
|
||||
nsIEditProperty::h6 = NS_NewAtom("h6");
|
||||
nsIEditProperty::ul = NS_NewAtom("ul");
|
||||
nsIEditProperty::ol = NS_NewAtom("ol");
|
||||
nsIEditProperty::dl = NS_NewAtom("dl");
|
||||
nsIEditProperty::pre = NS_NewAtom("pre");
|
||||
nsIEditProperty::noscript = NS_NewAtom("noscript");
|
||||
nsIEditProperty::form = NS_NewAtom("form");
|
||||
nsIEditProperty::hr = NS_NewAtom("hr");
|
||||
nsIEditProperty::table = NS_NewAtom("table");
|
||||
nsIEditProperty::fieldset = NS_NewAtom("fieldset");
|
||||
nsIEditProperty::address = NS_NewAtom("address");
|
||||
// Unclear from
|
||||
// DTD, block?
|
||||
nsIEditProperty::body = NS_NewAtom("body");
|
||||
nsIEditProperty::tr = NS_NewAtom("tr");
|
||||
nsIEditProperty::td = NS_NewAtom("td");
|
||||
nsIEditProperty::th = NS_NewAtom("th");
|
||||
nsIEditProperty::caption = NS_NewAtom("caption");
|
||||
nsIEditProperty::col = NS_NewAtom("col");
|
||||
nsIEditProperty::colgroup = NS_NewAtom("colgroup");
|
||||
nsIEditProperty::thead = NS_NewAtom("thead");
|
||||
nsIEditProperty::tfoot = NS_NewAtom("tfoot");
|
||||
nsIEditProperty::li = NS_NewAtom("li");
|
||||
nsIEditProperty::dt = NS_NewAtom("dt");
|
||||
nsIEditProperty::dd = NS_NewAtom("dd");
|
||||
nsIEditProperty::legend = NS_NewAtom("legend");
|
||||
// inline
|
||||
// properties
|
||||
nsIEditProperty::color= NS_NewAtom("color");
|
||||
nsIEditProperty::face = NS_NewAtom("face");
|
||||
nsIEditProperty::size = NS_NewAtom("size");
|
||||
nsIEditProperty::color = NS_NewAtom("color");
|
||||
nsIEditProperty::face = NS_NewAtom("face");
|
||||
nsIEditProperty::size = NS_NewAtom("size");
|
||||
|
||||
|
||||
// special
|
||||
nsIEditProperty::allProperties = new nsString("moz_allproperties");
|
||||
}
|
||||
|
||||
nsEditProperty::~nsEditProperty()
|
||||
{
|
||||
// tags
|
||||
NS_IF_RELEASE(nsIEditProperty::a);
|
||||
NS_IF_RELEASE(nsIEditProperty::b);
|
||||
NS_IF_RELEASE(nsIEditProperty::big);
|
||||
NS_IF_RELEASE(nsIEditProperty::font);
|
||||
NS_IF_RELEASE(nsIEditProperty::i);
|
||||
NS_IF_RELEASE(nsIEditProperty::img);
|
||||
NS_IF_RELEASE(nsIEditProperty::span);
|
||||
NS_IF_RELEASE(nsIEditProperty::small);
|
||||
NS_IF_RELEASE(nsIEditProperty::strike);
|
||||
NS_IF_RELEASE(nsIEditProperty::sub);
|
||||
NS_IF_RELEASE(nsIEditProperty::sup);
|
||||
NS_IF_RELEASE(nsIEditProperty::tt);
|
||||
NS_IF_RELEASE(nsIEditProperty::u);
|
||||
// tags
|
||||
NS_IF_RELEASE(nsIEditProperty::blockquote);
|
||||
NS_IF_RELEASE(nsIEditProperty::br);
|
||||
NS_IF_RELEASE(nsIEditProperty::h1);
|
||||
NS_IF_RELEASE(nsIEditProperty::h2);
|
||||
// properties
|
||||
NS_IF_RELEASE(nsIEditProperty::color);
|
||||
NS_IF_RELEASE(nsIEditProperty::face);
|
||||
NS_IF_RELEASE(nsIEditProperty::size);
|
||||
NS_IF_RELEASE(nsIEditProperty::b);
|
||||
NS_IF_RELEASE(nsIEditProperty::big);
|
||||
NS_IF_RELEASE(nsIEditProperty::i);
|
||||
NS_IF_RELEASE(nsIEditProperty::small);
|
||||
NS_IF_RELEASE(nsIEditProperty::strike);
|
||||
NS_IF_RELEASE(nsIEditProperty::sub);
|
||||
NS_IF_RELEASE(nsIEditProperty::sup);
|
||||
NS_IF_RELEASE(nsIEditProperty::tt);
|
||||
NS_IF_RELEASE(nsIEditProperty::u);
|
||||
NS_IF_RELEASE(nsIEditProperty::em);
|
||||
NS_IF_RELEASE(nsIEditProperty::strong);
|
||||
NS_IF_RELEASE(nsIEditProperty::dfn);
|
||||
NS_IF_RELEASE(nsIEditProperty::code);
|
||||
NS_IF_RELEASE(nsIEditProperty::samp);
|
||||
NS_IF_RELEASE(nsIEditProperty::kbd);
|
||||
NS_IF_RELEASE(nsIEditProperty::var);
|
||||
NS_IF_RELEASE(nsIEditProperty::cite);
|
||||
NS_IF_RELEASE(nsIEditProperty::abbr);
|
||||
NS_IF_RELEASE(nsIEditProperty::acronym);
|
||||
NS_IF_RELEASE(nsIEditProperty::font);
|
||||
NS_IF_RELEASE(nsIEditProperty::a);
|
||||
NS_IF_RELEASE(nsIEditProperty::img);
|
||||
NS_IF_RELEASE(nsIEditProperty::object);
|
||||
NS_IF_RELEASE(nsIEditProperty::br);
|
||||
NS_IF_RELEASE(nsIEditProperty::script);
|
||||
NS_IF_RELEASE(nsIEditProperty::map);
|
||||
NS_IF_RELEASE(nsIEditProperty::q);
|
||||
NS_IF_RELEASE(nsIEditProperty::span);
|
||||
NS_IF_RELEASE(nsIEditProperty::bdo);
|
||||
NS_IF_RELEASE(nsIEditProperty::input);
|
||||
NS_IF_RELEASE(nsIEditProperty::select);
|
||||
NS_IF_RELEASE(nsIEditProperty::textarea);
|
||||
NS_IF_RELEASE(nsIEditProperty::label);
|
||||
NS_IF_RELEASE(nsIEditProperty::button);
|
||||
NS_IF_RELEASE(nsIEditProperty::p);
|
||||
NS_IF_RELEASE(nsIEditProperty::div);
|
||||
NS_IF_RELEASE(nsIEditProperty::blockquote);
|
||||
NS_IF_RELEASE(nsIEditProperty::h1);
|
||||
NS_IF_RELEASE(nsIEditProperty::h2);
|
||||
NS_IF_RELEASE(nsIEditProperty::h3);
|
||||
NS_IF_RELEASE(nsIEditProperty::h4);
|
||||
NS_IF_RELEASE(nsIEditProperty::h5);
|
||||
NS_IF_RELEASE(nsIEditProperty::h6);
|
||||
NS_IF_RELEASE(nsIEditProperty::ul);
|
||||
NS_IF_RELEASE(nsIEditProperty::ol);
|
||||
NS_IF_RELEASE(nsIEditProperty::dl);
|
||||
NS_IF_RELEASE(nsIEditProperty::pre);
|
||||
NS_IF_RELEASE(nsIEditProperty::noscript);
|
||||
NS_IF_RELEASE(nsIEditProperty::form);
|
||||
NS_IF_RELEASE(nsIEditProperty::hr);
|
||||
NS_IF_RELEASE(nsIEditProperty::table);
|
||||
NS_IF_RELEASE(nsIEditProperty::fieldset);
|
||||
NS_IF_RELEASE(nsIEditProperty::address);
|
||||
NS_IF_RELEASE(nsIEditProperty::body);
|
||||
NS_IF_RELEASE(nsIEditProperty::tr);
|
||||
NS_IF_RELEASE(nsIEditProperty::td);
|
||||
NS_IF_RELEASE(nsIEditProperty::th);
|
||||
NS_IF_RELEASE(nsIEditProperty::caption);
|
||||
NS_IF_RELEASE(nsIEditProperty::col);
|
||||
NS_IF_RELEASE(nsIEditProperty::colgroup);
|
||||
NS_IF_RELEASE(nsIEditProperty::thead);
|
||||
NS_IF_RELEASE(nsIEditProperty::tfoot);
|
||||
NS_IF_RELEASE(nsIEditProperty::li);
|
||||
NS_IF_RELEASE(nsIEditProperty::dt);
|
||||
NS_IF_RELEASE(nsIEditProperty::dd);
|
||||
NS_IF_RELEASE(nsIEditProperty::legend);
|
||||
NS_IF_RELEASE(nsIEditProperty::color);
|
||||
NS_IF_RELEASE(nsIEditProperty::face);
|
||||
NS_IF_RELEASE(nsIEditProperty::size);
|
||||
|
||||
// special
|
||||
if (nsIEditProperty::allProperties) {
|
||||
delete (nsIEditProperty::allProperties);
|
||||
|
@ -2521,7 +2521,69 @@ nsEditor::GetLengthOfDOMNode(nsIDOMNode *aNode, PRUint32 &aCount)
|
||||
return result;
|
||||
}
|
||||
|
||||
// content-based inline vs. block query
|
||||
// The list of block nodes is shorter, so do the real work here...
|
||||
nsresult
|
||||
nsEditor::IsNodeBlock(nsIDOMNode *aNode, PRBool &aIsBlock)
|
||||
{
|
||||
// this is a content-based implementation
|
||||
if (!aNode) { return NS_ERROR_NULL_POINTER; }
|
||||
|
||||
nsresult result = NS_ERROR_FAILURE;
|
||||
aIsBlock = PR_FALSE;
|
||||
nsCOMPtr<nsIDOMElement>element;
|
||||
element = do_QueryInterface(aNode);
|
||||
if (element)
|
||||
{
|
||||
nsAutoString tagName;
|
||||
result = element->GetTagName(tagName);
|
||||
if (NS_SUCCEEDED(result))
|
||||
{
|
||||
tagName.ToLowerCase();
|
||||
nsIAtom *tagAtom = NS_NewAtom(tagName);
|
||||
if (!tagAtom) { return NS_ERROR_NULL_POINTER; }
|
||||
|
||||
if (tagAtom==nsIEditProperty::p ||
|
||||
tagAtom==nsIEditProperty::div ||
|
||||
tagAtom==nsIEditProperty::blockquote ||
|
||||
tagAtom==nsIEditProperty::h1 ||
|
||||
tagAtom==nsIEditProperty::h2 ||
|
||||
tagAtom==nsIEditProperty::h3 ||
|
||||
tagAtom==nsIEditProperty::h4 ||
|
||||
tagAtom==nsIEditProperty::h5 ||
|
||||
tagAtom==nsIEditProperty::h6 ||
|
||||
tagAtom==nsIEditProperty::ul ||
|
||||
tagAtom==nsIEditProperty::ol ||
|
||||
tagAtom==nsIEditProperty::dl ||
|
||||
tagAtom==nsIEditProperty::pre ||
|
||||
tagAtom==nsIEditProperty::noscript ||
|
||||
tagAtom==nsIEditProperty::form ||
|
||||
tagAtom==nsIEditProperty::hr ||
|
||||
tagAtom==nsIEditProperty::table ||
|
||||
tagAtom==nsIEditProperty::fieldset ||
|
||||
tagAtom==nsIEditProperty::address ||
|
||||
tagAtom==nsIEditProperty::body ||
|
||||
tagAtom==nsIEditProperty::tr ||
|
||||
tagAtom==nsIEditProperty::td ||
|
||||
tagAtom==nsIEditProperty::th ||
|
||||
tagAtom==nsIEditProperty::caption ||
|
||||
tagAtom==nsIEditProperty::col ||
|
||||
tagAtom==nsIEditProperty::colgroup ||
|
||||
tagAtom==nsIEditProperty::thead ||
|
||||
tagAtom==nsIEditProperty::tfoot ||
|
||||
tagAtom==nsIEditProperty::li ||
|
||||
tagAtom==nsIEditProperty::dt ||
|
||||
tagAtom==nsIEditProperty::dd ||
|
||||
tagAtom==nsIEditProperty::legend )
|
||||
{
|
||||
aIsBlock = PR_TRUE;
|
||||
}
|
||||
result = NS_OK;
|
||||
}
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
// ...and simply assume non-block element is inline
|
||||
nsresult
|
||||
nsEditor::IsNodeInline(nsIDOMNode *aNode, PRBool &aIsInline)
|
||||
{
|
||||
@ -2530,36 +2592,10 @@ nsEditor::IsNodeInline(nsIDOMNode *aNode, PRBool &aIsInline)
|
||||
|
||||
nsresult result;
|
||||
aIsInline = PR_FALSE;
|
||||
nsCOMPtr<nsIDOMElement>element;
|
||||
element = do_QueryInterface(aNode);
|
||||
if (element)
|
||||
{
|
||||
nsAutoString tag;
|
||||
result = element->GetTagName(tag);
|
||||
if (NS_SUCCEEDED(result))
|
||||
{
|
||||
tag.ToLowerCase();
|
||||
nsIAtom *tagAtom = NS_NewAtom(tag);
|
||||
if (!tagAtom) { return NS_ERROR_NULL_POINTER; }
|
||||
if (tagAtom==nsIEditProperty::a ||
|
||||
tagAtom==nsIEditProperty::b ||
|
||||
tagAtom==nsIEditProperty::big ||
|
||||
tagAtom==nsIEditProperty::font ||
|
||||
tagAtom==nsIEditProperty::i ||
|
||||
tagAtom==nsIEditProperty::img ||
|
||||
tagAtom==nsIEditProperty::span ||
|
||||
tagAtom==nsIEditProperty::small ||
|
||||
tagAtom==nsIEditProperty::strike ||
|
||||
tagAtom==nsIEditProperty::sub ||
|
||||
tagAtom==nsIEditProperty::sup ||
|
||||
tagAtom==nsIEditProperty::tt ||
|
||||
tagAtom==nsIEditProperty::u )
|
||||
{
|
||||
aIsInline = PR_TRUE;
|
||||
}
|
||||
}
|
||||
}
|
||||
return NS_OK;
|
||||
PRBool IsBlock = PR_FALSE;
|
||||
result = IsNodeBlock(aNode, IsBlock);
|
||||
aIsInline = !IsBlock;
|
||||
return result;
|
||||
}
|
||||
|
||||
nsresult
|
||||
|
@ -391,6 +391,9 @@ public:
|
||||
/** set aIsInline to PR_TRUE if aNode is inline as defined by HTML DTD */
|
||||
static nsresult IsNodeInline(nsIDOMNode *aNode, PRBool &aIsInline);
|
||||
|
||||
/** set aIsBlock to PR_TRUE if aNode is inline as defined by HTML DTD */
|
||||
static nsresult IsNodeBlock(nsIDOMNode *aNode, PRBool &aIsBlock);
|
||||
|
||||
/** returns the closest block parent of aNode, not including aNode itself.
|
||||
* can return null, for example if aNode is in a document fragment.
|
||||
* @param aNode The node whose parent we seek.
|
||||
|
@ -43,43 +43,77 @@ public:
|
||||
/* we're still trying to decide how edit atoms will work. Until then, use these */
|
||||
// XXX: fix ASAP!
|
||||
// inline tags
|
||||
static nsIAtom *a;
|
||||
static nsIAtom *b;
|
||||
static nsIAtom *big;
|
||||
static nsIAtom *font;
|
||||
static nsIAtom *i;
|
||||
static nsIAtom *img;
|
||||
static nsIAtom *span;
|
||||
static nsIAtom *small;
|
||||
static nsIAtom *strike;
|
||||
static nsIAtom *sub;
|
||||
static nsIAtom *sup;
|
||||
static nsIAtom *tt;
|
||||
static nsIAtom *u;
|
||||
|
||||
/* from HTML 3.2 spec
|
||||
TT teletype or monospaced text
|
||||
I italic text style
|
||||
B bold text style
|
||||
U underlined text style
|
||||
STRIKE strike-through text style
|
||||
BIG places text in a large font
|
||||
SMALL places text in a small font
|
||||
SUB places text in subscript style
|
||||
SUP places text in superscript style
|
||||
*/
|
||||
|
||||
// block tags
|
||||
static nsIAtom *b;
|
||||
static nsIAtom *big;
|
||||
static nsIAtom *i;
|
||||
static nsIAtom *small;
|
||||
static nsIAtom *strike;
|
||||
static nsIAtom *sub;
|
||||
static nsIAtom *sup;
|
||||
static nsIAtom *tt;
|
||||
static nsIAtom *u;
|
||||
static nsIAtom *em;
|
||||
static nsIAtom *strong;
|
||||
static nsIAtom *dfn;
|
||||
static nsIAtom *code;
|
||||
static nsIAtom *samp;
|
||||
static nsIAtom *kbd;
|
||||
static nsIAtom *var;
|
||||
static nsIAtom *cite;
|
||||
static nsIAtom *abbr;
|
||||
static nsIAtom *acronym;
|
||||
static nsIAtom *font;
|
||||
static nsIAtom *a;
|
||||
static nsIAtom *img;
|
||||
static nsIAtom *object;
|
||||
static nsIAtom *br;
|
||||
static nsIAtom *script;
|
||||
static nsIAtom *map;
|
||||
static nsIAtom *q;
|
||||
static nsIAtom *span;
|
||||
static nsIAtom *bdo;
|
||||
static nsIAtom *input;
|
||||
static nsIAtom *select;
|
||||
static nsIAtom *textarea;
|
||||
static nsIAtom *label;
|
||||
static nsIAtom *button;
|
||||
// Block tags
|
||||
static nsIAtom *p;
|
||||
static nsIAtom *div;
|
||||
static nsIAtom *blockquote;
|
||||
static nsIAtom *br;
|
||||
static nsIAtom *h1;
|
||||
static nsIAtom *h2;
|
||||
|
||||
|
||||
/** properties */
|
||||
static nsIAtom *color;
|
||||
static nsIAtom *face;
|
||||
static nsIAtom *size;
|
||||
static nsIAtom *h1;
|
||||
static nsIAtom *h2;
|
||||
static nsIAtom *h3;
|
||||
static nsIAtom *h4;
|
||||
static nsIAtom *h5;
|
||||
static nsIAtom *h6;
|
||||
static nsIAtom *ul;
|
||||
static nsIAtom *ol;
|
||||
static nsIAtom *dl;
|
||||
static nsIAtom *pre;
|
||||
static nsIAtom *noscript;
|
||||
static nsIAtom *form;
|
||||
static nsIAtom *hr;
|
||||
static nsIAtom *table;
|
||||
static nsIAtom *fieldset;
|
||||
static nsIAtom *address;
|
||||
// Assumed to be block:
|
||||
static nsIAtom *body;
|
||||
static nsIAtom *tr;
|
||||
static nsIAtom *td;
|
||||
static nsIAtom *th;
|
||||
static nsIAtom *caption;
|
||||
static nsIAtom *col;
|
||||
static nsIAtom *colgroup;
|
||||
static nsIAtom *thead;
|
||||
static nsIAtom *tfoot;
|
||||
static nsIAtom *li;
|
||||
static nsIAtom *dt;
|
||||
static nsIAtom *dd;
|
||||
static nsIAtom *legend;
|
||||
static nsIAtom *color;
|
||||
static nsIAtom *face;
|
||||
static nsIAtom *size;
|
||||
|
||||
/** special strings */
|
||||
static nsString *allProperties; // this magic string represents the union of all inline style tags
|
||||
|
@ -2521,7 +2521,69 @@ nsEditor::GetLengthOfDOMNode(nsIDOMNode *aNode, PRUint32 &aCount)
|
||||
return result;
|
||||
}
|
||||
|
||||
// content-based inline vs. block query
|
||||
// The list of block nodes is shorter, so do the real work here...
|
||||
nsresult
|
||||
nsEditor::IsNodeBlock(nsIDOMNode *aNode, PRBool &aIsBlock)
|
||||
{
|
||||
// this is a content-based implementation
|
||||
if (!aNode) { return NS_ERROR_NULL_POINTER; }
|
||||
|
||||
nsresult result = NS_ERROR_FAILURE;
|
||||
aIsBlock = PR_FALSE;
|
||||
nsCOMPtr<nsIDOMElement>element;
|
||||
element = do_QueryInterface(aNode);
|
||||
if (element)
|
||||
{
|
||||
nsAutoString tagName;
|
||||
result = element->GetTagName(tagName);
|
||||
if (NS_SUCCEEDED(result))
|
||||
{
|
||||
tagName.ToLowerCase();
|
||||
nsIAtom *tagAtom = NS_NewAtom(tagName);
|
||||
if (!tagAtom) { return NS_ERROR_NULL_POINTER; }
|
||||
|
||||
if (tagAtom==nsIEditProperty::p ||
|
||||
tagAtom==nsIEditProperty::div ||
|
||||
tagAtom==nsIEditProperty::blockquote ||
|
||||
tagAtom==nsIEditProperty::h1 ||
|
||||
tagAtom==nsIEditProperty::h2 ||
|
||||
tagAtom==nsIEditProperty::h3 ||
|
||||
tagAtom==nsIEditProperty::h4 ||
|
||||
tagAtom==nsIEditProperty::h5 ||
|
||||
tagAtom==nsIEditProperty::h6 ||
|
||||
tagAtom==nsIEditProperty::ul ||
|
||||
tagAtom==nsIEditProperty::ol ||
|
||||
tagAtom==nsIEditProperty::dl ||
|
||||
tagAtom==nsIEditProperty::pre ||
|
||||
tagAtom==nsIEditProperty::noscript ||
|
||||
tagAtom==nsIEditProperty::form ||
|
||||
tagAtom==nsIEditProperty::hr ||
|
||||
tagAtom==nsIEditProperty::table ||
|
||||
tagAtom==nsIEditProperty::fieldset ||
|
||||
tagAtom==nsIEditProperty::address ||
|
||||
tagAtom==nsIEditProperty::body ||
|
||||
tagAtom==nsIEditProperty::tr ||
|
||||
tagAtom==nsIEditProperty::td ||
|
||||
tagAtom==nsIEditProperty::th ||
|
||||
tagAtom==nsIEditProperty::caption ||
|
||||
tagAtom==nsIEditProperty::col ||
|
||||
tagAtom==nsIEditProperty::colgroup ||
|
||||
tagAtom==nsIEditProperty::thead ||
|
||||
tagAtom==nsIEditProperty::tfoot ||
|
||||
tagAtom==nsIEditProperty::li ||
|
||||
tagAtom==nsIEditProperty::dt ||
|
||||
tagAtom==nsIEditProperty::dd ||
|
||||
tagAtom==nsIEditProperty::legend )
|
||||
{
|
||||
aIsBlock = PR_TRUE;
|
||||
}
|
||||
result = NS_OK;
|
||||
}
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
// ...and simply assume non-block element is inline
|
||||
nsresult
|
||||
nsEditor::IsNodeInline(nsIDOMNode *aNode, PRBool &aIsInline)
|
||||
{
|
||||
@ -2530,36 +2592,10 @@ nsEditor::IsNodeInline(nsIDOMNode *aNode, PRBool &aIsInline)
|
||||
|
||||
nsresult result;
|
||||
aIsInline = PR_FALSE;
|
||||
nsCOMPtr<nsIDOMElement>element;
|
||||
element = do_QueryInterface(aNode);
|
||||
if (element)
|
||||
{
|
||||
nsAutoString tag;
|
||||
result = element->GetTagName(tag);
|
||||
if (NS_SUCCEEDED(result))
|
||||
{
|
||||
tag.ToLowerCase();
|
||||
nsIAtom *tagAtom = NS_NewAtom(tag);
|
||||
if (!tagAtom) { return NS_ERROR_NULL_POINTER; }
|
||||
if (tagAtom==nsIEditProperty::a ||
|
||||
tagAtom==nsIEditProperty::b ||
|
||||
tagAtom==nsIEditProperty::big ||
|
||||
tagAtom==nsIEditProperty::font ||
|
||||
tagAtom==nsIEditProperty::i ||
|
||||
tagAtom==nsIEditProperty::img ||
|
||||
tagAtom==nsIEditProperty::span ||
|
||||
tagAtom==nsIEditProperty::small ||
|
||||
tagAtom==nsIEditProperty::strike ||
|
||||
tagAtom==nsIEditProperty::sub ||
|
||||
tagAtom==nsIEditProperty::sup ||
|
||||
tagAtom==nsIEditProperty::tt ||
|
||||
tagAtom==nsIEditProperty::u )
|
||||
{
|
||||
aIsInline = PR_TRUE;
|
||||
}
|
||||
}
|
||||
}
|
||||
return NS_OK;
|
||||
PRBool IsBlock = PR_FALSE;
|
||||
result = IsNodeBlock(aNode, IsBlock);
|
||||
aIsInline = !IsBlock;
|
||||
return result;
|
||||
}
|
||||
|
||||
nsresult
|
||||
|
@ -391,6 +391,9 @@ public:
|
||||
/** set aIsInline to PR_TRUE if aNode is inline as defined by HTML DTD */
|
||||
static nsresult IsNodeInline(nsIDOMNode *aNode, PRBool &aIsInline);
|
||||
|
||||
/** set aIsBlock to PR_TRUE if aNode is inline as defined by HTML DTD */
|
||||
static nsresult IsNodeBlock(nsIDOMNode *aNode, PRBool &aIsBlock);
|
||||
|
||||
/** returns the closest block parent of aNode, not including aNode itself.
|
||||
* can return null, for example if aNode is in a document fragment.
|
||||
* @param aNode The node whose parent we seek.
|
||||
|
@ -43,43 +43,77 @@ public:
|
||||
/* we're still trying to decide how edit atoms will work. Until then, use these */
|
||||
// XXX: fix ASAP!
|
||||
// inline tags
|
||||
static nsIAtom *a;
|
||||
static nsIAtom *b;
|
||||
static nsIAtom *big;
|
||||
static nsIAtom *font;
|
||||
static nsIAtom *i;
|
||||
static nsIAtom *img;
|
||||
static nsIAtom *span;
|
||||
static nsIAtom *small;
|
||||
static nsIAtom *strike;
|
||||
static nsIAtom *sub;
|
||||
static nsIAtom *sup;
|
||||
static nsIAtom *tt;
|
||||
static nsIAtom *u;
|
||||
|
||||
/* from HTML 3.2 spec
|
||||
TT teletype or monospaced text
|
||||
I italic text style
|
||||
B bold text style
|
||||
U underlined text style
|
||||
STRIKE strike-through text style
|
||||
BIG places text in a large font
|
||||
SMALL places text in a small font
|
||||
SUB places text in subscript style
|
||||
SUP places text in superscript style
|
||||
*/
|
||||
|
||||
// block tags
|
||||
static nsIAtom *b;
|
||||
static nsIAtom *big;
|
||||
static nsIAtom *i;
|
||||
static nsIAtom *small;
|
||||
static nsIAtom *strike;
|
||||
static nsIAtom *sub;
|
||||
static nsIAtom *sup;
|
||||
static nsIAtom *tt;
|
||||
static nsIAtom *u;
|
||||
static nsIAtom *em;
|
||||
static nsIAtom *strong;
|
||||
static nsIAtom *dfn;
|
||||
static nsIAtom *code;
|
||||
static nsIAtom *samp;
|
||||
static nsIAtom *kbd;
|
||||
static nsIAtom *var;
|
||||
static nsIAtom *cite;
|
||||
static nsIAtom *abbr;
|
||||
static nsIAtom *acronym;
|
||||
static nsIAtom *font;
|
||||
static nsIAtom *a;
|
||||
static nsIAtom *img;
|
||||
static nsIAtom *object;
|
||||
static nsIAtom *br;
|
||||
static nsIAtom *script;
|
||||
static nsIAtom *map;
|
||||
static nsIAtom *q;
|
||||
static nsIAtom *span;
|
||||
static nsIAtom *bdo;
|
||||
static nsIAtom *input;
|
||||
static nsIAtom *select;
|
||||
static nsIAtom *textarea;
|
||||
static nsIAtom *label;
|
||||
static nsIAtom *button;
|
||||
// Block tags
|
||||
static nsIAtom *p;
|
||||
static nsIAtom *div;
|
||||
static nsIAtom *blockquote;
|
||||
static nsIAtom *br;
|
||||
static nsIAtom *h1;
|
||||
static nsIAtom *h2;
|
||||
|
||||
|
||||
/** properties */
|
||||
static nsIAtom *color;
|
||||
static nsIAtom *face;
|
||||
static nsIAtom *size;
|
||||
static nsIAtom *h1;
|
||||
static nsIAtom *h2;
|
||||
static nsIAtom *h3;
|
||||
static nsIAtom *h4;
|
||||
static nsIAtom *h5;
|
||||
static nsIAtom *h6;
|
||||
static nsIAtom *ul;
|
||||
static nsIAtom *ol;
|
||||
static nsIAtom *dl;
|
||||
static nsIAtom *pre;
|
||||
static nsIAtom *noscript;
|
||||
static nsIAtom *form;
|
||||
static nsIAtom *hr;
|
||||
static nsIAtom *table;
|
||||
static nsIAtom *fieldset;
|
||||
static nsIAtom *address;
|
||||
// Assumed to be block:
|
||||
static nsIAtom *body;
|
||||
static nsIAtom *tr;
|
||||
static nsIAtom *td;
|
||||
static nsIAtom *th;
|
||||
static nsIAtom *caption;
|
||||
static nsIAtom *col;
|
||||
static nsIAtom *colgroup;
|
||||
static nsIAtom *thead;
|
||||
static nsIAtom *tfoot;
|
||||
static nsIAtom *li;
|
||||
static nsIAtom *dt;
|
||||
static nsIAtom *dd;
|
||||
static nsIAtom *legend;
|
||||
static nsIAtom *color;
|
||||
static nsIAtom *face;
|
||||
static nsIAtom *size;
|
||||
|
||||
/** special strings */
|
||||
static nsString *allProperties; // this magic string represents the union of all inline style tags
|
||||
|
@ -29,86 +29,256 @@ NS_IMPL_RELEASE(nsEditProperty)
|
||||
|
||||
// XXX: remove when html atoms are exported from layout
|
||||
// inline tags
|
||||
nsIAtom * nsIEditProperty::a;
|
||||
nsIAtom * nsIEditProperty::b;
|
||||
nsIAtom * nsIEditProperty::big;
|
||||
nsIAtom * nsIEditProperty::font;
|
||||
nsIAtom * nsIEditProperty::i;
|
||||
nsIAtom * nsIEditProperty::img;
|
||||
nsIAtom * nsIEditProperty::span;
|
||||
nsIAtom * nsIEditProperty::small;
|
||||
nsIAtom * nsIEditProperty::strike;
|
||||
nsIAtom * nsIEditProperty::sub;
|
||||
nsIAtom * nsIEditProperty::sup;
|
||||
nsIAtom * nsIEditProperty::tt;
|
||||
nsIAtom * nsIEditProperty::u;
|
||||
// block tags
|
||||
nsIAtom * nsIEditProperty::blockquote;
|
||||
nsIAtom * nsIEditProperty::br;
|
||||
nsIAtom * nsIEditProperty::h1;
|
||||
nsIAtom * nsIEditProperty::h2;
|
||||
// properties
|
||||
nsIAtom * nsIEditProperty::color;
|
||||
nsIAtom * nsIEditProperty::face;
|
||||
nsIAtom * nsIEditProperty::size;
|
||||
nsIAtom * nsIEditProperty::b;
|
||||
nsIAtom * nsIEditProperty::big;
|
||||
nsIAtom * nsIEditProperty::i;
|
||||
nsIAtom * nsIEditProperty::small;
|
||||
nsIAtom * nsIEditProperty::strike;
|
||||
nsIAtom * nsIEditProperty::sub;
|
||||
nsIAtom * nsIEditProperty::sup;
|
||||
nsIAtom * nsIEditProperty::tt;
|
||||
nsIAtom * nsIEditProperty::u;
|
||||
nsIAtom * nsIEditProperty::em;
|
||||
nsIAtom * nsIEditProperty::strong;
|
||||
nsIAtom * nsIEditProperty::dfn;
|
||||
nsIAtom * nsIEditProperty::code;
|
||||
nsIAtom * nsIEditProperty::samp;
|
||||
nsIAtom * nsIEditProperty::kbd;
|
||||
nsIAtom * nsIEditProperty::var;
|
||||
nsIAtom * nsIEditProperty::cite;
|
||||
nsIAtom * nsIEditProperty::abbr;
|
||||
nsIAtom * nsIEditProperty::acronym;
|
||||
nsIAtom * nsIEditProperty::font;
|
||||
nsIAtom * nsIEditProperty::a;
|
||||
nsIAtom * nsIEditProperty::img;
|
||||
nsIAtom * nsIEditProperty::object;
|
||||
nsIAtom * nsIEditProperty::br;
|
||||
nsIAtom * nsIEditProperty::script;
|
||||
nsIAtom * nsIEditProperty::map;
|
||||
nsIAtom * nsIEditProperty::q;
|
||||
nsIAtom * nsIEditProperty::span;
|
||||
nsIAtom * nsIEditProperty::bdo;
|
||||
nsIAtom * nsIEditProperty::input;
|
||||
nsIAtom * nsIEditProperty::select;
|
||||
nsIAtom * nsIEditProperty::textarea;
|
||||
nsIAtom * nsIEditProperty::label;
|
||||
nsIAtom * nsIEditProperty::button;
|
||||
nsIAtom * nsIEditProperty::p;
|
||||
nsIAtom * nsIEditProperty::div;
|
||||
nsIAtom * nsIEditProperty::blockquote;
|
||||
nsIAtom * nsIEditProperty::h1;
|
||||
nsIAtom * nsIEditProperty::h2;
|
||||
nsIAtom * nsIEditProperty::h3;
|
||||
nsIAtom * nsIEditProperty::h4;
|
||||
nsIAtom * nsIEditProperty::h5;
|
||||
nsIAtom * nsIEditProperty::h6;
|
||||
nsIAtom * nsIEditProperty::ul;
|
||||
nsIAtom * nsIEditProperty::ol;
|
||||
nsIAtom * nsIEditProperty::dl;
|
||||
nsIAtom * nsIEditProperty::pre;
|
||||
nsIAtom * nsIEditProperty::noscript;
|
||||
nsIAtom * nsIEditProperty::form;
|
||||
nsIAtom * nsIEditProperty::hr;
|
||||
nsIAtom * nsIEditProperty::table;
|
||||
nsIAtom * nsIEditProperty::fieldset;
|
||||
nsIAtom * nsIEditProperty::address;
|
||||
nsIAtom * nsIEditProperty::body;
|
||||
nsIAtom * nsIEditProperty::tr;
|
||||
nsIAtom * nsIEditProperty::td;
|
||||
nsIAtom * nsIEditProperty::th;
|
||||
nsIAtom * nsIEditProperty::caption;
|
||||
nsIAtom * nsIEditProperty::col;
|
||||
nsIAtom * nsIEditProperty::colgroup;
|
||||
nsIAtom * nsIEditProperty::thead;
|
||||
nsIAtom * nsIEditProperty::tfoot;
|
||||
nsIAtom * nsIEditProperty::li;
|
||||
nsIAtom * nsIEditProperty::dt;
|
||||
nsIAtom * nsIEditProperty::dd;
|
||||
nsIAtom * nsIEditProperty::legend;
|
||||
nsIAtom * nsIEditProperty::color;
|
||||
nsIAtom * nsIEditProperty::face;
|
||||
nsIAtom * nsIEditProperty::size;
|
||||
|
||||
// special
|
||||
nsString * nsIEditProperty::allProperties;
|
||||
|
||||
/* From the HTML 4.0 DTD,
|
||||
|
||||
INLINE:
|
||||
<!-- %inline; covers inline or "text-level" elements -->
|
||||
<!ENTITY % inline "#PCDATA | %fontstyle; | %phrase; | %special; | %formctrl;">
|
||||
<!ENTITY % fontstyle "TT | I | B | BIG | SMALL">
|
||||
<!ENTITY % phrase "EM | STRONG | DFN | CODE |
|
||||
SAMP | KBD | VAR | CITE | ABBR | ACRONYM" >
|
||||
<!ENTITY % special
|
||||
"A | IMG | OBJECT | BR | SCRIPT | MAP | Q | SUB | SUP | SPAN | BDO">
|
||||
<!ENTITY % formctrl "INPUT | SELECT | TEXTAREA | LABEL | BUTTON">
|
||||
|
||||
BLOCK:
|
||||
<!ENTITY % block
|
||||
"P | %heading (h1-h6); | %list (UL | OL); | %preformatted (PRE); | DL | DIV | NOSCRIPT |
|
||||
BLOCKQUOTE | FORM | HR | TABLE | FIELDSET | ADDRESS">
|
||||
|
||||
But what about BODY, TR, TD, TH, CAPTION, COL, COLGROUP, THEAD, TFOOT, LI, DT, DD, LEGEND, etc.?
|
||||
|
||||
|
||||
*/
|
||||
nsEditProperty::nsEditProperty()
|
||||
{
|
||||
NS_INIT_REFCNT();
|
||||
// tags
|
||||
nsIEditProperty::a = NS_NewAtom("a");
|
||||
nsIEditProperty::b = NS_NewAtom("b");
|
||||
nsIEditProperty::big = NS_NewAtom("big");
|
||||
nsIEditProperty::font = NS_NewAtom("font");
|
||||
nsIEditProperty::i = NS_NewAtom("i");
|
||||
nsIEditProperty::i = NS_NewAtom("img");
|
||||
nsIEditProperty::span = NS_NewAtom("span");
|
||||
nsIEditProperty::small =NS_NewAtom("small");
|
||||
nsIEditProperty::strike=NS_NewAtom("strike");
|
||||
nsIEditProperty::sub = NS_NewAtom("sub");
|
||||
nsIEditProperty::sup = NS_NewAtom("sup");
|
||||
nsIEditProperty::tt = NS_NewAtom("tt");
|
||||
nsIEditProperty::u = NS_NewAtom("u");
|
||||
// tags
|
||||
// inline tags
|
||||
nsIEditProperty::b = NS_NewAtom("b");
|
||||
nsIEditProperty::big = NS_NewAtom("big");
|
||||
nsIEditProperty::i = NS_NewAtom("i");
|
||||
nsIEditProperty::small = NS_NewAtom("small");
|
||||
nsIEditProperty::strike = NS_NewAtom("strike");
|
||||
nsIEditProperty::sub = NS_NewAtom("sub");
|
||||
nsIEditProperty::sup = NS_NewAtom("sup");
|
||||
nsIEditProperty::tt = NS_NewAtom("tt");
|
||||
nsIEditProperty::u = NS_NewAtom("u");
|
||||
nsIEditProperty::em = NS_NewAtom("em");
|
||||
nsIEditProperty::strong = NS_NewAtom("strong");
|
||||
nsIEditProperty::dfn = NS_NewAtom("dfn");
|
||||
nsIEditProperty::code = NS_NewAtom("code");
|
||||
nsIEditProperty::samp = NS_NewAtom("samp");
|
||||
nsIEditProperty::kbd = NS_NewAtom("kbd");
|
||||
nsIEditProperty::var = NS_NewAtom("var");
|
||||
nsIEditProperty::cite = NS_NewAtom("cite");
|
||||
nsIEditProperty::abbr = NS_NewAtom("abbr");
|
||||
nsIEditProperty::acronym = NS_NewAtom("acronym");
|
||||
nsIEditProperty::font = NS_NewAtom("font");
|
||||
nsIEditProperty::a = NS_NewAtom("a");
|
||||
nsIEditProperty::img = NS_NewAtom("img");
|
||||
nsIEditProperty::object = NS_NewAtom("object");
|
||||
nsIEditProperty::br = NS_NewAtom("br");
|
||||
nsIEditProperty::script = NS_NewAtom("script");
|
||||
nsIEditProperty::map = NS_NewAtom("map");
|
||||
nsIEditProperty::q = NS_NewAtom("q");
|
||||
nsIEditProperty::span = NS_NewAtom("span");
|
||||
nsIEditProperty::bdo = NS_NewAtom("bdo");
|
||||
nsIEditProperty::input = NS_NewAtom("input");
|
||||
nsIEditProperty::select = NS_NewAtom("select");
|
||||
nsIEditProperty::textarea = NS_NewAtom("textarea");
|
||||
nsIEditProperty::label = NS_NewAtom("label");
|
||||
nsIEditProperty::button = NS_NewAtom("button");
|
||||
// block tags
|
||||
nsIEditProperty::p = NS_NewAtom("p");
|
||||
nsIEditProperty::div = NS_NewAtom("div");
|
||||
nsIEditProperty::blockquote = NS_NewAtom("blockquote");
|
||||
nsIEditProperty::br = NS_NewAtom("br");
|
||||
nsIEditProperty::h1 = NS_NewAtom("h1");
|
||||
nsIEditProperty::h2 = NS_NewAtom("h2");
|
||||
nsIEditProperty::h1 = NS_NewAtom("h1");
|
||||
nsIEditProperty::h2 = NS_NewAtom("h2");
|
||||
nsIEditProperty::h3 = NS_NewAtom("h3");
|
||||
nsIEditProperty::h4 = NS_NewAtom("h4");
|
||||
nsIEditProperty::h5 = NS_NewAtom("h5");
|
||||
nsIEditProperty::h6 = NS_NewAtom("h6");
|
||||
nsIEditProperty::ul = NS_NewAtom("ul");
|
||||
nsIEditProperty::ol = NS_NewAtom("ol");
|
||||
nsIEditProperty::dl = NS_NewAtom("dl");
|
||||
nsIEditProperty::pre = NS_NewAtom("pre");
|
||||
nsIEditProperty::noscript = NS_NewAtom("noscript");
|
||||
nsIEditProperty::form = NS_NewAtom("form");
|
||||
nsIEditProperty::hr = NS_NewAtom("hr");
|
||||
nsIEditProperty::table = NS_NewAtom("table");
|
||||
nsIEditProperty::fieldset = NS_NewAtom("fieldset");
|
||||
nsIEditProperty::address = NS_NewAtom("address");
|
||||
// Unclear from
|
||||
// DTD, block?
|
||||
nsIEditProperty::body = NS_NewAtom("body");
|
||||
nsIEditProperty::tr = NS_NewAtom("tr");
|
||||
nsIEditProperty::td = NS_NewAtom("td");
|
||||
nsIEditProperty::th = NS_NewAtom("th");
|
||||
nsIEditProperty::caption = NS_NewAtom("caption");
|
||||
nsIEditProperty::col = NS_NewAtom("col");
|
||||
nsIEditProperty::colgroup = NS_NewAtom("colgroup");
|
||||
nsIEditProperty::thead = NS_NewAtom("thead");
|
||||
nsIEditProperty::tfoot = NS_NewAtom("tfoot");
|
||||
nsIEditProperty::li = NS_NewAtom("li");
|
||||
nsIEditProperty::dt = NS_NewAtom("dt");
|
||||
nsIEditProperty::dd = NS_NewAtom("dd");
|
||||
nsIEditProperty::legend = NS_NewAtom("legend");
|
||||
// inline
|
||||
// properties
|
||||
nsIEditProperty::color= NS_NewAtom("color");
|
||||
nsIEditProperty::face = NS_NewAtom("face");
|
||||
nsIEditProperty::size = NS_NewAtom("size");
|
||||
nsIEditProperty::color = NS_NewAtom("color");
|
||||
nsIEditProperty::face = NS_NewAtom("face");
|
||||
nsIEditProperty::size = NS_NewAtom("size");
|
||||
|
||||
|
||||
// special
|
||||
nsIEditProperty::allProperties = new nsString("moz_allproperties");
|
||||
}
|
||||
|
||||
nsEditProperty::~nsEditProperty()
|
||||
{
|
||||
// tags
|
||||
NS_IF_RELEASE(nsIEditProperty::a);
|
||||
NS_IF_RELEASE(nsIEditProperty::b);
|
||||
NS_IF_RELEASE(nsIEditProperty::big);
|
||||
NS_IF_RELEASE(nsIEditProperty::font);
|
||||
NS_IF_RELEASE(nsIEditProperty::i);
|
||||
NS_IF_RELEASE(nsIEditProperty::img);
|
||||
NS_IF_RELEASE(nsIEditProperty::span);
|
||||
NS_IF_RELEASE(nsIEditProperty::small);
|
||||
NS_IF_RELEASE(nsIEditProperty::strike);
|
||||
NS_IF_RELEASE(nsIEditProperty::sub);
|
||||
NS_IF_RELEASE(nsIEditProperty::sup);
|
||||
NS_IF_RELEASE(nsIEditProperty::tt);
|
||||
NS_IF_RELEASE(nsIEditProperty::u);
|
||||
// tags
|
||||
NS_IF_RELEASE(nsIEditProperty::blockquote);
|
||||
NS_IF_RELEASE(nsIEditProperty::br);
|
||||
NS_IF_RELEASE(nsIEditProperty::h1);
|
||||
NS_IF_RELEASE(nsIEditProperty::h2);
|
||||
// properties
|
||||
NS_IF_RELEASE(nsIEditProperty::color);
|
||||
NS_IF_RELEASE(nsIEditProperty::face);
|
||||
NS_IF_RELEASE(nsIEditProperty::size);
|
||||
NS_IF_RELEASE(nsIEditProperty::b);
|
||||
NS_IF_RELEASE(nsIEditProperty::big);
|
||||
NS_IF_RELEASE(nsIEditProperty::i);
|
||||
NS_IF_RELEASE(nsIEditProperty::small);
|
||||
NS_IF_RELEASE(nsIEditProperty::strike);
|
||||
NS_IF_RELEASE(nsIEditProperty::sub);
|
||||
NS_IF_RELEASE(nsIEditProperty::sup);
|
||||
NS_IF_RELEASE(nsIEditProperty::tt);
|
||||
NS_IF_RELEASE(nsIEditProperty::u);
|
||||
NS_IF_RELEASE(nsIEditProperty::em);
|
||||
NS_IF_RELEASE(nsIEditProperty::strong);
|
||||
NS_IF_RELEASE(nsIEditProperty::dfn);
|
||||
NS_IF_RELEASE(nsIEditProperty::code);
|
||||
NS_IF_RELEASE(nsIEditProperty::samp);
|
||||
NS_IF_RELEASE(nsIEditProperty::kbd);
|
||||
NS_IF_RELEASE(nsIEditProperty::var);
|
||||
NS_IF_RELEASE(nsIEditProperty::cite);
|
||||
NS_IF_RELEASE(nsIEditProperty::abbr);
|
||||
NS_IF_RELEASE(nsIEditProperty::acronym);
|
||||
NS_IF_RELEASE(nsIEditProperty::font);
|
||||
NS_IF_RELEASE(nsIEditProperty::a);
|
||||
NS_IF_RELEASE(nsIEditProperty::img);
|
||||
NS_IF_RELEASE(nsIEditProperty::object);
|
||||
NS_IF_RELEASE(nsIEditProperty::br);
|
||||
NS_IF_RELEASE(nsIEditProperty::script);
|
||||
NS_IF_RELEASE(nsIEditProperty::map);
|
||||
NS_IF_RELEASE(nsIEditProperty::q);
|
||||
NS_IF_RELEASE(nsIEditProperty::span);
|
||||
NS_IF_RELEASE(nsIEditProperty::bdo);
|
||||
NS_IF_RELEASE(nsIEditProperty::input);
|
||||
NS_IF_RELEASE(nsIEditProperty::select);
|
||||
NS_IF_RELEASE(nsIEditProperty::textarea);
|
||||
NS_IF_RELEASE(nsIEditProperty::label);
|
||||
NS_IF_RELEASE(nsIEditProperty::button);
|
||||
NS_IF_RELEASE(nsIEditProperty::p);
|
||||
NS_IF_RELEASE(nsIEditProperty::div);
|
||||
NS_IF_RELEASE(nsIEditProperty::blockquote);
|
||||
NS_IF_RELEASE(nsIEditProperty::h1);
|
||||
NS_IF_RELEASE(nsIEditProperty::h2);
|
||||
NS_IF_RELEASE(nsIEditProperty::h3);
|
||||
NS_IF_RELEASE(nsIEditProperty::h4);
|
||||
NS_IF_RELEASE(nsIEditProperty::h5);
|
||||
NS_IF_RELEASE(nsIEditProperty::h6);
|
||||
NS_IF_RELEASE(nsIEditProperty::ul);
|
||||
NS_IF_RELEASE(nsIEditProperty::ol);
|
||||
NS_IF_RELEASE(nsIEditProperty::dl);
|
||||
NS_IF_RELEASE(nsIEditProperty::pre);
|
||||
NS_IF_RELEASE(nsIEditProperty::noscript);
|
||||
NS_IF_RELEASE(nsIEditProperty::form);
|
||||
NS_IF_RELEASE(nsIEditProperty::hr);
|
||||
NS_IF_RELEASE(nsIEditProperty::table);
|
||||
NS_IF_RELEASE(nsIEditProperty::fieldset);
|
||||
NS_IF_RELEASE(nsIEditProperty::address);
|
||||
NS_IF_RELEASE(nsIEditProperty::body);
|
||||
NS_IF_RELEASE(nsIEditProperty::tr);
|
||||
NS_IF_RELEASE(nsIEditProperty::td);
|
||||
NS_IF_RELEASE(nsIEditProperty::th);
|
||||
NS_IF_RELEASE(nsIEditProperty::caption);
|
||||
NS_IF_RELEASE(nsIEditProperty::col);
|
||||
NS_IF_RELEASE(nsIEditProperty::colgroup);
|
||||
NS_IF_RELEASE(nsIEditProperty::thead);
|
||||
NS_IF_RELEASE(nsIEditProperty::tfoot);
|
||||
NS_IF_RELEASE(nsIEditProperty::li);
|
||||
NS_IF_RELEASE(nsIEditProperty::dt);
|
||||
NS_IF_RELEASE(nsIEditProperty::dd);
|
||||
NS_IF_RELEASE(nsIEditProperty::legend);
|
||||
NS_IF_RELEASE(nsIEditProperty::color);
|
||||
NS_IF_RELEASE(nsIEditProperty::face);
|
||||
NS_IF_RELEASE(nsIEditProperty::size);
|
||||
|
||||
// special
|
||||
if (nsIEditProperty::allProperties) {
|
||||
delete (nsIEditProperty::allProperties);
|
||||
|
Loading…
Reference in New Issue
Block a user