nodeguy/src/cpp/include/nodegui/QtWidgets/QGraphicsEffect/qgraphicseffect_macro.h
2021-12-02 21:22:26 +01:00

47 lines
2.1 KiB
C

#pragma once
#include "QtCore/QObject/qobject_macro.h"
/*
This macro adds common QGraphicsEffect exported methods
The exported methods are taken into this macro to avoid writing them in each
and every graphicseffect we export.
*/
#ifndef QGRAPHICSEFFECT_WRAPPED_METHODS_DECLARATION
#define QGRAPHICSEFFECT_WRAPPED_METHODS_DECLARATION \
\
QOBJECT_WRAPPED_METHODS_DECLARATION \
\
Napi::Value update(const Napi::CallbackInfo& info) { \
Napi::Env env = info.Env(); \
this->instance->update(); \
return env.Null(); \
}
#endif // QGRAPHICSEFFECT_WRAPPED_METHODS_DECLARATION
#ifndef QGRAPHICSEFFECT_WRAPPED_METHODS_EXPORT_DEFINE
#define QGRAPHICSEFFECT_WRAPPED_METHODS_EXPORT_DEFINE(GraphicsEffectWrapName) \
\
QOBJECT_WRAPPED_METHODS_EXPORT_DEFINE(GraphicsEffectWrapName) \
\
InstanceMethod("update", &GraphicsEffectWrapName::update),
#endif // QGRAPHICSEFFECT_WRAPPED_METHODS_EXPORT_DEFINE
#ifndef QGRAPHICSEFFECT_SIGNALS
#define QGRAPHICSEFFECT_SIGNALS \
\
QOBJECT_SIGNALS \
\
QObject::connect(this, &QGraphicsEffect::enabledChanged, [=](bool enabled) { \
Napi::Env env = this->emitOnNode.Env(); \
Napi::HandleScope scope(env); \
this->emitOnNode.Call({Napi::String::New(env, "enabledChanged"), \
Napi::Boolean::New(env, enabled)}); \
});
#endif // QGRAPHICSEFFECT_SIGNALS