45 class PersistentIdentifierPrivate; |
45 class PersistentIdentifierPrivate; |
46 class QScriptContext; |
46 class QScriptContext; |
47 class Q_SCRIPT_EXPORT QScriptDeclarativeClass |
47 class Q_SCRIPT_EXPORT QScriptDeclarativeClass |
48 { |
48 { |
49 public: |
49 public: |
|
50 #define QT_HAVE_QSCRIPTDECLARATIVECLASS_VALUE |
|
51 class Q_SCRIPT_EXPORT Value |
|
52 { |
|
53 public: |
|
54 Value(); |
|
55 Value(const Value &); |
|
56 |
|
57 Value(QScriptContext *, int); |
|
58 Value(QScriptContext *, uint); |
|
59 Value(QScriptContext *, bool); |
|
60 Value(QScriptContext *, double); |
|
61 Value(QScriptContext *, float); |
|
62 Value(QScriptContext *, const QString &); |
|
63 Value(QScriptContext *, const QScriptValue &); |
|
64 Value(QScriptEngine *, int); |
|
65 Value(QScriptEngine *, uint); |
|
66 Value(QScriptEngine *, bool); |
|
67 Value(QScriptEngine *, double); |
|
68 Value(QScriptEngine *, float); |
|
69 Value(QScriptEngine *, const QString &); |
|
70 Value(QScriptEngine *, const QScriptValue &); |
|
71 ~Value(); |
|
72 |
|
73 QScriptValue toScriptValue(QScriptEngine *) const; |
|
74 private: |
|
75 char dummy[8]; |
|
76 }; |
|
77 |
50 typedef void* Identifier; |
78 typedef void* Identifier; |
51 |
79 |
52 struct Object { virtual ~Object() {} }; |
80 struct Object { virtual ~Object() {} }; |
53 |
81 |
54 static QScriptValue newObject(QScriptEngine *, QScriptDeclarativeClass *, Object *); |
82 static QScriptValue newObject(QScriptEngine *, QScriptDeclarativeClass *, Object *); |
|
83 static Value newObjectValue(QScriptEngine *, QScriptDeclarativeClass *, Object *); |
55 static QScriptDeclarativeClass *scriptClass(const QScriptValue &); |
84 static QScriptDeclarativeClass *scriptClass(const QScriptValue &); |
56 static Object *object(const QScriptValue &); |
85 static Object *object(const QScriptValue &); |
57 |
86 |
58 static QScriptValue function(const QScriptValue &, const Identifier &); |
87 static QScriptValue function(const QScriptValue &, const Identifier &); |
59 static QScriptValue property(const QScriptValue &, const Identifier &); |
88 static QScriptValue property(const QScriptValue &, const Identifier &); |
|
89 static Value functionValue(const QScriptValue &, const Identifier &); |
|
90 static Value propertyValue(const QScriptValue &, const Identifier &); |
60 |
91 |
61 static QScriptValue scopeChainValue(QScriptContext *, int index); |
92 static QScriptValue scopeChainValue(QScriptContext *, int index); |
62 static QScriptContext *pushCleanContext(QScriptEngine *); |
93 static QScriptContext *pushCleanContext(QScriptEngine *); |
63 |
94 |
64 class Q_SCRIPT_EXPORT PersistentIdentifier |
95 class Q_SCRIPT_EXPORT PersistentIdentifier |
71 PersistentIdentifier(const PersistentIdentifier &other); |
102 PersistentIdentifier(const PersistentIdentifier &other); |
72 PersistentIdentifier &operator=(const PersistentIdentifier &other); |
103 PersistentIdentifier &operator=(const PersistentIdentifier &other); |
73 |
104 |
74 private: |
105 private: |
75 friend class QScriptDeclarativeClass; |
106 friend class QScriptDeclarativeClass; |
76 PersistentIdentifier(bool) : identifier(0), d(0) {} |
107 PersistentIdentifier(QScriptEnginePrivate *e) : identifier(0), engine(e), d(0) {} |
|
108 QScriptEnginePrivate *engine; |
77 void *d; |
109 void *d; |
78 }; |
110 }; |
79 |
111 |
80 QScriptDeclarativeClass(QScriptEngine *engine); |
112 QScriptDeclarativeClass(QScriptEngine *engine); |
81 virtual ~QScriptDeclarativeClass(); |
113 virtual ~QScriptDeclarativeClass(); |
82 |
114 |
83 QScriptEngine *engine() const; |
115 QScriptEngine *engine() const; |
|
116 |
|
117 bool supportsCall() const; |
|
118 void setSupportsCall(bool); |
84 |
119 |
85 PersistentIdentifier createPersistentIdentifier(const QString &); |
120 PersistentIdentifier createPersistentIdentifier(const QString &); |
86 PersistentIdentifier createPersistentIdentifier(const Identifier &); |
121 PersistentIdentifier createPersistentIdentifier(const Identifier &); |
87 |
122 |
88 QString toString(const Identifier &); |
123 QString toString(const Identifier &); |
89 quint32 toArrayIndex(const Identifier &, bool *ok); |
124 quint32 toArrayIndex(const Identifier &, bool *ok); |
90 |
125 |
91 virtual QScriptClass::QueryFlags queryProperty(Object *, const Identifier &, |
126 virtual QScriptClass::QueryFlags queryProperty(Object *, const Identifier &, |
92 QScriptClass::QueryFlags flags); |
127 QScriptClass::QueryFlags flags); |
93 |
128 |
94 virtual QScriptValue property(Object *, const Identifier &); |
129 virtual Value property(Object *, const Identifier &); |
95 virtual void setProperty(Object *, const Identifier &name, const QScriptValue &); |
130 virtual void setProperty(Object *, const Identifier &name, const QScriptValue &); |
96 virtual QScriptValue::PropertyFlags propertyFlags(Object *, const Identifier &); |
131 virtual QScriptValue::PropertyFlags propertyFlags(Object *, const Identifier &); |
|
132 virtual Value call(Object *, QScriptContext *); |
|
133 virtual bool compare(Object *, Object *); |
97 |
134 |
98 virtual QStringList propertyNames(Object *); |
135 virtual QStringList propertyNames(Object *); |
99 |
136 |
100 virtual bool isQObject() const; |
137 virtual bool isQObject() const; |
101 virtual QObject *toQObject(Object *, bool *ok = 0); |
138 virtual QObject *toQObject(Object *, bool *ok = 0); |