Michael Goddard <michael.goddard@trolltech.com>
[WebKit-https.git] / WebCore / bridge / qt / qt_class.h
1 /*
2  * Copyright (C) 2006 Trolltech ASA
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 "runtime.h"
24
25 #include "qglobal.h"
26
27 QT_BEGIN_NAMESPACE
28 class QObject;
29 class QMetaObject;
30 QT_END_NAMESPACE
31
32 namespace KJS {
33 namespace Bindings {
34
35
36 class QtClass : public Class {
37 protected:
38     QtClass(const QMetaObject*);
39
40 public:
41     static QtClass* classForObject(QObject*);
42     virtual ~QtClass();
43
44     virtual const char* name() const;
45     virtual MethodList methodsNamed(const Identifier&, Instance*) const;
46     virtual Field* fieldNamed(const Identifier&, Instance*) const;
47
48     virtual JSValue* fallbackObject(ExecState*, Instance*, const Identifier&);
49
50 private:
51     QtClass(const QtClass&); // prohibit copying
52     QtClass& operator=(const QtClass&); // prohibit assignment
53
54     const QMetaObject* m_metaObject;
55 };
56
57 } // namespace Bindings
58 } // namespace KJS
59
60 #endif