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

#ifndef __gen_nsINativeScrollbar_h__
#define __gen_nsINativeScrollbar_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
/**
 * The nsINativeScrollbar is implemented internally by Gecko as a way
 * to communicate between a Gecko frame and a native scrollbar for
 * purposes of shimming a native OS scrollbar into the GFX scrollframe
 * mechanism.
 *
 */
class nsIPresContext; /* forward declaration */

class nsIFrame; /* forward declaration */

class nsIContent; /* forward declaration */

class nsIScrollbarMediator; /* forward declaration */


/* starting interface:    nsINativeScrollbar */
#define NS_INATIVESCROLLBAR_IID_STR "dd1cb116-1dd1-11b2-9e67-abac4e09d533"

#define NS_INATIVESCROLLBAR_IID \
  {0xdd1cb116, 0x1dd1, 0x11b2, \
    { 0x9e, 0x67, 0xab, 0xac, 0x4e, 0x09, 0xd5, 0x33 }}

class NS_NO_VTABLE nsINativeScrollbar : public nsISupports {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(NS_INATIVESCROLLBAR_IID)

  /* void setContent (in nsIContent content, in nsIScrollbarMediator mediator); */
  NS_IMETHOD SetContent(nsIContent *content, nsIScrollbarMediator *mediator) = 0;

  /* readonly attribute long narrowSize; */
  NS_IMETHOD GetNarrowSize(PRInt32 *aNarrowSize) = 0;

  /* attribute unsigned long position; */
  NS_IMETHOD GetPosition(PRUint32 *aPosition) = 0;
  NS_IMETHOD SetPosition(PRUint32 aPosition) = 0;

  /* attribute unsigned long maxRange; */
  NS_IMETHOD GetMaxRange(PRUint32 *aMaxRange) = 0;
  NS_IMETHOD SetMaxRange(PRUint32 aMaxRange) = 0;

  /* attribute unsigned long lineIncrement; */
  NS_IMETHOD GetLineIncrement(PRUint32 *aLineIncrement) = 0;
  NS_IMETHOD SetLineIncrement(PRUint32 aLineIncrement) = 0;

  /* attribute unsigned long viewSize; */
  NS_IMETHOD GetViewSize(PRUint32 *aViewSize) = 0;
  NS_IMETHOD SetViewSize(PRUint32 aViewSize) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_NSINATIVESCROLLBAR \
  NS_IMETHOD SetContent(nsIContent *content, nsIScrollbarMediator *mediator); \
  NS_IMETHOD GetNarrowSize(PRInt32 *aNarrowSize); \
  NS_IMETHOD GetPosition(PRUint32 *aPosition); \
  NS_IMETHOD SetPosition(PRUint32 aPosition); \
  NS_IMETHOD GetMaxRange(PRUint32 *aMaxRange); \
  NS_IMETHOD SetMaxRange(PRUint32 aMaxRange); \
  NS_IMETHOD GetLineIncrement(PRUint32 *aLineIncrement); \
  NS_IMETHOD SetLineIncrement(PRUint32 aLineIncrement); \
  NS_IMETHOD GetViewSize(PRUint32 *aViewSize); \
  NS_IMETHOD SetViewSize(PRUint32 aViewSize); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_NSINATIVESCROLLBAR(_to) \
  NS_IMETHOD SetContent(nsIContent *content, nsIScrollbarMediator *mediator) { return _to SetContent(content, mediator); } \
  NS_IMETHOD GetNarrowSize(PRInt32 *aNarrowSize) { return _to GetNarrowSize(aNarrowSize); } \
  NS_IMETHOD GetPosition(PRUint32 *aPosition) { return _to GetPosition(aPosition); } \
  NS_IMETHOD SetPosition(PRUint32 aPosition) { return _to SetPosition(aPosition); } \
  NS_IMETHOD GetMaxRange(PRUint32 *aMaxRange) { return _to GetMaxRange(aMaxRange); } \
  NS_IMETHOD SetMaxRange(PRUint32 aMaxRange) { return _to SetMaxRange(aMaxRange); } \
  NS_IMETHOD GetLineIncrement(PRUint32 *aLineIncrement) { return _to GetLineIncrement(aLineIncrement); } \
  NS_IMETHOD SetLineIncrement(PRUint32 aLineIncrement) { return _to SetLineIncrement(aLineIncrement); } \
  NS_IMETHOD GetViewSize(PRUint32 *aViewSize) { return _to GetViewSize(aViewSize); } \
  NS_IMETHOD SetViewSize(PRUint32 aViewSize) { return _to SetViewSize(aViewSize); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_NSINATIVESCROLLBAR(_to) \
  NS_IMETHOD SetContent(nsIContent *content, nsIScrollbarMediator *mediator) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetContent(content, mediator); } \
  NS_IMETHOD GetNarrowSize(PRInt32 *aNarrowSize) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetNarrowSize(aNarrowSize); } \
  NS_IMETHOD GetPosition(PRUint32 *aPosition) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetPosition(aPosition); } \
  NS_IMETHOD SetPosition(PRUint32 aPosition) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetPosition(aPosition); } \
  NS_IMETHOD GetMaxRange(PRUint32 *aMaxRange) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetMaxRange(aMaxRange); } \
  NS_IMETHOD SetMaxRange(PRUint32 aMaxRange) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetMaxRange(aMaxRange); } \
  NS_IMETHOD GetLineIncrement(PRUint32 *aLineIncrement) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetLineIncrement(aLineIncrement); } \
  NS_IMETHOD SetLineIncrement(PRUint32 aLineIncrement) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetLineIncrement(aLineIncrement); } \
  NS_IMETHOD GetViewSize(PRUint32 *aViewSize) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetViewSize(aViewSize); } \
  NS_IMETHOD SetViewSize(PRUint32 aViewSize) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetViewSize(aViewSize); } 

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

/* Header file */
class nsNativeScrollbar : public nsINativeScrollbar
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_NSINATIVESCROLLBAR

  nsNativeScrollbar();
  virtual ~nsNativeScrollbar();
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(nsNativeScrollbar, nsINativeScrollbar)

nsNativeScrollbar::nsNativeScrollbar()
{
  NS_INIT_ISUPPORTS();
  /* member initializers and constructor code */
}

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

/* void setContent (in nsIContent content, in nsIScrollbarMediator mediator); */
NS_IMETHODIMP nsNativeScrollbar::SetContent(nsIContent *content, nsIScrollbarMediator *mediator)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute long narrowSize; */
NS_IMETHODIMP nsNativeScrollbar::GetNarrowSize(PRInt32 *aNarrowSize)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute unsigned long position; */
NS_IMETHODIMP nsNativeScrollbar::GetPosition(PRUint32 *aPosition)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsNativeScrollbar::SetPosition(PRUint32 aPosition)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute unsigned long maxRange; */
NS_IMETHODIMP nsNativeScrollbar::GetMaxRange(PRUint32 *aMaxRange)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsNativeScrollbar::SetMaxRange(PRUint32 aMaxRange)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute unsigned long lineIncrement; */
NS_IMETHODIMP nsNativeScrollbar::GetLineIncrement(PRUint32 *aLineIncrement)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsNativeScrollbar::SetLineIncrement(PRUint32 aLineIncrement)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute unsigned long viewSize; */
NS_IMETHODIMP nsNativeScrollbar::GetViewSize(PRUint32 *aViewSize)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsNativeScrollbar::SetViewSize(PRUint32 aViewSize)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

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


#endif /* __gen_nsINativeScrollbar_h__ */
