diff options
Diffstat (limited to 'src/declarative/qml/qdeclarativedom_p.h')
-rw-r--r-- | src/declarative/qml/qdeclarativedom_p.h | 360 |
1 files changed, 360 insertions, 0 deletions
diff --git a/src/declarative/qml/qdeclarativedom_p.h b/src/declarative/qml/qdeclarativedom_p.h new file mode 100644 index 0000000..6043ead --- /dev/null +++ b/src/declarative/qml/qdeclarativedom_p.h @@ -0,0 +1,360 @@ +/**************************************************************************** +** +** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the QtDeclarative module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** No Commercial Usage +** This file contains pre-release code and may not be distributed. +** You may use this file in accordance with the terms and conditions +** contained in the Technology Preview License Agreement accompanying +** this package. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain additional +** rights. These rights are described in the Nokia Qt LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +** If you have questions regarding the use of this file, please contact +** Nokia at qt-info@nokia.com. +** +** +** +** +** +** +** +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef QDECLARATIVEDOM_P_H +#define QDECLARATIVEDOM_P_H + +// +// W A R N I N G +// ------------- +// +// This file is not part of the Qt API. It exists purely as an +// implementation detail. This header file may change from version to +// version without notice, or even be removed. +// +// We mean it. +// + +#include "qdeclarativeerror.h" + +#include <QtCore/qlist.h> +#include <QtCore/qshareddata.h> + +QT_BEGIN_HEADER + +QT_BEGIN_NAMESPACE + +QT_MODULE(Declarative) + +class QString; +class QByteArray; +class QDeclarativeDomObject; +class QDeclarativeDomList; +class QDeclarativeDomValue; +class QDeclarativeEngine; +class QDeclarativeDomComponent; +class QDeclarativeDomImport; +class QIODevice; + +class QDeclarativeDomDocumentPrivate; + +class Q_DECLARATIVE_EXPORT QDeclarativeDomDocument +{ +public: + QDeclarativeDomDocument(); + QDeclarativeDomDocument(const QDeclarativeDomDocument &); + ~QDeclarativeDomDocument(); + QDeclarativeDomDocument &operator=(const QDeclarativeDomDocument &); + + QList<QDeclarativeDomImport> imports() const; + + QList<QDeclarativeError> errors() const; + bool load(QDeclarativeEngine *, const QByteArray &, const QUrl & = QUrl()); + + QDeclarativeDomObject rootObject() const; + +private: + QSharedDataPointer<QDeclarativeDomDocumentPrivate> d; +}; + +class QDeclarativeDomPropertyPrivate; +class Q_DECLARATIVE_EXPORT QDeclarativeDomProperty +{ +public: + QDeclarativeDomProperty(); + QDeclarativeDomProperty(const QDeclarativeDomProperty &); + ~QDeclarativeDomProperty(); + QDeclarativeDomProperty &operator=(const QDeclarativeDomProperty &); + + bool isValid() const; + + QByteArray propertyName() const; + QList<QByteArray> propertyNameParts() const; + + bool isDefaultProperty() const; + + QDeclarativeDomValue value() const; + + int position() const; + int length() const; + +private: + friend class QDeclarativeDomObject; + friend class QDeclarativeDomDynamicProperty; + QSharedDataPointer<QDeclarativeDomPropertyPrivate> d; +}; + +class QDeclarativeDomDynamicPropertyPrivate; +class Q_DECLARATIVE_EXPORT QDeclarativeDomDynamicProperty +{ +public: + QDeclarativeDomDynamicProperty(); + QDeclarativeDomDynamicProperty(const QDeclarativeDomDynamicProperty &); + ~QDeclarativeDomDynamicProperty(); + QDeclarativeDomDynamicProperty &operator=(const QDeclarativeDomDynamicProperty &); + + bool isValid() const; + + QByteArray propertyName() const; + int propertyType() const; + QByteArray propertyTypeName() const; + + bool isDefaultProperty() const; + QDeclarativeDomProperty defaultValue() const; + + bool isAlias() const; + + int position() const; + int length() const; + +private: + friend class QDeclarativeDomObject; + QSharedDataPointer<QDeclarativeDomDynamicPropertyPrivate> d; +}; + +class QDeclarativeDomObjectPrivate; +class Q_DECLARATIVE_EXPORT QDeclarativeDomObject +{ +public: + QDeclarativeDomObject(); + QDeclarativeDomObject(const QDeclarativeDomObject &); + ~QDeclarativeDomObject(); + QDeclarativeDomObject &operator=(const QDeclarativeDomObject &); + + bool isValid() const; + + QByteArray objectType() const; + QByteArray objectClassName() const; + + int objectTypeMajorVersion() const; + int objectTypeMinorVersion() const; + + QString objectId() const; + + QList<QDeclarativeDomProperty> properties() const; + QDeclarativeDomProperty property(const QByteArray &) const; + + QList<QDeclarativeDomDynamicProperty> dynamicProperties() const; + QDeclarativeDomDynamicProperty dynamicProperty(const QByteArray &) const; + + bool isCustomType() const; + QByteArray customTypeData() const; + + bool isComponent() const; + QDeclarativeDomComponent toComponent() const; + + int position() const; + int length() const; + + QUrl url() const; +private: + friend class QDeclarativeDomDocument; + friend class QDeclarativeDomComponent; + friend class QDeclarativeDomValue; + friend class QDeclarativeDomValueValueSource; + friend class QDeclarativeDomValueValueInterceptor; + QSharedDataPointer<QDeclarativeDomObjectPrivate> d; +}; + +class QDeclarativeDomValuePrivate; +class QDeclarativeDomBasicValuePrivate; +class Q_DECLARATIVE_EXPORT QDeclarativeDomValueLiteral +{ +public: + QDeclarativeDomValueLiteral(); + QDeclarativeDomValueLiteral(const QDeclarativeDomValueLiteral &); + ~QDeclarativeDomValueLiteral(); + QDeclarativeDomValueLiteral &operator=(const QDeclarativeDomValueLiteral &); + + QString literal() const; + +private: + friend class QDeclarativeDomValue; + QSharedDataPointer<QDeclarativeDomBasicValuePrivate> d; +}; + +class Q_DECLARATIVE_EXPORT QDeclarativeDomValueBinding +{ +public: + QDeclarativeDomValueBinding(); + QDeclarativeDomValueBinding(const QDeclarativeDomValueBinding &); + ~QDeclarativeDomValueBinding(); + QDeclarativeDomValueBinding &operator=(const QDeclarativeDomValueBinding &); + + QString binding() const; + +private: + friend class QDeclarativeDomValue; + QSharedDataPointer<QDeclarativeDomBasicValuePrivate> d; +}; + +class Q_DECLARATIVE_EXPORT QDeclarativeDomValueValueSource +{ +public: + QDeclarativeDomValueValueSource(); + QDeclarativeDomValueValueSource(const QDeclarativeDomValueValueSource &); + ~QDeclarativeDomValueValueSource(); + QDeclarativeDomValueValueSource &operator=(const QDeclarativeDomValueValueSource &); + + QDeclarativeDomObject object() const; + +private: + friend class QDeclarativeDomValue; + QSharedDataPointer<QDeclarativeDomBasicValuePrivate> d; +}; + +class Q_DECLARATIVE_EXPORT QDeclarativeDomValueValueInterceptor +{ +public: + QDeclarativeDomValueValueInterceptor(); + QDeclarativeDomValueValueInterceptor(const QDeclarativeDomValueValueInterceptor &); + ~QDeclarativeDomValueValueInterceptor(); + QDeclarativeDomValueValueInterceptor &operator=(const QDeclarativeDomValueValueInterceptor &); + + QDeclarativeDomObject object() const; + +private: + friend class QDeclarativeDomValue; + QSharedDataPointer<QDeclarativeDomBasicValuePrivate> d; +}; + + +class Q_DECLARATIVE_EXPORT QDeclarativeDomComponent : public QDeclarativeDomObject +{ +public: + QDeclarativeDomComponent(); + QDeclarativeDomComponent(const QDeclarativeDomComponent &); + ~QDeclarativeDomComponent(); + QDeclarativeDomComponent &operator=(const QDeclarativeDomComponent &); + + QDeclarativeDomObject componentRoot() const; +}; + +class Q_DECLARATIVE_EXPORT QDeclarativeDomValue +{ +public: + enum Type { + Invalid, + Literal, + PropertyBinding, + ValueSource, + ValueInterceptor, + Object, + List + }; + + QDeclarativeDomValue(); + QDeclarativeDomValue(const QDeclarativeDomValue &); + ~QDeclarativeDomValue(); + QDeclarativeDomValue &operator=(const QDeclarativeDomValue &); + + Type type() const; + + bool isInvalid() const; + bool isLiteral() const; + bool isBinding() const; + bool isValueSource() const; + bool isValueInterceptor() const; + bool isObject() const; + bool isList() const; + + QDeclarativeDomValueLiteral toLiteral() const; + QDeclarativeDomValueBinding toBinding() const; + QDeclarativeDomValueValueSource toValueSource() const; + QDeclarativeDomValueValueInterceptor toValueInterceptor() const; + QDeclarativeDomObject toObject() const; + QDeclarativeDomList toList() const; + + int position() const; + int length() const; + +private: + friend class QDeclarativeDomProperty; + friend class QDeclarativeDomList; + QSharedDataPointer<QDeclarativeDomValuePrivate> d; +}; + +class Q_DECLARATIVE_EXPORT QDeclarativeDomList +{ +public: + QDeclarativeDomList(); + QDeclarativeDomList(const QDeclarativeDomList &); + ~QDeclarativeDomList(); + QDeclarativeDomList &operator=(const QDeclarativeDomList &); + + QList<QDeclarativeDomValue> values() const; + + int position() const; + int length() const; + + QList<int> commaPositions() const; + +private: + friend class QDeclarativeDomValue; + QSharedDataPointer<QDeclarativeDomValuePrivate> d; +}; + +class QDeclarativeDomImportPrivate; +class Q_DECLARATIVE_EXPORT QDeclarativeDomImport +{ +public: + enum Type { Library, File }; + + QDeclarativeDomImport(); + QDeclarativeDomImport(const QDeclarativeDomImport &); + ~QDeclarativeDomImport(); + QDeclarativeDomImport &operator=(const QDeclarativeDomImport &); + + Type type() const; + QString uri() const; + QString version() const; + QString qualifier() const; + +private: + friend class QDeclarativeDomDocument; + QSharedDataPointer<QDeclarativeDomImportPrivate> d; +}; + +QT_END_NAMESPACE + +QT_END_HEADER + +#endif // QDECLARATIVEDOM_P_H |