File indexing completed on 2024-04-28 15:23:05

0001 /*
0002  *  This file is part of the KDE libraries
0003  *  Copyright (C) 2005 Anders Carlsson (andersca@mac.com)
0004  *
0005  *  This library is free software; you can redistribute it and/or
0006  *  modify it under the terms of the GNU Lesser General Public
0007  *  License as published by the Free Software Foundation; either
0008  *  version 2 of the License, or (at your option) any later version.
0009  *
0010  *  This library is distributed in the hope that it will be useful,
0011  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
0012  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
0013  *  Lesser General Public License for more details.
0014  *
0015  *  You should have received a copy of the GNU Lesser General Public
0016  *  License along with this library; if not, write to the Free Software
0017  *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
0018  */
0019 
0020 #ifndef DOMPARSER_H
0021 #define DOMPARSER_H
0022 
0023 #include <khtml_export.h>
0024 #include <kjs/object.h>
0025 #include <kjs/interpreter.h>
0026 #include <misc/shared.h>
0027 #include <QPointer>
0028 
0029 #include "kjs_dom.h"
0030 
0031 namespace KJS
0032 {
0033 
0034 class DOMParserConstructorImp : public JSObject
0035 {
0036 public:
0037     DOMParserConstructorImp(ExecState *, DOM::DocumentImpl *d);
0038     bool implementsConstruct() const override;
0039     using KJS::JSObject::construct;
0040     JSObject *construct(ExecState *exec, const List &args) override;
0041 private:
0042     SharedPtr<DOM::DocumentImpl> doc;
0043 };
0044 
0045 class DOMParser : public DOMObject
0046 {
0047 public:
0048     DOMParser(ExecState *, DOM::DocumentImpl *d);
0049     bool toBoolean(ExecState *) const override
0050     {
0051         return true;
0052     }
0053     const ClassInfo *classInfo() const override
0054     {
0055         return &info;
0056     }
0057     static const ClassInfo info;
0058     enum { ParseFromString };
0059 
0060 private:
0061     QPointer<DOM::DocumentImpl> doc;
0062 
0063     friend class DOMParserProtoFunc;
0064 };
0065 
0066 } // namespace
0067 
0068 #endif