예제 #1
0
CString CCellListCtrl::GetColumnHeadingText(int index) const
{
	if (!IsValidColumn(index)) {
		AfxThrowInvalidArgException();
	}
	return m_columns[index].HeadingText;
}
예제 #2
0
NS_IMETHODIMP
nsARIAGridAccessible::IsColumnSelected(PRInt32 aColumn, PRBool *aIsSelected)
{
  NS_ENSURE_ARG_POINTER(aIsSelected);
  *aIsSelected = PR_FALSE;

  if (IsDefunct())
    return NS_ERROR_FAILURE;

  NS_ENSURE_ARG(IsValidColumn(aColumn));

  nsCOMPtr<nsIAccessible> row = GetNextRow();
  if (!row)
    return NS_OK;

  do {
    if (!nsAccUtils::IsARIASelected(row)) {
      nsCOMPtr<nsIAccessible> cell = GetCellInRowAt(row, aColumn);
      if (!cell) // Do not fail due to wrong markup
        return NS_OK;
      
      if (!nsAccUtils::IsARIASelected(cell))
        return NS_OK;
    }
  } while ((row = GetNextRow(row)));

  *aIsSelected = PR_TRUE;
  return NS_OK;
}
NS_IMETHODIMP
nsARIAGridAccessible::SelectColumn(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())) {
    // Unselect all cells in the row.
    nsresult rv = SetARIASelected(row, PR_FALSE);
    NS_ENSURE_SUCCESS(rv, rv);

    // Select cell at the column index.
    nsAccessible *cell = GetCellInRowAt(row, aColumn);
    if (cell) {
      rv = SetARIASelected(cell, PR_TRUE);
      NS_ENSURE_SUCCESS(rv, rv);
    }
  }

  return NS_OK;
}
예제 #4
0
int CCellListCtrl::GetColumnWidth(int index) const
{
	if (!IsValidColumn(index)) {
		AfxThrowInvalidArgException();
	}
	return m_columns[index].Width;
}
예제 #5
0
CString CCellListCtrl::GetItemText(int iItem, int iColumn) const
{
	if (!IsValidItem(iItem) || !IsValidColumn(iColumn)) {
		AfxThrowInvalidArgException();
	}
	const std::vector<CString>& texts = m_items[iItem].Text;
	return (iColumn < static_cast<int>(texts.size())) ? texts[iColumn] : CString();
}
예제 #6
0
bool CCellListCtrl::SetColumnHeadingText(int index, LPCTSTR headingText)
{
	if (!IsValidColumn(index)) {
		return false;
	}

	m_columns[index].HeadingText = headingText;
	return true;
}
예제 #7
0
bool CCellListCtrl::SetItemText(int iItem, int iColumn, LPCTSTR text)
{
	if (!IsValidItem(iItem) || !IsValidColumn(iColumn)) {
		return false;
	}

	m_items[iItem].Text[iColumn] = text;
	return true;
}
예제 #8
0
bool CCellListCtrl::DeleteColumn(int index)
{
	if (!IsValidColumn(index)) {
		return false;
	}

	m_columns.erase(m_columns.begin() + index);

	return true;
}
예제 #9
0
NS_IMETHODIMP
nsARIAGridAccessible::GetColumnDescription(PRInt32 aColumn,
                                           nsAString& aDescription)
{
  aDescription.Truncate();

  if (IsDefunct())
    return NS_ERROR_FAILURE;

  NS_ENSURE_ARG(IsValidColumn(aColumn));

  // XXX: not implemented
  return NS_ERROR_NOT_IMPLEMENTED;
}
예제 #10
0
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;
}