source: trunk/src/declarative/util/qdeclarativeopenmetaobject_p.h

Last change on this file was 846, checked in by Dmitry A. Kuminov, 14 years ago

trunk: Merged in qt 4.7.2 sources from branches/vendor/nokia/qt.

File size: 4.3 KB
Line 
1/****************************************************************************
2**
3** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies).
4** All rights reserved.
5** Contact: Nokia Corporation (qt-info@nokia.com)
6**
7** This file is part of the QtDeclarative module of the Qt Toolkit.
8**
9** $QT_BEGIN_LICENSE:LGPL$
10** Commercial Usage
11** Licensees holding valid Qt Commercial licenses may use this file in
12** accordance with the Qt Commercial License Agreement provided with the
13** Software or, alternatively, in accordance with the terms contained in
14** a written agreement between you and Nokia.
15**
16** GNU Lesser General Public License Usage
17** Alternatively, this file may be used under the terms of the GNU Lesser
18** General Public License version 2.1 as published by the Free Software
19** Foundation and appearing in the file LICENSE.LGPL included in the
20** packaging of this file. Please review the following information to
21** ensure the GNU Lesser General Public License version 2.1 requirements
22** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
23**
24** In addition, as a special exception, Nokia gives you certain additional
25** rights. These rights are described in the Nokia Qt LGPL Exception
26** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
27**
28** GNU General Public License Usage
29** Alternatively, this file may be used under the terms of the GNU
30** General Public License version 3.0 as published by the Free Software
31** Foundation and appearing in the file LICENSE.GPL included in the
32** packaging of this file. Please review the following information to
33** ensure the GNU General Public License version 3.0 requirements will be
34** met: http://www.gnu.org/copyleft/gpl.html.
35**
36** If you have questions regarding the use of this file, please contact
37** Nokia at qt-info@nokia.com.
38** $QT_END_LICENSE$
39**
40****************************************************************************/
41
42#ifndef QDECLARATIVEOPENMETAOBJECT_H
43#define QDECLARATIVEOPENMETAOBJECT_H
44
45#include <QtCore/QMetaObject>
46#include <QtCore/QObject>
47
48#include <private/qdeclarativerefcount_p.h>
49#include <private/qdeclarativeglobal_p.h>
50#include <private/qobject_p.h>
51
52QT_BEGIN_HEADER
53
54QT_BEGIN_NAMESPACE
55
56QT_MODULE(Declarative)
57
58class QDeclarativeEngine;
59class QMetaPropertyBuilder;
60class QDeclarativeOpenMetaObjectTypePrivate;
61class Q_DECLARATIVE_PRIVATE_EXPORT QDeclarativeOpenMetaObjectType : public QDeclarativeRefCount
62{
63public:
64 QDeclarativeOpenMetaObjectType(const QMetaObject *base, QDeclarativeEngine *engine);
65 ~QDeclarativeOpenMetaObjectType();
66
67 int createProperty(const QByteArray &name);
68
69 int propertyOffset() const;
70 int signalOffset() const;
71
72protected:
73 virtual void propertyCreated(int, QMetaPropertyBuilder &);
74
75private:
76 QDeclarativeOpenMetaObjectTypePrivate *d;
77 friend class QDeclarativeOpenMetaObject;
78 friend class QDeclarativeOpenMetaObjectPrivate;
79};
80
81class QDeclarativeOpenMetaObjectPrivate;
82class Q_DECLARATIVE_PRIVATE_EXPORT QDeclarativeOpenMetaObject : public QAbstractDynamicMetaObject
83{
84public:
85 QDeclarativeOpenMetaObject(QObject *, bool = true);
86 QDeclarativeOpenMetaObject(QObject *, QDeclarativeOpenMetaObjectType *, bool = true);
87 ~QDeclarativeOpenMetaObject();
88
89 QVariant value(const QByteArray &) const;
90 void setValue(const QByteArray &, const QVariant &);
91 QVariant value(int) const;
92 void setValue(int, const QVariant &);
93 QVariant &operator[](const QByteArray &);
94 QVariant &operator[](int);
95 bool hasValue(int) const;
96
97 int count() const;
98 QByteArray name(int) const;
99
100 QObject *object() const;
101 virtual QVariant initialValue(int);
102
103 // Be careful - once setCached(true) is called createProperty() is no
104 // longer automatically called for new properties.
105 void setCached(bool);
106
107 QDeclarativeOpenMetaObjectType *type() const;
108
109protected:
110 virtual int metaCall(QMetaObject::Call _c, int _id, void **_a);
111 virtual int createProperty(const char *, const char *);
112
113 virtual void propertyRead(int);
114 virtual void propertyWrite(int);
115 virtual void propertyWritten(int);
116 virtual void propertyCreated(int, QMetaPropertyBuilder &);
117
118 QAbstractDynamicMetaObject *parent() const;
119
120private:
121 QDeclarativeOpenMetaObjectPrivate *d;
122 friend class QDeclarativeOpenMetaObjectType;
123};
124
125QT_END_NAMESPACE
126
127QT_END_HEADER
128
129#endif // QDECLARATIVEOPENMETAOBJECT_H
Note: See TracBrowser for help on using the repository browser.