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

#ifndef __gen_nsIDOMXULTreeElement_h__
#define __gen_nsIDOMXULTreeElement_h__


#ifndef __gen_nsIDOMXULElement_h__
#include "nsIDOMXULElement.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:    nsIDOMXULTreeElement */
#define NS_IDOMXULTREEELEMENT_IID_STR "a6cf90ec-15b3-11d2-932e-00805f8add32"

#define NS_IDOMXULTREEELEMENT_IID \
  {0xa6cf90ec, 0x15b3, 0x11d2, \
    { 0x93, 0x2e, 0x00, 0x80, 0x5f, 0x8a, 0xdd, 0x32 }}

class NS_NO_VTABLE nsIDOMXULTreeElement : public nsIDOMXULElement {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(NS_IDOMXULTREEELEMENT_IID)

  /* readonly attribute nsIDOMNodeList selectedItems; */
  NS_IMETHOD GetSelectedItems(nsIDOMNodeList * *aSelectedItems) = 0;

  /* attribute nsIDOMXULElement currentItem; */
  NS_IMETHOD GetCurrentItem(nsIDOMXULElement * *aCurrentItem) = 0;
  NS_IMETHOD SetCurrentItem(nsIDOMXULElement * aCurrentItem) = 0;

  /* attribute boolean suppressOnSelect; */
  NS_IMETHOD GetSuppressOnSelect(PRBool *aSuppressOnSelect) = 0;
  NS_IMETHOD SetSuppressOnSelect(PRBool aSuppressOnSelect) = 0;

  /* void selectItem (in nsIDOMXULElement treeItem); */
  NS_IMETHOD SelectItem(nsIDOMXULElement *treeItem) = 0;

  /* void timedSelect (in nsIDOMXULElement treeItem, in long timeout); */
  NS_IMETHOD TimedSelect(nsIDOMXULElement *treeItem, PRInt32 timeout) = 0;

  /* void clearItemSelection (); */
  NS_IMETHOD ClearItemSelection(void) = 0;

  /* void addItemToSelection (in nsIDOMXULElement treeItem); */
  NS_IMETHOD AddItemToSelection(nsIDOMXULElement *treeItem) = 0;

  /* void removeItemFromSelection (in nsIDOMXULElement treeItem); */
  NS_IMETHOD RemoveItemFromSelection(nsIDOMXULElement *treeItem) = 0;

  /* void toggleItemSelection (in nsIDOMXULElement treeItem); */
  NS_IMETHOD ToggleItemSelection(nsIDOMXULElement *treeItem) = 0;

  /* void selectItemRange (in nsIDOMXULElement startItem, in nsIDOMXULElement endItem); */
  NS_IMETHOD SelectItemRange(nsIDOMXULElement *startItem, nsIDOMXULElement *endItem) = 0;

  /* void selectAll (); */
  NS_IMETHOD SelectAll(void) = 0;

  /* void invertSelection (); */
  NS_IMETHOD InvertSelection(void) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_NSIDOMXULTREEELEMENT \
  NS_IMETHOD GetSelectedItems(nsIDOMNodeList * *aSelectedItems); \
  NS_IMETHOD GetCurrentItem(nsIDOMXULElement * *aCurrentItem); \
  NS_IMETHOD SetCurrentItem(nsIDOMXULElement * aCurrentItem); \
  NS_IMETHOD GetSuppressOnSelect(PRBool *aSuppressOnSelect); \
  NS_IMETHOD SetSuppressOnSelect(PRBool aSuppressOnSelect); \
  NS_IMETHOD SelectItem(nsIDOMXULElement *treeItem); \
  NS_IMETHOD TimedSelect(nsIDOMXULElement *treeItem, PRInt32 timeout); \
  NS_IMETHOD ClearItemSelection(void); \
  NS_IMETHOD AddItemToSelection(nsIDOMXULElement *treeItem); \
  NS_IMETHOD RemoveItemFromSelection(nsIDOMXULElement *treeItem); \
  NS_IMETHOD ToggleItemSelection(nsIDOMXULElement *treeItem); \
  NS_IMETHOD SelectItemRange(nsIDOMXULElement *startItem, nsIDOMXULElement *endItem); \
  NS_IMETHOD SelectAll(void); \
  NS_IMETHOD InvertSelection(void); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_NSIDOMXULTREEELEMENT(_to) \
  NS_IMETHOD GetSelectedItems(nsIDOMNodeList * *aSelectedItems) { return _to GetSelectedItems(aSelectedItems); } \
  NS_IMETHOD GetCurrentItem(nsIDOMXULElement * *aCurrentItem) { return _to GetCurrentItem(aCurrentItem); } \
  NS_IMETHOD SetCurrentItem(nsIDOMXULElement * aCurrentItem) { return _to SetCurrentItem(aCurrentItem); } \
  NS_IMETHOD GetSuppressOnSelect(PRBool *aSuppressOnSelect) { return _to GetSuppressOnSelect(aSuppressOnSelect); } \
  NS_IMETHOD SetSuppressOnSelect(PRBool aSuppressOnSelect) { return _to SetSuppressOnSelect(aSuppressOnSelect); } \
  NS_IMETHOD SelectItem(nsIDOMXULElement *treeItem) { return _to SelectItem(treeItem); } \
  NS_IMETHOD TimedSelect(nsIDOMXULElement *treeItem, PRInt32 timeout) { return _to TimedSelect(treeItem, timeout); } \
  NS_IMETHOD ClearItemSelection(void) { return _to ClearItemSelection(); } \
  NS_IMETHOD AddItemToSelection(nsIDOMXULElement *treeItem) { return _to AddItemToSelection(treeItem); } \
  NS_IMETHOD RemoveItemFromSelection(nsIDOMXULElement *treeItem) { return _to RemoveItemFromSelection(treeItem); } \
  NS_IMETHOD ToggleItemSelection(nsIDOMXULElement *treeItem) { return _to ToggleItemSelection(treeItem); } \
  NS_IMETHOD SelectItemRange(nsIDOMXULElement *startItem, nsIDOMXULElement *endItem) { return _to SelectItemRange(startItem, endItem); } \
  NS_IMETHOD SelectAll(void) { return _to SelectAll(); } \
  NS_IMETHOD InvertSelection(void) { return _to InvertSelection(); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_NSIDOMXULTREEELEMENT(_to) \
  NS_IMETHOD GetSelectedItems(nsIDOMNodeList * *aSelectedItems) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetSelectedItems(aSelectedItems); } \
  NS_IMETHOD GetCurrentItem(nsIDOMXULElement * *aCurrentItem) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetCurrentItem(aCurrentItem); } \
  NS_IMETHOD SetCurrentItem(nsIDOMXULElement * aCurrentItem) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetCurrentItem(aCurrentItem); } \
  NS_IMETHOD GetSuppressOnSelect(PRBool *aSuppressOnSelect) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetSuppressOnSelect(aSuppressOnSelect); } \
  NS_IMETHOD SetSuppressOnSelect(PRBool aSuppressOnSelect) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetSuppressOnSelect(aSuppressOnSelect); } \
  NS_IMETHOD SelectItem(nsIDOMXULElement *treeItem) { return !_to ? NS_ERROR_NULL_POINTER : _to->SelectItem(treeItem); } \
  NS_IMETHOD TimedSelect(nsIDOMXULElement *treeItem, PRInt32 timeout) { return !_to ? NS_ERROR_NULL_POINTER : _to->TimedSelect(treeItem, timeout); } \
  NS_IMETHOD ClearItemSelection(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->ClearItemSelection(); } \
  NS_IMETHOD AddItemToSelection(nsIDOMXULElement *treeItem) { return !_to ? NS_ERROR_NULL_POINTER : _to->AddItemToSelection(treeItem); } \
  NS_IMETHOD RemoveItemFromSelection(nsIDOMXULElement *treeItem) { return !_to ? NS_ERROR_NULL_POINTER : _to->RemoveItemFromSelection(treeItem); } \
  NS_IMETHOD ToggleItemSelection(nsIDOMXULElement *treeItem) { return !_to ? NS_ERROR_NULL_POINTER : _to->ToggleItemSelection(treeItem); } \
  NS_IMETHOD SelectItemRange(nsIDOMXULElement *startItem, nsIDOMXULElement *endItem) { return !_to ? NS_ERROR_NULL_POINTER : _to->SelectItemRange(startItem, endItem); } \
  NS_IMETHOD SelectAll(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->SelectAll(); } \
  NS_IMETHOD InvertSelection(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InvertSelection(); } 

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

/* Header file */
class nsDOMXULTreeElement : public nsIDOMXULTreeElement
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_NSIDOMXULTREEELEMENT

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

/* Implementation file */
NS_IMPL_ISUPPORTS1(nsDOMXULTreeElement, nsIDOMXULTreeElement)

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

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

/* readonly attribute nsIDOMNodeList selectedItems; */
NS_IMETHODIMP nsDOMXULTreeElement::GetSelectedItems(nsIDOMNodeList * *aSelectedItems)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute nsIDOMXULElement currentItem; */
NS_IMETHODIMP nsDOMXULTreeElement::GetCurrentItem(nsIDOMXULElement * *aCurrentItem)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsDOMXULTreeElement::SetCurrentItem(nsIDOMXULElement * aCurrentItem)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute boolean suppressOnSelect; */
NS_IMETHODIMP nsDOMXULTreeElement::GetSuppressOnSelect(PRBool *aSuppressOnSelect)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsDOMXULTreeElement::SetSuppressOnSelect(PRBool aSuppressOnSelect)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void selectItem (in nsIDOMXULElement treeItem); */
NS_IMETHODIMP nsDOMXULTreeElement::SelectItem(nsIDOMXULElement *treeItem)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void timedSelect (in nsIDOMXULElement treeItem, in long timeout); */
NS_IMETHODIMP nsDOMXULTreeElement::TimedSelect(nsIDOMXULElement *treeItem, PRInt32 timeout)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void clearItemSelection (); */
NS_IMETHODIMP nsDOMXULTreeElement::ClearItemSelection()
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void addItemToSelection (in nsIDOMXULElement treeItem); */
NS_IMETHODIMP nsDOMXULTreeElement::AddItemToSelection(nsIDOMXULElement *treeItem)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void removeItemFromSelection (in nsIDOMXULElement treeItem); */
NS_IMETHODIMP nsDOMXULTreeElement::RemoveItemFromSelection(nsIDOMXULElement *treeItem)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void toggleItemSelection (in nsIDOMXULElement treeItem); */
NS_IMETHODIMP nsDOMXULTreeElement::ToggleItemSelection(nsIDOMXULElement *treeItem)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void selectItemRange (in nsIDOMXULElement startItem, in nsIDOMXULElement endItem); */
NS_IMETHODIMP nsDOMXULTreeElement::SelectItemRange(nsIDOMXULElement *startItem, nsIDOMXULElement *endItem)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void selectAll (); */
NS_IMETHODIMP nsDOMXULTreeElement::SelectAll()
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void invertSelection (); */
NS_IMETHODIMP nsDOMXULTreeElement::InvertSelection()
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

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


#endif /* __gen_nsIDOMXULTreeElement_h__ */
