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

#ifndef __gen_calIStatusObserver_h__
#define __gen_calIStatusObserver_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 calICalendar; /* forward declaration */

class nsIDOMChromeWindow; /* forward declaration */


/* starting interface:    calIStatusObserver */
#define CALISTATUSOBSERVER_IID_STR "60160f68-4514-41b4-a19d-2f2cf0143426"

#define CALISTATUSOBSERVER_IID \
  {0x60160f68, 0x4514, 0x41b4, \
    { 0xa1, 0x9d, 0x2f, 0x2c, 0xf0, 0x14, 0x34, 0x26 }}

class NS_NO_VTABLE calIStatusObserver : public nsISupports {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(CALISTATUSOBSERVER_IID)

  /* void initialize (in nsIDOMChromeWindow aWindow); */
  NS_IMETHOD Initialize(nsIDOMChromeWindow *aWindow) = 0;

  /**
  * Starts the display of an operation to check a series of calendars
  * This operation may either be determined or undetermined
  * @param aProgressMode    An integer value that can accept DETERMINED_PROGRESS,
  *                           UNDETERMINED_PROGRESS or NO_PROGRESS
  * @param aCalendarsCount  If the first parameter is DETERMINED_PROGRESS
  *                           aCalendarCount is the number of Calendars
  *                           which completion is to be displayed
  */
  /* void startMeteors (in unsigned long aProgressMode, in unsigned long aCalendarCount); */
  NS_IMETHOD StartMeteors(PRUint32 aProgressMode, PRUint32 aCalendarCount) = 0;

  /**
  * stops the display of an progressed operation
  */
  /* void stopMeteors (); */
  NS_IMETHOD StopMeteors(void) = 0;

  /**
   * increments the display value denoting that a calendar has been processed
   */
  /* void calendarCompleted (in calICalendar aCalendar); */
  NS_IMETHOD CalendarCompleted(calICalendar *aCalendar) = 0;

  /**
   * @return    An integer value denoting wheter a progress is running or not;
   *              if it returns DETERMINED_PROGRESS a determined progress 
                  is running;
   *              if it returns UNDETERMINED_PROGRESS an undetermined progress 
                  is running;
   *              if it returns NO_PROGRESS no Progress is running.
   */
  /* readonly attribute unsigned long spinning; */
  NS_IMETHOD GetSpinning(PRUint32 *aSpinning) = 0;

  /**
   * A constant that denotes that no operation is running
   */
  enum { NO_PROGRESS = 0U };

  /**
   * A constant that refers to whether an operation is determined
   */
  enum { DETERMINED_PROGRESS = 1U };

  /**
   * A constant that refers to whether an operation is undetermined
   */
  enum { UNDETERMINED_PROGRESS = 2U };

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_CALISTATUSOBSERVER \
  NS_IMETHOD Initialize(nsIDOMChromeWindow *aWindow); \
  NS_IMETHOD StartMeteors(PRUint32 aProgressMode, PRUint32 aCalendarCount); \
  NS_IMETHOD StopMeteors(void); \
  NS_IMETHOD CalendarCompleted(calICalendar *aCalendar); \
  NS_IMETHOD GetSpinning(PRUint32 *aSpinning); \

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_CALISTATUSOBSERVER(_to) \
  NS_IMETHOD Initialize(nsIDOMChromeWindow *aWindow) { return _to Initialize(aWindow); } \
  NS_IMETHOD StartMeteors(PRUint32 aProgressMode, PRUint32 aCalendarCount) { return _to StartMeteors(aProgressMode, aCalendarCount); } \
  NS_IMETHOD StopMeteors(void) { return _to StopMeteors(); } \
  NS_IMETHOD CalendarCompleted(calICalendar *aCalendar) { return _to CalendarCompleted(aCalendar); } \
  NS_IMETHOD GetSpinning(PRUint32 *aSpinning) { return _to GetSpinning(aSpinning); } \

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_CALISTATUSOBSERVER(_to) \
  NS_IMETHOD Initialize(nsIDOMChromeWindow *aWindow) { return !_to ? NS_ERROR_NULL_POINTER : _to->Initialize(aWindow); } \
  NS_IMETHOD StartMeteors(PRUint32 aProgressMode, PRUint32 aCalendarCount) { return !_to ? NS_ERROR_NULL_POINTER : _to->StartMeteors(aProgressMode, aCalendarCount); } \
  NS_IMETHOD StopMeteors(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->StopMeteors(); } \
  NS_IMETHOD CalendarCompleted(calICalendar *aCalendar) { return !_to ? NS_ERROR_NULL_POINTER : _to->CalendarCompleted(aCalendar); } \
  NS_IMETHOD GetSpinning(PRUint32 *aSpinning) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetSpinning(aSpinning); } \

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

/* Header file */
class _MYCLASS_ : public calIStatusObserver
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_CALISTATUSOBSERVER

  _MYCLASS_();

private:
  ~_MYCLASS_();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(_MYCLASS_, calIStatusObserver)

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

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

/* void initialize (in nsIDOMChromeWindow aWindow); */
NS_IMETHODIMP _MYCLASS_::Initialize(nsIDOMChromeWindow *aWindow)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void startMeteors (in unsigned long aProgressMode, in unsigned long aCalendarCount); */
NS_IMETHODIMP _MYCLASS_::StartMeteors(PRUint32 aProgressMode, PRUint32 aCalendarCount)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void stopMeteors (); */
NS_IMETHODIMP _MYCLASS_::StopMeteors()
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void calendarCompleted (in calICalendar aCalendar); */
NS_IMETHODIMP _MYCLASS_::CalendarCompleted(calICalendar *aCalendar)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long spinning; */
NS_IMETHODIMP _MYCLASS_::GetSpinning(PRUint32 *aSpinning)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

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


#endif /* __gen_calIStatusObserver_h__ */
