Got rid of Construct method from nsIJSScriptObject interface. Added first-pass implementation of reflow case to nsGenericHTMLElement::SetAttr.

git-svn-id: svn://10.0.0.236/trunk@10004 18797224-902f-48f8-a5cc-f745e15eee43
This commit is contained in:
vidur%netscape.com
1998-09-14 23:02:32 +00:00
parent 82f15807dd
commit 854414df4f
10 changed files with 144 additions and 40 deletions

View File

@@ -27,6 +27,7 @@
#include "nsStyleConsts.h"
#include "nsIPresContext.h"
#include "nsIHTMLAttributes.h"
#include "nsIJSScriptObject.h"
// XXX nav attrs: suppress
@@ -35,7 +36,8 @@ static NS_DEFINE_IID(kIDOMHTMLImageElementIID, NS_IDOMHTMLIMAGEELEMENT_IID);
class nsHTMLImageElement : public nsIDOMHTMLImageElement,
public nsIScriptObjectOwner,
public nsIDOMEventReceiver,
public nsIHTMLContent
public nsIHTMLContent,
public nsIJSScriptObject
{
public:
nsHTMLImageElement(nsIAtom* aTag);
@@ -93,6 +95,16 @@ public:
// nsIHTMLContent
NS_IMPL_IHTMLCONTENT_USING_GENERIC(mInner)
// nsIJSScriptObject
virtual PRBool AddProperty(JSContext *aContext, jsval aID, jsval *aVp);
virtual PRBool DeleteProperty(JSContext *aContext, jsval aID, jsval *aVp);
virtual PRBool GetProperty(JSContext *aContext, jsval aID, jsval *aVp);
virtual PRBool SetProperty(JSContext *aContext, jsval aID, jsval *aVp);
virtual PRBool EnumerateProperty(JSContext *aContext);
virtual PRBool Resolve(JSContext *aContext, jsval aID);
virtual PRBool Convert(JSContext *aContext, jsval aID);
virtual void Finalize(JSContext *aContext);
protected:
nsGenericHTMLLeafElement mInner;
};
@@ -128,6 +140,12 @@ NS_IMPL_RELEASE(nsHTMLImageElement)
nsresult
nsHTMLImageElement::QueryInterface(REFNSIID aIID, void** aInstancePtr)
{
if (aIID.Equals(kIJSScriptObjectIID)) {
nsIJSScriptObject* tmp = this;
*aInstancePtr = (void*) tmp;
AddRef();
return NS_OK;
}
NS_IMPL_HTML_CONTENT_QUERY_INTERFACE(aIID, aInstancePtr, this)
if (aIID.Equals(kIDOMHTMLImageElementIID)) {
nsIDOMHTMLImageElement* tmp = this;
@@ -158,7 +176,7 @@ NS_IMPL_STRING_ATTR(nsHTMLImageElement, Height, height, eSetAttrNotify_Reflow)
NS_IMPL_STRING_ATTR(nsHTMLImageElement, Hspace, hspace, eSetAttrNotify_Reflow)
NS_IMPL_BOOL_ATTR(nsHTMLImageElement, IsMap, ismap, eSetAttrNotify_None)
NS_IMPL_STRING_ATTR(nsHTMLImageElement, LongDesc, longdesc, eSetAttrNotify_None)
NS_IMPL_STRING_ATTR(nsHTMLImageElement, Src, src, eSetAttrNotify_Render)
NS_IMPL_STRING_ATTR(nsHTMLImageElement, Src, src, eSetAttrNotify_Reflow)
NS_IMPL_STRING_ATTR(nsHTMLImageElement, UseMap, usemap, eSetAttrNotify_None)
NS_IMPL_STRING_ATTR(nsHTMLImageElement, Vspace, vspace, eSetAttrNotify_Reflow)
NS_IMPL_STRING_ATTR(nsHTMLImageElement, Width, width, eSetAttrNotify_Reflow)
@@ -268,3 +286,52 @@ nsHTMLImageElement::HandleDOMEvent(nsIPresContext& aPresContext,
return mInner.HandleDOMEvent(aPresContext, aEvent, aDOMEvent,
aFlags, aEventStatus);
}
PRBool
nsHTMLImageElement::AddProperty(JSContext *aContext, jsval aID, jsval *aVp)
{
return mInner.AddProperty(aContext, aID, aVp);
}
PRBool
nsHTMLImageElement::DeleteProperty(JSContext *aContext, jsval aID, jsval *aVp)
{
return mInner.DeleteProperty(aContext, aID, aVp);
}
PRBool
nsHTMLImageElement::GetProperty(JSContext *aContext, jsval aID, jsval *aVp)
{
return mInner.GetProperty(aContext, aID, aVp);
}
PRBool
nsHTMLImageElement::SetProperty(JSContext *aContext, jsval aID, jsval *aVp)
{
return mInner.SetProperty(aContext, aID, aVp);
}
PRBool
nsHTMLImageElement::EnumerateProperty(JSContext *aContext)
{
return mInner.EnumerateProperty(aContext);
}
PRBool
nsHTMLImageElement::Resolve(JSContext *aContext, jsval aID)
{
return mInner.Resolve(aContext, aID);
}
PRBool
nsHTMLImageElement::Convert(JSContext *aContext, jsval aID)
{
return mInner.Convert(aContext, aID);
}
void
nsHTMLImageElement::Finalize(JSContext *aContext)
{
mInner.Finalize(aContext);
}