summaryrefslogtreecommitdiffstats
path: root/WebCore/bridge/qt/qt_runtime.h
diff options
context:
space:
mode:
Diffstat (limited to 'WebCore/bridge/qt/qt_runtime.h')
-rw-r--r--WebCore/bridge/qt/qt_runtime.h231
1 files changed, 0 insertions, 231 deletions
diff --git a/WebCore/bridge/qt/qt_runtime.h b/WebCore/bridge/qt/qt_runtime.h
deleted file mode 100644
index 80248a2..0000000
--- a/WebCore/bridge/qt/qt_runtime.h
+++ /dev/null
@@ -1,231 +0,0 @@
-/*
- * Copyright (C) 2008 Nokia Corporation and/or its subsidiary(-ies)
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- *
- */
-
-#ifndef BINDINGS_QT_RUNTIME_H_
-#define BINDINGS_QT_RUNTIME_H_
-
-#include "completion.h"
-#include "runtime.h"
-#include "runtime_method.h"
-#include "protect.h"
-
-#include <qbytearray.h>
-#include <qmetaobject.h>
-#include <qpointer.h>
-#include <qvariant.h>
-
-namespace JSC {
-namespace Bindings {
-
-class QtInstance;
-
-class QtField : public Field {
-public:
-
- typedef enum {
- MetaProperty,
- DynamicProperty,
- ChildObject
- } QtFieldType;
-
- QtField(const QMetaProperty &p)
- : m_type(MetaProperty), m_property(p)
- {}
-
- QtField(const QByteArray &b)
- : m_type(DynamicProperty), m_dynamicProperty(b)
- {}
-
- QtField(QObject *child)
- : m_type(ChildObject), m_childObject(child)
- {}
-
- virtual JSValue* valueFromInstance(ExecState*, const Instance*) const;
- virtual void setValueToInstance(ExecState*, const Instance*, JSValue*) const;
- virtual const char* name() const;
- QtFieldType fieldType() const {return m_type;}
-private:
- QtFieldType m_type;
- QByteArray m_dynamicProperty;
- QMetaProperty m_property;
- QPointer<QObject> m_childObject;
-};
-
-
-class QtMethod : public Method
-{
-public:
- QtMethod(const QMetaObject *mo, int i, const QByteArray &ident, int numParameters)
- : m_metaObject(mo),
- m_index(i),
- m_identifier(ident),
- m_nParams(numParameters)
- { }
-
- virtual const char* name() const { return m_identifier.constData(); }
- virtual int numParameters() const { return m_nParams; }
-
-private:
- friend class QtInstance;
- const QMetaObject *m_metaObject;
- int m_index;
- QByteArray m_identifier;
- int m_nParams;
-};
-
-
-template <typename T> class QtArray : public Array
-{
-public:
- QtArray(QList<T> list, QMetaType::Type type, PassRefPtr<RootObject>);
- virtual ~QtArray();
-
- RootObject* rootObject() const;
-
- virtual void setValueAt(ExecState*, unsigned index, JSValue*) const;
- virtual JSValue* valueAt(ExecState*, unsigned index) const;
- virtual unsigned int getLength() const {return m_length;}
-
-private:
- mutable QList<T> m_list; // setValueAt is const!
- unsigned int m_length;
- QMetaType::Type m_type;
-};
-
-// Based on RuntimeMethod
-
-// Extra data classes (to avoid the CELL_SIZE limit on JS objects)
-
-class QtRuntimeMethodData {
- public:
- virtual ~QtRuntimeMethodData();
- RefPtr<QtInstance> m_instance;
-};
-
-class QtRuntimeConnectionMethod;
-class QtRuntimeMetaMethodData : public QtRuntimeMethodData {
- public:
- ~QtRuntimeMetaMethodData();
- QByteArray m_signature;
- bool m_allowPrivate;
- int m_index;
- QtRuntimeConnectionMethod *m_connect;
- QtRuntimeConnectionMethod *m_disconnect;
-};
-
-class QtRuntimeConnectionMethodData : public QtRuntimeMethodData {
- public:
- ~QtRuntimeConnectionMethodData();
- QByteArray m_signature;
- int m_index;
- bool m_isConnect;
-};
-
-// Common base class (doesn't really do anything interesting)
-class QtRuntimeMethod : public InternalFunction {
-public:
- virtual ~QtRuntimeMethod();
-
- static const ClassInfo s_info;
-
- static FunctionPrototype* createPrototype(ExecState* exec)
- {
- return exec->lexicalGlobalObject()->functionPrototype();
- }
-
- static PassRefPtr<StructureID> createStructureID(JSValue* prototype)
- {
- return StructureID::create(prototype, TypeInfo(ObjectType));
- }
-
-protected:
- QtRuntimeMethodData *d_func() const {return d_ptr;}
- QtRuntimeMethod(QtRuntimeMethodData *dd, ExecState *exec, const Identifier &n, PassRefPtr<QtInstance> inst);
- QtRuntimeMethodData *d_ptr;
-};
-
-class QtRuntimeMetaMethod : public QtRuntimeMethod
-{
-public:
- QtRuntimeMetaMethod(ExecState *exec, const Identifier &n, PassRefPtr<QtInstance> inst, int index, const QByteArray& signature, bool allowPrivate);
-
- virtual bool getOwnPropertySlot(ExecState *, const Identifier&, PropertySlot&);
-
- virtual void mark();
-
-protected:
- QtRuntimeMetaMethodData* d_func() const {return reinterpret_cast<QtRuntimeMetaMethodData*>(d_ptr);}
-
-private:
- virtual CallType getCallData(CallData&);
- static JSValue* call(ExecState* exec, JSObject* functionObject, JSValue* thisValue, const ArgList& args);
- static JSValue* lengthGetter(ExecState*, const Identifier&, const PropertySlot&);
- static JSValue* connectGetter(ExecState*, const Identifier&, const PropertySlot&);
- static JSValue* disconnectGetter(ExecState*, const Identifier&, const PropertySlot&);
-};
-
-class QtConnectionObject;
-class QtRuntimeConnectionMethod : public QtRuntimeMethod
-{
-public:
- QtRuntimeConnectionMethod(ExecState *exec, const Identifier &n, bool isConnect, PassRefPtr<QtInstance> inst, int index, const QByteArray& signature );
-
- virtual bool getOwnPropertySlot(ExecState *, const Identifier&, PropertySlot&);
-
-protected:
- QtRuntimeConnectionMethodData* d_func() const {return reinterpret_cast<QtRuntimeConnectionMethodData*>(d_ptr);}
-
-private:
- virtual CallType getCallData(CallData&);
- static JSValue* call(ExecState* exec, JSObject* functionObject, JSValue* thisValue, const ArgList& args);
- static JSValue* lengthGetter(ExecState*, const Identifier&, const PropertySlot&);
- static QMultiMap<QObject *, QtConnectionObject *> connections;
- friend class QtConnectionObject;
-};
-
-class QtConnectionObject: public QObject
-{
-public:
- QtConnectionObject(PassRefPtr<QtInstance> instance, int signalIndex, JSObject* thisObject, JSObject* funcObject);
- ~QtConnectionObject();
-
- static const QMetaObject staticMetaObject;
- virtual const QMetaObject *metaObject() const;
- virtual void *qt_metacast(const char *);
- virtual int qt_metacall(QMetaObject::Call, int, void **argv);
-
- bool match(QObject *sender, int signalIndex, JSObject* thisObject, JSObject *funcObject);
-
- // actual slot:
- void execute(void **argv);
-
-private:
- RefPtr<QtInstance> m_instance;
- int m_signalIndex;
- QObject* m_originalObject; // only used as a key, not dereferenced
- ProtectedPtr<JSObject> m_thisObject;
- ProtectedPtr<JSObject> m_funcObject;
-};
-
-QVariant convertValueToQVariant(ExecState* exec, JSValue* value, QMetaType::Type hint, int *distance);
-
-} // namespace Bindings
-} // namespace JSC
-
-#endif