/*
 * DO NOT EDIT.  THIS FILE IS GENERATED FROM /builds/moz2_slave/mozilla-central-linux-xulrunner/build/dom/interfaces/notification/nsIDesktopNotificationPrompt.idl
 */

#ifndef __gen_nsIDesktopNotificationPrompt_h__
#define __gen_nsIDesktopNotificationPrompt_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 nsIURI; /* forward declaration */

class nsIDOMWindow; /* forward declaration */

class nsIDesktopNotificationPrompt; /* forward declaration */

/*  
    This must be implemented by embedders to be able to support DOM DesktopNotification.
*/
#define NS_DOM_DESKTOP_NOTIFICATION_PROMPT_CONTRACTID  "@mozilla.org/dom-desktop-notification/prompt;1"

/* starting interface:    nsIDOMDesktopNotificationRequest */
#define NS_IDOMDESKTOPNOTIFICATIONREQUEST_IID_STR "a23b1236-9374-4591-97bf-5413fc4813a6"

#define NS_IDOMDESKTOPNOTIFICATIONREQUEST_IID \
  {0xa23b1236, 0x9374, 0x4591, \
    { 0x97, 0xbf, 0x54, 0x13, 0xfc, 0x48, 0x13, 0xa6 }}

/**
 * Interface allows access to a notice and is passed to
 * the nsIDesktopNotificationPrompt so that the application can approve
 * or deny the request.
 */
class NS_NO_VTABLE NS_SCRIPTABLE nsIDOMDesktopNotificationRequest : public nsISupports {
 public: 

  NS_DECLARE_STATIC_IID_ACCESSOR(NS_IDOMDESKTOPNOTIFICATIONREQUEST_IID)

  /* readonly attribute nsIURI requestingURI; */
  NS_SCRIPTABLE NS_IMETHOD GetRequestingURI(nsIURI **aRequestingURI) = 0;

  /* readonly attribute nsIDOMWindow requestingWindow; */
  NS_SCRIPTABLE NS_IMETHOD GetRequestingWindow(nsIDOMWindow **aRequestingWindow) = 0;

  /* void cancel (); */
  NS_SCRIPTABLE NS_IMETHOD Cancel(void) = 0;

  /* void allow (); */
  NS_SCRIPTABLE NS_IMETHOD Allow(void) = 0;

};

  NS_DEFINE_STATIC_IID_ACCESSOR(nsIDOMDesktopNotificationRequest, NS_IDOMDESKTOPNOTIFICATIONREQUEST_IID)

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_NSIDOMDESKTOPNOTIFICATIONREQUEST \
  NS_SCRIPTABLE NS_IMETHOD GetRequestingURI(nsIURI **aRequestingURI); \
  NS_SCRIPTABLE NS_IMETHOD GetRequestingWindow(nsIDOMWindow **aRequestingWindow); \
  NS_SCRIPTABLE NS_IMETHOD Cancel(void); \
  NS_SCRIPTABLE NS_IMETHOD Allow(void); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_NSIDOMDESKTOPNOTIFICATIONREQUEST(_to) \
  NS_SCRIPTABLE NS_IMETHOD GetRequestingURI(nsIURI **aRequestingURI) { return _to GetRequestingURI(aRequestingURI); } \
  NS_SCRIPTABLE NS_IMETHOD GetRequestingWindow(nsIDOMWindow **aRequestingWindow) { return _to GetRequestingWindow(aRequestingWindow); } \
  NS_SCRIPTABLE NS_IMETHOD Cancel(void) { return _to Cancel(); } \
  NS_SCRIPTABLE NS_IMETHOD Allow(void) { return _to Allow(); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_NSIDOMDESKTOPNOTIFICATIONREQUEST(_to) \
  NS_SCRIPTABLE NS_IMETHOD GetRequestingURI(nsIURI **aRequestingURI) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetRequestingURI(aRequestingURI); } \
  NS_SCRIPTABLE NS_IMETHOD GetRequestingWindow(nsIDOMWindow **aRequestingWindow) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetRequestingWindow(aRequestingWindow); } \
  NS_SCRIPTABLE NS_IMETHOD Cancel(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->Cancel(); } \
  NS_SCRIPTABLE NS_IMETHOD Allow(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->Allow(); } 

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

/* Header file */
class nsDOMDesktopNotificationRequest : public nsIDOMDesktopNotificationRequest
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_NSIDOMDESKTOPNOTIFICATIONREQUEST

  nsDOMDesktopNotificationRequest();

private:
  ~nsDOMDesktopNotificationRequest();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(nsDOMDesktopNotificationRequest, nsIDOMDesktopNotificationRequest)

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

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

/* readonly attribute nsIURI requestingURI; */
NS_IMETHODIMP nsDOMDesktopNotificationRequest::GetRequestingURI(nsIURI **aRequestingURI)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute nsIDOMWindow requestingWindow; */
NS_IMETHODIMP nsDOMDesktopNotificationRequest::GetRequestingWindow(nsIDOMWindow **aRequestingWindow)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void cancel (); */
NS_IMETHODIMP nsDOMDesktopNotificationRequest::Cancel()
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void allow (); */
NS_IMETHODIMP nsDOMDesktopNotificationRequest::Allow()
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

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


/* starting interface:    nsIDesktopNotificationPrompt */
#define NS_IDESKTOPNOTIFICATIONPROMPT_IID_STR "00d49d61-3d08-4ac6-b662-5e421f60cc2f"

#define NS_IDESKTOPNOTIFICATIONPROMPT_IID \
  {0x00d49d61, 0x3d08, 0x4ac6, \
    { 0xb6, 0x62, 0x5e, 0x42, 0x1f, 0x60, 0xcc, 0x2f }}

class NS_NO_VTABLE NS_SCRIPTABLE nsIDesktopNotificationPrompt : public nsISupports {
 public: 

  NS_DECLARE_STATIC_IID_ACCESSOR(NS_IDESKTOPNOTIFICATIONPROMPT_IID)

  /**
 * Interface provides a way for the application to handle
 * the UI prompts associated with geo position.
 */
/**
   * Called when a request has been made to access desktop notifications
   */
  /* void prompt (in nsIDOMDesktopNotificationRequest request); */
  NS_SCRIPTABLE NS_IMETHOD Prompt(nsIDOMDesktopNotificationRequest *request) = 0;

};

  NS_DEFINE_STATIC_IID_ACCESSOR(nsIDesktopNotificationPrompt, NS_IDESKTOPNOTIFICATIONPROMPT_IID)

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_NSIDESKTOPNOTIFICATIONPROMPT \
  NS_SCRIPTABLE NS_IMETHOD Prompt(nsIDOMDesktopNotificationRequest *request); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_NSIDESKTOPNOTIFICATIONPROMPT(_to) \
  NS_SCRIPTABLE NS_IMETHOD Prompt(nsIDOMDesktopNotificationRequest *request) { return _to Prompt(request); } 

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

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

/* Header file */
class nsDesktopNotificationPrompt : public nsIDesktopNotificationPrompt
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_NSIDESKTOPNOTIFICATIONPROMPT

  nsDesktopNotificationPrompt();

private:
  ~nsDesktopNotificationPrompt();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(nsDesktopNotificationPrompt, nsIDesktopNotificationPrompt)

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

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

/* void prompt (in nsIDOMDesktopNotificationRequest request); */
NS_IMETHODIMP nsDesktopNotificationPrompt::Prompt(nsIDOMDesktopNotificationRequest *request)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

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


#endif /* __gen_nsIDesktopNotificationPrompt_h__ */
