diff --git a/mozilla/content/html/content/src/nsGenericHTMLElement.h b/mozilla/content/html/content/src/nsGenericHTMLElement.h index bfc38e0e1d3..8fafdcac147 100644 --- a/mozilla/content/html/content/src/nsGenericHTMLElement.h +++ b/mozilla/content/html/content/src/nsGenericHTMLElement.h @@ -748,6 +748,31 @@ protected: return SetHTMLAttribute(nsHTMLAtoms::_atom, value, PR_TRUE); \ } +/** + * A macro to implement the getter and the setter for a given pixel + * valued content property. The method uses the generic GetAttr and + * SetAttr methods + */ +#define NS_IMPL_PIXEL_ATTR(_class, _method, _atom) \ + NS_IMETHODIMP \ + _class::Get##_method(PRInt32* aValue) \ + { \ + nsHTMLValue value; \ + *aValue = -1; \ + if (NS_CONTENT_ATTR_HAS_VALUE == \ + GetHTMLAttribute(nsHTMLAtoms::_atom, value)) { \ + if (value.GetUnit() == eHTMLUnit_Pixel) { \ + *aValue = value.GetPixelValue(); \ + } \ + } \ + return NS_OK; \ + } \ + NS_IMETHODIMP \ + _class::Set##_method(PRInt32 aValue) \ + { \ + nsHTMLValue value(aValue, eHTMLUnit_Pixel); \ + return SetHTMLAttribute(nsHTMLAtoms::_atom, value, PR_TRUE); \ + } /** * QueryInterface() implementation helper macros diff --git a/mozilla/content/html/content/src/nsHTMLImageElement.cpp b/mozilla/content/html/content/src/nsHTMLImageElement.cpp index c223cb9611c..f780a2bf5aa 100644 --- a/mozilla/content/html/content/src/nsHTMLImageElement.cpp +++ b/mozilla/content/html/content/src/nsHTMLImageElement.cpp @@ -271,12 +271,12 @@ nsHTMLImageElement::CloneNode(PRBool aDeep, nsIDOMNode** aReturn) NS_IMPL_STRING_ATTR(nsHTMLImageElement, Name, name) NS_IMPL_STRING_ATTR(nsHTMLImageElement, Align, align) NS_IMPL_STRING_ATTR(nsHTMLImageElement, Alt, alt) -NS_IMPL_INT_ATTR(nsHTMLImageElement, Border, border) -NS_IMPL_INT_ATTR(nsHTMLImageElement, Hspace, hspace) +NS_IMPL_PIXEL_ATTR(nsHTMLImageElement, Border, border) +NS_IMPL_PIXEL_ATTR(nsHTMLImageElement, Hspace, hspace) NS_IMPL_BOOL_ATTR(nsHTMLImageElement, IsMap, ismap) NS_IMPL_STRING_ATTR(nsHTMLImageElement, LongDesc, longdesc) NS_IMPL_STRING_ATTR(nsHTMLImageElement, UseMap, usemap) -NS_IMPL_INT_ATTR(nsHTMLImageElement, Vspace, vspace) +NS_IMPL_PIXEL_ATTR(nsHTMLImageElement, Vspace, vspace) nsresult nsHTMLImageElement::GetImageFrame(nsIImageFrame** aImageFrame)