/*
 * DO NOT EDIT.  THIS FILE IS GENERATED FROM nsIAccessibleText.idl
 */

#ifndef __gen_nsIAccessibleText_h__
#define __gen_nsIAccessibleText_h__


#ifndef __gen_nsISupports_h__
#include "nsISupports.h"
#endif

/* For IDL files that don't want to include root IDL files. */
#ifndef NS_NO_VTABLE
#define NS_NO_VTABLE
#endif
typedef PRInt32 nsAccessibleTextBoundary;

typedef PRInt32 nsAccessibleCoordType;


/* starting interface:    nsIAccessibleText */
#define NS_IACCESSIBLETEXT_IID_STR "e44d3fa6-9cb2-432a-8bdb-69d72b6ada00"

#define NS_IACCESSIBLETEXT_IID \
  {0xe44d3fa6, 0x9cb2, 0x432a, \
    { 0x8b, 0xdb, 0x69, 0xd7, 0x2b, 0x6a, 0xda, 0x00 }}

class NS_NO_VTABLE nsIAccessibleText : public nsISupports {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(NS_IACCESSIBLETEXT_IID)

  enum { BOUNDARY_CHAR = 0 };

  enum { BOUNDARY_WORD_START = 1 };

  enum { BOUNDARY_WORD_END = 2 };

  enum { BOUNDARY_SENTENCE_START = 3 };

  enum { BOUNDARY_SENTENCE_END = 4 };

  enum { BOUNDARY_LINE_START = 5 };

  enum { BOUNDARY_LINE_END = 6 };

  enum { BOUNDARY_ATTRIBUTE_RANGE = 7 };

  enum { COORD_TYPE_SCREEN = 0 };

  enum { COORD_TYPE_WINDOW = 1 };

  /* attribute long caretOffset; */
  NS_IMETHOD GetCaretOffset(PRInt32 *aCaretOffset) = 0;
  NS_IMETHOD SetCaretOffset(PRInt32 aCaretOffset) = 0;

  /* readonly attribute long characterCount; */
  NS_IMETHOD GetCharacterCount(PRInt32 *aCharacterCount) = 0;

  /* readonly attribute long selectionCount; */
  NS_IMETHOD GetSelectionCount(PRInt32 *aSelectionCount) = 0;

  /**
      * String methods may need to return multibyte-encoded strings,
      * since some locales can't be encoded using 16-bit chars.
      * So the methods below might return UTF-16 strings, or they could
      * return "string" values which are UTF-8.
      */
  /* AString getText (in long startOffset, in long endOffset); */
  NS_IMETHOD GetText(PRInt32 startOffset, PRInt32 endOffset, nsAString & _retval) = 0;

  /* AString getTextAfterOffset (in long offset, in nsAccessibleTextBoundary boundaryType, out long startOffset, out long endOffset); */
  NS_IMETHOD GetTextAfterOffset(PRInt32 offset, nsAccessibleTextBoundary boundaryType, PRInt32 *startOffset, PRInt32 *endOffset, nsAString & _retval) = 0;

  /* AString getTextAtOffset (in long offset, in nsAccessibleTextBoundary boundaryType, out long startOffset, out long endOffset); */
  NS_IMETHOD GetTextAtOffset(PRInt32 offset, nsAccessibleTextBoundary boundaryType, PRInt32 *startOffset, PRInt32 *endOffset, nsAString & _retval) = 0;

  /**
      * It would be better to return an unsigned long here,
      * to allow unicode chars > 16 bits
      */
  /* wchar getCharacterAtOffset (in long offset); */
  NS_IMETHOD GetCharacterAtOffset(PRInt32 offset, PRUnichar *_retval) = 0;

  /* nsISupports getAttributeRange (in long offset, out long rangeStartOffset, out long rangeEndOffset); */
  NS_IMETHOD GetAttributeRange(PRInt32 offset, PRInt32 *rangeStartOffset, PRInt32 *rangeEndOffset, nsISupports **_retval) = 0;

  /* AString getTextBeforeOffset (in long offset, in nsAccessibleTextBoundary boundaryType, out long startOffset, out long endOffset); */
  NS_IMETHOD GetTextBeforeOffset(PRInt32 offset, nsAccessibleTextBoundary boundaryType, PRInt32 *startOffset, PRInt32 *endOffset, nsAString & _retval) = 0;

  /* void getCharacterExtents (in long offset, out long x, out long y, out long length, out long width, in nsAccessibleCoordType coordType); */
  NS_IMETHOD GetCharacterExtents(PRInt32 offset, PRInt32 *x, PRInt32 *y, PRInt32 *length, PRInt32 *width, nsAccessibleCoordType coordType) = 0;

  /* long getOffsetAtPoint (in long x, in long y, in nsAccessibleCoordType coordType); */
  NS_IMETHOD GetOffsetAtPoint(PRInt32 x, PRInt32 y, nsAccessibleCoordType coordType, PRInt32 *_retval) = 0;

  /* void getSelectionBounds (in long selectionNum, out long startOffset, out long endOffset); */
  NS_IMETHOD GetSelectionBounds(PRInt32 selectionNum, PRInt32 *startOffset, PRInt32 *endOffset) = 0;

  /* void setSelectionBounds (in long selectionNum, in long startOffset, in long endOffset); */
  NS_IMETHOD SetSelectionBounds(PRInt32 selectionNum, PRInt32 startOffset, PRInt32 endOffset) = 0;

  /* void addSelection (in long startOffset, in long endOffset); */
  NS_IMETHOD AddSelection(PRInt32 startOffset, PRInt32 endOffset) = 0;

  /* void removeSelection (in long selectionNum); */
  NS_IMETHOD RemoveSelection(PRInt32 selectionNum) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_NSIACCESSIBLETEXT \
  NS_IMETHOD GetCaretOffset(PRInt32 *aCaretOffset); \
  NS_IMETHOD SetCaretOffset(PRInt32 aCaretOffset); \
  NS_IMETHOD GetCharacterCount(PRInt32 *aCharacterCount); \
  NS_IMETHOD GetSelectionCount(PRInt32 *aSelectionCount); \
  NS_IMETHOD GetText(PRInt32 startOffset, PRInt32 endOffset, nsAString & _retval); \
  NS_IMETHOD GetTextAfterOffset(PRInt32 offset, nsAccessibleTextBoundary boundaryType, PRInt32 *startOffset, PRInt32 *endOffset, nsAString & _retval); \
  NS_IMETHOD GetTextAtOffset(PRInt32 offset, nsAccessibleTextBoundary boundaryType, PRInt32 *startOffset, PRInt32 *endOffset, nsAString & _retval); \
  NS_IMETHOD GetCharacterAtOffset(PRInt32 offset, PRUnichar *_retval); \
  NS_IMETHOD GetAttributeRange(PRInt32 offset, PRInt32 *rangeStartOffset, PRInt32 *rangeEndOffset, nsISupports **_retval); \
  NS_IMETHOD GetTextBeforeOffset(PRInt32 offset, nsAccessibleTextBoundary boundaryType, PRInt32 *startOffset, PRInt32 *endOffset, nsAString & _retval); \
  NS_IMETHOD GetCharacterExtents(PRInt32 offset, PRInt32 *x, PRInt32 *y, PRInt32 *length, PRInt32 *width, nsAccessibleCoordType coordType); \
  NS_IMETHOD GetOffsetAtPoint(PRInt32 x, PRInt32 y, nsAccessibleCoordType coordType, PRInt32 *_retval); \
  NS_IMETHOD GetSelectionBounds(PRInt32 selectionNum, PRInt32 *startOffset, PRInt32 *endOffset); \
  NS_IMETHOD SetSelectionBounds(PRInt32 selectionNum, PRInt32 startOffset, PRInt32 endOffset); \
  NS_IMETHOD AddSelection(PRInt32 startOffset, PRInt32 endOffset); \
  NS_IMETHOD RemoveSelection(PRInt32 selectionNum); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_NSIACCESSIBLETEXT(_to) \
  NS_IMETHOD GetCaretOffset(PRInt32 *aCaretOffset) { return _to GetCaretOffset(aCaretOffset); } \
  NS_IMETHOD SetCaretOffset(PRInt32 aCaretOffset) { return _to SetCaretOffset(aCaretOffset); } \
  NS_IMETHOD GetCharacterCount(PRInt32 *aCharacterCount) { return _to GetCharacterCount(aCharacterCount); } \
  NS_IMETHOD GetSelectionCount(PRInt32 *aSelectionCount) { return _to GetSelectionCount(aSelectionCount); } \
  NS_IMETHOD GetText(PRInt32 startOffset, PRInt32 endOffset, nsAString & _retval) { return _to GetText(startOffset, endOffset, _retval); } \
  NS_IMETHOD GetTextAfterOffset(PRInt32 offset, nsAccessibleTextBoundary boundaryType, PRInt32 *startOffset, PRInt32 *endOffset, nsAString & _retval) { return _to GetTextAfterOffset(offset, boundaryType, startOffset, endOffset, _retval); } \
  NS_IMETHOD GetTextAtOffset(PRInt32 offset, nsAccessibleTextBoundary boundaryType, PRInt32 *startOffset, PRInt32 *endOffset, nsAString & _retval) { return _to GetTextAtOffset(offset, boundaryType, startOffset, endOffset, _retval); } \
  NS_IMETHOD GetCharacterAtOffset(PRInt32 offset, PRUnichar *_retval) { return _to GetCharacterAtOffset(offset, _retval); } \
  NS_IMETHOD GetAttributeRange(PRInt32 offset, PRInt32 *rangeStartOffset, PRInt32 *rangeEndOffset, nsISupports **_retval) { return _to GetAttributeRange(offset, rangeStartOffset, rangeEndOffset, _retval); } \
  NS_IMETHOD GetTextBeforeOffset(PRInt32 offset, nsAccessibleTextBoundary boundaryType, PRInt32 *startOffset, PRInt32 *endOffset, nsAString & _retval) { return _to GetTextBeforeOffset(offset, boundaryType, startOffset, endOffset, _retval); } \
  NS_IMETHOD GetCharacterExtents(PRInt32 offset, PRInt32 *x, PRInt32 *y, PRInt32 *length, PRInt32 *width, nsAccessibleCoordType coordType) { return _to GetCharacterExtents(offset, x, y, length, width, coordType); } \
  NS_IMETHOD GetOffsetAtPoint(PRInt32 x, PRInt32 y, nsAccessibleCoordType coordType, PRInt32 *_retval) { return _to GetOffsetAtPoint(x, y, coordType, _retval); } \
  NS_IMETHOD GetSelectionBounds(PRInt32 selectionNum, PRInt32 *startOffset, PRInt32 *endOffset) { return _to GetSelectionBounds(selectionNum, startOffset, endOffset); } \
  NS_IMETHOD SetSelectionBounds(PRInt32 selectionNum, PRInt32 startOffset, PRInt32 endOffset) { return _to SetSelectionBounds(selectionNum, startOffset, endOffset); } \
  NS_IMETHOD AddSelection(PRInt32 startOffset, PRInt32 endOffset) { return _to AddSelection(startOffset, endOffset); } \
  NS_IMETHOD RemoveSelection(PRInt32 selectionNum) { return _to RemoveSelection(selectionNum); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_NSIACCESSIBLETEXT(_to) \
  NS_IMETHOD GetCaretOffset(PRInt32 *aCaretOffset) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetCaretOffset(aCaretOffset); } \
  NS_IMETHOD SetCaretOffset(PRInt32 aCaretOffset) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetCaretOffset(aCaretOffset); } \
  NS_IMETHOD GetCharacterCount(PRInt32 *aCharacterCount) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetCharacterCount(aCharacterCount); } \
  NS_IMETHOD GetSelectionCount(PRInt32 *aSelectionCount) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetSelectionCount(aSelectionCount); } \
  NS_IMETHOD GetText(PRInt32 startOffset, PRInt32 endOffset, nsAString & _retval) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetText(startOffset, endOffset, _retval); } \
  NS_IMETHOD GetTextAfterOffset(PRInt32 offset, nsAccessibleTextBoundary boundaryType, PRInt32 *startOffset, PRInt32 *endOffset, nsAString & _retval) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetTextAfterOffset(offset, boundaryType, startOffset, endOffset, _retval); } \
  NS_IMETHOD GetTextAtOffset(PRInt32 offset, nsAccessibleTextBoundary boundaryType, PRInt32 *startOffset, PRInt32 *endOffset, nsAString & _retval) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetTextAtOffset(offset, boundaryType, startOffset, endOffset, _retval); } \
  NS_IMETHOD GetCharacterAtOffset(PRInt32 offset, PRUnichar *_retval) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetCharacterAtOffset(offset, _retval); } \
  NS_IMETHOD GetAttributeRange(PRInt32 offset, PRInt32 *rangeStartOffset, PRInt32 *rangeEndOffset, nsISupports **_retval) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetAttributeRange(offset, rangeStartOffset, rangeEndOffset, _retval); } \
  NS_IMETHOD GetTextBeforeOffset(PRInt32 offset, nsAccessibleTextBoundary boundaryType, PRInt32 *startOffset, PRInt32 *endOffset, nsAString & _retval) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetTextBeforeOffset(offset, boundaryType, startOffset, endOffset, _retval); } \
  NS_IMETHOD GetCharacterExtents(PRInt32 offset, PRInt32 *x, PRInt32 *y, PRInt32 *length, PRInt32 *width, nsAccessibleCoordType coordType) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetCharacterExtents(offset, x, y, length, width, coordType); } \
  NS_IMETHOD GetOffsetAtPoint(PRInt32 x, PRInt32 y, nsAccessibleCoordType coordType, PRInt32 *_retval) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetOffsetAtPoint(x, y, coordType, _retval); } \
  NS_IMETHOD GetSelectionBounds(PRInt32 selectionNum, PRInt32 *startOffset, PRInt32 *endOffset) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetSelectionBounds(selectionNum, startOffset, endOffset); } \
  NS_IMETHOD SetSelectionBounds(PRInt32 selectionNum, PRInt32 startOffset, PRInt32 endOffset) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetSelectionBounds(selectionNum, startOffset, endOffset); } \
  NS_IMETHOD AddSelection(PRInt32 startOffset, PRInt32 endOffset) { return !_to ? NS_ERROR_NULL_POINTER : _to->AddSelection(startOffset, endOffset); } \
  NS_IMETHOD RemoveSelection(PRInt32 selectionNum) { return !_to ? NS_ERROR_NULL_POINTER : _to->RemoveSelection(selectionNum); } 

#if 0
/* Use the code below as a template for the implementation class for this interface. */

/* Header file */
class nsAccessibleText : public nsIAccessibleText
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_NSIACCESSIBLETEXT

  nsAccessibleText();
  virtual ~nsAccessibleText();
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(nsAccessibleText, nsIAccessibleText)

nsAccessibleText::nsAccessibleText()
{
  NS_INIT_ISUPPORTS();
  /* member initializers and constructor code */
}

nsAccessibleText::~nsAccessibleText()
{
  /* destructor code */
}

/* attribute long caretOffset; */
NS_IMETHODIMP nsAccessibleText::GetCaretOffset(PRInt32 *aCaretOffset)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsAccessibleText::SetCaretOffset(PRInt32 aCaretOffset)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute long characterCount; */
NS_IMETHODIMP nsAccessibleText::GetCharacterCount(PRInt32 *aCharacterCount)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute long selectionCount; */
NS_IMETHODIMP nsAccessibleText::GetSelectionCount(PRInt32 *aSelectionCount)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* AString getText (in long startOffset, in long endOffset); */
NS_IMETHODIMP nsAccessibleText::GetText(PRInt32 startOffset, PRInt32 endOffset, nsAString & _retval)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* AString getTextAfterOffset (in long offset, in nsAccessibleTextBoundary boundaryType, out long startOffset, out long endOffset); */
NS_IMETHODIMP nsAccessibleText::GetTextAfterOffset(PRInt32 offset, nsAccessibleTextBoundary boundaryType, PRInt32 *startOffset, PRInt32 *endOffset, nsAString & _retval)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* AString getTextAtOffset (in long offset, in nsAccessibleTextBoundary boundaryType, out long startOffset, out long endOffset); */
NS_IMETHODIMP nsAccessibleText::GetTextAtOffset(PRInt32 offset, nsAccessibleTextBoundary boundaryType, PRInt32 *startOffset, PRInt32 *endOffset, nsAString & _retval)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* wchar getCharacterAtOffset (in long offset); */
NS_IMETHODIMP nsAccessibleText::GetCharacterAtOffset(PRInt32 offset, PRUnichar *_retval)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* nsISupports getAttributeRange (in long offset, out long rangeStartOffset, out long rangeEndOffset); */
NS_IMETHODIMP nsAccessibleText::GetAttributeRange(PRInt32 offset, PRInt32 *rangeStartOffset, PRInt32 *rangeEndOffset, nsISupports **_retval)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* AString getTextBeforeOffset (in long offset, in nsAccessibleTextBoundary boundaryType, out long startOffset, out long endOffset); */
NS_IMETHODIMP nsAccessibleText::GetTextBeforeOffset(PRInt32 offset, nsAccessibleTextBoundary boundaryType, PRInt32 *startOffset, PRInt32 *endOffset, nsAString & _retval)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void getCharacterExtents (in long offset, out long x, out long y, out long length, out long width, in nsAccessibleCoordType coordType); */
NS_IMETHODIMP nsAccessibleText::GetCharacterExtents(PRInt32 offset, PRInt32 *x, PRInt32 *y, PRInt32 *length, PRInt32 *width, nsAccessibleCoordType coordType)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* long getOffsetAtPoint (in long x, in long y, in nsAccessibleCoordType coordType); */
NS_IMETHODIMP nsAccessibleText::GetOffsetAtPoint(PRInt32 x, PRInt32 y, nsAccessibleCoordType coordType, PRInt32 *_retval)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void getSelectionBounds (in long selectionNum, out long startOffset, out long endOffset); */
NS_IMETHODIMP nsAccessibleText::GetSelectionBounds(PRInt32 selectionNum, PRInt32 *startOffset, PRInt32 *endOffset)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void setSelectionBounds (in long selectionNum, in long startOffset, in long endOffset); */
NS_IMETHODIMP nsAccessibleText::SetSelectionBounds(PRInt32 selectionNum, PRInt32 startOffset, PRInt32 endOffset)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void addSelection (in long startOffset, in long endOffset); */
NS_IMETHODIMP nsAccessibleText::AddSelection(PRInt32 startOffset, PRInt32 endOffset)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void removeSelection (in long selectionNum); */
NS_IMETHODIMP nsAccessibleText::RemoveSelection(PRInt32 selectionNum)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* End of implementation class template. */
#endif


#endif /* __gen_nsIAccessibleText_h__ */
