/*
 * DO NOT EDIT.  THIS FILE IS GENERATED FROM $SRCDIR/accessible/interfaces/nsIAccessibleEvent.idl
 */

#ifndef __gen_nsIAccessibleEvent_h__
#define __gen_nsIAccessibleEvent_h__


#include "nsISupports.h"

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

class nsIAccessibleDocument; /* forward declaration */

class nsINode; /* webidl Node */

// %{C++:13-13
#define NS_ACCESSIBLE_EVENT_TOPIC "accessible-event"
// %}

/* starting interface:    nsIAccessibleEvent */
#define NS_IACCESSIBLEEVENT_IID_STR "20c69a40-6c2c-42a3-a578-6f4473aab9dd"

#define NS_IACCESSIBLEEVENT_IID \
  {0x20c69a40, 0x6c2c, 0x42a3, \
    { 0xa5, 0x78, 0x6f, 0x44, 0x73, 0xaa, 0xb9, 0xdd }}

class NS_NO_VTABLE MOZ_BINDING(binding_to, idl, class, XPIDL_nsIAccessibleEvent) nsIAccessibleEvent : public nsISupports {
 public:

  NS_INLINE_DECL_STATIC_IID(NS_IACCESSIBLEEVENT_IID)

  /* Used by ToJSValue to check which scriptable interface is implemented. */
  using ScriptableInterfaceType = nsIAccessibleEvent;

  enum {
    EVENT_SHOW MOZ_BINDING(binding_to, idl, const, XPIDL_nsIAccessibleEvent_EVENT_SHOW) = 1U,
    EVENT_HIDE MOZ_BINDING(binding_to, idl, const, XPIDL_nsIAccessibleEvent_EVENT_HIDE) = 2U,
    EVENT_REORDER MOZ_BINDING(binding_to, idl, const, XPIDL_nsIAccessibleEvent_EVENT_REORDER) = 3U,
    EVENT_FOCUS MOZ_BINDING(binding_to, idl, const, XPIDL_nsIAccessibleEvent_EVENT_FOCUS) = 4U,
    EVENT_STATE_CHANGE MOZ_BINDING(binding_to, idl, const, XPIDL_nsIAccessibleEvent_EVENT_STATE_CHANGE) = 5U,
    EVENT_NAME_CHANGE MOZ_BINDING(binding_to, idl, const, XPIDL_nsIAccessibleEvent_EVENT_NAME_CHANGE) = 6U,
    EVENT_DESCRIPTION_CHANGE MOZ_BINDING(binding_to, idl, const, XPIDL_nsIAccessibleEvent_EVENT_DESCRIPTION_CHANGE) = 7U,
    EVENT_VALUE_CHANGE MOZ_BINDING(binding_to, idl, const, XPIDL_nsIAccessibleEvent_EVENT_VALUE_CHANGE) = 8U,
    EVENT_SELECTION MOZ_BINDING(binding_to, idl, const, XPIDL_nsIAccessibleEvent_EVENT_SELECTION) = 9U,
    EVENT_SELECTION_ADD MOZ_BINDING(binding_to, idl, const, XPIDL_nsIAccessibleEvent_EVENT_SELECTION_ADD) = 10U,
    EVENT_SELECTION_REMOVE MOZ_BINDING(binding_to, idl, const, XPIDL_nsIAccessibleEvent_EVENT_SELECTION_REMOVE) = 11U,
    EVENT_SELECTION_WITHIN MOZ_BINDING(binding_to, idl, const, XPIDL_nsIAccessibleEvent_EVENT_SELECTION_WITHIN) = 12U,
    EVENT_ALERT MOZ_BINDING(binding_to, idl, const, XPIDL_nsIAccessibleEvent_EVENT_ALERT) = 13U,
    EVENT_MENU_START MOZ_BINDING(binding_to, idl, const, XPIDL_nsIAccessibleEvent_EVENT_MENU_START) = 14U,
    EVENT_MENU_END MOZ_BINDING(binding_to, idl, const, XPIDL_nsIAccessibleEvent_EVENT_MENU_END) = 15U,
    EVENT_MENUPOPUP_START MOZ_BINDING(binding_to, idl, const, XPIDL_nsIAccessibleEvent_EVENT_MENUPOPUP_START) = 16U,
    EVENT_MENUPOPUP_END MOZ_BINDING(binding_to, idl, const, XPIDL_nsIAccessibleEvent_EVENT_MENUPOPUP_END) = 17U,
    EVENT_DRAGDROP_START MOZ_BINDING(binding_to, idl, const, XPIDL_nsIAccessibleEvent_EVENT_DRAGDROP_START) = 18U,
    EVENT_SCROLLING_START MOZ_BINDING(binding_to, idl, const, XPIDL_nsIAccessibleEvent_EVENT_SCROLLING_START) = 19U,
    EVENT_SCROLLING_END MOZ_BINDING(binding_to, idl, const, XPIDL_nsIAccessibleEvent_EVENT_SCROLLING_END) = 20U,
    EVENT_DOCUMENT_LOAD_COMPLETE MOZ_BINDING(binding_to, idl, const, XPIDL_nsIAccessibleEvent_EVENT_DOCUMENT_LOAD_COMPLETE) = 21U,
    EVENT_DOCUMENT_RELOAD MOZ_BINDING(binding_to, idl, const, XPIDL_nsIAccessibleEvent_EVENT_DOCUMENT_RELOAD) = 22U,
    EVENT_DOCUMENT_LOAD_STOPPED MOZ_BINDING(binding_to, idl, const, XPIDL_nsIAccessibleEvent_EVENT_DOCUMENT_LOAD_STOPPED) = 23U,
    EVENT_TEXT_ATTRIBUTE_CHANGED MOZ_BINDING(binding_to, idl, const, XPIDL_nsIAccessibleEvent_EVENT_TEXT_ATTRIBUTE_CHANGED) = 24U,
    EVENT_TEXT_CARET_MOVED MOZ_BINDING(binding_to, idl, const, XPIDL_nsIAccessibleEvent_EVENT_TEXT_CARET_MOVED) = 25U,
    EVENT_TEXT_INSERTED MOZ_BINDING(binding_to, idl, const, XPIDL_nsIAccessibleEvent_EVENT_TEXT_INSERTED) = 26U,
    EVENT_TEXT_REMOVED MOZ_BINDING(binding_to, idl, const, XPIDL_nsIAccessibleEvent_EVENT_TEXT_REMOVED) = 27U,
    EVENT_TEXT_SELECTION_CHANGED MOZ_BINDING(binding_to, idl, const, XPIDL_nsIAccessibleEvent_EVENT_TEXT_SELECTION_CHANGED) = 28U,
    EVENT_WINDOW_ACTIVATE MOZ_BINDING(binding_to, idl, const, XPIDL_nsIAccessibleEvent_EVENT_WINDOW_ACTIVATE) = 29U,
    EVENT_WINDOW_DEACTIVATE MOZ_BINDING(binding_to, idl, const, XPIDL_nsIAccessibleEvent_EVENT_WINDOW_DEACTIVATE) = 30U,
    EVENT_WINDOW_MAXIMIZE MOZ_BINDING(binding_to, idl, const, XPIDL_nsIAccessibleEvent_EVENT_WINDOW_MAXIMIZE) = 31U,
    EVENT_WINDOW_MINIMIZE MOZ_BINDING(binding_to, idl, const, XPIDL_nsIAccessibleEvent_EVENT_WINDOW_MINIMIZE) = 32U,
    EVENT_WINDOW_RESTORE MOZ_BINDING(binding_to, idl, const, XPIDL_nsIAccessibleEvent_EVENT_WINDOW_RESTORE) = 33U,
    EVENT_OBJECT_ATTRIBUTE_CHANGED MOZ_BINDING(binding_to, idl, const, XPIDL_nsIAccessibleEvent_EVENT_OBJECT_ATTRIBUTE_CHANGED) = 34U,
    EVENT_TEXT_VALUE_CHANGE MOZ_BINDING(binding_to, idl, const, XPIDL_nsIAccessibleEvent_EVENT_TEXT_VALUE_CHANGE) = 35U,
    EVENT_SCROLLING MOZ_BINDING(binding_to, idl, const, XPIDL_nsIAccessibleEvent_EVENT_SCROLLING) = 36U,
    EVENT_ANNOUNCEMENT MOZ_BINDING(binding_to, idl, const, XPIDL_nsIAccessibleEvent_EVENT_ANNOUNCEMENT) = 37U,
    EVENT_LIVE_REGION_ADDED MOZ_BINDING(binding_to, idl, const, XPIDL_nsIAccessibleEvent_EVENT_LIVE_REGION_ADDED) = 38U,
    EVENT_LIVE_REGION_REMOVED MOZ_BINDING(binding_to, idl, const, XPIDL_nsIAccessibleEvent_EVENT_LIVE_REGION_REMOVED) = 39U,
    EVENT_INNER_REORDER MOZ_BINDING(binding_to, idl, const, XPIDL_nsIAccessibleEvent_EVENT_INNER_REORDER) = 40U,
    EVENT_LIVE_REGION_CHANGED MOZ_BINDING(binding_to, idl, const, XPIDL_nsIAccessibleEvent_EVENT_LIVE_REGION_CHANGED) = 41U,
    EVENT_ERRORMESSAGE_CHANGED MOZ_BINDING(binding_to, idl, const, XPIDL_nsIAccessibleEvent_EVENT_ERRORMESSAGE_CHANGED) = 42U,
    EVENT_LAST_ENTRY MOZ_BINDING(binding_to, idl, const, XPIDL_nsIAccessibleEvent_EVENT_LAST_ENTRY) = 43U
  };

  /* readonly attribute unsigned long eventType; */
  MOZ_BINDING(binding_to, idl, getter, XPIDL_nsIAccessibleEvent_eventType)
  NS_IMETHOD GetEventType(uint32_t *aEventType) = 0;

  /* readonly attribute nsIAccessible accessible; */
  MOZ_BINDING(binding_to, idl, getter, XPIDL_nsIAccessibleEvent_accessible)
  NS_IMETHOD GetAccessible(nsIAccessible **aAccessible) = 0;

  /* readonly attribute nsIAccessibleDocument accessibleDocument; */
  MOZ_BINDING(binding_to, idl, getter, XPIDL_nsIAccessibleEvent_accessibleDocument)
  NS_IMETHOD GetAccessibleDocument(nsIAccessibleDocument **aAccessibleDocument) = 0;

  /* readonly attribute Node DOMNode; */
  MOZ_BINDING(binding_to, idl, getter, XPIDL_nsIAccessibleEvent_DOMNode)
  NS_IMETHOD GetDOMNode(nsINode **aDOMNode) = 0;

  /* readonly attribute boolean isFromUserInput; */
  MOZ_BINDING(binding_to, idl, getter, XPIDL_nsIAccessibleEvent_isFromUserInput)
  NS_IMETHOD GetIsFromUserInput(bool *aIsFromUserInput) = 0;

};


/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_NSIACCESSIBLEEVENT \
  NS_IMETHOD GetEventType(uint32_t *aEventType) override; \
  NS_IMETHOD GetAccessible(nsIAccessible **aAccessible) override; \
  NS_IMETHOD GetAccessibleDocument(nsIAccessibleDocument **aAccessibleDocument) override; \
  NS_IMETHOD GetDOMNode(nsINode **aDOMNode) override; \
  NS_IMETHOD GetIsFromUserInput(bool *aIsFromUserInput) override; 

/* Use this macro when declaring the members of this interface when the
   class doesn't implement the interface. This is useful for forwarding. */
#define NS_DECL_NON_VIRTUAL_NSIACCESSIBLEEVENT \
  MOZ_BINDING(binding_to, idl, getter, XPIDL_nsIAccessibleEvent_eventType)\
  nsresult GetEventType(uint32_t *aEventType); \
  MOZ_BINDING(binding_to, idl, getter, XPIDL_nsIAccessibleEvent_accessible)\
  nsresult GetAccessible(nsIAccessible **aAccessible); \
  MOZ_BINDING(binding_to, idl, getter, XPIDL_nsIAccessibleEvent_accessibleDocument)\
  nsresult GetAccessibleDocument(nsIAccessibleDocument **aAccessibleDocument); \
  MOZ_BINDING(binding_to, idl, getter, XPIDL_nsIAccessibleEvent_DOMNode)\
  nsresult GetDOMNode(nsINode **aDOMNode); \
  MOZ_BINDING(binding_to, idl, getter, XPIDL_nsIAccessibleEvent_isFromUserInput)\
  nsresult GetIsFromUserInput(bool *aIsFromUserInput); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_NSIACCESSIBLEEVENT(_to) \
  NS_IMETHOD GetEventType(uint32_t *aEventType) override { return _to GetEventType(aEventType); } \
  NS_IMETHOD GetAccessible(nsIAccessible **aAccessible) override { return _to GetAccessible(aAccessible); } \
  NS_IMETHOD GetAccessibleDocument(nsIAccessibleDocument **aAccessibleDocument) override { return _to GetAccessibleDocument(aAccessibleDocument); } \
  NS_IMETHOD GetDOMNode(nsINode **aDOMNode) override { return _to GetDOMNode(aDOMNode); } \
  NS_IMETHOD GetIsFromUserInput(bool *aIsFromUserInput) override { return _to GetIsFromUserInput(aIsFromUserInput); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_NSIACCESSIBLEEVENT(_to) \
  NS_IMETHOD GetEventType(uint32_t *aEventType) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetEventType(aEventType); } \
  NS_IMETHOD GetAccessible(nsIAccessible **aAccessible) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetAccessible(aAccessible); } \
  NS_IMETHOD GetAccessibleDocument(nsIAccessibleDocument **aAccessibleDocument) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetAccessibleDocument(aAccessibleDocument); } \
  NS_IMETHOD GetDOMNode(nsINode **aDOMNode) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetDOMNode(aDOMNode); } \
  NS_IMETHOD GetIsFromUserInput(bool *aIsFromUserInput) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetIsFromUserInput(aIsFromUserInput); } 


#endif /* __gen_nsIAccessibleEvent_h__ */
