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

#ifndef __gen_nsIDocNavStartProgressListener_h__
#define __gen_nsIDocNavStartProgressListener_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 nsIRequest; /* forward declaration */

class nsIURI; /* forward declaration */


/* starting interface:    nsIDocNavStartProgressCallback */
#define NS_IDOCNAVSTARTPROGRESSCALLBACK_IID_STR "163f3437-1d69-4db7-9ce1-fd420fba8219"

#define NS_IDOCNAVSTARTPROGRESSCALLBACK_IID \
  {0x163f3437, 0x1d69, 0x4db7, \
    { 0x9c, 0xe1, 0xfd, 0x42, 0x0f, 0xba, 0x82, 0x19 }}

class NS_NO_VTABLE nsIDocNavStartProgressCallback : public nsISupports {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(NS_IDOCNAVSTARTPROGRESSCALLBACK_IID)

  /* void onDocNavStart (in nsIRequest aRequest, in AUTF8String aUri); */
  NS_IMETHOD OnDocNavStart(nsIRequest *aRequest, const nsACString & aUri) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_NSIDOCNAVSTARTPROGRESSCALLBACK \
  NS_IMETHOD OnDocNavStart(nsIRequest *aRequest, const nsACString & aUri); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_NSIDOCNAVSTARTPROGRESSCALLBACK(_to) \
  NS_IMETHOD OnDocNavStart(nsIRequest *aRequest, const nsACString & aUri) { return _to OnDocNavStart(aRequest, aUri); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_NSIDOCNAVSTARTPROGRESSCALLBACK(_to) \
  NS_IMETHOD OnDocNavStart(nsIRequest *aRequest, const nsACString & aUri) { return !_to ? NS_ERROR_NULL_POINTER : _to->OnDocNavStart(aRequest, aUri); } 

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

/* Header file */
class nsDocNavStartProgressCallback : public nsIDocNavStartProgressCallback
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_NSIDOCNAVSTARTPROGRESSCALLBACK

  nsDocNavStartProgressCallback();

private:
  ~nsDocNavStartProgressCallback();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(nsDocNavStartProgressCallback, nsIDocNavStartProgressCallback)

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

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

/* void onDocNavStart (in nsIRequest aRequest, in AUTF8String aUri); */
NS_IMETHODIMP nsDocNavStartProgressCallback::OnDocNavStart(nsIRequest *aRequest, const nsACString & aUri)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

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


/* starting interface:    nsIDocNavStartProgressListener */
#define NS_IDOCNAVSTARTPROGRESSLISTENER_IID_STR "84991d1b-b010-4127-9e71-82017559abff"

#define NS_IDOCNAVSTARTPROGRESSLISTENER_IID \
  {0x84991d1b, 0xb010, 0x4127, \
    { 0x9e, 0x71, 0x82, 0x01, 0x75, 0x59, 0xab, 0xff }}

class NS_NO_VTABLE nsIDocNavStartProgressListener : public nsISupports {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(NS_IDOCNAVSTARTPROGRESSLISTENER_IID)

  /**
   * Set to true to enable this component. Defaults to false (disabled). When
   * you set this to true, the listener will be attached to the docloader and
   * the callback can start getting events.
   */
  /* attribute boolean enabled; */
  NS_IMETHOD GetEnabled(PRBool *aEnabled) = 0;
  NS_IMETHOD SetEnabled(PRBool aEnabled) = 0;

  /**
   * Number of ms to wait after receiving a doc load event and calling the
   * callback.  Even when set to zero, we set a timer so the call will fire
   * asynchronously.  Defaults to 0.
   */
  /* attribute PRUint32 delay; */
  NS_IMETHOD GetDelay(PRUint32 *aDelay) = 0;
  NS_IMETHOD SetDelay(PRUint32 aDelay) = 0;

  /**
   * Callback object to be used when enabled=true.
   * NULL when there is no callback.
   */
  /* attribute nsIDocNavStartProgressCallback callback; */
  NS_IMETHOD GetCallback(nsIDocNavStartProgressCallback * *aCallback) = 0;
  NS_IMETHOD SetCallback(nsIDocNavStartProgressCallback * aCallback) = 0;

  /**
   * We ignore about:, chrome: and file: URIs.
   */
  /* boolean isSpurious (in nsIURI aURI); */
  NS_IMETHOD IsSpurious(nsIURI *aURI, PRBool *_retval) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_NSIDOCNAVSTARTPROGRESSLISTENER \
  NS_IMETHOD GetEnabled(PRBool *aEnabled); \
  NS_IMETHOD SetEnabled(PRBool aEnabled); \
  NS_IMETHOD GetDelay(PRUint32 *aDelay); \
  NS_IMETHOD SetDelay(PRUint32 aDelay); \
  NS_IMETHOD GetCallback(nsIDocNavStartProgressCallback * *aCallback); \
  NS_IMETHOD SetCallback(nsIDocNavStartProgressCallback * aCallback); \
  NS_IMETHOD IsSpurious(nsIURI *aURI, PRBool *_retval); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_NSIDOCNAVSTARTPROGRESSLISTENER(_to) \
  NS_IMETHOD GetEnabled(PRBool *aEnabled) { return _to GetEnabled(aEnabled); } \
  NS_IMETHOD SetEnabled(PRBool aEnabled) { return _to SetEnabled(aEnabled); } \
  NS_IMETHOD GetDelay(PRUint32 *aDelay) { return _to GetDelay(aDelay); } \
  NS_IMETHOD SetDelay(PRUint32 aDelay) { return _to SetDelay(aDelay); } \
  NS_IMETHOD GetCallback(nsIDocNavStartProgressCallback * *aCallback) { return _to GetCallback(aCallback); } \
  NS_IMETHOD SetCallback(nsIDocNavStartProgressCallback * aCallback) { return _to SetCallback(aCallback); } \
  NS_IMETHOD IsSpurious(nsIURI *aURI, PRBool *_retval) { return _to IsSpurious(aURI, _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_NSIDOCNAVSTARTPROGRESSLISTENER(_to) \
  NS_IMETHOD GetEnabled(PRBool *aEnabled) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetEnabled(aEnabled); } \
  NS_IMETHOD SetEnabled(PRBool aEnabled) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetEnabled(aEnabled); } \
  NS_IMETHOD GetDelay(PRUint32 *aDelay) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetDelay(aDelay); } \
  NS_IMETHOD SetDelay(PRUint32 aDelay) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetDelay(aDelay); } \
  NS_IMETHOD GetCallback(nsIDocNavStartProgressCallback * *aCallback) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetCallback(aCallback); } \
  NS_IMETHOD SetCallback(nsIDocNavStartProgressCallback * aCallback) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetCallback(aCallback); } \
  NS_IMETHOD IsSpurious(nsIURI *aURI, PRBool *_retval) { return !_to ? NS_ERROR_NULL_POINTER : _to->IsSpurious(aURI, _retval); } 

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

/* Header file */
class nsDocNavStartProgressListener : public nsIDocNavStartProgressListener
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_NSIDOCNAVSTARTPROGRESSLISTENER

  nsDocNavStartProgressListener();

private:
  ~nsDocNavStartProgressListener();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(nsDocNavStartProgressListener, nsIDocNavStartProgressListener)

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

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

/* attribute boolean enabled; */
NS_IMETHODIMP nsDocNavStartProgressListener::GetEnabled(PRBool *aEnabled)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsDocNavStartProgressListener::SetEnabled(PRBool aEnabled)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute PRUint32 delay; */
NS_IMETHODIMP nsDocNavStartProgressListener::GetDelay(PRUint32 *aDelay)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsDocNavStartProgressListener::SetDelay(PRUint32 aDelay)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute nsIDocNavStartProgressCallback callback; */
NS_IMETHODIMP nsDocNavStartProgressListener::GetCallback(nsIDocNavStartProgressCallback * *aCallback)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsDocNavStartProgressListener::SetCallback(nsIDocNavStartProgressCallback * aCallback)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* boolean isSpurious (in nsIURI aURI); */
NS_IMETHODIMP nsDocNavStartProgressListener::IsSpurious(nsIURI *aURI, PRBool *_retval)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

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


#endif /* __gen_nsIDocNavStartProgressListener_h__ */
