implement accessible objects for xforms date input controls, r=aaronr, aaronlev, sr=neil, b=349644. Patch by Alexander Surkov <surkov.alexander@gmail.com>

git-svn-id: svn://10.0.0.236/trunk@216880 18797224-902f-48f8-a5cc-f745e15eee43
This commit is contained in:
hwaara%gmail.com
2006-12-12 16:19:18 +00:00
parent 932d12bfe8
commit e92ea807b0
30 changed files with 776 additions and 198 deletions

View File

@@ -39,11 +39,14 @@
#include "nsXFormsUtilityService.h"
#include "nsIContent.h"
#include "nsIXFormsDelegate.h"
#include "nsIXFormsAccessors.h"
#include "nsIXFormsRangeConditionAccessors.h"
#include "nsIXFormsRangeAccessors.h"
#include "nsIXFormsUIWidget.h"
#include "nsIXFormsComboboxUIWidget.h"
#include "nsIXFormsNSEditableElement.h"
#include "nsXFormsUtils.h"
@@ -62,6 +65,13 @@ NS_ENSURE_ARG_POINTER(aElement);\
nsCOMPtr<nsIXFormsUIWidget> widget(do_QueryInterface(aElement));\
NS_ENSURE_TRUE(widget, NS_ERROR_FAILURE);\
#define GET_COMBOBOX_UIWIDGET \
NS_ENSURE_ARG_POINTER(aElement);\
nsCOMPtr<nsIContent> content(do_QueryInterface(aElement));\
nsCOMPtr<nsIContent> parent(content->GetBindingParent());\
nsCOMPtr<nsIXFormsComboboxUIWidget> widget(do_QueryInterface(parent));\
NS_ENSURE_TRUE(widget, NS_ERROR_FAILURE);\
NS_IMETHODIMP
nsXFormsUtilityService::IsReadonly(nsIDOMNode *aElement, PRBool *aState)
{
@@ -179,3 +189,22 @@ nsXFormsUtilityService::GetEditor(nsIDOMNode *aElement, nsIEditor **aEditor)
return editable->GetEditor(aEditor);
}
NS_IMETHODIMP
nsXFormsUtilityService::IsDropmarkerOpen(nsIDOMNode *aElement, PRBool* aIsOpen)
{
NS_ENSURE_ARG_POINTER(aIsOpen);
GET_COMBOBOX_UIWIDGET
return widget->GetOpen(aIsOpen);
}
NS_IMETHODIMP
nsXFormsUtilityService::ToggleDropmarkerState(nsIDOMNode *aElement)
{
GET_COMBOBOX_UIWIDGET
PRBool isOpen = PR_FALSE;
nsresult rv = widget->GetOpen(&isOpen);
return widget->SetOpen(!isOpen);
}