diff --git a/src/cpp/include/nodegui/QtCore/QObject/qobject_macro.h b/src/cpp/include/nodegui/QtCore/QObject/qobject_macro.h index 0635b04f2..f07e5984a 100644 --- a/src/cpp/include/nodegui/QtCore/QObject/qobject_macro.h +++ b/src/cpp/include/nodegui/QtCore/QObject/qobject_macro.h @@ -12,10 +12,10 @@ and every widget we export. */ -#ifndef QOBJECT_WRAPPED_METHODS_DECLARATION -#define QOBJECT_WRAPPED_METHODS_DECLARATION \ +#ifndef QOBJECT_WRAPPED_METHODS_DECLARATION_WITH_EVENT_SOURCE +#define QOBJECT_WRAPPED_METHODS_DECLARATION_WITH_EVENT_SOURCE(source) \ \ - EVENTWIDGET_WRAPPED_METHODS_DECLARATION \ + EVENTWIDGET_WRAPPED_METHODS_DECLARATION_WITH_EVENT_SOURCE(source) \ \ Napi::Value inherits(const Napi::CallbackInfo& info) { \ Napi::Env env = info.Env(); \ @@ -73,6 +73,11 @@ return env.Null(); \ } +#endif // QOBJECT_WRAPPED_METHODS_DECLARATION_WITH_EVENT_SOURCE + +#ifndef QOBJECT_WRAPPED_METHODS_DECLARATION +#define QOBJECT_WRAPPED_METHODS_DECLARATION \ + QOBJECT_WRAPPED_METHODS_DECLARATION_WITH_EVENT_SOURCE(this->instance.data()) #endif // QOBJECT_WRAPPED_METHODS_DECLARATION #ifndef QOBJECT_WRAPPED_METHODS_EXPORT_DEFINE diff --git a/src/cpp/include/nodegui/QtGui/QScreen/qscreen_wrap.h b/src/cpp/include/nodegui/QtGui/QScreen/qscreen_wrap.h index a3076152a..68b77a714 100644 --- a/src/cpp/include/nodegui/QtGui/QScreen/qscreen_wrap.h +++ b/src/cpp/include/nodegui/QtGui/QScreen/qscreen_wrap.h @@ -10,7 +10,7 @@ class DLL_EXPORT QScreenWrap : public Napi::ObjectWrap, public EventWidget { - QOBJECT_WRAPPED_METHODS_DECLARATION + QOBJECT_WRAPPED_METHODS_DECLARATION_WITH_EVENT_SOURCE(this) // Note: We don't use EVENTWIDGET_IMPLEMENTATIONS() here because this class // doesn't handle any QEvents. diff --git a/src/cpp/include/nodegui/QtGui/QWindow/qwindow_wrap.h b/src/cpp/include/nodegui/QtGui/QWindow/qwindow_wrap.h index 419a95691..ccbdb2594 100644 --- a/src/cpp/include/nodegui/QtGui/QWindow/qwindow_wrap.h +++ b/src/cpp/include/nodegui/QtGui/QWindow/qwindow_wrap.h @@ -10,7 +10,7 @@ class DLL_EXPORT QWindowWrap : public Napi::ObjectWrap, public EventWidget { - QOBJECT_WRAPPED_METHODS_DECLARATION + QOBJECT_WRAPPED_METHODS_DECLARATION_WITH_EVENT_SOURCE(this) // Note: We don't use EVENTWIDGET_IMPLEMENTATIONS() here because this class // doesn't handle any QEvents. diff --git a/src/cpp/include/nodegui/core/Events/eventwidget_macro.h b/src/cpp/include/nodegui/core/Events/eventwidget_macro.h index 1a7aed96f..3afaeb39b 100644 --- a/src/cpp/include/nodegui/core/Events/eventwidget_macro.h +++ b/src/cpp/include/nodegui/core/Events/eventwidget_macro.h @@ -33,54 +33,55 @@ struct InitHelper { } }; -#ifndef EVENTWIDGET_WRAPPED_METHODS_DECLARATION -#define EVENTWIDGET_WRAPPED_METHODS_DECLARATION \ - COMPONENT_WRAPPED_METHODS_DECLARATION \ - Napi::Value initNodeEventEmitter(const Napi::CallbackInfo& info) { \ - Napi::Env env = info.Env(); \ - EventWidget* eventWidget = \ - dynamic_cast(this->instance.data()); \ - if (eventWidget) { \ - eventWidget->emitOnNode = \ - Napi::Persistent(info[0].As()); \ - } \ - InitHelperinstance.data())>::type>:: \ - connectSignalsToEventEmitter(this->instance.data()); \ - return env.Null(); \ - } \ - Napi::Value getNodeEventEmitter(const Napi::CallbackInfo& info) { \ - Napi::Env env = info.Env(); \ - EventWidget* eventWidget = \ - dynamic_cast(this->instance.data()); \ - if (eventWidget && eventWidget->emitOnNode) { \ - return eventWidget->emitOnNode.Value(); \ - } else { \ - return env.Null(); \ - } \ - } \ - Napi::Value subscribeToQtEvent(const Napi::CallbackInfo& info) { \ - Napi::Env env = info.Env(); \ - Napi::String eventString = info[0].As(); \ - EventWidget* eventWidget = \ - dynamic_cast(this->instance.data()); \ - bool success = false; \ - if (eventWidget) { \ - eventWidget->subscribeToQtEvent(eventString.Utf8Value()); \ - success = true; \ - } \ - return Napi::Boolean::New(env, success); \ - } \ - Napi::Value unSubscribeToQtEvent(const Napi::CallbackInfo& info) { \ - Napi::Env env = info.Env(); \ - Napi::String eventString = info[0].As(); \ - EventWidget* eventWidget = \ - dynamic_cast(this->instance.data()); \ - if (eventWidget) { \ - eventWidget->unSubscribeToQtEvent(eventString.Utf8Value()); \ - } \ - return env.Null(); \ +#ifndef EVENTWIDGET_WRAPPED_METHODS_DECLARATION_WITH_EVENT_SOURCE +#define EVENTWIDGET_WRAPPED_METHODS_DECLARATION_WITH_EVENT_SOURCE(source) \ + COMPONENT_WRAPPED_METHODS_DECLARATION \ + Napi::Value initNodeEventEmitter(const Napi::CallbackInfo& info) { \ + Napi::Env env = info.Env(); \ + EventWidget* eventWidget = dynamic_cast(source); \ + if (eventWidget) { \ + eventWidget->emitOnNode = \ + Napi::Persistent(info[0].As()); \ + } \ + InitHelper::type>:: \ + connectSignalsToEventEmitter(source); \ + return env.Null(); \ + } \ + Napi::Value getNodeEventEmitter(const Napi::CallbackInfo& info) { \ + Napi::Env env = info.Env(); \ + EventWidget* eventWidget = dynamic_cast(source); \ + if (eventWidget && eventWidget->emitOnNode) { \ + return eventWidget->emitOnNode.Value(); \ + } else { \ + return env.Null(); \ + } \ + } \ + Napi::Value subscribeToQtEvent(const Napi::CallbackInfo& info) { \ + Napi::Env env = info.Env(); \ + Napi::String eventString = info[0].As(); \ + EventWidget* eventWidget = dynamic_cast(source); \ + bool success = false; \ + if (eventWidget) { \ + eventWidget->subscribeToQtEvent(eventString.Utf8Value()); \ + success = true; \ + } \ + return Napi::Boolean::New(env, success); \ + } \ + Napi::Value unSubscribeToQtEvent(const Napi::CallbackInfo& info) { \ + Napi::Env env = info.Env(); \ + Napi::String eventString = info[0].As(); \ + EventWidget* eventWidget = dynamic_cast(source); \ + if (eventWidget) { \ + eventWidget->unSubscribeToQtEvent(eventString.Utf8Value()); \ + } \ + return env.Null(); \ } +#endif // EVENTWIDGET_WRAPPED_METHODS_DECLARATION_WITH_EVENT_SOURCE +#ifndef EVENTWIDGET_WRAPPED_METHODS_DECLARATION +#define EVENTWIDGET_WRAPPED_METHODS_DECLARATION \ + EVENTWIDGET_WRAPPED_METHODS_DECLARATION_WITH_EVENT_SOURCE( \ + this->instance.data()) #endif // EVENTWIDGET_WRAPPED_METHODS_DECLARATION #ifndef EVENTWIDGET_WRAPPED_METHODS_EXPORT_DEFINE