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

#ifndef __gen_nsIAutoCompleteController_h__
#define __gen_nsIAutoCompleteController_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
class nsIAutoCompleteInput; /* forward declaration */


/* starting interface:    nsIAutoCompleteController */
#define NS_IAUTOCOMPLETECONTROLLER_IID_STR "75866768-ed00-4ff4-b950-485449a67a88"

#define NS_IAUTOCOMPLETECONTROLLER_IID \
  {0x75866768, 0xed00, 0x4ff4, \
    { 0xb9, 0x50, 0x48, 0x54, 0x49, 0xa6, 0x7a, 0x88 }}

class NS_NO_VTABLE nsIAutoCompleteController : public nsISupports {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(NS_IAUTOCOMPLETECONTROLLER_IID)

  enum { STATUS_NONE = 1U };

  enum { STATUS_SEARCHING = 2U };

  enum { STATUS_COMPLETE_NO_MATCH = 3U };

  enum { STATUS_COMPLETE_MATCH = 4U };

  enum { KEY_UP = 1U };

  enum { KEY_DOWN = 2U };

  enum { KEY_LEFT = 3U };

  enum { KEY_RIGHT = 4U };

  enum { KEY_PAGE_UP = 5U };

  enum { KEY_PAGE_DOWN = 6U };

  enum { KEY_HOME = 7U };

  enum { KEY_END = 8U };

  /* attribute nsIAutoCompleteInput input; */
  NS_IMETHOD GetInput(nsIAutoCompleteInput * *aInput) = 0;
  NS_IMETHOD SetInput(nsIAutoCompleteInput * aInput) = 0;

  /* readonly attribute unsigned short searchStatus; */
  NS_IMETHOD GetSearchStatus(PRUint16 *aSearchStatus) = 0;

  /* readonly attribute unsigned long matchCount; */
  NS_IMETHOD GetMatchCount(PRUint32 *aMatchCount) = 0;

  /* void startSearch (in AString searchString); */
  NS_IMETHOD StartSearch(const nsAString & searchString) = 0;

  /* void handleText (); */
  NS_IMETHOD HandleText(void) = 0;

  /* boolean handleEnter (); */
  NS_IMETHOD HandleEnter(PRBool *_retval) = 0;

  /* boolean handleEscape (); */
  NS_IMETHOD HandleEscape(PRBool *_retval) = 0;

  /* void handleTab (); */
  NS_IMETHOD HandleTab(void) = 0;

  /* boolean handleKeyNavigation (in unsigned short key); */
  NS_IMETHOD HandleKeyNavigation(PRUint16 key, PRBool *_retval) = 0;

  /* AString getValueAt (in long index); */
  NS_IMETHOD GetValueAt(PRInt32 index, nsAString & _retval) = 0;

  /* AString getCommentAt (in long index); */
  NS_IMETHOD GetCommentAt(PRInt32 index, nsAString & _retval) = 0;

  /* AString getStyleAt (in long index); */
  NS_IMETHOD GetStyleAt(PRInt32 index, nsAString & _retval) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_NSIAUTOCOMPLETECONTROLLER \
  NS_IMETHOD GetInput(nsIAutoCompleteInput * *aInput); \
  NS_IMETHOD SetInput(nsIAutoCompleteInput * aInput); \
  NS_IMETHOD GetSearchStatus(PRUint16 *aSearchStatus); \
  NS_IMETHOD GetMatchCount(PRUint32 *aMatchCount); \
  NS_IMETHOD StartSearch(const nsAString & searchString); \
  NS_IMETHOD HandleText(void); \
  NS_IMETHOD HandleEnter(PRBool *_retval); \
  NS_IMETHOD HandleEscape(PRBool *_retval); \
  NS_IMETHOD HandleTab(void); \
  NS_IMETHOD HandleKeyNavigation(PRUint16 key, PRBool *_retval); \
  NS_IMETHOD GetValueAt(PRInt32 index, nsAString & _retval); \
  NS_IMETHOD GetCommentAt(PRInt32 index, nsAString & _retval); \
  NS_IMETHOD GetStyleAt(PRInt32 index, nsAString & _retval); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_NSIAUTOCOMPLETECONTROLLER(_to) \
  NS_IMETHOD GetInput(nsIAutoCompleteInput * *aInput) { return _to GetInput(aInput); } \
  NS_IMETHOD SetInput(nsIAutoCompleteInput * aInput) { return _to SetInput(aInput); } \
  NS_IMETHOD GetSearchStatus(PRUint16 *aSearchStatus) { return _to GetSearchStatus(aSearchStatus); } \
  NS_IMETHOD GetMatchCount(PRUint32 *aMatchCount) { return _to GetMatchCount(aMatchCount); } \
  NS_IMETHOD StartSearch(const nsAString & searchString) { return _to StartSearch(searchString); } \
  NS_IMETHOD HandleText(void) { return _to HandleText(); } \
  NS_IMETHOD HandleEnter(PRBool *_retval) { return _to HandleEnter(_retval); } \
  NS_IMETHOD HandleEscape(PRBool *_retval) { return _to HandleEscape(_retval); } \
  NS_IMETHOD HandleTab(void) { return _to HandleTab(); } \
  NS_IMETHOD HandleKeyNavigation(PRUint16 key, PRBool *_retval) { return _to HandleKeyNavigation(key, _retval); } \
  NS_IMETHOD GetValueAt(PRInt32 index, nsAString & _retval) { return _to GetValueAt(index, _retval); } \
  NS_IMETHOD GetCommentAt(PRInt32 index, nsAString & _retval) { return _to GetCommentAt(index, _retval); } \
  NS_IMETHOD GetStyleAt(PRInt32 index, nsAString & _retval) { return _to GetStyleAt(index, _retval); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_NSIAUTOCOMPLETECONTROLLER(_to) \
  NS_IMETHOD GetInput(nsIAutoCompleteInput * *aInput) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInput(aInput); } \
  NS_IMETHOD SetInput(nsIAutoCompleteInput * aInput) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetInput(aInput); } \
  NS_IMETHOD GetSearchStatus(PRUint16 *aSearchStatus) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetSearchStatus(aSearchStatus); } \
  NS_IMETHOD GetMatchCount(PRUint32 *aMatchCount) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetMatchCount(aMatchCount); } \
  NS_IMETHOD StartSearch(const nsAString & searchString) { return !_to ? NS_ERROR_NULL_POINTER : _to->StartSearch(searchString); } \
  NS_IMETHOD HandleText(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->HandleText(); } \
  NS_IMETHOD HandleEnter(PRBool *_retval) { return !_to ? NS_ERROR_NULL_POINTER : _to->HandleEnter(_retval); } \
  NS_IMETHOD HandleEscape(PRBool *_retval) { return !_to ? NS_ERROR_NULL_POINTER : _to->HandleEscape(_retval); } \
  NS_IMETHOD HandleTab(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->HandleTab(); } \
  NS_IMETHOD HandleKeyNavigation(PRUint16 key, PRBool *_retval) { return !_to ? NS_ERROR_NULL_POINTER : _to->HandleKeyNavigation(key, _retval); } \
  NS_IMETHOD GetValueAt(PRInt32 index, nsAString & _retval) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetValueAt(index, _retval); } \
  NS_IMETHOD GetCommentAt(PRInt32 index, nsAString & _retval) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetCommentAt(index, _retval); } \
  NS_IMETHOD GetStyleAt(PRInt32 index, nsAString & _retval) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetStyleAt(index, _retval); } 

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

/* Header file */
class nsAutoCompleteController : public nsIAutoCompleteController
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_NSIAUTOCOMPLETECONTROLLER

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

/* Implementation file */
NS_IMPL_ISUPPORTS1(nsAutoCompleteController, nsIAutoCompleteController)

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

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

/* attribute nsIAutoCompleteInput input; */
NS_IMETHODIMP nsAutoCompleteController::GetInput(nsIAutoCompleteInput * *aInput)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsAutoCompleteController::SetInput(nsIAutoCompleteInput * aInput)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned short searchStatus; */
NS_IMETHODIMP nsAutoCompleteController::GetSearchStatus(PRUint16 *aSearchStatus)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long matchCount; */
NS_IMETHODIMP nsAutoCompleteController::GetMatchCount(PRUint32 *aMatchCount)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void startSearch (in AString searchString); */
NS_IMETHODIMP nsAutoCompleteController::StartSearch(const nsAString & searchString)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void handleText (); */
NS_IMETHODIMP nsAutoCompleteController::HandleText()
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* boolean handleEnter (); */
NS_IMETHODIMP nsAutoCompleteController::HandleEnter(PRBool *_retval)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* boolean handleEscape (); */
NS_IMETHODIMP nsAutoCompleteController::HandleEscape(PRBool *_retval)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void handleTab (); */
NS_IMETHODIMP nsAutoCompleteController::HandleTab()
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* boolean handleKeyNavigation (in unsigned short key); */
NS_IMETHODIMP nsAutoCompleteController::HandleKeyNavigation(PRUint16 key, PRBool *_retval)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* AString getValueAt (in long index); */
NS_IMETHODIMP nsAutoCompleteController::GetValueAt(PRInt32 index, nsAString & _retval)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* AString getCommentAt (in long index); */
NS_IMETHODIMP nsAutoCompleteController::GetCommentAt(PRInt32 index, nsAString & _retval)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* AString getStyleAt (in long index); */
NS_IMETHODIMP nsAutoCompleteController::GetStyleAt(PRInt32 index, nsAString & _retval)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

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


#endif /* __gen_nsIAutoCompleteController_h__ */
