File indexing completed on 2024-05-19 11:43:15

0001 /* This file is part of the KDE libraries
0002     Copyright (C) 2005, 2006 Ian Reinhart Geiser <geiseri@kde.org>
0003     Copyright (C) 2005, 2006 Matt Broadstone <mbroadst@gmail.com>
0004     Copyright (C) 2005, 2006 Richard J. Moore <rich@kde.org>
0005     Copyright (C) 2005, 2006 Erik L. Bunce <kde@bunce.us>
0006 
0007     This library is free software; you can redistribute it and/or
0008     modify it under the terms of the GNU Library General Public
0009     License as published by the Free Software Foundation; either
0010     version 2 of the License, or (at your option) any later version.
0011 
0012     This library is distributed in the hope that it will be useful,
0013     but WITHOUT ANY WARRANTY; without even the implied warranty of
0014     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
0015     Library General Public License for more details.
0016 
0017     You should have received a copy of the GNU Library General Public License
0018     along with this library; see the file COPYING.LIB.  If not, write to
0019     the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
0020     Boston, MA 02110-1301, USA.
0021 */
0022 
0023 #ifndef DOM_H
0024 #define DOM_H
0025 
0026 class QDomNode;
0027 class QDomDocument;
0028 class QDomElement;
0029 class QDomAttr;
0030 class QDomDocumentType;
0031 class QDomNodeList;
0032 class QDomNamedNodeMap;
0033 class QDomText;
0034 
0035 #include "value_binding.h"
0036 #include "static_binding.h"
0037 
0038 namespace KJSEmbed
0039 {
0040 class DomNodeBinding : public ValueBinding
0041 {
0042 public:
0043     DomNodeBinding(KJS::ExecState *exec, const QDomNode &value);
0044 private:
0045     const KJS::ClassInfo *classInfo() const override
0046     {
0047         return &info;
0048     }
0049     static const KJS::ClassInfo info;
0050 };
0051 
0052 class DomDocumentBinding : public ValueBinding
0053 {
0054 public:
0055     DomDocumentBinding(KJS::ExecState *exec, const QDomDocument &value);
0056 private:
0057     const KJS::ClassInfo *classInfo() const override
0058     {
0059         return &info;
0060     }
0061     static const KJS::ClassInfo info;
0062 };
0063 
0064 class DomElementBinding : public ValueBinding
0065 {
0066 public:
0067     DomElementBinding(KJS::ExecState *exec, const QDomElement &value);
0068 private:
0069     const KJS::ClassInfo *classInfo() const override
0070     {
0071         return &info;
0072     }
0073     static const KJS::ClassInfo info;
0074 };
0075 
0076 class DomAttrBinding : public ValueBinding
0077 {
0078 public:
0079     DomAttrBinding(KJS::ExecState *exec, const QDomAttr &value);
0080 private:
0081     const KJS::ClassInfo *classInfo() const override
0082     {
0083         return &info;
0084     }
0085     static const KJS::ClassInfo info;
0086 };
0087 
0088 class DomDocumentTypeBinding : public ValueBinding
0089 {
0090 public:
0091     DomDocumentTypeBinding(KJS::ExecState *exec, const QDomDocumentType &value);
0092 private:
0093     const KJS::ClassInfo *classInfo() const override
0094     {
0095         return &info;
0096     }
0097     static const KJS::ClassInfo info;
0098 };
0099 
0100 class DomNodeListBinding : public ValueBinding
0101 {
0102 public:
0103     DomNodeListBinding(KJS::ExecState *exec, const QDomNodeList &value);
0104 private:
0105     const KJS::ClassInfo *classInfo() const override
0106     {
0107         return &info;
0108     }
0109     static const KJS::ClassInfo info;
0110 };
0111 
0112 class DomNamedNodeMapBinding : public ValueBinding
0113 {
0114 public:
0115     DomNamedNodeMapBinding(KJS::ExecState *exec, const QDomNamedNodeMap &value);
0116 private:
0117     const KJS::ClassInfo *classInfo() const override
0118     {
0119         return &info;
0120     }
0121     static const KJS::ClassInfo info;
0122 };
0123 
0124 class DomTextBinding : public ValueBinding
0125 {
0126 public:
0127     DomTextBinding(KJS::ExecState *exec, const QDomText &value);
0128 private:
0129     const KJS::ClassInfo *classInfo() const override
0130     {
0131         return &info;
0132     }
0133     static const KJS::ClassInfo info;
0134 };
0135 
0136 KJS_BINDING(DomNode)
0137 KJS_BINDING(DomDocument)   // Done
0138 KJS_BINDING(DomElement)   // Done
0139 KJS_BINDING(DomAttr)     // Done
0140 KJS_BINDING(DomDocumentType)   // Done
0141 KJS_BINDING(DomNodeList)   // Done
0142 KJS_BINDING(DomNamedNodeMap)
0143 KJS_BINDING(DomText)
0144 
0145 }
0146 #endif