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

#ifndef __gen_mozIXMLTermShell_h__
#define __gen_mozIXMLTermShell_h__


#ifndef __gen_nsISupports_h__
#include "nsISupports.h"
#endif

#ifndef __gen_mozILineTerm_h__
#include "mozILineTerm.h"
#endif

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


/* starting interface:    mozIXMLTermShell */
#define MOZIXMLTERMSHELL_IID_STR "0eb82b30-43a2-11d3-8e76-006008948af5"

#define MOZIXMLTERMSHELL_IID \
  {0x0eb82b30, 0x43a2, 0x11d3, \
    { 0x8e, 0x76, 0x00, 0x60, 0x08, 0x94, 0x8a, 0xf5 }}

class NS_NO_VTABLE mozIXMLTermShell : public nsISupports {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(MOZIXMLTERMSHELL_IID)

  /* readonly attribute long currentEntryNumber; */
  NS_IMETHOD GetCurrentEntryNumber(PRInt32 *aCurrentEntryNumber) = 0;

  /** Initializes XMLterm in specified window
   * @param contentWin content window object
   * @param URL URL of document to be loaded in the window
   *            (set to null string if document is already loaded in window)
   * @param args argument string to be passed to XMLterm
   *             (at the moment this just contains any initial input data)
   */
  /* void Init (in nsIDOMWindowInternal aContentWin, in wstring URL, in wstring args); */
  NS_IMETHOD Init(nsIDOMWindowInternal *aContentWin, const PRUnichar *URL, const PRUnichar *args) = 0;

  /** Closes XMLterm, freeing resources
   * @param aCookie document.cookie string for authentication
   */
  /* void Close (in wstring aCookie); */
  NS_IMETHOD Close(const PRUnichar *aCookie) = 0;

  /** Polls for readable data from XMLterm
   */
  /* void Poll (); */
  NS_IMETHOD Poll(void) = 0;

  /** Resizes XMLterm to match a resized window.
   */
  /* void Resize (); */
  NS_IMETHOD Resize(void) = 0;

  /** Writes string to terminal as if the user had typed it (command input)
   * @param buf string to be transmitted to terminal
   * @param aCookie document.cookie string for authentication
   */
  /* void SendText (in wstring aString, in wstring aCookie); */
  NS_IMETHOD SendText(const PRUnichar *aString, const PRUnichar *aCookie) = 0;

  /** Sets command history buffer count
   * @param aHistory history buffer count
   * @param aCookie document.cookie string for authentication
   */
  /* void SetHistory (in long aHistory, in wstring aCookie); */
  NS_IMETHOD SetHistory(PRInt32 aHistory, const PRUnichar *aCookie) = 0;

  /** Sets command prompt
   * @param aPrompt command prompt string (HTML)
   * @param aCookie document.cookie string for authentication
   */
  /* void SetPrompt (in wstring aPrompt, in wstring aCookie); */
  NS_IMETHOD SetPrompt(const PRUnichar *aPrompt, const PRUnichar *aCookie) = 0;

  /** Ignore key press events
   * (workaround for form input being transmitted to xmlterm)
   * @param aIgnore ignore flag (true/false)
   * @param aCookie document.cookie string for authentication
   */
  /* void IgnoreKeyPress (in boolean aIgnore, in wstring aCookie); */
  NS_IMETHOD IgnoreKeyPress(PRBool aIgnore, const PRUnichar *aCookie) = 0;

  /** Exit browser, closing all windows (not yet implemented)
   */
  /* void Exit (); */
  NS_IMETHOD Exit(void) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_MOZIXMLTERMSHELL \
  NS_IMETHOD GetCurrentEntryNumber(PRInt32 *aCurrentEntryNumber); \
  NS_IMETHOD Init(nsIDOMWindowInternal *aContentWin, const PRUnichar *URL, const PRUnichar *args); \
  NS_IMETHOD Close(const PRUnichar *aCookie); \
  NS_IMETHOD Poll(void); \
  NS_IMETHOD Resize(void); \
  NS_IMETHOD SendText(const PRUnichar *aString, const PRUnichar *aCookie); \
  NS_IMETHOD SetHistory(PRInt32 aHistory, const PRUnichar *aCookie); \
  NS_IMETHOD SetPrompt(const PRUnichar *aPrompt, const PRUnichar *aCookie); \
  NS_IMETHOD IgnoreKeyPress(PRBool aIgnore, const PRUnichar *aCookie); \
  NS_IMETHOD Exit(void); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_MOZIXMLTERMSHELL(_to) \
  NS_IMETHOD GetCurrentEntryNumber(PRInt32 *aCurrentEntryNumber) { return _to ## GetCurrentEntryNumber(aCurrentEntryNumber); } \
  NS_IMETHOD Init(nsIDOMWindowInternal *aContentWin, const PRUnichar *URL, const PRUnichar *args) { return _to ## Init(aContentWin, URL, args); } \
  NS_IMETHOD Close(const PRUnichar *aCookie) { return _to ## Close(aCookie); } \
  NS_IMETHOD Poll(void) { return _to ## Poll(); } \
  NS_IMETHOD Resize(void) { return _to ## Resize(); } \
  NS_IMETHOD SendText(const PRUnichar *aString, const PRUnichar *aCookie) { return _to ## SendText(aString, aCookie); } \
  NS_IMETHOD SetHistory(PRInt32 aHistory, const PRUnichar *aCookie) { return _to ## SetHistory(aHistory, aCookie); } \
  NS_IMETHOD SetPrompt(const PRUnichar *aPrompt, const PRUnichar *aCookie) { return _to ## SetPrompt(aPrompt, aCookie); } \
  NS_IMETHOD IgnoreKeyPress(PRBool aIgnore, const PRUnichar *aCookie) { return _to ## IgnoreKeyPress(aIgnore, aCookie); } \
  NS_IMETHOD Exit(void) { return _to ## Exit(); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_MOZIXMLTERMSHELL(_to) \
  NS_IMETHOD GetCurrentEntryNumber(PRInt32 *aCurrentEntryNumber) { return !_to ## ? NS_ERROR_NULL_POINTER : _to ##->GetCurrentEntryNumber(aCurrentEntryNumber); } \
  NS_IMETHOD Init(nsIDOMWindowInternal *aContentWin, const PRUnichar *URL, const PRUnichar *args) { return !_to ## ? NS_ERROR_NULL_POINTER : _to ##-> Init(aContentWin, URL, args); } \
  NS_IMETHOD Close(const PRUnichar *aCookie) { return !_to ## ? NS_ERROR_NULL_POINTER : _to ##-> Close(aCookie); } \
  NS_IMETHOD Poll(void) { return !_to ## ? NS_ERROR_NULL_POINTER : _to ##-> Poll(); } \
  NS_IMETHOD Resize(void) { return !_to ## ? NS_ERROR_NULL_POINTER : _to ##-> Resize(); } \
  NS_IMETHOD SendText(const PRUnichar *aString, const PRUnichar *aCookie) { return !_to ## ? NS_ERROR_NULL_POINTER : _to ##-> SendText(aString, aCookie); } \
  NS_IMETHOD SetHistory(PRInt32 aHistory, const PRUnichar *aCookie) { return !_to ## ? NS_ERROR_NULL_POINTER : _to ##-> SetHistory(aHistory, aCookie); } \
  NS_IMETHOD SetPrompt(const PRUnichar *aPrompt, const PRUnichar *aCookie) { return !_to ## ? NS_ERROR_NULL_POINTER : _to ##-> SetPrompt(aPrompt, aCookie); } \
  NS_IMETHOD IgnoreKeyPress(PRBool aIgnore, const PRUnichar *aCookie) { return !_to ## ? NS_ERROR_NULL_POINTER : _to ##-> IgnoreKeyPress(aIgnore, aCookie); } \
  NS_IMETHOD Exit(void) { return !_to ## ? NS_ERROR_NULL_POINTER : _to ##-> Exit(); } 

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

/* Header file */
class _MYCLASS_ : public mozIXMLTermShell
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_MOZIXMLTERMSHELL

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

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

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

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

/* readonly attribute long currentEntryNumber; */
NS_IMETHODIMP _MYCLASS_::GetCurrentEntryNumber(PRInt32 *aCurrentEntryNumber)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void Init (in nsIDOMWindowInternal aContentWin, in wstring URL, in wstring args); */
NS_IMETHODIMP _MYCLASS_::Init(nsIDOMWindowInternal *aContentWin, const PRUnichar *URL, const PRUnichar *args)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void Close (in wstring aCookie); */
NS_IMETHODIMP _MYCLASS_::Close(const PRUnichar *aCookie)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

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

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

/* void SendText (in wstring aString, in wstring aCookie); */
NS_IMETHODIMP _MYCLASS_::SendText(const PRUnichar *aString, const PRUnichar *aCookie)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void SetHistory (in long aHistory, in wstring aCookie); */
NS_IMETHODIMP _MYCLASS_::SetHistory(PRInt32 aHistory, const PRUnichar *aCookie)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void SetPrompt (in wstring aPrompt, in wstring aCookie); */
NS_IMETHODIMP _MYCLASS_::SetPrompt(const PRUnichar *aPrompt, const PRUnichar *aCookie)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void IgnoreKeyPress (in boolean aIgnore, in wstring aCookie); */
NS_IMETHODIMP _MYCLASS_::IgnoreKeyPress(PRBool aIgnore, const PRUnichar *aCookie)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

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

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

#define MOZXMLTERMSHELL_CID                  \
{ /* 0eb82b31-43a2-11d3-8e76-006008948af5 */ \
   0x0eb82b31, 0x43a2, 0x11d3,               \
{0x8e, 0x76, 0x00, 0x60, 0x08, 0x94, 0x8a, 0xf5} }
extern nsresult
NS_NewXMLTermShell(mozIXMLTermShell** aXMLTermShell);

#endif /* __gen_mozIXMLTermShell_h__ */
