NS_IMETHODIMP nsARIAGridAccessible::UnselectColumn(PRInt32 aColumn) { NS_ENSURE_ARG(IsValidColumn(aColumn)); if (IsDefunct()) return NS_ERROR_FAILURE; nsCOMPtr<nsIAccessible> row; while ((row = GetNextRow(row))) { nsCOMPtr<nsIAccessible> cell = GetCellInRowAt(row, aColumn); if (cell) { nsresult rv = SetARIASelected(cell, PR_FALSE); NS_ENSURE_SUCCESS(rv, rv); } } return NS_OK; }
NS_IMETHODIMP nsARIAGridAccessible::GetCellAt(PRInt32 aRowIndex, PRInt32 aColumnIndex, nsIAccessible **aAccessible) { NS_ENSURE_ARG_POINTER(aAccessible); *aAccessible = nsnull; if (IsDefunct()) return NS_ERROR_FAILURE; nsCOMPtr<nsIAccessible> row = GetRowAt(aRowIndex); NS_ENSURE_ARG(row); nsCOMPtr<nsIAccessible> cell = GetCellInRowAt(row, aColumnIndex); NS_ENSURE_ARG(cell); NS_ADDREF(*aAccessible = cell); return NS_OK; }
NS_IMETHODIMP nsARIAGridAccessible::UnselectColumn(PRInt32 aColumn) { NS_ENSURE_ARG(IsValidColumn(aColumn)); if (IsDefunct()) return NS_ERROR_FAILURE; AccIterator rowIter(this, filters::GetRow); nsAccessible *row = nsnull; while ((row = rowIter.GetNext())) { nsAccessible *cell = GetCellInRowAt(row, aColumn); if (cell) { nsresult rv = SetARIASelected(cell, PR_FALSE); NS_ENSURE_SUCCESS(rv, rv); } } return NS_OK; }
NS_IMETHODIMP nsARIAGridAccessible::IsCellSelected(PRInt32 aRow, PRInt32 aColumn, PRBool *aIsSelected) { NS_ENSURE_ARG_POINTER(aIsSelected); *aIsSelected = PR_FALSE; if (IsDefunct()) return NS_ERROR_FAILURE; nsCOMPtr<nsIAccessible> row(GetRowAt(aRow)); NS_ENSURE_ARG(row); if (!nsAccUtils::IsARIASelected(row)) { nsCOMPtr<nsIAccessible> cell(GetCellInRowAt(row, aColumn)); NS_ENSURE_ARG(cell); if (!nsAccUtils::IsARIASelected(cell)) return NS_OK; } *aIsSelected = PR_TRUE; return NS_OK; }