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

#ifndef __gen_nsIAccessibleProvider_h__
#define __gen_nsIAccessibleProvider_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

/* starting interface:    nsIAccessibleProvider */
#define NS_IACCESSIBLEPROVIDER_IID_STR "1a57d854-12df-4b7b-8552-a3cd1fa90618"

#define NS_IACCESSIBLEPROVIDER_IID \
  {0x1a57d854, 0x12df, 0x4b7b, \
    { 0x85, 0x52, 0xa3, 0xcd, 0x1f, 0xa9, 0x06, 0x18 }}

/**
 * nsIAccessibleProvider interface is used to link element and accessible
   object. For that XBL binding of element should implement the interface.
 */
class NS_NO_VTABLE nsIAccessibleProvider : public nsISupports {
 public: 

  NS_DECLARE_STATIC_IID_ACCESSOR(NS_IACCESSIBLEPROVIDER_IID)

  /**
   * Constants set of common use.
   */
/** For elements that spawn a new document. For example now it is used by
    <xul:iframe>, <xul:browser> and <xul:editor>. */
  enum { OuterDoc = 1 };

  /**
   * Constants set is used by XUL controls.
   */
  enum { XULAlert = 4097 };

  enum { XULButton = 4098 };

  enum { XULCheckbox = 4099 };

  enum { XULColorPicker = 4100 };

  enum { XULColorPickerTile = 4101 };

  enum { XULCombobox = 4102 };

  enum { XULDropmarker = 4103 };

  enum { XULGroupbox = 4104 };

  enum { XULImage = 4105 };

  enum { XULLink = 4112 };

  enum { XULListbox = 4113 };

  enum { XULListitem = 4114 };

  enum { XULMenubar = 4115 };

  enum { XULMenuitem = 4116 };

  enum { XULMenupopup = 4117 };

  enum { XULMenuSeparator = 4118 };

  enum { XULProgressMeter = 4119 };

  enum { XULStatusBar = 4120 };

  enum { XULRadioButton = 4121 };

  enum { XULRadioGroup = 4128 };

  /** The single tab in a dialog or tabbrowser/editor interface */
  enum { XULTab = 4129 };

  /** A combination of a tabs object and a tabpanels object */
  enum { XULTabBox = 4130 };

  /** The display area for a dialog or tabbrowser interface */
  enum { XULTabPanels = 4131 };

  /** The collection of tab objects, useable in the TabBox and independant of
   as well */
  enum { XULTabs = 4132 };

  enum { XULText = 4133 };

  enum { XULTextBox = 4134 };

  enum { XULTree = 4135 };

  enum { XULTreeColumns = 4136 };

  enum { XULTreeColumnitem = 4137 };

  enum { XULToolbar = 4144 };

  enum { XULToolbarSeparator = 4145 };

  enum { XULTooltip = 4146 };

  /**
   * Constants set is used by XForms elements.
   */
/** Used for label element */
  enum { XFormsLabel = 8193 };

  /** Used for output element */
  enum { XFormsOuput = 8194 };

  /** Used for trigger and submit elements */
  enum { XFormsTrigger = 8195 };

  /** Used for input and textarea elements */
  enum { XFormsInput = 8196 };

  /** Used for input[xsd:boolean] element */
  enum { XFormsInputBoolean = 8197 };

  /** Used for secret element */
  enum { XFormsSecret = 8198 };

  /** Used for range element */
  enum { XFormsRange = 8199 };

  /**
   * Return one of constants declared above.
   */
  /* readonly attribute long accessibleType; */
  NS_IMETHOD GetAccessibleType(PRInt32 *aAccessibleType) = 0;

};

  NS_DEFINE_STATIC_IID_ACCESSOR(nsIAccessibleProvider, NS_IACCESSIBLEPROVIDER_IID)

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_NSIACCESSIBLEPROVIDER \
  NS_IMETHOD GetAccessibleType(PRInt32 *aAccessibleType); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_NSIACCESSIBLEPROVIDER(_to) \
  NS_IMETHOD GetAccessibleType(PRInt32 *aAccessibleType) { return _to GetAccessibleType(aAccessibleType); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_NSIACCESSIBLEPROVIDER(_to) \
  NS_IMETHOD GetAccessibleType(PRInt32 *aAccessibleType) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetAccessibleType(aAccessibleType); } 

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

/* Header file */
class nsAccessibleProvider : public nsIAccessibleProvider
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_NSIACCESSIBLEPROVIDER

  nsAccessibleProvider();

private:
  ~nsAccessibleProvider();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(nsAccessibleProvider, nsIAccessibleProvider)

nsAccessibleProvider::nsAccessibleProvider()
{
  /* member initializers and constructor code */
}

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

/* readonly attribute long accessibleType; */
NS_IMETHODIMP nsAccessibleProvider::GetAccessibleType(PRInt32 *aAccessibleType)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

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


#endif /* __gen_nsIAccessibleProvider_h__ */
