Revision: 10684
Author:   acle...@google.com
Date:     Tue Oct  4 02:31:04 2011
Log:      Add missing Firefox 7 common include/ns*.h

http://code.google.com/p/google-web-toolkit/source/detail?r=10684

Added:
 /plugin-sdks/gecko-sdks/gecko-7.0.0/include/nsAlgorithm.h
 /plugin-sdks/gecko-sdks/gecko-7.0.0/include/nsCharTraits.h
 /plugin-sdks/gecko-sdks/gecko-7.0.0/include/nsIDOMEventTarget.h

=======================================
--- /dev/null
+++ /plugin-sdks/gecko-sdks/gecko-7.0.0/include/nsAlgorithm.h Tue Oct 4 02:31:04 2011
@@ -0,0 +1,114 @@
+/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/* ***** BEGIN LICENSE BLOCK *****
+ * Version: MPL 1.1/GPL 2.0/LGPL 2.1
+ *
+ * The contents of this file are subject to the Mozilla Public License Version
+ * 1.1 (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ * http://www.mozilla.org/MPL/
+ *
+ * Software distributed under the License is distributed on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
+ * for the specific language governing rights and limitations under the
+ * License.
+ *
+ * The Original Code is mozilla.org code.
+ *
+ * The Initial Developer of the Original Code is
+ * Netscape Communications Corporation.
+ * Portions created by the Initial Developer are Copyright (C) 1998
+ * the Initial Developer. All Rights Reserved.
+ *
+ * Contributor(s):
+ *   Scott Collins <s...@mozilla.org> (original author)
+ *
+ * Alternatively, the contents of this file may be used under the terms of
+ * either of the GNU General Public License Version 2 or later (the "GPL"),
+ * or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), + * in which case the provisions of the GPL or the LGPL are applicable instead + * of those above. If you wish to allow use of your version of this file only + * under the terms of either the GPL or the LGPL, and not to allow others to
+ * use your version of this file under the terms of the MPL, indicate your
+ * decision by deleting the provisions above and replace them with the notice + * and other provisions required by the GPL or the LGPL. If you do not delete + * the provisions above, a recipient may use your version of this file under
+ * the terms of any one of the MPL, the GPL or the LGPL.
+ *
+ * ***** END LICENSE BLOCK ***** */
+
+#ifndef nsAlgorithm_h___
+#define nsAlgorithm_h___
+
+#ifndef nsCharTraits_h___
+#include "nsCharTraits.h"
+  // for |nsCharSourceTraits|, |nsCharSinkTraits|
+#endif
+
+#ifndef prtypes_h___
+#include "prtypes.h"
+  // for |PRUint32|...
+#endif
+
+#ifndef nsDebug_h___
+#include "nsDebug.h"
+  // for NS_ASSERTION
+#endif
+
+
+template <class T>
+inline
+T
+NS_ROUNDUP( const T& a, const T& b )
+  {
+    return ((a + (b - 1)) / b) * b;
+  }
+
+template <class T>
+inline
+const T&
+NS_MIN( const T& a, const T& b )
+  {
+    return b < a ? b : a;
+  }
+
+template <class T>
+inline
+const T&
+NS_MAX( const T& a, const T& b )
+  {
+    return a > b ? a : b;
+  }
+
+template <class T>
+inline
+T
+NS_ABS( const T& a )
+  {
+    return a < 0 ? -a : a;
+  }
+
+template <class InputIterator, class T>
+inline
+PRUint32
+NS_COUNT( InputIterator& first, const InputIterator& last, const T& value )
+  {
+    PRUint32 result = 0;
+    for ( ; first != last; ++first )
+      if ( *first == value )
+        ++result;
+    return result;
+  }
+
+template <class InputIterator, class OutputIterator>
+inline
+OutputIterator&
+copy_string( const InputIterator& first, const InputIterator& last, OutputIterator& result )
+  {
+    typedef nsCharSourceTraits<InputIterator> source_traits;
+    typedef nsCharSinkTraits<OutputIterator>  sink_traits;
+
+ sink_traits::write(result, source_traits::read(first), source_traits::readable_distance(first, last));
+    return result;
+  }
+
+#endif // !defined(nsAlgorithm_h___)
=======================================
--- /dev/null
+++ /plugin-sdks/gecko-sdks/gecko-7.0.0/include/nsCharTraits.h Tue Oct 4 02:31:04 2011
@@ -0,0 +1,858 @@
+/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/* ***** BEGIN LICENSE BLOCK *****
+ * Version: MPL 1.1/GPL 2.0/LGPL 2.1
+ *
+ * The contents of this file are subject to the Mozilla Public License Version
+ * 1.1 (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ * http://www.mozilla.org/MPL/
+ *
+ * Software distributed under the License is distributed on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
+ * for the specific language governing rights and limitations under the
+ * License.
+ *
+ * The Original Code is mozilla.org code.
+ *
+ * The Initial Developer of the Original Code is
+ * Netscape Communications Corporation.
+ * Portions created by the Initial Developer are Copyright (C) 2000
+ * the Initial Developer. All Rights Reserved.
+ *
+ * Contributor(s):
+ *   Scott Collins <s...@mozilla.org> (original author)
+ *
+ * Alternatively, the contents of this file may be used under the terms of
+ * either of the GNU General Public License Version 2 or later (the "GPL"),
+ * or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), + * in which case the provisions of the GPL or the LGPL are applicable instead + * of those above. If you wish to allow use of your version of this file only + * under the terms of either the GPL or the LGPL, and not to allow others to
+ * use your version of this file under the terms of the MPL, indicate your
+ * decision by deleting the provisions above and replace them with the notice + * and other provisions required by the GPL or the LGPL. If you do not delete + * the provisions above, a recipient may use your version of this file under
+ * the terms of any one of the MPL, the GPL or the LGPL.
+ *
+ * ***** END LICENSE BLOCK ***** */
+
+#ifndef nsCharTraits_h___
+#define nsCharTraits_h___
+
+#include <ctype.h>
+  // for |EOF|, |WEOF|
+
+#define FORCED_CPP_2BYTE_WCHAR_T
+  // disable special optimizations for now through this hack
+
+#if defined(HAVE_CPP_2BYTE_WCHAR_T) && !defined(FORCED_CPP_2BYTE_WCHAR_T)
+#define USE_CPP_WCHAR_FUNCS
+#endif
+
+#ifdef USE_CPP_WCHAR_FUNCS
+#include <wchar.h>
+  // for |wmemset|, et al
+#endif
+
+#include <string.h>
+  // for |memcpy|, et al
+
+#ifndef nscore_h___
+#include "nscore.h"
+  // for |PRUnichar|
+#endif
+
+// This file may be used (through nsUTF8Utils.h) from non-XPCOM code, in
+// particular the standalone software updater. In that case stub out
+// the macros provided by nsDebug.h which are only usable when linking XPCOM
+
+#ifdef NS_NO_XPCOM
+#define NS_WARNING(msg)
+#define NS_ASSERTION(cond, msg)
+#define NS_ERROR(msg)
+#else
+#ifndef nsDebug_h__
+#include "nsDebug.h"
+  // for NS_ASSERTION
+#endif
+#endif
+
+#ifdef HAVE_CPP_BOOL
+  typedef bool nsCharTraits_bool;
+#else
+  typedef PRBool nsCharTraits_bool;
+#endif
+
+/*
+ * Some macros for converting PRUnichar (UTF-16) to and from Unicode scalar
+ * values.
+ *
+ * Note that UTF-16 represents all Unicode scalar values up to U+10FFFF by
+ * using "surrogate pairs". These consist of a high surrogate, i.e. a code
+ * point in the range U+D800 - U+DBFF, and a low surrogate, i.e. a code point
+ * in the range U+DC00 - U+DFFF, like this:
+ *
+ *  U+D800 U+DC00 =  U+10000
+ *  U+D800 U+DC01 =  U+10001
+ *  ...
+ *  U+DBFF U+DFFE = U+10FFFE
+ *  U+DBFF U+DFFF = U+10FFFF
+ *
+ * These surrogate code points U+D800 - U+DFFF are not themselves valid Unicode
+ * scalar values and are not well-formed UTF-16 except as high-surrogate /
+ * low-surrogate pairs.
+ */
+
+#define PLANE1_BASE          PRUint32(0x00010000)
+// High surrogates are in the range 0xD800 -- OxDBFF
+#define NS_IS_HIGH_SURROGATE(u) ((PRUint32(u) & 0xFFFFFC00) == 0xD800)
+// Low surrogates are in the range 0xDC00 -- 0xDFFF
+#define NS_IS_LOW_SURROGATE(u)  ((PRUint32(u) & 0xFFFFFC00) == 0xDC00)
+// Faster than testing NS_IS_HIGH_SURROGATE || NS_IS_LOW_SURROGATE
+#define IS_SURROGATE(u)      ((PRUint32(u) & 0xFFFFF800) == 0xD800)
+
+// Everything else is not a surrogate: 0x000 -- 0xD7FF, 0xE000 -- 0xFFFF
+
+// N = (H - 0xD800) * 0x400 + 0x10000 + (L - 0xDC00)
+// I wonder whether we could somehow assert that H is a high surrogate
+// and L is a low surrogate
+#define SURROGATE_TO_UCS4(h, l) (((PRUint32(h) & 0x03FF) << 10) + \
+                                 (PRUint32(l) & 0x03FF) + PLANE1_BASE)
+
+// Extract surrogates from a UCS4 char
+// Reference: the Unicode standard 4.0, section 3.9
+// Since (c - 0x10000) >> 10 == (c >> 10) - 0x0080 and
+// 0xD7C0 == 0xD800 - 0x0080,
+// ((c - 0x10000) >> 10) + 0xD800 can be simplified to
+#define H_SURROGATE(c) PRUnichar(PRUnichar(PRUint32(c) >> 10) + \
+                                 PRUnichar(0xD7C0))
+// where it's to be noted that 0xD7C0 is not bitwise-OR'd
+// but added.
+
+// Since 0x10000 & 0x03FF == 0,
+// (c - 0x10000) & 0x03FF == c & 0x03FF so that
+// ((c - 0x10000) & 0x03FF) | 0xDC00 is equivalent to
+#define L_SURROGATE(c) PRUnichar(PRUnichar(PRUint32(c) & PRUint32(0x03FF)) | \
+                                 PRUnichar(0xDC00))
+
+#define IS_IN_BMP(ucs) (PRUint32(ucs) < PLANE1_BASE)
+#define UCS2_REPLACEMENT_CHAR PRUnichar(0xFFFD)
+
+#define UCS_END PRUint32(0x00110000)
+#define IS_VALID_CHAR(c) ((PRUint32(c) < UCS_END) && !IS_SURROGATE(c))
+#define ENSURE_VALID_CHAR(c) (IS_VALID_CHAR(c) ? (c) : UCS2_REPLACEMENT_CHAR)
+
+template <class CharT> struct nsCharTraits {};
+
+NS_SPECIALIZE_TEMPLATE
+struct nsCharTraits<PRUnichar>
+  {
+    typedef PRUnichar char_type;
+    typedef PRUint16  unsigned_char_type;
+    typedef char      incompatible_char_type;
+
+    NS_COM static char_type *sEmptyBuffer;
+
+    static
+    void
+    assign( char_type& lhs, char_type rhs )
+      {
+        lhs = rhs;
+      }
+
+
+      // integer representation of characters:
+
+#ifdef USE_CPP_WCHAR_FUNCS
+    typedef wint_t int_type;
+#else
+    typedef int int_type;
+#endif
+
+    static
+    char_type
+    to_char_type( int_type c )
+      {
+        return char_type(c);
+      }
+
+    static
+    int_type
+    to_int_type( char_type c )
+      {
+        return int_type( static_cast<unsigned_char_type>(c) );
+      }
+
+    static
+    nsCharTraits_bool
+    eq_int_type( int_type lhs, int_type rhs )
+      {
+        return lhs == rhs;
+      }
+
+
+      // |char_type| comparisons:
+
+    static
+    nsCharTraits_bool
+    eq( char_type lhs, char_type rhs )
+      {
+        return lhs == rhs;
+      }
+
+    static
+    nsCharTraits_bool
+    lt( char_type lhs, char_type rhs )
+      {
+        return lhs < rhs;
+      }
+
+
+      // operations on s[n] arrays:
+
+    static
+    char_type*
+    move( char_type* s1, const char_type* s2, size_t n )
+      {
+ return static_cast<char_type*>(memmove(s1, s2, n * sizeof(char_type)));
+      }
+
+    static
+    char_type*
+    copy( char_type* s1, const char_type* s2, size_t n )
+      {
+ return static_cast<char_type*>(memcpy(s1, s2, n * sizeof(char_type)));
+      }
+
+    static
+    char_type*
+    copyASCII( char_type* s1, const char* s2, size_t n )
+      {
+        for (char_type* s = s1; n--; ++s, ++s2) {
+          NS_ASSERTION(!(*s2 & ~0x7F), "Unexpected non-ASCII character");
+          *s = *s2;
+        }
+        return s1;
+      }
+
+    static
+    char_type*
+    assign( char_type* s, size_t n, char_type c )
+      {
+#ifdef USE_CPP_WCHAR_FUNCS
+        return static_cast<char_type*>(wmemset(s, to_int_type(c), n));
+#else
+        char_type* result = s;
+        while ( n-- )
+          assign(*s++, c);
+        return result;
+#endif
+      }
+
+    static
+    int
+    compare( const char_type* s1, const char_type* s2, size_t n )
+      {
+#ifdef USE_CPP_WCHAR_FUNCS
+        return wmemcmp(s1, s2, n);
+#else
+        for ( ; n--; ++s1, ++s2 )
+          {
+            if ( !eq(*s1, *s2) )
+              return to_int_type(*s1) - to_int_type(*s2);
+          }
+
+        return 0;
+#endif
+      }
+
+    static
+    int
+    compareASCII( const char_type* s1, const char* s2, size_t n )
+      {
+        for ( ; n--; ++s1, ++s2 )
+          {
+            NS_ASSERTION(!(*s2 & ~0x7F), "Unexpected non-ASCII character");
+            if ( !eq_int_type(to_int_type(*s1), to_int_type(*s2)) )
+              return to_int_type(*s1) - to_int_type(*s2);
+          }
+
+        return 0;
+      }
+
+    // this version assumes that s2 is null-terminated and s1 has length n.
+    // if s1 is shorter than s2 then we return -1; if s1 is longer than s2,
+    // we return 1.
+    static
+    int
+ compareASCIINullTerminated( const char_type* s1, size_t n, const char* s2 )
+      {
+        for ( ; n--; ++s1, ++s2 )
+          {
+            if ( !*s2 )
+              return 1;
+            NS_ASSERTION(!(*s2 & ~0x7F), "Unexpected non-ASCII character");
+            if ( !eq_int_type(to_int_type(*s1), to_int_type(*s2)) )
+              return to_int_type(*s1) - to_int_type(*s2);
+          }
+
+        if ( *s2 )
+          return -1;
+
+        return 0;
+      }
+
+    /**
+     * Convert c to its lower-case form, but only if the lower-case form is
+     * ASCII. Otherwise leave it alone.
+     *
+     * There are only two non-ASCII Unicode characters whose lowercase
+     * equivalents are ASCII: KELVIN SIGN and LATIN CAPITAL LETTER I WITH
+     * DOT ABOVE. So it's a simple matter to handle those explicitly.
+     */
+    static
+    char_type
+    ASCIIToLower( char_type c )
+      {
+        if (c < 0x100)
+          {
+            if (c >= 'A' && c <= 'Z')
+              return char_type(c + ('a' - 'A'));
+
+            return c;
+          }
+        else
+          {
+            if (c == 0x212A) // KELVIN SIGN
+              return 'k';
+            if (c == 0x0130) // LATIN CAPITAL LETTER I WITH DOT ABOVE
+              return 'i';
+            return c;
+          }
+      }
+
+    static
+    int
+ compareLowerCaseToASCII( const char_type* s1, const char* s2, size_t n )
+      {
+        for ( ; n--; ++s1, ++s2 )
+          {
+            NS_ASSERTION(!(*s2 & ~0x7F), "Unexpected non-ASCII character");
+            NS_ASSERTION(!(*s2 >= 'A' && *s2 <= 'Z'),
+                         "Unexpected uppercase character");
+            char_type lower_s1 = ASCIIToLower(*s1);
+            if ( lower_s1 != to_char_type(*s2) )
+              return to_int_type(lower_s1) - to_int_type(*s2);
+          }
+
+        return 0;
+      }
+
+    // this version assumes that s2 is null-terminated and s1 has length n.
+    // if s1 is shorter than s2 then we return -1; if s1 is longer than s2,
+    // we return 1.
+    static
+    int
+ compareLowerCaseToASCIINullTerminated( const char_type* s1, size_t n, const char* s2 )
+      {
+        for ( ; n--; ++s1, ++s2 )
+          {
+            if ( !*s2 )
+              return 1;
+            NS_ASSERTION(!(*s2 & ~0x7F), "Unexpected non-ASCII character");
+            NS_ASSERTION(!(*s2 >= 'A' && *s2 <= 'Z'),
+                         "Unexpected uppercase character");
+            char_type lower_s1 = ASCIIToLower(*s1);
+            if ( lower_s1 != to_char_type(*s2) )
+              return to_int_type(lower_s1) - to_int_type(*s2);
+          }
+
+        if ( *s2 )
+          return -1;
+
+        return 0;
+      }
+
+    static
+    size_t
+    length( const char_type* s )
+      {
+#ifdef USE_CPP_WCHAR_FUNCS
+        return wcslen(s);
+#else
+        size_t result = 0;
+        while ( !eq(*s++, char_type(0)) )
+          ++result;
+        return result;
+#endif
+      }
+
+    static
+    const char_type*
+    find( const char_type* s, size_t n, char_type c )
+      {
+#ifdef USE_CPP_WCHAR_FUNCS
+ return reinterpret_cast<const char_type*>(wmemchr(s, to_int_type(c), n));
+#else
+        while ( n-- )
+          {
+            if ( eq(*s, c) )
+              return s;
+            ++s;
+          }
+
+        return 0;
+#endif
+      }
+
+#if 0
+      // I/O related:
+
+    typedef streamoff off_type;
+    typedef streampos pos_type;
+    typedef mbstate_t state_type;
+
+    static
+    int_type
+    eof()
+      {
+#ifdef USE_CPP_WCHAR_FUNCS
+        return WEOF;
+#else
+        return EOF;
+#endif
+      }
+
+    static
+    int_type
+    not_eof( int_type c )
+      {
+        return eq_int_type(c, eof()) ? ~eof() : c;
+      }
+
+    // static state_type get_state( pos_type );
+#endif
+  };
+
+NS_SPECIALIZE_TEMPLATE
+struct nsCharTraits<char>
+  {
+    typedef char           char_type;
+    typedef unsigned char  unsigned_char_type;
+    typedef PRUnichar      incompatible_char_type;
+
+    NS_COM static char_type *sEmptyBuffer;
+
+    static
+    void
+    assign( char_type& lhs, char_type rhs )
+      {
+        lhs = rhs;
+      }
+
+
+      // integer representation of characters:
+
+    typedef int int_type;
+
+    static
+    char_type
+    to_char_type( int_type c )
+      {
+        return char_type(c);
+      }
+
+    static
+    int_type
+    to_int_type( char_type c )
+      {
+        return int_type( static_cast<unsigned_char_type>(c) );
+      }
+
+    static
+    nsCharTraits_bool
+    eq_int_type( int_type lhs, int_type rhs )
+      {
+        return lhs == rhs;
+      }
+
+
+      // |char_type| comparisons:
+
+    static
+    nsCharTraits_bool
+    eq( char_type lhs, char_type rhs )
+      {
+        return lhs == rhs;
+      }
+
+    static
+    nsCharTraits_bool
+    lt( char_type lhs, char_type rhs )
+      {
+        return lhs < rhs;
+      }
+
+
+      // operations on s[n] arrays:
+
+    static
+    char_type*
+    move( char_type* s1, const char_type* s2, size_t n )
+      {
+ return static_cast<char_type*>(memmove(s1, s2, n * sizeof(char_type)));
+      }
+
+    static
+    char_type*
+    copy( char_type* s1, const char_type* s2, size_t n )
+      {
+ return static_cast<char_type*>(memcpy(s1, s2, n * sizeof(char_type)));
+      }
+
+    static
+    char_type*
+    copyASCII( char_type* s1, const char* s2, size_t n )
+      {
+        return copy(s1, s2, n);
+      }
+
+    static
+    char_type*
+    assign( char_type* s, size_t n, char_type c )
+      {
+        return static_cast<char_type*>(memset(s, to_int_type(c), n));
+      }
+
+    static
+    int
+    compare( const char_type* s1, const char_type* s2, size_t n )
+      {
+        return memcmp(s1, s2, n);
+      }
+
+    static
+    int
+    compareASCII( const char_type* s1, const char* s2, size_t n )
+      {
+#ifdef DEBUG
+        for (size_t i = 0; i < n; ++i)
+          {
+ NS_ASSERTION(!(s2[i] & ~0x7F), "Unexpected non-ASCII character");
+          }
+#endif
+        return compare(s1, s2, n);
+      }
+
+    // this version assumes that s2 is null-terminated and s1 has length n.
+    // if s1 is shorter than s2 then we return -1; if s1 is longer than s2,
+    // we return 1.
+    static
+    int
+ compareASCIINullTerminated( const char_type* s1, size_t n, const char* s2 )
+      {
+        // can't use strcmp here because we don't want to stop when s1
+        // contains a null
+        for ( ; n--; ++s1, ++s2 )
+          {
+            if ( !*s2 )
+              return 1;
+            NS_ASSERTION(!(*s2 & ~0x7F), "Unexpected non-ASCII character");
+            if ( *s1 != *s2 )
+              return to_int_type(*s1) - to_int_type(*s2);
+          }
+
+        if ( *s2 )
+          return -1;
+
+        return 0;
+      }
+
+    /**
+     * Convert c to its lower-case form, but only if c is ASCII.
+     */
+    static
+    char_type
+    ASCIIToLower( char_type c )
+      {
+        if (c >= 'A' && c <= 'Z')
+          return char_type(c + ('a' - 'A'));
+
+        return c;
+      }
+
+    static
+    int
+ compareLowerCaseToASCII( const char_type* s1, const char* s2, size_t n )
+      {
+        for ( ; n--; ++s1, ++s2 )
+          {
+            NS_ASSERTION(!(*s2 & ~0x7F), "Unexpected non-ASCII character");
+            NS_ASSERTION(!(*s2 >= 'A' && *s2 <= 'Z'),
+                         "Unexpected uppercase character");
+            char_type lower_s1 = ASCIIToLower(*s1);
+            if ( lower_s1 != *s2 )
+              return to_int_type(lower_s1) - to_int_type(*s2);
+          }
+        return 0;
+      }
+
+    // this version assumes that s2 is null-terminated and s1 has length n.
+    // if s1 is shorter than s2 then we return -1; if s1 is longer than s2,
+    // we return 1.
+    static
+    int
+ compareLowerCaseToASCIINullTerminated( const char_type* s1, size_t n, const char* s2 )
+      {
+        for ( ; n--; ++s1, ++s2 )
+          {
+            if ( !*s2 )
+              return 1;
+            NS_ASSERTION(!(*s2 & ~0x7F), "Unexpected non-ASCII character");
+            NS_ASSERTION(!(*s2 >= 'A' && *s2 <= 'Z'),
+                         "Unexpected uppercase character");
+            char_type lower_s1 = ASCIIToLower(*s1);
+            if ( lower_s1 != *s2 )
+              return to_int_type(lower_s1) - to_int_type(*s2);
+          }
+
+        if ( *s2 )
+          return -1;
+
+        return 0;
+      }
+
+    static
+    size_t
+    length( const char_type* s )
+      {
+        return strlen(s);
+      }
+
+    static
+    const char_type*
+    find( const char_type* s, size_t n, char_type c )
+      {
+ return reinterpret_cast<const char_type*>(memchr(s, to_int_type(c), n));
+      }
+
+#if 0
+      // I/O related:
+
+    typedef streamoff off_type;
+    typedef streampos pos_type;
+    typedef mbstate_t state_type;
+
+    static
+    int_type
+    eof()
+      {
+        return EOF;
+      }
+
+    static
+    int_type
+    not_eof( int_type c )
+      {
+        return eq_int_type(c, eof()) ? ~eof() : c;
+      }
+
+    // static state_type get_state( pos_type );
+#endif
+  };
+
+template <class InputIterator>
+struct nsCharSourceTraits
+  {
+    typedef typename InputIterator::difference_type difference_type;
+
+    static
+    PRUint32
+ readable_distance( const InputIterator& first, const InputIterator& last )
+      {
+        // assumes single fragment
+        return PRUint32(last.get() - first.get());
+      }
+
+    static
+    const typename InputIterator::value_type*
+    read( const InputIterator& iter )
+      {
+        return iter.get();
+      }
+
+    static
+    void
+    advance( InputIterator& s, difference_type n )
+      {
+        s.advance(n);
+      }
+  };
+
+#ifdef HAVE_CPP_PARTIAL_SPECIALIZATION
+
+template <class CharT>
+struct nsCharSourceTraits<CharT*>
+  {
+    typedef ptrdiff_t difference_type;
+
+    static
+    PRUint32
+    readable_distance( CharT* s )
+      {
+        return PRUint32(nsCharTraits<CharT>::length(s));
+//      return numeric_limits<PRUint32>::max();
+      }
+
+    static
+    PRUint32
+    readable_distance( CharT* first, CharT* last )
+      {
+        return PRUint32(last-first);
+      }
+
+    static
+    const CharT*
+    read( CharT* s )
+      {
+        return s;
+      }
+
+    static
+    void
+    advance( CharT*& s, difference_type n )
+      {
+        s += n;
+      }
+  };
+
+#else
+
+NS_SPECIALIZE_TEMPLATE
+struct nsCharSourceTraits<const char*>
+  {
+    typedef ptrdiff_t difference_type;
+
+    static
+    PRUint32
+    readable_distance( const char* s )
+      {
+        return PRUint32(nsCharTraits<char>::length(s));
+//      return numeric_limits<PRUint32>::max();
+      }
+
+    static
+    PRUint32
+    readable_distance( const char* first, const char* last )
+      {
+        return PRUint32(last-first);
+      }
+
+    static
+    const char*
+    read( const char* s )
+      {
+        return s;
+      }
+
+    static
+    void
+    advance( const char*& s, difference_type n )
+      {
+        s += n;
+      }
+ };
+
+
+NS_SPECIALIZE_TEMPLATE
+struct nsCharSourceTraits<const PRUnichar*>
+  {
+    typedef ptrdiff_t difference_type;
+
+    static
+    PRUint32
+    readable_distance( const PRUnichar* s )
+      {
+        return PRUint32(nsCharTraits<PRUnichar>::length(s));
+//      return numeric_limits<PRUint32>::max();
+      }
+
+    static
+    PRUint32
+    readable_distance( const PRUnichar* first, const PRUnichar* last )
+      {
+        return PRUint32(last-first);
+      }
+
+    static
+    const PRUnichar*
+    read( const PRUnichar* s )
+      {
+        return s;
+      }
+
+    static
+    void
+    advance( const PRUnichar*& s, difference_type n )
+      {
+        s += n;
+      }
+ };
+
+#endif
+
+
+template <class OutputIterator>
+struct nsCharSinkTraits
+  {
+    static
+    void
+ write( OutputIterator& iter, const typename OutputIterator::value_type* s, PRUint32 n )
+      {
+        iter.write(s, n);
+      }
+  };
+
+#ifdef HAVE_CPP_PARTIAL_SPECIALIZATION
+
+template <class CharT>
+struct nsCharSinkTraits<CharT*>
+  {
+    static
+    void
+    write( CharT*& iter, const CharT* s, PRUint32 n )
+      {
+        nsCharTraits<CharT>::move(iter, s, n);
+        iter += n;
+      }
+  };
+
+#else
+
+NS_SPECIALIZE_TEMPLATE
+struct nsCharSinkTraits<char*>
+  {
+    static
+    void
+    write( char*& iter, const char* s, PRUint32 n )
+      {
+        nsCharTraits<char>::move(iter, s, n);
+        iter += n;
+      }
+  };
+
+NS_SPECIALIZE_TEMPLATE
+struct nsCharSinkTraits<PRUnichar*>
+  {
+    static
+    void
+    write( PRUnichar*& iter, const PRUnichar* s, PRUint32 n )
+      {
+        nsCharTraits<PRUnichar>::move(iter, s, n);
+        iter += n;
+      }
+  };
+
+#endif
+
+#endif // !defined(nsCharTraits_h___)
=======================================
--- /dev/null
+++ /plugin-sdks/gecko-sdks/gecko-7.0.0/include/nsIDOMEventTarget.h Tue Oct 4 02:31:04 2011
@@ -0,0 +1,424 @@
+/*
+ * DO NOT EDIT. THIS FILE IS GENERATED FROM e:/builds/moz2_slave/rel-m-rel-xr-w32-bld/build/dom/interfaces/events/nsIDOMEventTarget.idl
+ */
+
+#ifndef __gen_nsIDOMEventTarget_h__
+#define __gen_nsIDOMEventTarget_h__
+
+
+#ifndef __gen_domstubs_h__
+#include "domstubs.h"
+#endif
+
+/* For IDL files that don't want to include root IDL files. */
+#ifndef NS_NO_VTABLE
+#define NS_NO_VTABLE
+#endif
+#include "nsEvent.h"
+class nsPresContext;
+class nsEventChainPreVisitor;
+class nsEventChainPostVisitor;
+struct JSContext;
+class nsEventListenerManager;
+class nsIScriptContext; /* forward declaration */
+
+class nsIDOMEventListener; /* forward declaration */
+
+class nsIDOMEvent; /* forward declaration */
+
+
+/* starting interface:    nsIDOMEventTarget */
+#define NS_IDOMEVENTTARGET_IID_STR "1797d5a4-b12a-428d-9eef-a0e13839728c"
+
+#define NS_IDOMEVENTTARGET_IID \
+  {0x1797d5a4, 0xb12a, 0x428d, \
+    { 0x9e, 0xef, 0xa0, 0xe1, 0x38, 0x39, 0x72, 0x8c }}
+
+class NS_SCRIPTABLE nsIDOMEventTarget : public nsISupports {
+ public:
+
+  NS_DECLARE_STATIC_IID_ACCESSOR(NS_IDOMEVENTTARGET_IID)
+
+  /**
+ * This method allows the registration of event listeners on the event target. + * If an EventListener is added to an EventTarget while it is processing an
+   * event, it will not be triggered by the current actions but may be
+ * triggered during a later stage of event flow, such as the bubbling phase.
+   *
+   * If multiple identical EventListeners are registered on the same
+   * EventTarget with the same parameters the duplicate instances are
+   * discarded. They do not cause the EventListener to be called twice
+   * and since they are discarded they do not need to be removed with the
+   * removeEventListener method.
+   *
+   * @param   type The event type for which the user is registering
+   * @param   listener The listener parameter takes an interface
+   *                   implemented by the user which contains the methods
+   *                   to be called when the event occurs.
+   * @param   useCapture If true, useCapture indicates that the user
+   *                     wishes to initiate capture. After initiating
+   *                     capture, all events of the specified type will be
+   *                     dispatched to the registered EventListener before
+   *                     being dispatched to any EventTargets beneath them
+   *                     in the tree. Events which are bubbling upward
+   *                     through the tree will not trigger an
+   *                     EventListener designated to use capture.
+   * @param   wantsUntrusted If false, the listener will not receive any
+   *                         untrusted events (see above), if true, the
+   *                         listener will receive events whether or not
+   *                         they're trusted
+   */
+ /* [optional_argc] void addEventListener (in DOMString type, in nsIDOMEventListener listener, [optional] in boolean useCapture, [optional] in boolean wantsUntrusted); */ + NS_SCRIPTABLE NS_IMETHOD AddEventListener(const nsAString & type, nsIDOMEventListener *listener, PRBool useCapture, PRBool wantsUntrusted, PRUint8 _argc) = 0;
+
+  // non-virtual so it won't affect the vtable
+  nsresult AddEventListener(const nsAString& aType,
+                            nsIDOMEventListener* aListener,
+                            PRBool aUseCapture)
+  {
+    return AddEventListener(aType, aListener, aUseCapture, PR_FALSE, 1);
+  }
+  // non-virtual so it won't affect the vtable
+  nsresult AddEventListener(const nsAString& aType,
+                            nsIDOMEventListener* aListener,
+                            PRBool aUseCapture,
+                            PRBool aWantsUntrusted)
+  {
+ return AddEventListener(aType, aListener, aUseCapture, aWantsUntrusted, 2);
+  }
+  /**
+   * This method allows the removal of event listeners from the event
+   * target. If an EventListener is removed from an EventTarget while it
+ * is processing an event, it will not be triggered by the current actions.
+   * EventListeners can never be invoked after being removed.
+   * Calling removeEventListener with arguments which do not identify any
+   * currently registered EventListener on the EventTarget has no effect.
+   *
+   * @param   type Specifies the event type of the EventListener being
+   *               removed.
+   * @param   listener The EventListener parameter indicates the
+   *                   EventListener to be removed.
+   * @param   useCapture Specifies whether the EventListener being
+   *                     removed was registered as a capturing listener or
+   *                     not. If a listener was registered twice, one with
+   *                     capture and one without, each must be removed
+   *                     separately. Removal of a capturing listener does
+   *                     not affect a non-capturing version of the same
+   *                     listener, and vice versa.
+   */
+ /* void removeEventListener (in DOMString type, in nsIDOMEventListener listener, [optional] in boolean useCapture); */ + NS_SCRIPTABLE NS_IMETHOD RemoveEventListener(const nsAString & type, nsIDOMEventListener *listener, PRBool useCapture) = 0;
+
+  /**
+   * This method allows the dispatch of events into the implementations
+   * event model. Events dispatched in this manner will have the same
+   * capturing and bubbling behavior as events dispatched directly by the
+   * implementation. The target of the event is the EventTarget on which
+   * dispatchEvent is called.
+   *
+   * @param   evt Specifies the event type, behavior, and contextual
+   *              information to be used in processing the event.
+   * @return  Indicates whether any of the listeners which handled the
+   *          event called preventDefault. If preventDefault was called
+   *          the value is false, else the value is true.
+   * @throws  UNSPECIFIED_EVENT_TYPE_ERR: Raised if the Event's type was
+   *              not specified by initializing the event before
+   *              dispatchEvent was called. Specification of the Event's
+   *              type as null or an empty string will also trigger this
+   *              exception.
+   */
+  /* boolean dispatchEvent (in nsIDOMEvent evt)  raises (DOMException); */
+ NS_SCRIPTABLE NS_IMETHOD DispatchEvent(nsIDOMEvent *evt, PRBool *_retval NS_OUTPARAM) = 0;
+
+  /**
+ * Returns the nsPIDOMEventTarget object which should be used as the target
+   * of DOMEvents.
+   * Usually |this| is returned, but for example global object returns
+   * the outer object.
+   */
+  /* [nostdcall, notxpcom] nsIDOMEventTarget GetTargetForDOMEvent (); */
+  virtual nsIDOMEventTarget * GetTargetForDOMEvent(void) = 0;
+
+  /**
+ * Returns the nsPIDOMEventTarget object which should be used as the target
+   * of the event and when constructing event target chain.
+   * Usually |this| is returned, but for example global object returns
+   * the inner object.
+   */
+ /* [nostdcall, notxpcom] nsIDOMEventTarget GetTargetForEventTargetChain (); */
+  virtual nsIDOMEventTarget * GetTargetForEventTargetChain(void) = 0;
+
+  /**
+   * Called before the capture phase of the event flow.
+   * This is used to create the event target chain and implementations
+   * should set the necessary members of nsEventChainPreVisitor.
+   * At least aVisitor.mCanHandle must be set,
+   * usually also aVisitor.mParentTarget if mCanHandle is PR_TRUE.
+ * First one tells that this object can handle the aVisitor.mEvent event and + * the latter one is the possible parent object for the event target chain.
+   * @see nsEventDispatcher.h for more documentation about aVisitor.
+   *
+   * @param aVisitor the visitor object which is used to create the
+   *                 event target chain for event dispatching.
+   *
+   * @note Only nsEventDispatcher should call this method.
+   */
+ /* [noscript, nostdcall] void PreHandleEvent (in nsEventChainPreVisitorRef aVisitor); */
+  virtual nsresult PreHandleEvent(nsEventChainPreVisitor & aVisitor) = 0;
+
+  /**
+   * If nsEventChainPreVisitor.mWantsWillHandleEvent is set PR_TRUE,
+ * called just before possible event handlers on this object will be called.
+   */
+ /* [noscript, nostdcall] void WillHandleEvent (in nsEventChainPostVisitorRef aVisitor); */
+  virtual nsresult WillHandleEvent(nsEventChainPostVisitor & aVisitor) = 0;
+
+  /**
+   * Called after the bubble phase of the system event group.
+   * The default handling of the event should happen here.
+   * @param aVisitor the visitor object which is used during post handling.
+   *
+   * @see nsEventDispatcher.h for documentation about aVisitor.
+   * @note Only nsEventDispatcher should call this method.
+   */
+ /* [noscript, nostdcall] void PostHandleEvent (in nsEventChainPostVisitorRef aVisitor); */
+  virtual nsresult PostHandleEvent(nsEventChainPostVisitor & aVisitor) = 0;
+
+  /**
+   * Dispatch an event.
+   * @param aEvent the event that is being dispatched.
+ * @param aDOMEvent the event that is being dispatched, use if you want to
+   *                  dispatch nsIDOMEvent, not only nsEvent.
+   * @param aPresContext the current presentation context, can be nsnull.
+ * @param aEventStatus the status returned from the function, can be nsnull.
+   *
+ * @note If both aEvent and aDOMEvent are used, aEvent must be the internal
+   *       event of the aDOMEvent.
+   *
+ * If aDOMEvent is not nsnull (in which case aEvent can be nsnull) it is used
+   * for dispatching, otherwise aEvent is used.
+   *
+ * @deprecated This method is here just until all the callers outside Gecko + * have been converted to use nsIDOMEventTarget::dispatchEvent.
+   */
+ /* [noscript, nostdcall] void DispatchDOMEvent (in nsEventPtr aEvent, in nsIDOMEvent aDOMEvent, in nsPresContextPtr aPresContext, in nsEventStatusPtr aEventStatus); */ + virtual nsresult DispatchDOMEvent(nsEvent *aEvent, nsIDOMEvent *aDOMEvent, nsPresContext *aPresContext, nsEventStatus *aEventStatus) = 0;
+
+  /**
+ * Get the event listener manager, the guy you talk to to register for events
+   * on this node.
+   * @param aMayCreate If PR_FALSE, returns a listener manager only if
+   *                   one already exists.
+   */
+ /* [nostdcall, notxpcom] nsEventListenerManagerPtr GetListenerManager (in boolean aMayCreate); */ + virtual nsEventListenerManager * GetListenerManager(PRBool aMayCreate) = 0;
+
+  /**
+   * Add an event listener for nsIID.
+   */
+ /* [noscript, nostdcall] void AddEventListenerByIID (in nsIDOMEventListener aListener, in nsIIDRef aIID); */ + virtual nsresult AddEventListenerByIID(nsIDOMEventListener *aListener, const nsIID & aIID) = 0;
+
+  /**
+   * Remove event listener for nsIID.
+   */
+ /* [noscript, nostdcall] void RemoveEventListenerByIID (in nsIDOMEventListener aListener, in nsIIDRef aIID); */ + virtual nsresult RemoveEventListenerByIID(nsIDOMEventListener *aListener, const nsIID & aIID) = 0;
+
+  /**
+   * Get the script context in which the event handlers should be run.
+   * May return null.
+   * @note Caller *must* check the value of aRv.
+   */
+ /* [nostdcall, notxpcom] nsIScriptContext GetContextForEventHandlers (out nsresult aRv); */ + virtual nsIScriptContext * GetContextForEventHandlers(nsresult *aRv NS_OUTPARAM) = 0;
+
+  /**
+   * If the method above returns null, but a success code, this method
+   * is called.
+   */
+  /* [nostdcall, notxpcom] JSContextPtr GetJSContextForEventHandlers (); */
+  virtual JSContext * GetJSContextForEventHandlers(void) = 0;
+
+};
+
+  NS_DEFINE_STATIC_IID_ACCESSOR(nsIDOMEventTarget, NS_IDOMEVENTTARGET_IID)
+
+/* Use this macro when declaring classes that implement this interface. */
+#define NS_DECL_NSIDOMEVENTTARGET \
+ NS_SCRIPTABLE NS_IMETHOD AddEventListener(const nsAString & type, nsIDOMEventListener *listener, PRBool useCapture, PRBool wantsUntrusted, PRUint8 _argc); \ + NS_SCRIPTABLE NS_IMETHOD RemoveEventListener(const nsAString & type, nsIDOMEventListener *listener, PRBool useCapture); \ + NS_SCRIPTABLE NS_IMETHOD DispatchEvent(nsIDOMEvent *evt, PRBool *_retval NS_OUTPARAM); \
+  virtual nsIDOMEventTarget * GetTargetForDOMEvent(void); \
+  virtual nsIDOMEventTarget * GetTargetForEventTargetChain(void); \
+  virtual nsresult PreHandleEvent(nsEventChainPreVisitor & aVisitor); \
+  virtual nsresult WillHandleEvent(nsEventChainPostVisitor & aVisitor); \
+  virtual nsresult PostHandleEvent(nsEventChainPostVisitor & aVisitor); \
+ virtual nsresult DispatchDOMEvent(nsEvent *aEvent, nsIDOMEvent *aDOMEvent, nsPresContext *aPresContext, nsEventStatus *aEventStatus); \
+  virtual nsEventListenerManager * GetListenerManager(PRBool aMayCreate); \
+ virtual nsresult AddEventListenerByIID(nsIDOMEventListener *aListener, const nsIID & aIID); \ + virtual nsresult RemoveEventListenerByIID(nsIDOMEventListener *aListener, const nsIID & aIID); \ + virtual nsIScriptContext * GetContextForEventHandlers(nsresult *aRv NS_OUTPARAM); \
+  virtual JSContext * GetJSContextForEventHandlers(void);
+
+/* Use this macro to declare functions that forward the behavior of this interface to another object. */
+#define NS_FORWARD_NSIDOMEVENTTARGET(_to) \
+ NS_SCRIPTABLE NS_IMETHOD AddEventListener(const nsAString & type, nsIDOMEventListener *listener, PRBool useCapture, PRBool wantsUntrusted, PRUint8 _argc) { return _to AddEventListener(type, listener, useCapture, wantsUntrusted, _argc); } \ + NS_SCRIPTABLE NS_IMETHOD RemoveEventListener(const nsAString & type, nsIDOMEventListener *listener, PRBool useCapture) { return _to RemoveEventListener(type, listener, useCapture); } \ + NS_SCRIPTABLE NS_IMETHOD DispatchEvent(nsIDOMEvent *evt, PRBool *_retval NS_OUTPARAM) { return _to DispatchEvent(evt, _retval); } \ + virtual nsIDOMEventTarget * GetTargetForDOMEvent(void) { return _to GetTargetForDOMEvent(); } \ + virtual nsIDOMEventTarget * GetTargetForEventTargetChain(void) { return _to GetTargetForEventTargetChain(); } \ + virtual nsresult PreHandleEvent(nsEventChainPreVisitor & aVisitor) { return _to PreHandleEvent(aVisitor); } \ + virtual nsresult WillHandleEvent(nsEventChainPostVisitor & aVisitor) { return _to WillHandleEvent(aVisitor); } \ + virtual nsresult PostHandleEvent(nsEventChainPostVisitor & aVisitor) { return _to PostHandleEvent(aVisitor); } \ + virtual nsresult DispatchDOMEvent(nsEvent *aEvent, nsIDOMEvent *aDOMEvent, nsPresContext *aPresContext, nsEventStatus *aEventStatus) { return _to DispatchDOMEvent(aEvent, aDOMEvent, aPresContext, aEventStatus); } \ + virtual nsEventListenerManager * GetListenerManager(PRBool aMayCreate) { return _to GetListenerManager(aMayCreate); } \ + virtual nsresult AddEventListenerByIID(nsIDOMEventListener *aListener, const nsIID & aIID) { return _to AddEventListenerByIID(aListener, aIID); } \ + virtual nsresult RemoveEventListenerByIID(nsIDOMEventListener *aListener, const nsIID & aIID) { return _to RemoveEventListenerByIID(aListener, aIID); } \ + virtual nsIScriptContext * GetContextForEventHandlers(nsresult *aRv NS_OUTPARAM) { return _to GetContextForEventHandlers(aRv); } \ + virtual JSContext * GetJSContextForEventHandlers(void) { return _to GetJSContextForEventHandlers(); }
+
+/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
+#define NS_FORWARD_SAFE_NSIDOMEVENTTARGET(_to) \
+ NS_SCRIPTABLE NS_IMETHOD AddEventListener(const nsAString & type, nsIDOMEventListener *listener, PRBool useCapture, PRBool wantsUntrusted, PRUint8 _argc) { return !_to ? NS_ERROR_NULL_POINTER : _to->AddEventListener(type, listener, useCapture, wantsUntrusted, _argc); } \ + NS_SCRIPTABLE NS_IMETHOD RemoveEventListener(const nsAString & type, nsIDOMEventListener *listener, PRBool useCapture) { return !_to ? NS_ERROR_NULL_POINTER : _to->RemoveEventListener(type, listener, useCapture); } \ + NS_SCRIPTABLE NS_IMETHOD DispatchEvent(nsIDOMEvent *evt, PRBool *_retval NS_OUTPARAM) { return !_to ? NS_ERROR_NULL_POINTER : _to->DispatchEvent(evt, _retval); } \ + virtual nsIDOMEventTarget * GetTargetForDOMEvent(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetTargetForDOMEvent(); } \ + virtual nsIDOMEventTarget * GetTargetForEventTargetChain(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetTargetForEventTargetChain(); } \ + virtual nsresult PreHandleEvent(nsEventChainPreVisitor & aVisitor) { return !_to ? NS_ERROR_NULL_POINTER : _to->PreHandleEvent(aVisitor); } \ + virtual nsresult WillHandleEvent(nsEventChainPostVisitor & aVisitor) { return !_to ? NS_ERROR_NULL_POINTER : _to->WillHandleEvent(aVisitor); } \ + virtual nsresult PostHandleEvent(nsEventChainPostVisitor & aVisitor) { return !_to ? NS_ERROR_NULL_POINTER : _to->PostHandleEvent(aVisitor); } \ + virtual nsresult DispatchDOMEvent(nsEvent *aEvent, nsIDOMEvent *aDOMEvent, nsPresContext *aPresContext, nsEventStatus *aEventStatus) { return !_to ? NS_ERROR_NULL_POINTER : _to->DispatchDOMEvent(aEvent, aDOMEvent, aPresContext, aEventStatus); } \ + virtual nsEventListenerManager * GetListenerManager(PRBool aMayCreate) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetListenerManager(aMayCreate); } \ + virtual nsresult AddEventListenerByIID(nsIDOMEventListener *aListener, const nsIID & aIID) { return !_to ? NS_ERROR_NULL_POINTER : _to->AddEventListenerByIID(aListener, aIID); } \ + virtual nsresult RemoveEventListenerByIID(nsIDOMEventListener *aListener, const nsIID & aIID) { return !_to ? NS_ERROR_NULL_POINTER : _to->RemoveEventListenerByIID(aListener, aIID); } \ + virtual nsIScriptContext * GetContextForEventHandlers(nsresult *aRv NS_OUTPARAM) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetContextForEventHandlers(aRv); } \ + virtual JSContext * GetJSContextForEventHandlers(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetJSContextForEventHandlers(); }
+
+#if 0
+/* Use the code below as a template for the implementation class for this interface. */
+
+/* Header file */
+class nsDOMEventTarget : public nsIDOMEventTarget
+{
+public:
+  NS_DECL_ISUPPORTS
+  NS_DECL_NSIDOMEVENTTARGET
+
+  nsDOMEventTarget();
+
+private:
+  ~nsDOMEventTarget();
+
+protected:
+  /* additional members */
+};
+
+/* Implementation file */
+NS_IMPL_ISUPPORTS1(nsDOMEventTarget, nsIDOMEventTarget)
+
+nsDOMEventTarget::nsDOMEventTarget()
+{
+  /* member initializers and constructor code */
+}
+
+nsDOMEventTarget::~nsDOMEventTarget()
+{
+  /* destructor code */
+}
+
+/* [optional_argc] void addEventListener (in DOMString type, in nsIDOMEventListener listener, [optional] in boolean useCapture, [optional] in boolean wantsUntrusted); */ +NS_IMETHODIMP nsDOMEventTarget::AddEventListener(const nsAString & type, nsIDOMEventListener *listener, PRBool useCapture, PRBool wantsUntrusted, PRUint8 _argc)
+{
+    return NS_ERROR_NOT_IMPLEMENTED;
+}
+
+/* void removeEventListener (in DOMString type, in nsIDOMEventListener listener, [optional] in boolean useCapture); */ +NS_IMETHODIMP nsDOMEventTarget::RemoveEventListener(const nsAString & type, nsIDOMEventListener *listener, PRBool useCapture)
+{
+    return NS_ERROR_NOT_IMPLEMENTED;
+}
+
+/* boolean dispatchEvent (in nsIDOMEvent evt)  raises (DOMException); */
+NS_IMETHODIMP nsDOMEventTarget::DispatchEvent(nsIDOMEvent *evt, PRBool *_retval NS_OUTPARAM)
+{
+    return NS_ERROR_NOT_IMPLEMENTED;
+}
+
+/* [nostdcall, notxpcom] nsIDOMEventTarget GetTargetForDOMEvent (); */
+nsIDOMEventTarget * nsDOMEventTarget::GetTargetForDOMEvent()
+{
+    return NS_ERROR_NOT_IMPLEMENTED;
+}
+
+/* [nostdcall, notxpcom] nsIDOMEventTarget GetTargetForEventTargetChain (); */
+nsIDOMEventTarget * nsDOMEventTarget::GetTargetForEventTargetChain()
+{
+    return NS_ERROR_NOT_IMPLEMENTED;
+}
+
+/* [noscript, nostdcall] void PreHandleEvent (in nsEventChainPreVisitorRef aVisitor); */ +nsresult nsDOMEventTarget::PreHandleEvent(nsEventChainPreVisitor & aVisitor)
+{
+    return NS_ERROR_NOT_IMPLEMENTED;
+}
+
+/* [noscript, nostdcall] void WillHandleEvent (in nsEventChainPostVisitorRef aVisitor); */ +nsresult nsDOMEventTarget::WillHandleEvent(nsEventChainPostVisitor & aVisitor)
+{
+    return NS_ERROR_NOT_IMPLEMENTED;
+}
+
+/* [noscript, nostdcall] void PostHandleEvent (in nsEventChainPostVisitorRef aVisitor); */ +nsresult nsDOMEventTarget::PostHandleEvent(nsEventChainPostVisitor & aVisitor)
+{
+    return NS_ERROR_NOT_IMPLEMENTED;
+}
+
+/* [noscript, nostdcall] void DispatchDOMEvent (in nsEventPtr aEvent, in nsIDOMEvent aDOMEvent, in nsPresContextPtr aPresContext, in nsEventStatusPtr aEventStatus); */ +nsresult nsDOMEventTarget::DispatchDOMEvent(nsEvent *aEvent, nsIDOMEvent *aDOMEvent, nsPresContext *aPresContext, nsEventStatus *aEventStatus)
+{
+    return NS_ERROR_NOT_IMPLEMENTED;
+}
+
+/* [nostdcall, notxpcom] nsEventListenerManagerPtr GetListenerManager (in boolean aMayCreate); */ +nsEventListenerManager * nsDOMEventTarget::GetListenerManager(PRBool aMayCreate)
+{
+    return NS_ERROR_NOT_IMPLEMENTED;
+}
+
+/* [noscript, nostdcall] void AddEventListenerByIID (in nsIDOMEventListener aListener, in nsIIDRef aIID); */ +nsresult nsDOMEventTarget::AddEventListenerByIID(nsIDOMEventListener *aListener, const nsIID & aIID)
+{
+    return NS_ERROR_NOT_IMPLEMENTED;
+}
+
+/* [noscript, nostdcall] void RemoveEventListenerByIID (in nsIDOMEventListener aListener, in nsIIDRef aIID); */ +nsresult nsDOMEventTarget::RemoveEventListenerByIID(nsIDOMEventListener *aListener, const nsIID & aIID)
+{
+    return NS_ERROR_NOT_IMPLEMENTED;
+}
+
+/* [nostdcall, notxpcom] nsIScriptContext GetContextForEventHandlers (out nsresult aRv); */ +nsIScriptContext * nsDOMEventTarget::GetContextForEventHandlers(nsresult *aRv NS_OUTPARAM)
+{
+    return NS_ERROR_NOT_IMPLEMENTED;
+}
+
+/* [nostdcall, notxpcom] JSContextPtr GetJSContextForEventHandlers (); */
+JSContext * nsDOMEventTarget::GetJSContextForEventHandlers()
+{
+    return NS_ERROR_NOT_IMPLEMENTED;
+}
+
+/* End of implementation class template. */
+#endif
+
+typedef nsIDOMEventTarget nsPIDOMEventTarget;
+#define NS_IMPL_DOMTARGET_DEFAULTS(_class) \
+nsPIDOMEventTarget* _class::GetTargetForDOMEvent() { return this; } \
+nsPIDOMEventTarget* _class::GetTargetForEventTargetChain() { return this; } \ +nsresult _class::WillHandleEvent(nsEventChainPostVisitor& aVisitor) { return NS_OK; } \
+JSContext* _class::GetJSContextForEventHandlers() { return nsnull; }
+
+#endif /* __gen_nsIDOMEventTarget_h__ */

--
http://groups.google.com/group/Google-Web-Toolkit-Contributors

Reply via email to