From fee78bb96ab1cef99088109bf530fa61800fbe68 Mon Sep 17 00:00:00 2001 From: "allan%beaufour.dk" Date: Sat, 22 Oct 2005 15:20:46 +0000 Subject: [PATCH] [XForms] Fix leftover attribute usage. Bug 313192, r=aaronr+doronr git-svn-id: svn://10.0.0.236/trunk@182774 18797224-902f-48f8-a5cc-f745e15eee43 --- .../extensions/xforms/nsXFormsControlStub.cpp | 11 +++++---- .../xforms/nsXFormsDelegateStub.cpp | 24 +++++++++++-------- .../extensions/xforms/nsXFormsDelegateStub.h | 2 +- 3 files changed, 22 insertions(+), 15 deletions(-) diff --git a/mozilla/extensions/xforms/nsXFormsControlStub.cpp b/mozilla/extensions/xforms/nsXFormsControlStub.cpp index 096de2d60ad..d83e40d48e6 100644 --- a/mozilla/extensions/xforms/nsXFormsControlStub.cpp +++ b/mozilla/extensions/xforms/nsXFormsControlStub.cpp @@ -58,6 +58,7 @@ #include "nsIPrefBranch.h" #include "nsIPrefService.h" #include "nsIEventStateManager.h" +#include "nsIContent.h" /** This class is used to generate xforms-hint and xforms-help events.*/ class nsXFormsHintHelpListener : public nsIDOMEventListener { @@ -318,8 +319,9 @@ PRBool nsXFormsControlStubBase::GetReadOnlyState() { PRBool res = PR_FALSE; - if (mElement) { - mElement->HasAttribute(NS_LITERAL_STRING("read-only"), &res); + nsCOMPtr content(do_QueryInterface(mElement)); + if (content && (content->IntrinsicState() & NS_EVENT_STATE_MOZ_READONLY)) { + res = PR_TRUE; } return res; } @@ -328,8 +330,9 @@ PRBool nsXFormsControlStubBase::GetRelevantState() { PRBool res = PR_FALSE; - if (mElement) { - mElement->HasAttribute(NS_LITERAL_STRING("enabled"), &res); + nsCOMPtr content(do_QueryInterface(mElement)); + if (content && (content->IntrinsicState() & NS_EVENT_STATE_ENABLED)) { + res = PR_TRUE; } return res; } diff --git a/mozilla/extensions/xforms/nsXFormsDelegateStub.cpp b/mozilla/extensions/xforms/nsXFormsDelegateStub.cpp index 125130e8c4f..9edfb1af2af 100644 --- a/mozilla/extensions/xforms/nsXFormsDelegateStub.cpp +++ b/mozilla/extensions/xforms/nsXFormsDelegateStub.cpp @@ -54,6 +54,8 @@ #include "nsXFormsUtils.h" #include "nsIServiceManager.h" #include "nsXFormsModelElement.h" +#include "nsIContent.h" +#include "nsIEventStateManager.h" NS_IMPL_ISUPPORTS_INHERITED1(nsXFormsDelegateStub, nsXFormsBindableControlStub, @@ -168,39 +170,41 @@ nsXFormsDelegateStub::SetValue(const nsAString& aValue) } nsresult -nsXFormsDelegateStub::GetState(const nsAString &aState, PRBool *aStateVal) +nsXFormsDelegateStub::GetState(PRInt32 aState, PRBool *aStateVal) { NS_ENSURE_ARG_POINTER(aStateVal); - - if (mElement) { - mElement->HasAttribute(aState, aStateVal); - } - + *aStateVal = PR_FALSE; + nsCOMPtr content(do_QueryInterface(mElement)); + if (content && (content->IntrinsicState() & aState)) { + *aStateVal = PR_TRUE; + } return NS_OK; } +// XXXbeaufour search for "enabled", "disabled", HasAttribute() and SetAttribute() + NS_IMETHODIMP nsXFormsDelegateStub::GetIsReadonly(PRBool *aStateVal) { - return GetState(NS_LITERAL_STRING("read-only"), aStateVal); + return GetState(NS_EVENT_STATE_MOZ_READONLY, aStateVal); } NS_IMETHODIMP nsXFormsDelegateStub::GetIsEnabled(PRBool *aStateVal) { - return GetState(NS_LITERAL_STRING("enabled"), aStateVal); + return GetState(NS_EVENT_STATE_ENABLED, aStateVal); } NS_IMETHODIMP nsXFormsDelegateStub::GetIsRequired(PRBool *aStateVal) { - return GetState(NS_LITERAL_STRING("required"), aStateVal); + return GetState(NS_EVENT_STATE_REQUIRED, aStateVal); } NS_IMETHODIMP nsXFormsDelegateStub::GetIsValid(PRBool *aStateVal) { - return GetState(NS_LITERAL_STRING("valid"), aStateVal); + return GetState(NS_EVENT_STATE_VALID, aStateVal); } NS_IMETHODIMP diff --git a/mozilla/extensions/xforms/nsXFormsDelegateStub.h b/mozilla/extensions/xforms/nsXFormsDelegateStub.h index 3fb11134d21..9957399dc8d 100644 --- a/mozilla/extensions/xforms/nsXFormsDelegateStub.h +++ b/mozilla/extensions/xforms/nsXFormsDelegateStub.h @@ -97,7 +97,7 @@ public: protected: // Checks the status of the model item properties. - nsresult GetState(const nsAString &aState, PRBool *aStateVal); + nsresult GetState(PRInt32 aState, PRBool *aStateVal); // This is called when XBL widget is attached to the XForms control. // It checks the ancestors of the element and returns an nsRepeatState