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

#ifndef __gen_nsIPopupSetBoxObject_h__
#define __gen_nsIPopupSetBoxObject_h__


#ifndef __gen_nsIBoxObject_h__
#include "nsIBoxObject.h"
#endif

/* For IDL files that don't want to include root IDL files. */
#ifndef NS_NO_VTABLE
#define NS_NO_VTABLE
#endif
class nsIDOMElement; /* forward declaration */


/* starting interface:    nsIPopupSetBoxObject */
#define NS_IPOPUPSETBOXOBJECT_IID_STR "a56a6f82-5be4-4c47-930b-10bdb0f4f854"

#define NS_IPOPUPSETBOXOBJECT_IID \
  {0xa56a6f82, 0x5be4, 0x4c47, \
    { 0x93, 0x0b, 0x10, 0xbd, 0xb0, 0xf4, 0xf8, 0x54 }}

class NS_NO_VTABLE nsIPopupSetBoxObject : public nsISupports {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(NS_IPOPUPSETBOXOBJECT_IID)

  /* void createPopup (in nsIDOMElement srcContent, in nsIDOMElement popupContent, in long xpos, in long ypos, in wstring popupType, in wstring anchorAlignment, in wstring popupAlignment); */
  NS_IMETHOD CreatePopup(nsIDOMElement *srcContent, nsIDOMElement *popupContent, PRInt32 xpos, PRInt32 ypos, const PRUnichar *popupType, const PRUnichar *anchorAlignment, const PRUnichar *popupAlignment) = 0;

  /* void hidePopup (); */
  NS_IMETHOD HidePopup(void) = 0;

  /* void destroyPopup (); */
  NS_IMETHOD DestroyPopup(void) = 0;

  /* attribute nsIDOMElement activeChild; */
  NS_IMETHOD GetActiveChild(nsIDOMElement * *aActiveChild) = 0;
  NS_IMETHOD SetActiveChild(nsIDOMElement * aActiveChild) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_NSIPOPUPSETBOXOBJECT \
  NS_IMETHOD CreatePopup(nsIDOMElement *srcContent, nsIDOMElement *popupContent, PRInt32 xpos, PRInt32 ypos, const PRUnichar *popupType, const PRUnichar *anchorAlignment, const PRUnichar *popupAlignment); \
  NS_IMETHOD HidePopup(void); \
  NS_IMETHOD DestroyPopup(void); \
  NS_IMETHOD GetActiveChild(nsIDOMElement * *aActiveChild); \
  NS_IMETHOD SetActiveChild(nsIDOMElement * aActiveChild); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_NSIPOPUPSETBOXOBJECT(_to) \
  NS_IMETHOD CreatePopup(nsIDOMElement *srcContent, nsIDOMElement *popupContent, PRInt32 xpos, PRInt32 ypos, const PRUnichar *popupType, const PRUnichar *anchorAlignment, const PRUnichar *popupAlignment) { return _to ## CreatePopup(srcContent, popupContent, xpos, ypos, popupType, anchorAlignment, popupAlignment); } \
  NS_IMETHOD HidePopup(void) { return _to ## HidePopup(); } \
  NS_IMETHOD DestroyPopup(void) { return _to ## DestroyPopup(); } \
  NS_IMETHOD GetActiveChild(nsIDOMElement * *aActiveChild) { return _to ## GetActiveChild(aActiveChild); } \
  NS_IMETHOD SetActiveChild(nsIDOMElement * aActiveChild) { return _to ## SetActiveChild(aActiveChild); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_NSIPOPUPSETBOXOBJECT(_to) \
  NS_IMETHOD CreatePopup(nsIDOMElement *srcContent, nsIDOMElement *popupContent, PRInt32 xpos, PRInt32 ypos, const PRUnichar *popupType, const PRUnichar *anchorAlignment, const PRUnichar *popupAlignment) { return !_to ## ? NS_ERROR_NULL_POINTER : _to ##-> CreatePopup(srcContent, popupContent, xpos, ypos, popupType, anchorAlignment, popupAlignment); } \
  NS_IMETHOD HidePopup(void) { return !_to ## ? NS_ERROR_NULL_POINTER : _to ##-> HidePopup(); } \
  NS_IMETHOD DestroyPopup(void) { return !_to ## ? NS_ERROR_NULL_POINTER : _to ##-> DestroyPopup(); } \
  NS_IMETHOD GetActiveChild(nsIDOMElement * *aActiveChild) { return !_to ## ? NS_ERROR_NULL_POINTER : _to ##->GetActiveChild(aActiveChild); } \
  NS_IMETHOD SetActiveChild(nsIDOMElement * aActiveChild) { return !_to ## ? NS_ERROR_NULL_POINTER : _to ##->SetActiveChild(aActiveChild); } 

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

/* Header file */
class nsPopupSetBoxObject : public nsIPopupSetBoxObject
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_NSIPOPUPSETBOXOBJECT

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

/* Implementation file */
NS_IMPL_ISUPPORTS1(nsPopupSetBoxObject, nsIPopupSetBoxObject)

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

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

/* void createPopup (in nsIDOMElement srcContent, in nsIDOMElement popupContent, in long xpos, in long ypos, in wstring popupType, in wstring anchorAlignment, in wstring popupAlignment); */
NS_IMETHODIMP nsPopupSetBoxObject::CreatePopup(nsIDOMElement *srcContent, nsIDOMElement *popupContent, PRInt32 xpos, PRInt32 ypos, const PRUnichar *popupType, const PRUnichar *anchorAlignment, const PRUnichar *popupAlignment)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void hidePopup (); */
NS_IMETHODIMP nsPopupSetBoxObject::HidePopup()
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void destroyPopup (); */
NS_IMETHODIMP nsPopupSetBoxObject::DestroyPopup()
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute nsIDOMElement activeChild; */
NS_IMETHODIMP nsPopupSetBoxObject::GetActiveChild(nsIDOMElement * *aActiveChild)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsPopupSetBoxObject::SetActiveChild(nsIDOMElement * aActiveChild)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

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

nsresult
NS_NewPopupSetBoxObject(nsIBoxObject** aResult);

#endif /* __gen_nsIPopupSetBoxObject_h__ */
