From a96fc9cbfa79e40a0a194f2fee161c5d12e0889e Mon Sep 17 00:00:00 2001 From: "law%netscape.com" Date: Thu, 8 Mar 2001 00:55:01 +0000 Subject: [PATCH] Part of bug 57576; adding support for getting list-style-image; r=harishd, sr=jst --- content/html/style/src/nsComputedDOMStyle.cpp | 26 +++++++++++++++++++ layout/style/nsComputedDOMStyle.cpp | 26 +++++++++++++++++++ 2 files changed, 52 insertions(+) diff --git a/content/html/style/src/nsComputedDOMStyle.cpp b/content/html/style/src/nsComputedDOMStyle.cpp index 0eb8b64e3efa..9999f675a2ab 100644 --- a/content/html/style/src/nsComputedDOMStyle.cpp +++ b/content/html/style/src/nsComputedDOMStyle.cpp @@ -117,6 +117,9 @@ private: // z-index nsresult GetZIndex(nsIFrame *aFrame, nsIDOMCSSPrimitiveValue*& aValue); + // List properties + nsresult GetListStyleImage(nsIFrame *aFrame, nsIDOMCSSPrimitiveValue*& aValue); + nsresult GetBehavior(nsIFrame *aFrame, nsIDOMCSSPrimitiveValue*& aValue); nsROCSSPrimitiveValue* GetROCSSPrimitiveValue(); @@ -367,6 +370,8 @@ nsComputedDOMStyle::GetPropertyCSSValue(const nsAReadableString& aPropertyName, rv = GetBorderRightWidth(frame, *getter_AddRefs(val)); break; case eCSSProperty_z_index: rv = GetZIndex(frame, *getter_AddRefs(val)); break; + case eCSSProperty_list_style_image: + rv = GetListStyleImage(frame, *getter_AddRefs(val)); break; default : break; } @@ -1042,6 +1047,27 @@ nsComputedDOMStyle::GetZIndex(nsIFrame *aFrame, return result; } +nsresult +nsComputedDOMStyle::GetListStyleImage(nsIFrame *aFrame, + nsIDOMCSSPrimitiveValue*& aValue) +{ + nsresult result=NS_OK; + if(aFrame) { + const nsStyleList* list; + GetStyleData(eStyleStruct_List,(const nsStyleStruct*&)list,aFrame); + if(list) { + nsROCSSPrimitiveValue* val=GetROCSSPrimitiveValue(); + if(val) { + val->SetString(list->mListStyleImage); + result = val->QueryInterface(NS_GET_IID(nsIDOMCSSPrimitiveValue),(void**)&aValue); + } else { + result = NS_ERROR_OUT_OF_MEMORY; + } + } + } + return result; +} + #if 0 NS_IMETHODIMP nsComputedDOMStyle::GetCaptionSide(nsAWritableString& aCaptionSide) diff --git a/layout/style/nsComputedDOMStyle.cpp b/layout/style/nsComputedDOMStyle.cpp index 0eb8b64e3efa..9999f675a2ab 100644 --- a/layout/style/nsComputedDOMStyle.cpp +++ b/layout/style/nsComputedDOMStyle.cpp @@ -117,6 +117,9 @@ private: // z-index nsresult GetZIndex(nsIFrame *aFrame, nsIDOMCSSPrimitiveValue*& aValue); + // List properties + nsresult GetListStyleImage(nsIFrame *aFrame, nsIDOMCSSPrimitiveValue*& aValue); + nsresult GetBehavior(nsIFrame *aFrame, nsIDOMCSSPrimitiveValue*& aValue); nsROCSSPrimitiveValue* GetROCSSPrimitiveValue(); @@ -367,6 +370,8 @@ nsComputedDOMStyle::GetPropertyCSSValue(const nsAReadableString& aPropertyName, rv = GetBorderRightWidth(frame, *getter_AddRefs(val)); break; case eCSSProperty_z_index: rv = GetZIndex(frame, *getter_AddRefs(val)); break; + case eCSSProperty_list_style_image: + rv = GetListStyleImage(frame, *getter_AddRefs(val)); break; default : break; } @@ -1042,6 +1047,27 @@ nsComputedDOMStyle::GetZIndex(nsIFrame *aFrame, return result; } +nsresult +nsComputedDOMStyle::GetListStyleImage(nsIFrame *aFrame, + nsIDOMCSSPrimitiveValue*& aValue) +{ + nsresult result=NS_OK; + if(aFrame) { + const nsStyleList* list; + GetStyleData(eStyleStruct_List,(const nsStyleStruct*&)list,aFrame); + if(list) { + nsROCSSPrimitiveValue* val=GetROCSSPrimitiveValue(); + if(val) { + val->SetString(list->mListStyleImage); + result = val->QueryInterface(NS_GET_IID(nsIDOMCSSPrimitiveValue),(void**)&aValue); + } else { + result = NS_ERROR_OUT_OF_MEMORY; + } + } + } + return result; +} + #if 0 NS_IMETHODIMP nsComputedDOMStyle::GetCaptionSide(nsAWritableString& aCaptionSide)