106ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen/*
206ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen    Copyright (C) 2010 Robert Hogan <robert@roberthogan.net>
306ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen
406ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen    This library is free software; you can redistribute it and/or
506ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen    modify it under the terms of the GNU Library General Public
606ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen    License as published by the Free Software Foundation; either
706ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen    version 2 of the License, or (at your option) any later version.
806ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen
906ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen    This library is distributed in the hope that it will be useful,
1006ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen    but WITHOUT ANY WARRANTY; without even the implied warranty of
1106ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
1206ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen    Library General Public License for more details.
1306ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen
1406ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen    You should have received a copy of the GNU Library General Public License
1506ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen    along with this library; see the file COPYING.LIB.  If not, write to
1606ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen    the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
1706ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen    Boston, MA 02110-1301, USA.
1806ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen*/
1906ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen
2006ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen#ifndef QWebScriptWorld_h_
2106ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen#define QWebScriptWorld_h_
2206ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen
2306ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen#include <QtCore/qurl.h>
2406ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen#include <QtCore/qshareddata.h>
2506ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen
2606ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen#include "qwebkitglobal.h"
2706ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen
2806ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsennamespace WebCore {
2906ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen    class DOMWrapperWorld;
3006ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen}
3106ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen
3206ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsenclass QWebScriptWorldPrivate;
3306ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsenclass QWebFrame;
3406ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen
3506ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsenclass QWEBKIT_EXPORT QWebScriptWorld {
3606ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsenpublic:
3706ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen    QWebScriptWorld();
38ca9cb53ed1119a3fd98fafa0972ffeb56dee1c24Steve Block    QWebScriptWorld(const QWebScriptWorld&);
39ca9cb53ed1119a3fd98fafa0972ffeb56dee1c24Steve Block    QWebScriptWorld &operator=(const QWebScriptWorld&);
4006ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen    ~QWebScriptWorld();
4106ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen
4206ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen    WebCore::DOMWrapperWorld* world() const;
4306ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen
4406ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsenprivate:
4506ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen    QExplicitlySharedDataPointer<QWebScriptWorldPrivate> d;
4606ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen
4706ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen    friend class QWebFrame;
4806ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen};
4906ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen
5006ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen#endif
51