Add a SetAttribute method to nsIContent that takes a nsINodeInfo parameter.

This commit is contained in:
jst%netscape.com 2000-05-12 13:46:59 +00:00
Родитель f74f4da535
Коммит f0dce37b28
31 изменённых файлов: 416 добавлений и 4 удалений

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

@ -40,6 +40,7 @@ class nsIContent;
class nsISupportsArray; class nsISupportsArray;
class nsIDOMRange; class nsIDOMRange;
class nsISizeOfHandler; class nsISizeOfHandler;
class nsINodeInfo;
// IID for the nsIContent interface // IID for the nsIContent interface
#define NS_ICONTENT_IID \ #define NS_ICONTENT_IID \
@ -136,6 +137,23 @@ public:
const nsString& aValue, const nsString& aValue,
PRBool aNotify) = 0; PRBool aNotify) = 0;
/**
* Set attribute values. All attribute values are assumed to have a
* canonical string representation that can be used for these
* methods. The setAttribute method is assumed to perform a translation
* of the canonical form into the underlying content specific
* form.
*
* @param aNodeInfo the node info (name, prefix, namespace id) of the
* attribute
* @param aValue may legitimately be the empty string.
*
* @param aNotify specifies whether or not the document should be
* notified of the attribute change.
*/
NS_IMETHOD SetAttribute(nsINodeInfo* aNodeInfo, const nsString& aValue,
PRBool aNotify) = 0;
/** /**
* Get the current value of the attribute. This returns a form that is * Get the current value of the attribute. This returns a form that is
* suitable for passing back into setAttribute. * suitable for passing back into setAttribute.

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

@ -124,6 +124,10 @@ public:
const nsString& aValue, PRBool aNotify) { const nsString& aValue, PRBool aNotify) {
return mInner.SetAttribute(aNameSpaceID, aAttribute, aValue, aNotify); return mInner.SetAttribute(aNameSpaceID, aAttribute, aValue, aNotify);
} }
NS_IMETHOD SetAttribute(nsINodeInfo* aNodeInfo,
const nsString& aValue, PRBool aNotify) {
return mInner.SetAttribute(aNodeInfo, aValue, aNotify);
}
NS_IMETHOD UnsetAttribute(PRInt32 aNameSpaceID, nsIAtom* aAttribute, NS_IMETHOD UnsetAttribute(PRInt32 aNameSpaceID, nsIAtom* aAttribute,
PRBool aNotify) { PRBool aNotify) {
return mInner.UnsetAttribute(aNameSpaceID, aAttribute, aNotify); return mInner.UnsetAttribute(aNameSpaceID, aAttribute, aNotify);

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

@ -164,6 +164,10 @@ public:
const nsString& aValue, const nsString& aValue,
PRBool aNotify) PRBool aNotify)
{ return NS_OK; } { return NS_OK; }
NS_IMETHOD SetAttribute(nsINodeInfo* aNodeInfo,
const nsString& aValue,
PRBool aNotify)
{ return NS_OK; }
NS_IMETHOD GetAttribute(PRInt32 aNameSpaceID, nsIAtom* aName, NS_IMETHOD GetAttribute(PRInt32 aNameSpaceID, nsIAtom* aName,
nsString& aResult) const nsString& aResult) const
{ return NS_CONTENT_ATTR_NOT_THERE; } { return NS_CONTENT_ATTR_NOT_THERE; }

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

@ -173,6 +173,10 @@ struct nsGenericDOMDataNode {
PRBool aNotify) { PRBool aNotify) {
return NS_OK; return NS_OK;
} }
nsresult SetAttribute(nsINodeInfo *aNodeInfo, const nsString& aValue,
PRBool aNotify) {
return NS_OK;
}
nsresult UnsetAttribute(PRInt32 aNameSpaceID, nsIAtom* aAttribute, PRBool aNotify) { nsresult UnsetAttribute(PRInt32 aNameSpaceID, nsIAtom* aAttribute, PRBool aNotify) {
return NS_OK; return NS_OK;
} }
@ -490,6 +494,10 @@ struct nsGenericDOMDataNode {
const nsString& aValue, PRBool aNotify) { \ const nsString& aValue, PRBool aNotify) { \
return _g.SetAttribute(aNameSpaceID, aAttribute, aValue, aNotify); \ return _g.SetAttribute(aNameSpaceID, aAttribute, aValue, aNotify); \
} \ } \
NS_IMETHOD SetAttribute(nsINodeInfo* aNodeInfo, \
const nsString& aValue, PRBool aNotify) { \
return _g.SetAttribute(aNodeInfo, aValue, aNotify); \
} \
NS_IMETHOD UnsetAttribute(PRInt32 aNameSpaceID, nsIAtom* aAttribute, \ NS_IMETHOD UnsetAttribute(PRInt32 aNameSpaceID, nsIAtom* aAttribute, \
PRBool aNotify) { \ PRBool aNotify) { \
return _g.UnsetAttribute(aNameSpaceID, aAttribute, aNotify); \ return _g.UnsetAttribute(aNameSpaceID, aAttribute, aNotify); \

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

@ -2300,6 +2300,24 @@ nsGenericContainerElement::SetAttribute(PRInt32 aNameSpaceID, nsIAtom* aName,
return rv; return rv;
} }
nsresult
nsGenericContainerElement::SetAttribute(nsINodeInfo* aNodeInfo,
const nsString& aValue,
PRBool aNotify)
{
NS_ENSURE_ARG_POINTER(aNodeInfo);
nsCOMPtr<nsIAtom> atom;
PRInt32 nsid;
aNodeInfo->GetNameAtom(*getter_AddRefs(atom));
aNodeInfo->GetNamespaceID(nsid);
// We still rely on the old way of setting the attribute.
return SetAttribute(nsid, atom, aValue, aNotify);
}
nsresult nsresult
nsGenericContainerElement::GetAttribute(PRInt32 aNameSpaceID, nsIAtom* aName, nsGenericContainerElement::GetAttribute(PRInt32 aNameSpaceID, nsIAtom* aName,
nsString& aResult) const nsString& aResult) const

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

@ -312,6 +312,8 @@ public:
nsresult SetAttribute(PRInt32 aNameSpaceID, nsIAtom* aName, nsresult SetAttribute(PRInt32 aNameSpaceID, nsIAtom* aName,
const nsString& aValue, const nsString& aValue,
PRBool aNotify); PRBool aNotify);
nsresult SetAttribute(nsINodeInfo* aNodeInfo, const nsString& aValue,
PRBool aNotify);
nsresult GetAttribute(PRInt32 aNameSpaceID, nsIAtom* aName, nsresult GetAttribute(PRInt32 aNameSpaceID, nsIAtom* aName,
nsString& aResult) const; nsString& aResult) const;
nsresult UnsetAttribute(PRInt32 aNameSpaceID, nsIAtom* aAttribute, nsresult UnsetAttribute(PRInt32 aNameSpaceID, nsIAtom* aAttribute,
@ -555,6 +557,10 @@ public:
const nsString& aValue, PRBool aNotify) { \ const nsString& aValue, PRBool aNotify) { \
return _g.SetAttribute(aNameSpaceID, aName, aValue, aNotify); \ return _g.SetAttribute(aNameSpaceID, aName, aValue, aNotify); \
} \ } \
NS_IMETHOD SetAttribute(nsINodeInfo* aNodeInfo, \
const nsString& aValue, PRBool aNotify) { \
return _g.SetAttribute(aNodeInfo, aValue, aNotify); \
} \
NS_IMETHOD GetAttribute(PRInt32 aNameSpaceID, nsIAtom* aName, \ NS_IMETHOD GetAttribute(PRInt32 aNameSpaceID, nsIAtom* aName, \
nsString& aResult) const { \ nsString& aResult) const { \
return _g.GetAttribute(aNameSpaceID, aName, aResult); \ return _g.GetAttribute(aNameSpaceID, aName, aResult); \
@ -670,6 +676,10 @@ public:
const nsString& aValue, PRBool aNotify) { \ const nsString& aValue, PRBool aNotify) { \
return _g.SetAttribute(aNameSpaceID, aName, aValue, aNotify); \ return _g.SetAttribute(aNameSpaceID, aName, aValue, aNotify); \
} \ } \
NS_IMETHOD SetAttribute(nsINodeInfo* aNodeInfo, \
const nsString& aValue, PRBool aNotify) { \
return _g.SetAttribute(aNodeInfo, aValue, aNotify); \
} \
NS_IMETHOD GetAttribute(PRInt32 aNameSpaceID, nsIAtom* aName, \ NS_IMETHOD GetAttribute(PRInt32 aNameSpaceID, nsIAtom* aName, \
nsString& aResult) const { \ nsString& aResult) const { \
return _g.GetAttribute(aNameSpaceID, aName, aResult); \ return _g.GetAttribute(aNameSpaceID, aName, aResult); \
@ -785,6 +795,10 @@ public:
const nsString& aValue, PRBool aNotify) { \ const nsString& aValue, PRBool aNotify) { \
return _g.SetAttribute(aNameSpaceID, aName, aValue, aNotify); \ return _g.SetAttribute(aNameSpaceID, aName, aValue, aNotify); \
} \ } \
NS_IMETHOD SetAttribute(nsINodeInfo* aNodeInfo, \
const nsString& aValue, PRBool aNotify) { \
return _g.SetAttribute(aNodeInfo, aValue, aNotify); \
} \
NS_IMETHOD GetAttribute(PRInt32 aNameSpaceID, nsIAtom* aName, \ NS_IMETHOD GetAttribute(PRInt32 aNameSpaceID, nsIAtom* aName, \
nsString& aResult) const { \ nsString& aResult) const { \
return _g.GetAttribute(aNameSpaceID, aName, aResult); \ return _g.GetAttribute(aNameSpaceID, aName, aResult); \
@ -898,6 +912,10 @@ public:
const nsString& aValue, PRBool aNotify) { \ const nsString& aValue, PRBool aNotify) { \
return _g.SetAttribute(aNameSpaceID, aName, aValue, aNotify); \ return _g.SetAttribute(aNameSpaceID, aName, aValue, aNotify); \
} \ } \
NS_IMETHOD SetAttribute(nsINodeInfo* aNodeInfo, \
const nsString& aValue, PRBool aNotify) { \
return _g.SetAttribute(aNodeInfo, aValue, aNotify); \
} \
NS_IMETHOD GetAttribute(PRInt32 aNameSpaceID, nsIAtom* aName, \ NS_IMETHOD GetAttribute(PRInt32 aNameSpaceID, nsIAtom* aName, \
nsString& aResult) const { \ nsString& aResult) const { \
return _g.GetAttribute(aNameSpaceID, aName, aResult); \ return _g.GetAttribute(aNameSpaceID, aName, aResult); \
@ -1015,6 +1033,10 @@ public:
const nsString& aValue, PRBool aNotify) { \ const nsString& aValue, PRBool aNotify) { \
return _g.SetAttribute(aNameSpaceID, aName, aValue, aNotify); \ return _g.SetAttribute(aNameSpaceID, aName, aValue, aNotify); \
} \ } \
NS_IMETHOD SetAttribute(nsINodeInfo* aNodeInfo, \
const nsString& aValue, PRBool aNotify) { \
return _g.SetAttribute(aNodeInfo, aValue, aNotify); \
} \
NS_IMETHOD GetAttribute(PRInt32 aNameSpaceID, nsIAtom* aName, \ NS_IMETHOD GetAttribute(PRInt32 aNameSpaceID, nsIAtom* aName, \
nsString& aResult) const { \ nsString& aResult) const { \
return _g.GetAttribute(aNameSpaceID, aName, aResult); \ return _g.GetAttribute(aNameSpaceID, aName, aResult); \
@ -1124,6 +1146,10 @@ public:
const nsString& aValue, PRBool aNotify) { \ const nsString& aValue, PRBool aNotify) { \
return _g.SetAttribute(aNameSpaceID, aName, aValue, aNotify); \ return _g.SetAttribute(aNameSpaceID, aName, aValue, aNotify); \
} \ } \
NS_IMETHOD SetAttribute(nsINodeInfo* aNodeInfo, \
const nsString& aValue, PRBool aNotify) { \
return _g.SetAttribute(aNodeInfo, aValue, aNotify); \
} \
NS_IMETHOD GetAttribute(PRInt32 aNameSpaceID, nsIAtom* aName, \ NS_IMETHOD GetAttribute(PRInt32 aNameSpaceID, nsIAtom* aName, \
nsString& aResult) const { \ nsString& aResult) const { \
return _g.GetAttribute(aNameSpaceID, aName, aResult); \ return _g.GetAttribute(aNameSpaceID, aName, aResult); \

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

@ -127,6 +127,8 @@ public:
NS_IMETHOD SetAttribute(PRInt32 aNameSpaceID, nsIAtom* aAttribute, const nsString& aValue, NS_IMETHOD SetAttribute(PRInt32 aNameSpaceID, nsIAtom* aAttribute, const nsString& aValue,
PRBool aNotify) { return NS_OK; } PRBool aNotify) { return NS_OK; }
NS_IMETHOD SetAttribute(nsINodeInfo *aNodeInfo, const nsString& aValue,
PRBool aNotify) { return NS_OK; }
NS_IMETHOD UnsetAttribute(PRInt32 aNameSpaceID, nsIAtom* aAttribute, PRBool aNotify) { return NS_OK; } NS_IMETHOD UnsetAttribute(PRInt32 aNameSpaceID, nsIAtom* aAttribute, PRBool aNotify) { return NS_OK; }
NS_IMETHOD GetAttribute(PRInt32 aNameSpaceID, nsIAtom *aAttribute, nsString &aResult) const {return NS_CONTENT_ATTR_NOT_THERE; } NS_IMETHOD GetAttribute(PRInt32 aNameSpaceID, nsIAtom *aAttribute, nsString &aResult) const {return NS_CONTENT_ATTR_NOT_THERE; }
NS_IMETHOD GetAttributeNameAt(PRInt32 aIndex, PRInt32& aNameSpaceID, nsIAtom*& aName) const { NS_IMETHOD GetAttributeNameAt(PRInt32 aIndex, PRInt32& aNameSpaceID, nsIAtom*& aName) const {

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

@ -1304,6 +1304,24 @@ nsGenericHTMLElement::SetAttribute(PRInt32 aNameSpaceID,
return result; return result;
} }
nsresult
nsGenericHTMLElement::SetAttribute(nsINodeInfo* aNodeInfo,
const nsString& aValue,
PRBool aNotify)
{
NS_ENSURE_ARG_POINTER(aNodeInfo);
nsCOMPtr<nsIAtom> atom;
PRInt32 nsid;
aNodeInfo->GetNameAtom(*getter_AddRefs(atom));
aNodeInfo->GetNamespaceID(nsid);
// We still rely on the old way of setting the attribute.
return SetAttribute(nsid, atom, aValue, aNotify);
}
static PRInt32 GetStyleImpactFrom(const nsHTMLValue& aValue) static PRInt32 GetStyleImpactFrom(const nsHTMLValue& aValue)
{ {
PRInt32 hint = NS_STYLE_HINT_NONE; PRInt32 hint = NS_STYLE_HINT_NONE;
@ -3414,6 +3432,24 @@ nsGenericHTMLContainerFormElement::SetAttribute(PRInt32 aNameSpaceID, nsIAtom* a
return nsGenericHTMLElement::SetAttribute(aNameSpaceID, aName, aValue, aNotify); return nsGenericHTMLElement::SetAttribute(aNameSpaceID, aName, aValue, aNotify);
} }
nsresult
nsGenericHTMLContainerFormElement::SetAttribute(nsINodeInfo* aNodeInfo,
const nsString& aValue,
PRBool aNotify)
{
NS_ENSURE_ARG_POINTER(aNodeInfo);
nsCOMPtr<nsIAtom> atom;
PRInt32 nsid;
aNodeInfo->GetNameAtom(*getter_AddRefs(atom));
aNodeInfo->GetNamespaceID(nsid);
// We still rely on the old way of setting the attribute.
return SetAttribute(nsid, atom, aValue, aNotify);
}
//---------------------------------------------------------------------- //----------------------------------------------------------------------
nsGenericHTMLLeafFormElement::nsGenericHTMLLeafFormElement() nsGenericHTMLLeafFormElement::nsGenericHTMLLeafFormElement()
@ -3446,4 +3482,22 @@ nsGenericHTMLLeafFormElement::SetAttribute(PRInt32 aNameSpaceID, nsIAtom* aName,
return nsGenericHTMLElement::SetAttribute(aNameSpaceID, aName, aValue, aNotify); return nsGenericHTMLElement::SetAttribute(aNameSpaceID, aName, aValue, aNotify);
} }
nsresult
nsGenericHTMLLeafFormElement::SetAttribute(nsINodeInfo* aNodeInfo,
const nsString& aValue,
PRBool aNotify)
{
NS_ENSURE_ARG_POINTER(aNodeInfo);
nsCOMPtr<nsIAtom> atom;
PRInt32 nsid;
aNodeInfo->GetNameAtom(*getter_AddRefs(atom));
aNodeInfo->GetNamespaceID(nsid);
// We still rely on the old way of setting the attribute.
return SetAttribute(nsid, atom, aValue, aNotify);
}
//---------------------------------------------------------------------- //----------------------------------------------------------------------

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

@ -104,6 +104,7 @@ public:
nsIAtom* aOffsetParentTag, nsIAtom* aOffsetParentTag,
nsIContent** aOffsetParent); nsIContent** aOffsetParent);
// Implementation for nsIContent // Implementation for nsIContent
nsresult GetNameSpaceID(PRInt32& aNameSpaceID) const; nsresult GetNameSpaceID(PRInt32& aNameSpaceID) const;
nsresult SetDocument(nsIDocument* aDocument, PRBool aDeep); nsresult SetDocument(nsIDocument* aDocument, PRBool aDeep);
@ -114,6 +115,8 @@ public:
nsIAtom*& aPrefix); nsIAtom*& aPrefix);
nsresult SetAttribute(PRInt32 aNameSpaceID, nsIAtom* aName, const nsString& aValue, nsresult SetAttribute(PRInt32 aNameSpaceID, nsIAtom* aName, const nsString& aValue,
PRBool aNotify); PRBool aNotify);
nsresult SetAttribute(nsINodeInfo* aNodeInfo, const nsString& aValue,
PRBool aNotify);
nsresult GetAttribute(PRInt32 aNameSpaceID, nsIAtom* aName, nsString& aResult) const; nsresult GetAttribute(PRInt32 aNameSpaceID, nsIAtom* aName, nsString& aResult) const;
nsresult UnsetAttribute(PRInt32 aNameSpaceID, nsIAtom* aName, PRBool aNotify); nsresult UnsetAttribute(PRInt32 aNameSpaceID, nsIAtom* aName, PRBool aNotify);
nsresult GetAttributeNameAt(PRInt32 aIndex, nsresult GetAttributeNameAt(PRInt32 aIndex,
@ -460,6 +463,8 @@ public:
nsresult SetForm(nsIForm* aForm); nsresult SetForm(nsIForm* aForm);
nsresult SetAttribute(PRInt32 aNameSpaceID, nsIAtom* aName, const nsString& aValue, nsresult SetAttribute(PRInt32 aNameSpaceID, nsIAtom* aName, const nsString& aValue,
PRBool aNotify); PRBool aNotify);
nsresult SetAttribute(nsINodeInfo* aNodeInfo, const nsString& aValue,
PRBool aNotify);
nsresult SetAttribute(const nsString& aName, const nsString& aValue) nsresult SetAttribute(const nsString& aName, const nsString& aValue)
{ {
return nsGenericHTMLElement::SetAttribute(aName, aValue); return nsGenericHTMLElement::SetAttribute(aName, aValue);
@ -478,6 +483,8 @@ public:
nsresult SetForm(nsIForm* aForm); nsresult SetForm(nsIForm* aForm);
nsresult SetAttribute(PRInt32 aNameSpaceID, nsIAtom* aName, const nsString& aValue, nsresult SetAttribute(PRInt32 aNameSpaceID, nsIAtom* aName, const nsString& aValue,
PRBool aNotify); PRBool aNotify);
nsresult SetAttribute(nsINodeInfo* aNodeInfo, const nsString& aValue,
PRBool aNotify);
nsresult SetAttribute(const nsString& aName, const nsString& aValue) nsresult SetAttribute(const nsString& aName, const nsString& aValue)
{ {
return nsGenericHTMLElement::SetAttribute(aName, aValue); return nsGenericHTMLElement::SetAttribute(aName, aValue);

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

@ -125,6 +125,10 @@ public:
const nsString& aValue, PRBool aNotify) { const nsString& aValue, PRBool aNotify) {
return mInner.SetAttribute(aNameSpaceID, aName, aValue, aNotify); return mInner.SetAttribute(aNameSpaceID, aName, aValue, aNotify);
} }
NS_IMETHOD SetAttribute(nsINodeInfo* aNodeInfo,
const nsString& aValue, PRBool aNotify) {
return mInner.SetAttribute(aNodeInfo, aValue, aNotify);
}
NS_IMETHOD GetAttribute(PRInt32 aNameSpaceID, nsIAtom* aName, NS_IMETHOD GetAttribute(PRInt32 aNameSpaceID, nsIAtom* aName,
nsString& aResult) const { nsString& aResult) const {
return mInner.GetAttribute(aNameSpaceID, aName, aResult); return mInner.GetAttribute(aNameSpaceID, aName, aResult);

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

@ -122,6 +122,8 @@ public:
} }
NS_IMETHOD SetAttribute(PRInt32 aNameSpaceID, nsIAtom* aName, NS_IMETHOD SetAttribute(PRInt32 aNameSpaceID, nsIAtom* aName,
const nsString& aValue, PRBool aNotify); const nsString& aValue, PRBool aNotify);
NS_IMETHOD SetAttribute(nsINodeInfo* aNodeInfo,
const nsString& aValue, PRBool aNotify);
NS_IMETHOD GetAttribute(PRInt32 aNameSpaceID, nsIAtom* aName, NS_IMETHOD GetAttribute(PRInt32 aNameSpaceID, nsIAtom* aName,
nsString& aResult) const { nsString& aResult) const {
return mInner.GetAttribute(aNameSpaceID, aName, aResult); return mInner.GetAttribute(aNameSpaceID, aName, aResult);
@ -426,6 +428,24 @@ nsHTMLUnknownElement::SetAttribute(PRInt32 aNameSpaceID,
return result; return result;
} }
NS_IMETHODIMP
nsHTMLUnknownElement::SetAttribute(nsINodeInfo *aNodeInfo,
const nsString& aValue,
PRBool aNotify)
{
NS_ENSURE_ARG_POINTER(aNodeInfo);
nsCOMPtr<nsIAtom> atom;
PRInt32 nsid;
aNodeInfo->GetNameAtom(*getter_AddRefs(atom));
aNodeInfo->GetNamespaceID(nsid);
// We still rely on the old way of setting the attribute.
return SetAttribute(nsid, atom, aValue, aNotify);
}
NS_IMETHODIMP NS_IMETHODIMP
nsHTMLUnknownElement::HandleDOMEvent(nsIPresContext* aPresContext, nsHTMLUnknownElement::HandleDOMEvent(nsIPresContext* aPresContext,
nsEvent* aEvent, nsEvent* aEvent,

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

@ -240,6 +240,23 @@ nsXMLElement::SetAttribute(PRInt32 aNameSpaceID, nsIAtom* aName,
return mInner.SetAttribute(aNameSpaceID, aName, aValue, aNotify); return mInner.SetAttribute(aNameSpaceID, aName, aValue, aNotify);
} }
NS_IMETHODIMP
nsXMLElement::SetAttribute(nsINodeInfo *aNodeInfo, const nsString& aValue,
PRBool aNotify)
{
NS_ENSURE_ARG_POINTER(aNodeInfo);
nsCOMPtr<nsIAtom> atom;
PRInt32 nsid;
aNodeInfo->GetNameAtom(*getter_AddRefs(atom));
aNodeInfo->GetNamespaceID(nsid);
// We still rely on the old way of setting the attribute.
return SetAttribute(nsid, atom, aValue, aNotify);
}
static nsresult WebShellToPresContext(nsIWebShell *aShell, nsIPresContext **aPresContext) static nsresult WebShellToPresContext(nsIWebShell *aShell, nsIPresContext **aPresContext)
{ {
*aPresContext = nsnull; *aPresContext = nsnull;

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

@ -118,6 +118,8 @@ public:
} }
NS_IMETHOD SetAttribute(PRInt32 aNameSpaceID, nsIAtom* aName, const nsString& aValue, NS_IMETHOD SetAttribute(PRInt32 aNameSpaceID, nsIAtom* aName, const nsString& aValue,
PRBool aNotify); PRBool aNotify);
NS_IMETHOD SetAttribute(nsINodeInfo *aNodeInfo, const nsString& aValue,
PRBool aNotify);
NS_IMETHOD GetAttribute(PRInt32 aNameSpaceID, nsIAtom* aName, NS_IMETHOD GetAttribute(PRInt32 aNameSpaceID, nsIAtom* aName,
nsString& aResult) const { nsString& aResult) const {
return mInner.GetAttribute(aNameSpaceID, aName, aResult); return mInner.GetAttribute(aNameSpaceID, aName, aResult);

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

@ -2867,6 +2867,24 @@ nsXULElement::SetAttribute(PRInt32 aNameSpaceID,
return rv; return rv;
} }
NS_IMETHODIMP
nsXULElement::SetAttribute(nsINodeInfo* aNodeInfo,
const nsString& aValue,
PRBool aNotify)
{
NS_ENSURE_ARG_POINTER(aNodeInfo);
nsCOMPtr<nsIAtom> atom;
PRInt32 nsid;
aNodeInfo->GetNameAtom(*getter_AddRefs(atom));
aNodeInfo->GetNamespaceID(nsid);
// We still rely on the old way of setting the attribute.
return SetAttribute(nsid, atom, aValue, aNotify);
}
NS_IMETHODIMP NS_IMETHODIMP
nsXULElement::GetAttribute(PRInt32 aNameSpaceID, nsXULElement::GetAttribute(PRInt32 aNameSpaceID,
nsIAtom* aName, nsIAtom* aName,

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

@ -395,6 +395,7 @@ public:
NS_IMETHOD ParseAttributeString(const nsString& aStr, nsIAtom*& aName, PRInt32& aNameSpaceID); NS_IMETHOD ParseAttributeString(const nsString& aStr, nsIAtom*& aName, PRInt32& aNameSpaceID);
NS_IMETHOD GetNameSpacePrefixFromId(PRInt32 aNameSpaceID, nsIAtom*& aPrefix); NS_IMETHOD GetNameSpacePrefixFromId(PRInt32 aNameSpaceID, nsIAtom*& aPrefix);
NS_IMETHOD SetAttribute(PRInt32 aNameSpaceID, nsIAtom* aName, const nsString& aValue, PRBool aNotify); NS_IMETHOD SetAttribute(PRInt32 aNameSpaceID, nsIAtom* aName, const nsString& aValue, PRBool aNotify);
NS_IMETHOD SetAttribute(nsINodeInfo *aNodeInfo, const nsString& aValue, PRBool aNotify);
NS_IMETHOD GetAttribute(PRInt32 aNameSpaceID, nsIAtom* aName, nsString& aResult) const; NS_IMETHOD GetAttribute(PRInt32 aNameSpaceID, nsIAtom* aName, nsString& aResult) const;
NS_IMETHOD UnsetAttribute(PRInt32 aNameSpaceID, nsIAtom* aName, PRBool aNotify); NS_IMETHOD UnsetAttribute(PRInt32 aNameSpaceID, nsIAtom* aName, PRBool aNotify);
NS_IMETHOD GetAttributeNameAt(PRInt32 aIndex, PRInt32& aNameSpaceID, NS_IMETHOD GetAttributeNameAt(PRInt32 aIndex, PRInt32& aNameSpaceID,

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

@ -40,6 +40,7 @@ class nsIContent;
class nsISupportsArray; class nsISupportsArray;
class nsIDOMRange; class nsIDOMRange;
class nsISizeOfHandler; class nsISizeOfHandler;
class nsINodeInfo;
// IID for the nsIContent interface // IID for the nsIContent interface
#define NS_ICONTENT_IID \ #define NS_ICONTENT_IID \
@ -136,6 +137,23 @@ public:
const nsString& aValue, const nsString& aValue,
PRBool aNotify) = 0; PRBool aNotify) = 0;
/**
* Set attribute values. All attribute values are assumed to have a
* canonical string representation that can be used for these
* methods. The setAttribute method is assumed to perform a translation
* of the canonical form into the underlying content specific
* form.
*
* @param aNodeInfo the node info (name, prefix, namespace id) of the
* attribute
* @param aValue may legitimately be the empty string.
*
* @param aNotify specifies whether or not the document should be
* notified of the attribute change.
*/
NS_IMETHOD SetAttribute(nsINodeInfo* aNodeInfo, const nsString& aValue,
PRBool aNotify) = 0;
/** /**
* Get the current value of the attribute. This returns a form that is * Get the current value of the attribute. This returns a form that is
* suitable for passing back into setAttribute. * suitable for passing back into setAttribute.

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

@ -124,6 +124,10 @@ public:
const nsString& aValue, PRBool aNotify) { const nsString& aValue, PRBool aNotify) {
return mInner.SetAttribute(aNameSpaceID, aAttribute, aValue, aNotify); return mInner.SetAttribute(aNameSpaceID, aAttribute, aValue, aNotify);
} }
NS_IMETHOD SetAttribute(nsINodeInfo* aNodeInfo,
const nsString& aValue, PRBool aNotify) {
return mInner.SetAttribute(aNodeInfo, aValue, aNotify);
}
NS_IMETHOD UnsetAttribute(PRInt32 aNameSpaceID, nsIAtom* aAttribute, NS_IMETHOD UnsetAttribute(PRInt32 aNameSpaceID, nsIAtom* aAttribute,
PRBool aNotify) { PRBool aNotify) {
return mInner.UnsetAttribute(aNameSpaceID, aAttribute, aNotify); return mInner.UnsetAttribute(aNameSpaceID, aAttribute, aNotify);

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

@ -164,6 +164,10 @@ public:
const nsString& aValue, const nsString& aValue,
PRBool aNotify) PRBool aNotify)
{ return NS_OK; } { return NS_OK; }
NS_IMETHOD SetAttribute(nsINodeInfo* aNodeInfo,
const nsString& aValue,
PRBool aNotify)
{ return NS_OK; }
NS_IMETHOD GetAttribute(PRInt32 aNameSpaceID, nsIAtom* aName, NS_IMETHOD GetAttribute(PRInt32 aNameSpaceID, nsIAtom* aName,
nsString& aResult) const nsString& aResult) const
{ return NS_CONTENT_ATTR_NOT_THERE; } { return NS_CONTENT_ATTR_NOT_THERE; }

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

@ -173,6 +173,10 @@ struct nsGenericDOMDataNode {
PRBool aNotify) { PRBool aNotify) {
return NS_OK; return NS_OK;
} }
nsresult SetAttribute(nsINodeInfo *aNodeInfo, const nsString& aValue,
PRBool aNotify) {
return NS_OK;
}
nsresult UnsetAttribute(PRInt32 aNameSpaceID, nsIAtom* aAttribute, PRBool aNotify) { nsresult UnsetAttribute(PRInt32 aNameSpaceID, nsIAtom* aAttribute, PRBool aNotify) {
return NS_OK; return NS_OK;
} }
@ -490,6 +494,10 @@ struct nsGenericDOMDataNode {
const nsString& aValue, PRBool aNotify) { \ const nsString& aValue, PRBool aNotify) { \
return _g.SetAttribute(aNameSpaceID, aAttribute, aValue, aNotify); \ return _g.SetAttribute(aNameSpaceID, aAttribute, aValue, aNotify); \
} \ } \
NS_IMETHOD SetAttribute(nsINodeInfo* aNodeInfo, \
const nsString& aValue, PRBool aNotify) { \
return _g.SetAttribute(aNodeInfo, aValue, aNotify); \
} \
NS_IMETHOD UnsetAttribute(PRInt32 aNameSpaceID, nsIAtom* aAttribute, \ NS_IMETHOD UnsetAttribute(PRInt32 aNameSpaceID, nsIAtom* aAttribute, \
PRBool aNotify) { \ PRBool aNotify) { \
return _g.UnsetAttribute(aNameSpaceID, aAttribute, aNotify); \ return _g.UnsetAttribute(aNameSpaceID, aAttribute, aNotify); \

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

@ -2300,6 +2300,24 @@ nsGenericContainerElement::SetAttribute(PRInt32 aNameSpaceID, nsIAtom* aName,
return rv; return rv;
} }
nsresult
nsGenericContainerElement::SetAttribute(nsINodeInfo* aNodeInfo,
const nsString& aValue,
PRBool aNotify)
{
NS_ENSURE_ARG_POINTER(aNodeInfo);
nsCOMPtr<nsIAtom> atom;
PRInt32 nsid;
aNodeInfo->GetNameAtom(*getter_AddRefs(atom));
aNodeInfo->GetNamespaceID(nsid);
// We still rely on the old way of setting the attribute.
return SetAttribute(nsid, atom, aValue, aNotify);
}
nsresult nsresult
nsGenericContainerElement::GetAttribute(PRInt32 aNameSpaceID, nsIAtom* aName, nsGenericContainerElement::GetAttribute(PRInt32 aNameSpaceID, nsIAtom* aName,
nsString& aResult) const nsString& aResult) const

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

@ -312,6 +312,8 @@ public:
nsresult SetAttribute(PRInt32 aNameSpaceID, nsIAtom* aName, nsresult SetAttribute(PRInt32 aNameSpaceID, nsIAtom* aName,
const nsString& aValue, const nsString& aValue,
PRBool aNotify); PRBool aNotify);
nsresult SetAttribute(nsINodeInfo* aNodeInfo, const nsString& aValue,
PRBool aNotify);
nsresult GetAttribute(PRInt32 aNameSpaceID, nsIAtom* aName, nsresult GetAttribute(PRInt32 aNameSpaceID, nsIAtom* aName,
nsString& aResult) const; nsString& aResult) const;
nsresult UnsetAttribute(PRInt32 aNameSpaceID, nsIAtom* aAttribute, nsresult UnsetAttribute(PRInt32 aNameSpaceID, nsIAtom* aAttribute,
@ -555,6 +557,10 @@ public:
const nsString& aValue, PRBool aNotify) { \ const nsString& aValue, PRBool aNotify) { \
return _g.SetAttribute(aNameSpaceID, aName, aValue, aNotify); \ return _g.SetAttribute(aNameSpaceID, aName, aValue, aNotify); \
} \ } \
NS_IMETHOD SetAttribute(nsINodeInfo* aNodeInfo, \
const nsString& aValue, PRBool aNotify) { \
return _g.SetAttribute(aNodeInfo, aValue, aNotify); \
} \
NS_IMETHOD GetAttribute(PRInt32 aNameSpaceID, nsIAtom* aName, \ NS_IMETHOD GetAttribute(PRInt32 aNameSpaceID, nsIAtom* aName, \
nsString& aResult) const { \ nsString& aResult) const { \
return _g.GetAttribute(aNameSpaceID, aName, aResult); \ return _g.GetAttribute(aNameSpaceID, aName, aResult); \
@ -670,6 +676,10 @@ public:
const nsString& aValue, PRBool aNotify) { \ const nsString& aValue, PRBool aNotify) { \
return _g.SetAttribute(aNameSpaceID, aName, aValue, aNotify); \ return _g.SetAttribute(aNameSpaceID, aName, aValue, aNotify); \
} \ } \
NS_IMETHOD SetAttribute(nsINodeInfo* aNodeInfo, \
const nsString& aValue, PRBool aNotify) { \
return _g.SetAttribute(aNodeInfo, aValue, aNotify); \
} \
NS_IMETHOD GetAttribute(PRInt32 aNameSpaceID, nsIAtom* aName, \ NS_IMETHOD GetAttribute(PRInt32 aNameSpaceID, nsIAtom* aName, \
nsString& aResult) const { \ nsString& aResult) const { \
return _g.GetAttribute(aNameSpaceID, aName, aResult); \ return _g.GetAttribute(aNameSpaceID, aName, aResult); \
@ -785,6 +795,10 @@ public:
const nsString& aValue, PRBool aNotify) { \ const nsString& aValue, PRBool aNotify) { \
return _g.SetAttribute(aNameSpaceID, aName, aValue, aNotify); \ return _g.SetAttribute(aNameSpaceID, aName, aValue, aNotify); \
} \ } \
NS_IMETHOD SetAttribute(nsINodeInfo* aNodeInfo, \
const nsString& aValue, PRBool aNotify) { \
return _g.SetAttribute(aNodeInfo, aValue, aNotify); \
} \
NS_IMETHOD GetAttribute(PRInt32 aNameSpaceID, nsIAtom* aName, \ NS_IMETHOD GetAttribute(PRInt32 aNameSpaceID, nsIAtom* aName, \
nsString& aResult) const { \ nsString& aResult) const { \
return _g.GetAttribute(aNameSpaceID, aName, aResult); \ return _g.GetAttribute(aNameSpaceID, aName, aResult); \
@ -898,6 +912,10 @@ public:
const nsString& aValue, PRBool aNotify) { \ const nsString& aValue, PRBool aNotify) { \
return _g.SetAttribute(aNameSpaceID, aName, aValue, aNotify); \ return _g.SetAttribute(aNameSpaceID, aName, aValue, aNotify); \
} \ } \
NS_IMETHOD SetAttribute(nsINodeInfo* aNodeInfo, \
const nsString& aValue, PRBool aNotify) { \
return _g.SetAttribute(aNodeInfo, aValue, aNotify); \
} \
NS_IMETHOD GetAttribute(PRInt32 aNameSpaceID, nsIAtom* aName, \ NS_IMETHOD GetAttribute(PRInt32 aNameSpaceID, nsIAtom* aName, \
nsString& aResult) const { \ nsString& aResult) const { \
return _g.GetAttribute(aNameSpaceID, aName, aResult); \ return _g.GetAttribute(aNameSpaceID, aName, aResult); \
@ -1015,6 +1033,10 @@ public:
const nsString& aValue, PRBool aNotify) { \ const nsString& aValue, PRBool aNotify) { \
return _g.SetAttribute(aNameSpaceID, aName, aValue, aNotify); \ return _g.SetAttribute(aNameSpaceID, aName, aValue, aNotify); \
} \ } \
NS_IMETHOD SetAttribute(nsINodeInfo* aNodeInfo, \
const nsString& aValue, PRBool aNotify) { \
return _g.SetAttribute(aNodeInfo, aValue, aNotify); \
} \
NS_IMETHOD GetAttribute(PRInt32 aNameSpaceID, nsIAtom* aName, \ NS_IMETHOD GetAttribute(PRInt32 aNameSpaceID, nsIAtom* aName, \
nsString& aResult) const { \ nsString& aResult) const { \
return _g.GetAttribute(aNameSpaceID, aName, aResult); \ return _g.GetAttribute(aNameSpaceID, aName, aResult); \
@ -1124,6 +1146,10 @@ public:
const nsString& aValue, PRBool aNotify) { \ const nsString& aValue, PRBool aNotify) { \
return _g.SetAttribute(aNameSpaceID, aName, aValue, aNotify); \ return _g.SetAttribute(aNameSpaceID, aName, aValue, aNotify); \
} \ } \
NS_IMETHOD SetAttribute(nsINodeInfo* aNodeInfo, \
const nsString& aValue, PRBool aNotify) { \
return _g.SetAttribute(aNodeInfo, aValue, aNotify); \
} \
NS_IMETHOD GetAttribute(PRInt32 aNameSpaceID, nsIAtom* aName, \ NS_IMETHOD GetAttribute(PRInt32 aNameSpaceID, nsIAtom* aName, \
nsString& aResult) const { \ nsString& aResult) const { \
return _g.GetAttribute(aNameSpaceID, aName, aResult); \ return _g.GetAttribute(aNameSpaceID, aName, aResult); \

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

@ -127,6 +127,8 @@ public:
NS_IMETHOD SetAttribute(PRInt32 aNameSpaceID, nsIAtom* aAttribute, const nsString& aValue, NS_IMETHOD SetAttribute(PRInt32 aNameSpaceID, nsIAtom* aAttribute, const nsString& aValue,
PRBool aNotify) { return NS_OK; } PRBool aNotify) { return NS_OK; }
NS_IMETHOD SetAttribute(nsINodeInfo *aNodeInfo, const nsString& aValue,
PRBool aNotify) { return NS_OK; }
NS_IMETHOD UnsetAttribute(PRInt32 aNameSpaceID, nsIAtom* aAttribute, PRBool aNotify) { return NS_OK; } NS_IMETHOD UnsetAttribute(PRInt32 aNameSpaceID, nsIAtom* aAttribute, PRBool aNotify) { return NS_OK; }
NS_IMETHOD GetAttribute(PRInt32 aNameSpaceID, nsIAtom *aAttribute, nsString &aResult) const {return NS_CONTENT_ATTR_NOT_THERE; } NS_IMETHOD GetAttribute(PRInt32 aNameSpaceID, nsIAtom *aAttribute, nsString &aResult) const {return NS_CONTENT_ATTR_NOT_THERE; }
NS_IMETHOD GetAttributeNameAt(PRInt32 aIndex, PRInt32& aNameSpaceID, nsIAtom*& aName) const { NS_IMETHOD GetAttributeNameAt(PRInt32 aIndex, PRInt32& aNameSpaceID, nsIAtom*& aName) const {

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

@ -1304,6 +1304,24 @@ nsGenericHTMLElement::SetAttribute(PRInt32 aNameSpaceID,
return result; return result;
} }
nsresult
nsGenericHTMLElement::SetAttribute(nsINodeInfo* aNodeInfo,
const nsString& aValue,
PRBool aNotify)
{
NS_ENSURE_ARG_POINTER(aNodeInfo);
nsCOMPtr<nsIAtom> atom;
PRInt32 nsid;
aNodeInfo->GetNameAtom(*getter_AddRefs(atom));
aNodeInfo->GetNamespaceID(nsid);
// We still rely on the old way of setting the attribute.
return SetAttribute(nsid, atom, aValue, aNotify);
}
static PRInt32 GetStyleImpactFrom(const nsHTMLValue& aValue) static PRInt32 GetStyleImpactFrom(const nsHTMLValue& aValue)
{ {
PRInt32 hint = NS_STYLE_HINT_NONE; PRInt32 hint = NS_STYLE_HINT_NONE;
@ -3414,6 +3432,24 @@ nsGenericHTMLContainerFormElement::SetAttribute(PRInt32 aNameSpaceID, nsIAtom* a
return nsGenericHTMLElement::SetAttribute(aNameSpaceID, aName, aValue, aNotify); return nsGenericHTMLElement::SetAttribute(aNameSpaceID, aName, aValue, aNotify);
} }
nsresult
nsGenericHTMLContainerFormElement::SetAttribute(nsINodeInfo* aNodeInfo,
const nsString& aValue,
PRBool aNotify)
{
NS_ENSURE_ARG_POINTER(aNodeInfo);
nsCOMPtr<nsIAtom> atom;
PRInt32 nsid;
aNodeInfo->GetNameAtom(*getter_AddRefs(atom));
aNodeInfo->GetNamespaceID(nsid);
// We still rely on the old way of setting the attribute.
return SetAttribute(nsid, atom, aValue, aNotify);
}
//---------------------------------------------------------------------- //----------------------------------------------------------------------
nsGenericHTMLLeafFormElement::nsGenericHTMLLeafFormElement() nsGenericHTMLLeafFormElement::nsGenericHTMLLeafFormElement()
@ -3446,4 +3482,22 @@ nsGenericHTMLLeafFormElement::SetAttribute(PRInt32 aNameSpaceID, nsIAtom* aName,
return nsGenericHTMLElement::SetAttribute(aNameSpaceID, aName, aValue, aNotify); return nsGenericHTMLElement::SetAttribute(aNameSpaceID, aName, aValue, aNotify);
} }
nsresult
nsGenericHTMLLeafFormElement::SetAttribute(nsINodeInfo* aNodeInfo,
const nsString& aValue,
PRBool aNotify)
{
NS_ENSURE_ARG_POINTER(aNodeInfo);
nsCOMPtr<nsIAtom> atom;
PRInt32 nsid;
aNodeInfo->GetNameAtom(*getter_AddRefs(atom));
aNodeInfo->GetNamespaceID(nsid);
// We still rely on the old way of setting the attribute.
return SetAttribute(nsid, atom, aValue, aNotify);
}
//---------------------------------------------------------------------- //----------------------------------------------------------------------

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

@ -104,6 +104,7 @@ public:
nsIAtom* aOffsetParentTag, nsIAtom* aOffsetParentTag,
nsIContent** aOffsetParent); nsIContent** aOffsetParent);
// Implementation for nsIContent // Implementation for nsIContent
nsresult GetNameSpaceID(PRInt32& aNameSpaceID) const; nsresult GetNameSpaceID(PRInt32& aNameSpaceID) const;
nsresult SetDocument(nsIDocument* aDocument, PRBool aDeep); nsresult SetDocument(nsIDocument* aDocument, PRBool aDeep);
@ -114,6 +115,8 @@ public:
nsIAtom*& aPrefix); nsIAtom*& aPrefix);
nsresult SetAttribute(PRInt32 aNameSpaceID, nsIAtom* aName, const nsString& aValue, nsresult SetAttribute(PRInt32 aNameSpaceID, nsIAtom* aName, const nsString& aValue,
PRBool aNotify); PRBool aNotify);
nsresult SetAttribute(nsINodeInfo* aNodeInfo, const nsString& aValue,
PRBool aNotify);
nsresult GetAttribute(PRInt32 aNameSpaceID, nsIAtom* aName, nsString& aResult) const; nsresult GetAttribute(PRInt32 aNameSpaceID, nsIAtom* aName, nsString& aResult) const;
nsresult UnsetAttribute(PRInt32 aNameSpaceID, nsIAtom* aName, PRBool aNotify); nsresult UnsetAttribute(PRInt32 aNameSpaceID, nsIAtom* aName, PRBool aNotify);
nsresult GetAttributeNameAt(PRInt32 aIndex, nsresult GetAttributeNameAt(PRInt32 aIndex,
@ -460,6 +463,8 @@ public:
nsresult SetForm(nsIForm* aForm); nsresult SetForm(nsIForm* aForm);
nsresult SetAttribute(PRInt32 aNameSpaceID, nsIAtom* aName, const nsString& aValue, nsresult SetAttribute(PRInt32 aNameSpaceID, nsIAtom* aName, const nsString& aValue,
PRBool aNotify); PRBool aNotify);
nsresult SetAttribute(nsINodeInfo* aNodeInfo, const nsString& aValue,
PRBool aNotify);
nsresult SetAttribute(const nsString& aName, const nsString& aValue) nsresult SetAttribute(const nsString& aName, const nsString& aValue)
{ {
return nsGenericHTMLElement::SetAttribute(aName, aValue); return nsGenericHTMLElement::SetAttribute(aName, aValue);
@ -478,6 +483,8 @@ public:
nsresult SetForm(nsIForm* aForm); nsresult SetForm(nsIForm* aForm);
nsresult SetAttribute(PRInt32 aNameSpaceID, nsIAtom* aName, const nsString& aValue, nsresult SetAttribute(PRInt32 aNameSpaceID, nsIAtom* aName, const nsString& aValue,
PRBool aNotify); PRBool aNotify);
nsresult SetAttribute(nsINodeInfo* aNodeInfo, const nsString& aValue,
PRBool aNotify);
nsresult SetAttribute(const nsString& aName, const nsString& aValue) nsresult SetAttribute(const nsString& aName, const nsString& aValue)
{ {
return nsGenericHTMLElement::SetAttribute(aName, aValue); return nsGenericHTMLElement::SetAttribute(aName, aValue);

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

@ -125,6 +125,10 @@ public:
const nsString& aValue, PRBool aNotify) { const nsString& aValue, PRBool aNotify) {
return mInner.SetAttribute(aNameSpaceID, aName, aValue, aNotify); return mInner.SetAttribute(aNameSpaceID, aName, aValue, aNotify);
} }
NS_IMETHOD SetAttribute(nsINodeInfo* aNodeInfo,
const nsString& aValue, PRBool aNotify) {
return mInner.SetAttribute(aNodeInfo, aValue, aNotify);
}
NS_IMETHOD GetAttribute(PRInt32 aNameSpaceID, nsIAtom* aName, NS_IMETHOD GetAttribute(PRInt32 aNameSpaceID, nsIAtom* aName,
nsString& aResult) const { nsString& aResult) const {
return mInner.GetAttribute(aNameSpaceID, aName, aResult); return mInner.GetAttribute(aNameSpaceID, aName, aResult);

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

@ -122,6 +122,8 @@ public:
} }
NS_IMETHOD SetAttribute(PRInt32 aNameSpaceID, nsIAtom* aName, NS_IMETHOD SetAttribute(PRInt32 aNameSpaceID, nsIAtom* aName,
const nsString& aValue, PRBool aNotify); const nsString& aValue, PRBool aNotify);
NS_IMETHOD SetAttribute(nsINodeInfo* aNodeInfo,
const nsString& aValue, PRBool aNotify);
NS_IMETHOD GetAttribute(PRInt32 aNameSpaceID, nsIAtom* aName, NS_IMETHOD GetAttribute(PRInt32 aNameSpaceID, nsIAtom* aName,
nsString& aResult) const { nsString& aResult) const {
return mInner.GetAttribute(aNameSpaceID, aName, aResult); return mInner.GetAttribute(aNameSpaceID, aName, aResult);
@ -426,6 +428,24 @@ nsHTMLUnknownElement::SetAttribute(PRInt32 aNameSpaceID,
return result; return result;
} }
NS_IMETHODIMP
nsHTMLUnknownElement::SetAttribute(nsINodeInfo *aNodeInfo,
const nsString& aValue,
PRBool aNotify)
{
NS_ENSURE_ARG_POINTER(aNodeInfo);
nsCOMPtr<nsIAtom> atom;
PRInt32 nsid;
aNodeInfo->GetNameAtom(*getter_AddRefs(atom));
aNodeInfo->GetNamespaceID(nsid);
// We still rely on the old way of setting the attribute.
return SetAttribute(nsid, atom, aValue, aNotify);
}
NS_IMETHODIMP NS_IMETHODIMP
nsHTMLUnknownElement::HandleDOMEvent(nsIPresContext* aPresContext, nsHTMLUnknownElement::HandleDOMEvent(nsIPresContext* aPresContext,
nsEvent* aEvent, nsEvent* aEvent,

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

@ -62,6 +62,12 @@ public:
return nsGenericContainerElement::SetAttribute(aNameSpaceID, aName, return nsGenericContainerElement::SetAttribute(aNameSpaceID, aName,
aValue, aNotify); aValue, aNotify);
} }
nsresult SetAttribute(nsINodeInfo *aNodeInfo,
const nsString& aValue,
PRBool aNotify)
{
return nsGenericContainerElement::SetAttribute(aNodeInfo, aValue, aNotify);
}
nsresult GetAttribute(PRInt32 aNameSpaceID, nsIAtom* aName, nsresult GetAttribute(PRInt32 aNameSpaceID, nsIAtom* aName,
nsString& aResult) const nsString& aResult) const
{ {

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

@ -240,6 +240,23 @@ nsXMLElement::SetAttribute(PRInt32 aNameSpaceID, nsIAtom* aName,
return mInner.SetAttribute(aNameSpaceID, aName, aValue, aNotify); return mInner.SetAttribute(aNameSpaceID, aName, aValue, aNotify);
} }
NS_IMETHODIMP
nsXMLElement::SetAttribute(nsINodeInfo *aNodeInfo, const nsString& aValue,
PRBool aNotify)
{
NS_ENSURE_ARG_POINTER(aNodeInfo);
nsCOMPtr<nsIAtom> atom;
PRInt32 nsid;
aNodeInfo->GetNameAtom(*getter_AddRefs(atom));
aNodeInfo->GetNamespaceID(nsid);
// We still rely on the old way of setting the attribute.
return SetAttribute(nsid, atom, aValue, aNotify);
}
static nsresult WebShellToPresContext(nsIWebShell *aShell, nsIPresContext **aPresContext) static nsresult WebShellToPresContext(nsIWebShell *aShell, nsIPresContext **aPresContext)
{ {
*aPresContext = nsnull; *aPresContext = nsnull;

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

@ -118,6 +118,8 @@ public:
} }
NS_IMETHOD SetAttribute(PRInt32 aNameSpaceID, nsIAtom* aName, const nsString& aValue, NS_IMETHOD SetAttribute(PRInt32 aNameSpaceID, nsIAtom* aName, const nsString& aValue,
PRBool aNotify); PRBool aNotify);
NS_IMETHOD SetAttribute(nsINodeInfo *aNodeInfo, const nsString& aValue,
PRBool aNotify);
NS_IMETHOD GetAttribute(PRInt32 aNameSpaceID, nsIAtom* aName, NS_IMETHOD GetAttribute(PRInt32 aNameSpaceID, nsIAtom* aName,
nsString& aResult) const { nsString& aResult) const {
return mInner.GetAttribute(aNameSpaceID, aName, aResult); return mInner.GetAttribute(aNameSpaceID, aName, aResult);

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

@ -2867,6 +2867,24 @@ nsXULElement::SetAttribute(PRInt32 aNameSpaceID,
return rv; return rv;
} }
NS_IMETHODIMP
nsXULElement::SetAttribute(nsINodeInfo* aNodeInfo,
const nsString& aValue,
PRBool aNotify)
{
NS_ENSURE_ARG_POINTER(aNodeInfo);
nsCOMPtr<nsIAtom> atom;
PRInt32 nsid;
aNodeInfo->GetNameAtom(*getter_AddRefs(atom));
aNodeInfo->GetNamespaceID(nsid);
// We still rely on the old way of setting the attribute.
return SetAttribute(nsid, atom, aValue, aNotify);
}
NS_IMETHODIMP NS_IMETHODIMP
nsXULElement::GetAttribute(PRInt32 aNameSpaceID, nsXULElement::GetAttribute(PRInt32 aNameSpaceID,
nsIAtom* aName, nsIAtom* aName,

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

@ -395,6 +395,7 @@ public:
NS_IMETHOD ParseAttributeString(const nsString& aStr, nsIAtom*& aName, PRInt32& aNameSpaceID); NS_IMETHOD ParseAttributeString(const nsString& aStr, nsIAtom*& aName, PRInt32& aNameSpaceID);
NS_IMETHOD GetNameSpacePrefixFromId(PRInt32 aNameSpaceID, nsIAtom*& aPrefix); NS_IMETHOD GetNameSpacePrefixFromId(PRInt32 aNameSpaceID, nsIAtom*& aPrefix);
NS_IMETHOD SetAttribute(PRInt32 aNameSpaceID, nsIAtom* aName, const nsString& aValue, PRBool aNotify); NS_IMETHOD SetAttribute(PRInt32 aNameSpaceID, nsIAtom* aName, const nsString& aValue, PRBool aNotify);
NS_IMETHOD SetAttribute(nsINodeInfo *aNodeInfo, const nsString& aValue, PRBool aNotify);
NS_IMETHOD GetAttribute(PRInt32 aNameSpaceID, nsIAtom* aName, nsString& aResult) const; NS_IMETHOD GetAttribute(PRInt32 aNameSpaceID, nsIAtom* aName, nsString& aResult) const;
NS_IMETHOD UnsetAttribute(PRInt32 aNameSpaceID, nsIAtom* aName, PRBool aNotify); NS_IMETHOD UnsetAttribute(PRInt32 aNameSpaceID, nsIAtom* aName, PRBool aNotify);
NS_IMETHOD GetAttributeNameAt(PRInt32 aIndex, PRInt32& aNameSpaceID, NS_IMETHOD GetAttributeNameAt(PRInt32 aIndex, PRInt32& aNameSpaceID,