blob: 9f255004e886fde95d91b68e4546a33c80ac04a9 [file] [log] [blame]
/****************************************************************************
**
** Copyright (C) 2011 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$
** GNU Lesser General Public License Usage
** 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.
**
** GNU General Public License Usage
** Alternatively, this file may be used under the terms of the GNU General
** Public License version 3.0 as published by the Free Software Foundation
** and appearing in the file LICENSE.GPL included in the packaging of this
** file. Please review the following information to ensure the GNU General
** Public License version 3.0 requirements will be met:
** http://www.gnu.org/copyleft/gpl.html.
**
** Other Usage
** Alternatively, this file may be used in accordance with the terms and
** conditions contained in a signed written agreement between you and Nokia.
**
**
**
**
**
** $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>
#include <private/qdeclarativeglobal_p.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_PRIVATE_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_PRIVATE_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_PRIVATE_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_PRIVATE_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_PRIVATE_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_PRIVATE_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_PRIVATE_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_PRIVATE_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_PRIVATE_EXPORT QDeclarativeDomComponent : public QDeclarativeDomObject
{
public:
QDeclarativeDomComponent();
QDeclarativeDomComponent(const QDeclarativeDomComponent &);
~QDeclarativeDomComponent();
QDeclarativeDomComponent &operator=(const QDeclarativeDomComponent &);
QDeclarativeDomObject componentRoot() const;
};
class Q_DECLARATIVE_PRIVATE_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_PRIVATE_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_PRIVATE_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