summaryrefslogtreecommitdiffstats
path: root/enumwappers.cpp
blob: 3bfe303577aec88852c51ac3e3535b3dc8e5c137 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
#include "enumwappers.h"
#include <QScriptEngine>
#include "objects/enums.h"

namespace Scripting {
namespace Internal {

#define createEnumStatics(CLASS,ENUM) \
static QScriptValue toScriptValue##ENUM(QScriptEngine *engine, const CLASS::ENUM &p)\
 {\
     return engine->newVariant((int)p);\
 }\
\
 static void fromScriptValue##ENUM(const QScriptValue &obj,CLASS::ENUM  &s)\
 {\
     s = (CLASS::ENUM)obj.toInt32();\
 }\

#define registerEnum(ENGINE,CLASS,ENUM) \
{\
    qScriptRegisterMetaType(ENGINE, toScriptValue##ENUM, fromScriptValue##ENUM);\
    QScriptValue metaObject = ENGINE->newQMetaObject( &CLASS::staticMetaObject );\
    ENGINE->globalObject().setProperty( QLatin1String(#ENUM), metaObject );\
}

createEnumStatics(Enums,PositionOperation)

void registerEnums(QScriptEngine* engine )
{
    registerEnum(engine, Enums, PositionOperation);
}

} // namespace Internal
} // namespace Scripting