X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=src%2Fquick%2Fitems%2Fqquickitem_p.h;h=1d2a97dbb96c4a0813a51876dd85a111351fe797;hb=45b14259fc0cf704692df1c00da511527d1fba1d;hp=6ed4a694a7aa76ee703cd498d66c849d87a8d222;hpb=9db40605bc3c1ddb2715a53724c6fbc4d026e68b;p=profile%2Fivi%2Fqtdeclarative.git diff --git a/src/quick/items/qquickitem_p.h b/src/quick/items/qquickitem_p.h index 6ed4a69..1d2a97d 100644 --- a/src/quick/items/qquickitem_p.h +++ b/src/quick/items/qquickitem_p.h @@ -1,9 +1,8 @@ // Commit: 5c783d0a9a912816813945387903857a314040b5 /**************************************************************************** ** -** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). -** All rights reserved. -** Contact: Nokia Corporation (qt-info@nokia.com) +** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies). +** Contact: http://www.qt-project.org/ ** ** This file is part of the QtDeclarative module of the Qt Toolkit. ** @@ -36,6 +35,7 @@ ** ** ** +** ** $QT_END_LICENSE$ ** ****************************************************************************/ @@ -78,6 +78,9 @@ #include #include +#include +#include + QT_BEGIN_NAMESPACE class QNetworkReply; @@ -134,6 +137,101 @@ public: QList items; }; + +class QQuickItemLayer : public QObject, public QQuickItemChangeListener +{ + Q_OBJECT + Q_PROPERTY(bool enabled READ enabled WRITE setEnabled NOTIFY enabledChanged) + Q_PROPERTY(QSize textureSize READ size WRITE setSize NOTIFY sizeChanged) + Q_PROPERTY(QRectF sourceRect READ sourceRect WRITE setSourceRect NOTIFY sourceRectChanged) + Q_PROPERTY(bool mipmap READ mipmap WRITE setMipmap NOTIFY mipmapChanged) + Q_PROPERTY(bool smooth READ smooth WRITE setSmooth NOTIFY smoothChanged) + Q_PROPERTY(QQuickShaderEffectSource::WrapMode wrapMode READ wrapMode WRITE setWrapMode NOTIFY wrapModeChanged) + Q_PROPERTY(QQuickShaderEffectSource::Format format READ format WRITE setFormat NOTIFY formatChanged) + Q_PROPERTY(QString samplerName READ name WRITE setName NOTIFY nameChanged) + Q_PROPERTY(QDeclarativeComponent *effect READ effect WRITE setEffect NOTIFY effectChanged) +public: + QQuickItemLayer(QQuickItem *item); + ~QQuickItemLayer(); + + void classBegin(); + void componentComplete(); + + bool enabled() const { return m_effectSource != 0; } + void setEnabled(bool enabled); + + bool mipmap() const { return m_mipmap; } + void setMipmap(bool mipmap); + + bool smooth() const { return m_smooth; } + void setSmooth(bool s); + + QSize size() const { return m_size; } + void setSize(const QSize &size); + + QQuickShaderEffectSource::Format format() const { return m_format; } + void setFormat(QQuickShaderEffectSource::Format f); + + QRectF sourceRect() const { return m_sourceRect; } + void setSourceRect(const QRectF &sourceRect); + + QQuickShaderEffectSource::WrapMode wrapMode() const { return m_wrapMode; } + void setWrapMode(QQuickShaderEffectSource::WrapMode mode); + + QString name() const { return m_name; } + void setName(const QString &name) { + if (m_name == name) + return; + m_name = name; + emit nameChanged(name); + } + + QDeclarativeComponent *effect() const { return m_effectComponent; } + void setEffect(QDeclarativeComponent *effect); + + QQuickShaderEffectSource *effectSource() const { return m_effectSource; } + + void itemGeometryChanged(QQuickItem *, const QRectF &, const QRectF &); + void itemOpacityChanged(QQuickItem *); + void itemParentChanged(QQuickItem *, QQuickItem *); + void itemSiblingOrderChanged(QQuickItem *); + void itemVisibilityChanged(QQuickItem *); + + void updateMatrix(); + void updateGeometry(); + void updateOpacity(); + void updateZ(); + +signals: + void enabledChanged(bool enabled); + void sizeChanged(const QSize &size); + void mipmapChanged(bool mipmap); + void wrapModeChanged(QQuickShaderEffectSource::WrapMode mode); + void nameChanged(const QString &name); + void effectChanged(QDeclarativeComponent *component); + void smoothChanged(bool smooth); + void formatChanged(QQuickShaderEffectSource::Format format); + void sourceRectChanged(const QRectF &sourceRect); + +private: + void activate(); + void deactivate(); + + QQuickItem *m_item; + bool m_enabled; + bool m_mipmap; + bool m_smooth; + bool m_componentComplete; + QQuickShaderEffectSource::WrapMode m_wrapMode; + QQuickShaderEffectSource::Format m_format; + QSize m_size; + QRectF m_sourceRect; + QString m_name; + QDeclarativeComponent *m_effectComponent; + QQuickShaderEffect *m_effect; + QQuickShaderEffectSource *m_effectSource; +}; + class Q_QUICK_EXPORT QQuickItemPrivate : public QObjectPrivate { Q_DECLARE_PUBLIC(QQuickItem) @@ -166,6 +264,8 @@ public: QQuickAnchorLine verticalCenter() const; QQuickAnchorLine baseline() const; + QQuickItemLayer *layer() const; + // data property static void data_append(QDeclarativeListProperty *, QObject *); static int data_count(QDeclarativeListProperty *); @@ -280,6 +380,7 @@ public: bool inheritMirrorFromItem:1; bool childrenDoNotOverlap:1; bool staticSubtreeGeometry:1; + bool isAccessible:1; QQuickCanvas *canvas; QSGContext *sceneGraphContext() const { Q_ASSERT(canvas); return static_cast(QObjectPrivate::get(canvas))->context; } @@ -337,6 +438,8 @@ public: Qt::MouseButtons acceptedMouseButtons; Qt::InputMethodHints imHints; + void setAccessibleFlagAndListener(); + QPointF transformOriginPoint; virtual qreal getImplicitWidth() const; @@ -404,7 +507,7 @@ public: TransformUpdateMask = TransformOrigin | Transform | BasicTransform | Position | Size | Canvas, ComplexTransformUpdateMask = Transform | Canvas, ContentUpdateMask = Size | Content | Smooth | Canvas, - ChildrenUpdateMask = ChildrenChanged | ChildrenStackingChanged | EffectReference | Canvas, + ChildrenUpdateMask = ChildrenChanged | ChildrenStackingChanged | EffectReference | Canvas }; quint32 dirtyAttributes; @@ -450,6 +553,8 @@ public: QQuickScreenAttached *screenAttached; + mutable QQuickItemLayer *_layer; + static qint64 consistentTime; static void setConsistentTime(qint64 t); static void start(QElapsedTimer &); @@ -752,6 +857,7 @@ Q_DECLARE_OPERATORS_FOR_FLAGS(QQuickItemPrivate::ChangeTypes); QT_END_NAMESPACE +QML_DECLARE_TYPE(QQuickItemLayer) QML_DECLARE_TYPE(QQuickKeysAttached) QML_DECLARE_TYPEINFO(QQuickKeysAttached, QML_HAS_ATTACHED_PROPERTIES) QML_DECLARE_TYPE(QQuickKeyNavigationAttached)