/*
 * DO NOT EDIT.  THIS FILE IS GENERATED FROM $SRCDIR/editor/nsIHTMLInlineTableEditor.idl
 */

#ifndef __gen_nsIHTMLInlineTableEditor_h__
#define __gen_nsIHTMLInlineTableEditor_h__


#include "nsISupports.h"

#include "domstubs.h"

#include "mozilla/AlreadyAddRefed.h"
#include "mozilla/Assertions.h"
#include "mozilla/DebugOnly.h"

/* For IDL files that don't want to include root IDL files. */
#ifndef NS_NO_VTABLE
#define NS_NO_VTABLE
#endif

/* starting interface:    nsIHTMLInlineTableEditor */
#define NS_IHTMLINLINETABLEEDITOR_IID_STR "eda2e65c-a758-451f-9b05-77cb8de74ed2"

#define NS_IHTMLINLINETABLEEDITOR_IID \
  {0xeda2e65c, 0xa758, 0x451f, \
    { 0x9b, 0x05, 0x77, 0xcb, 0x8d, 0xe7, 0x4e, 0xd2 }}

class NS_NO_VTABLE MOZ_BINDING(binding_to, idl, class, XPIDL_nsIHTMLInlineTableEditor) nsIHTMLInlineTableEditor : public nsISupports {
 public:

  NS_INLINE_DECL_STATIC_IID(NS_IHTMLINLINETABLEEDITOR_IID)

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

  /* [setter_can_run_script] attribute boolean inlineTableEditingEnabled; */
  MOZ_BINDING(binding_to, idl, getter, XPIDL_nsIHTMLInlineTableEditor_inlineTableEditingEnabled)
  NS_IMETHOD GetInlineTableEditingEnabled(bool *aInlineTableEditingEnabled) = 0;
  MOZ_BINDING(binding_to, idl, setter, XPIDL_nsIHTMLInlineTableEditor_inlineTableEditingEnabled)
  MOZ_CAN_RUN_SCRIPT NS_IMETHOD SetInlineTableEditingEnabled(bool aInlineTableEditingEnabled) = 0;

  /* [infallible] readonly attribute boolean isInlineTableEditingActive; */
  MOZ_BINDING(binding_to, idl, getter, XPIDL_nsIHTMLInlineTableEditor_isInlineTableEditingActive)
  NS_IMETHOD GetIsInlineTableEditingActive(bool *aIsInlineTableEditingActive) = 0;
  inline bool  GetIsInlineTableEditingActive()
  {
    bool result;
    mozilla::DebugOnly<nsresult> rv = GetIsInlineTableEditingActive(&result);
    MOZ_ASSERT(NS_SUCCEEDED(rv));
    return result;
  }

};


/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_NSIHTMLINLINETABLEEDITOR \
  NS_IMETHOD GetInlineTableEditingEnabled(bool *aInlineTableEditingEnabled) override; \
  MOZ_CAN_RUN_SCRIPT NS_IMETHOD SetInlineTableEditingEnabled(bool aInlineTableEditingEnabled) override; \
  using nsIHTMLInlineTableEditor::GetIsInlineTableEditingActive; \
  NS_IMETHOD GetIsInlineTableEditingActive(bool *aIsInlineTableEditingActive) 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_NSIHTMLINLINETABLEEDITOR \
  MOZ_BINDING(binding_to, idl, getter, XPIDL_nsIHTMLInlineTableEditor_inlineTableEditingEnabled)\
  nsresult GetInlineTableEditingEnabled(bool *aInlineTableEditingEnabled); \
  MOZ_BINDING(binding_to, idl, setter, XPIDL_nsIHTMLInlineTableEditor_inlineTableEditingEnabled)\
  MOZ_CAN_RUN_SCRIPT nsresult SetInlineTableEditingEnabled(bool aInlineTableEditingEnabled); \
  using nsIHTMLInlineTableEditor::GetIsInlineTableEditingActive; \
  MOZ_BINDING(binding_to, idl, getter, XPIDL_nsIHTMLInlineTableEditor_isInlineTableEditingActive)\
  nsresult GetIsInlineTableEditingActive(bool *aIsInlineTableEditingActive); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_NSIHTMLINLINETABLEEDITOR(_to) \
  NS_IMETHOD GetInlineTableEditingEnabled(bool *aInlineTableEditingEnabled) override { return _to GetInlineTableEditingEnabled(aInlineTableEditingEnabled); } \
  MOZ_CAN_RUN_SCRIPT NS_IMETHOD SetInlineTableEditingEnabled(bool aInlineTableEditingEnabled) override { return _to SetInlineTableEditingEnabled(aInlineTableEditingEnabled); } \
  using nsIHTMLInlineTableEditor::GetIsInlineTableEditingActive; \
  NS_IMETHOD GetIsInlineTableEditingActive(bool *aIsInlineTableEditingActive) override { return _to GetIsInlineTableEditingActive(aIsInlineTableEditingActive); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_NSIHTMLINLINETABLEEDITOR(_to) \
  NS_IMETHOD GetInlineTableEditingEnabled(bool *aInlineTableEditingEnabled) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInlineTableEditingEnabled(aInlineTableEditingEnabled); } \
  MOZ_CAN_RUN_SCRIPT NS_IMETHOD SetInlineTableEditingEnabled(bool aInlineTableEditingEnabled) override { return !_to ? NS_ERROR_NULL_POINTER : _to->SetInlineTableEditingEnabled(aInlineTableEditingEnabled); } \
  NS_IMETHOD GetIsInlineTableEditingActive(bool *aIsInlineTableEditingActive) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetIsInlineTableEditingActive(aIsInlineTableEditingActive); } 


#endif /* __gen_nsIHTMLInlineTableEditor_h__ */
