1
/****************************************************************************
3
** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
4
** Contact: Nokia Corporation (qt-info@nokia.com)
6
** This file is part of the QtScript module of the Qt Toolkit.
8
** $QT_BEGIN_LICENSE:LGPL$
10
** Licensees holding valid Qt Commercial licenses may use this file in
11
** accordance with the Qt Commercial License Agreement provided with the
12
** Software or, alternatively, in accordance with the terms contained in
13
** a written agreement between you and Nokia.
15
** GNU Lesser General Public License Usage
16
** Alternatively, this file may be used under the terms of the GNU Lesser
17
** General Public License version 2.1 as published by the Free Software
18
** Foundation and appearing in the file LICENSE.LGPL included in the
19
** packaging of this file. Please review the following information to
20
** ensure the GNU Lesser General Public License version 2.1 requirements
21
** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
23
** In addition, as a special exception, Nokia gives you certain
24
** additional rights. These rights are described in the Nokia Qt LGPL
25
** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
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.
36
** If you are unsure which license is appropriate for your use, please
37
** contact the sales department at http://www.qtsoftware.com/contact.
40
****************************************************************************/
42
#ifndef QSCRIPTMEMBERFWD_P_H
43
#define QSCRIPTMEMBERFWD_P_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.
56
#include <QtCore/qglobal.h>
62
class QScriptNameIdImpl;
70
ObjectProperty = 0x00000100, // Stored in the member table
71
NativeProperty = 0x00000200,
73
UninitializedConst = 0x00000800, // NB: shared with QScriptValue::KeepExistingFlags
75
InternalRange = 0x0000ff00 // Not user-accessible (read as 0, don't change on write)
78
inline Member() : m_nameId(0), m_id(0), m_flags(0) {}
80
inline void resetFlags(uint flags);
81
inline void setFlags(uint flags);
82
inline void unsetFlags(uint flags);
83
inline uint flags() const;
84
inline bool testFlags(uint mask) const;
86
inline bool isValid() const;
88
inline bool isWritable() const;
89
inline bool isDeletable() const;
91
inline bool dontEnum() const;
93
inline bool isObjectProperty() const;
94
inline bool isNativeProperty() const;
96
inline bool isUninitializedConst() const;
98
inline bool isGetter() const;
99
inline bool isSetter() const;
100
inline bool isGetterOrSetter() const;
102
inline int id() const;
103
inline QScriptNameIdImpl *nameId() const;
105
inline bool operator==(const Member &other) const;
106
inline bool operator!=(const Member &other) const;
108
inline static Member invalid();
109
inline void invalidate();
111
inline void native(QScriptNameIdImpl *nameId, int id, uint flags);
112
inline void object(QScriptNameIdImpl *nameId, int id, uint flags);
115
QScriptNameIdImpl *m_nameId;
120
} // namespace QScript
124
#endif // QT_NO_SCRIPT