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

#ifndef __gen_nsIHTMLObjectResizer_h__
#define __gen_nsIHTMLObjectResizer_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
namespace mozilla {
namespace dom {
class Element; /* webidl Element */
} // namespace dom
} // namespace mozilla


/* starting interface:    nsIHTMLObjectResizer */
#define NS_IHTMLOBJECTRESIZER_IID_STR "8b396020-69d3-451f-80c1-1a96a7da25a9"

#define NS_IHTMLOBJECTRESIZER_IID \
  {0x8b396020, 0x69d3, 0x451f, \
    { 0x80, 0xc1, 0x1a, 0x96, 0xa7, 0xda, 0x25, 0xa9 }}

class MOZ_BINDING(binding_to, idl, class, XPIDL_nsIHTMLObjectResizer) nsIHTMLObjectResizer : public nsISupports {
 public:

  NS_INLINE_DECL_STATIC_IID(NS_IHTMLOBJECTRESIZER_IID)

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

// %{C++:14-14
  typedef short EResizerLocation;
// %}
  enum {
    eTopLeft MOZ_BINDING(binding_to, idl, const, XPIDL_nsIHTMLObjectResizer_eTopLeft) = 0,
    eTop MOZ_BINDING(binding_to, idl, const, XPIDL_nsIHTMLObjectResizer_eTop) = 1,
    eTopRight MOZ_BINDING(binding_to, idl, const, XPIDL_nsIHTMLObjectResizer_eTopRight) = 2,
    eLeft MOZ_BINDING(binding_to, idl, const, XPIDL_nsIHTMLObjectResizer_eLeft) = 3,
    eRight MOZ_BINDING(binding_to, idl, const, XPIDL_nsIHTMLObjectResizer_eRight) = 4,
    eBottomLeft MOZ_BINDING(binding_to, idl, const, XPIDL_nsIHTMLObjectResizer_eBottomLeft) = 5,
    eBottom MOZ_BINDING(binding_to, idl, const, XPIDL_nsIHTMLObjectResizer_eBottom) = 6,
    eBottomRight MOZ_BINDING(binding_to, idl, const, XPIDL_nsIHTMLObjectResizer_eBottomRight) = 7
  };

  /* [setter_can_run_script] attribute boolean objectResizingEnabled; */
  MOZ_BINDING(binding_to, idl, getter, XPIDL_nsIHTMLObjectResizer_objectResizingEnabled)
  NS_IMETHOD GetObjectResizingEnabled(bool *aObjectResizingEnabled) = 0;
  MOZ_BINDING(binding_to, idl, setter, XPIDL_nsIHTMLObjectResizer_objectResizingEnabled)
  MOZ_CAN_RUN_SCRIPT NS_IMETHOD SetObjectResizingEnabled(bool aObjectResizingEnabled) = 0;

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

  /* void hideResizers (); */
  MOZ_BINDING(binding_to, idl, method, XPIDL_nsIHTMLObjectResizer_hideResizers)
  NS_IMETHOD HideResizers(void) = 0;

};


/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_NSIHTMLOBJECTRESIZER \
  NS_IMETHOD GetObjectResizingEnabled(bool *aObjectResizingEnabled) override; \
  MOZ_CAN_RUN_SCRIPT NS_IMETHOD SetObjectResizingEnabled(bool aObjectResizingEnabled) override; \
  using nsIHTMLObjectResizer::GetIsObjectResizingActive; \
  NS_IMETHOD GetIsObjectResizingActive(bool *aIsObjectResizingActive) override; \
  NS_IMETHOD HideResizers(void) 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_NSIHTMLOBJECTRESIZER \
  MOZ_BINDING(binding_to, idl, getter, XPIDL_nsIHTMLObjectResizer_objectResizingEnabled)\
  nsresult GetObjectResizingEnabled(bool *aObjectResizingEnabled); \
  MOZ_BINDING(binding_to, idl, setter, XPIDL_nsIHTMLObjectResizer_objectResizingEnabled)\
  MOZ_CAN_RUN_SCRIPT nsresult SetObjectResizingEnabled(bool aObjectResizingEnabled); \
  using nsIHTMLObjectResizer::GetIsObjectResizingActive; \
  MOZ_BINDING(binding_to, idl, getter, XPIDL_nsIHTMLObjectResizer_isObjectResizingActive)\
  nsresult GetIsObjectResizingActive(bool *aIsObjectResizingActive); \
  MOZ_BINDING(binding_to, idl, method, XPIDL_nsIHTMLObjectResizer_hideResizers)\
  nsresult HideResizers(void); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_NSIHTMLOBJECTRESIZER(_to) \
  NS_IMETHOD GetObjectResizingEnabled(bool *aObjectResizingEnabled) override { return _to GetObjectResizingEnabled(aObjectResizingEnabled); } \
  MOZ_CAN_RUN_SCRIPT NS_IMETHOD SetObjectResizingEnabled(bool aObjectResizingEnabled) override { return _to SetObjectResizingEnabled(aObjectResizingEnabled); } \
  using nsIHTMLObjectResizer::GetIsObjectResizingActive; \
  NS_IMETHOD GetIsObjectResizingActive(bool *aIsObjectResizingActive) override { return _to GetIsObjectResizingActive(aIsObjectResizingActive); } \
  NS_IMETHOD HideResizers(void) override { return _to HideResizers(); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_NSIHTMLOBJECTRESIZER(_to) \
  NS_IMETHOD GetObjectResizingEnabled(bool *aObjectResizingEnabled) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetObjectResizingEnabled(aObjectResizingEnabled); } \
  MOZ_CAN_RUN_SCRIPT NS_IMETHOD SetObjectResizingEnabled(bool aObjectResizingEnabled) override { return !_to ? NS_ERROR_NULL_POINTER : _to->SetObjectResizingEnabled(aObjectResizingEnabled); } \
  NS_IMETHOD GetIsObjectResizingActive(bool *aIsObjectResizingActive) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetIsObjectResizingActive(aIsObjectResizingActive); } \
  NS_IMETHOD HideResizers(void) override { return !_to ? NS_ERROR_NULL_POINTER : _to->HideResizers(); } 


#endif /* __gen_nsIHTMLObjectResizer_h__ */
