1/*
2 * This file is part of the KDE libraries
3 * Copyright (C) 2007 Harri Porten (porten@kde.org)
4 *
5 * This library is free software; you can redistribute it and/or
6 * modify it under the terms of the GNU Library General Public
7 * License as published by the Free Software Foundation; either
8 * version 2 of the License, or (at your option) any later version.
9 *
10 * This library is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 * Library General Public License for more details.
14 *
15 * You should have received a copy of the GNU Library General Public
16 * License along with this library; if not, write to the Free Software
17 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
18 */
19
20#ifndef KHTMLADAPTORPART_H
21#define KHTMLADAPTORPART_H
22
23#include <khtml_export.h>
24#include <kparts/part.h>
25#include <kparts/browserextension.h>
26#include <kpluginfactory.h>
27
28namespace KJS
29{
30 class ExecState;
31 class JSObject;
32}
33
34class ScriptingInterface
35{
36public:
37 virtual ~ScriptingInterface() { }
38
39 virtual void initScripting(KJS::ExecState *exec) = 0;
40 virtual void stopScripting() = 0;
41
42 virtual KJS::JSObject* scriptObject() = 0;
43};
44
45Q_DECLARE_INTERFACE(ScriptingInterface, "org.kde.khtml.ScriptingInterface")
46
47class KHTMLAdaptorPartFactory : public KPluginFactory {
48 Q_OBJECT
49public:
50 KHTMLAdaptorPartFactory ();
51 virtual QObject *create(const char *iface,
52 QWidget *wparent,
53 QObject *parent,
54 const QVariantList &args,
55 const QString &keyword);
56};
57
58class AdaptorView : public KParts::ReadOnlyPart,
59 public ScriptingInterface {
60 Q_OBJECT
61 Q_INTERFACES(ScriptingInterface)
62public:
63 AdaptorView(QWidget* wparent, QObject* parent, const QStringList& args);
64
65 void initScripting(KJS::ExecState *exec);
66 void stopScripting() { }
67 KJS::JSObject* scriptObject();
68
69protected:
70 bool openFile();
71};
72
73#endif
74