1
/****************************************************************************
3
** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies).
4
** Contact: http://www.qt-project.org/
6
** This file is part of the QtQml module of the Qt Toolkit.
8
** $QT_BEGIN_LICENSE:LGPL$
9
** GNU Lesser General Public License Usage
10
** This file may be used under the terms of the GNU Lesser General Public
11
** License version 2.1 as published by the Free Software Foundation and
12
** appearing in the file LICENSE.LGPL included in the packaging of this
13
** file. Please review the following information to ensure the GNU Lesser
14
** General Public License version 2.1 requirements will be met:
15
** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
17
** In addition, as a special exception, Nokia gives you certain additional
18
** rights. These rights are described in the Nokia Qt LGPL Exception
19
** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
21
** GNU General Public License Usage
22
** Alternatively, this file may be used under the terms of the GNU General
23
** Public License version 3.0 as published by the Free Software Foundation
24
** and appearing in the file LICENSE.GPL included in the packaging of this
25
** file. Please review the following information to ensure the GNU General
26
** Public License version 3.0 requirements will be met:
27
** http://www.gnu.org/copyleft/gpl.html.
30
** Alternatively, this file may be used in accordance with the terms and
31
** conditions contained in a signed written agreement between you and Nokia.
40
****************************************************************************/
42
#ifndef DESIGNERSUPPORT_H
43
#define DESIGNERSUPPORT_H
49
// This file is not part of the Qt API. It exists purely as an
50
// implementation detail. This header file may change from version to
51
// version without notice, or even be removed.
57
#include <QtQuick/qtquickglobal.h>
58
#include <QtCore/QtGlobal>
59
#include <QtCore/QHash>
60
#include <QtCore/QRectF>
67
class QQuickShaderEffectTexture;
74
class Q_QUICK_EXPORT DesignerSupport
78
TransformOrigin = 0x00000001,
79
Transform = 0x00000002,
80
BasicTransform = 0x00000004,
81
Position = 0x00000008,
87
OpacityValue = 0x00000100,
88
ChildrenChanged = 0x00000200,
89
ChildrenStackingChanged = 0x00000400,
90
ParentChanged = 0x00000800,
95
EffectReference = 0x00008000,
97
HideReference = 0x00020000,
99
TransformUpdateMask = TransformOrigin | Transform | BasicTransform | Position | Size | Canvas,
100
ComplexTransformUpdateMask = Transform | Canvas,
101
ContentUpdateMask = Size | Content | Smooth | Canvas,
102
ChildrenUpdateMask = ChildrenChanged | ChildrenStackingChanged | EffectReference | Canvas
109
void refFromEffectItem(QQuickItem *referencedItem, bool hide = true);
110
void derefFromEffectItem(QQuickItem *referencedItem, bool unhide = true);
112
QImage renderImageForItem(QQuickItem *referencedItem, const QRectF &boundingRect, const QSize &imageSize);
114
static bool isDirty(QQuickItem *referencedItem, DirtyType dirtyType);
115
static void resetDirty(QQuickItem *referencedItem);
117
static QTransform canvasTransform(QQuickItem *referencedItem);
118
static QTransform parentTransform(QQuickItem *referencedItem);
120
static bool isAnchoredTo(QQuickItem *fromItem, QQuickItem *toItem);
121
static bool areChildrenAnchoredTo(QQuickItem *fromItem, QQuickItem *toItem);
122
static bool hasAnchor(QQuickItem *item, const QString &name);
123
static QQuickItem *anchorFillTargetItem(QQuickItem *item);
124
static QQuickItem *anchorCenterInTargetItem(QQuickItem *item);
125
static QPair<QString, QObject*> anchorLineTarget(QQuickItem *item, const QString &name, QQmlContext *context);
126
static void resetAnchor(QQuickItem *item, const QString &name);
129
static QList<QObject*> statesForItem(QQuickItem *item);
131
static bool isComponentComplete(QQuickItem *item);
133
static int borderWidth(QQuickItem *item);
135
static void refreshExpressions(QQmlContext *context);
137
static void setRootItem(QQuickView *view, QQuickItem *item);
139
static bool isValidWidth(QQuickItem *item);
140
static bool isValidHeight(QQuickItem *item);
142
static void updateDirtyNode(QQuickItem *item);
145
QHash<QQuickItem*, QQuickShaderEffectTexture*> m_itemTextureHash;
152
#endif // DESIGNERSUPPORT_H