1/*
2 * Copyright (C) 2008 Nokia Corporation and/or its subsidiary(-ies)
3 *
4 *  This library is free software; you can redistribute it and/or
5 *  modify it under the terms of the GNU Lesser General Public
6 *  License as published by the Free Software Foundation; either
7 *  version 2 of the License, or (at your option) any later version.
8 *
9 *  This library is distributed in the hope that it will be useful,
10 *  but WITHOUT ANY WARRANTY; without even the implied warranty of
11 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
12 *  Lesser General Public License for more details.
13 *
14 *  You should have received a copy of the GNU Lesser General Public
15 *  License along with this library; if not, write to the Free Software
16 *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
17 *
18 */
19
20#ifndef BINDINGS_QT_CLASS_H_
21#define BINDINGS_QT_CLASS_H_
22
23#include "Bridge.h"
24#include "qglobal.h"
25
26QT_BEGIN_NAMESPACE
27class QObject;
28struct QMetaObject;
29QT_END_NAMESPACE
30
31namespace JSC {
32namespace Bindings {
33
34
35class QtClass : public Class {
36protected:
37    QtClass(const QMetaObject*);
38
39public:
40    static QtClass* classForObject(QObject*);
41    virtual ~QtClass();
42
43    virtual const char* name() const;
44    virtual MethodList methodsNamed(const Identifier&, Instance*) const;
45    virtual Field* fieldNamed(const Identifier&, Instance*) const;
46
47    virtual JSValue fallbackObject(ExecState*, Instance*, const Identifier&);
48
49private:
50    QtClass(const QtClass&); // prohibit copying
51    QtClass& operator=(const QtClass&); // prohibit assignment
52
53    const QMetaObject* m_metaObject;
54};
55
56} // namespace Bindings
57} // namespace JSC
58
59#endif
60