#include "QtGui/QEvent/QMouseEvent/qmouseevent_wrap.h" #include #include "Extras/Utils/nutils.h" Napi::FunctionReference QMouseEventWrap::constructor; Napi::Object QMouseEventWrap::init(Napi::Env env, Napi::Object exports) { Napi::HandleScope scope(env); char CLASSNAME[] = "QMouseEvent"; Napi::Function func = DefineClass(env, CLASSNAME, {InstanceMethod("button", &QMouseEventWrap::button), InstanceMethod("buttons", &QMouseEventWrap::buttons), InstanceMethod("x", &QMouseEventWrap::x), InstanceMethod("y", &QMouseEventWrap::y), InstanceMethod("globalX", &QMouseEventWrap::globalX), InstanceMethod("globalY", &QMouseEventWrap::globalY), COMPONENT_WRAPPED_METHODS_EXPORT_DEFINE(QMouseEventWrap)}); constructor = Napi::Persistent(func); exports.Set(CLASSNAME, func); return exports; } QMouseEvent* QMouseEventWrap::getInternalInstance() { return this->instance; } QMouseEventWrap::QMouseEventWrap(const Napi::CallbackInfo& info) : Napi::ObjectWrap(info) { Napi::Env env = info.Env(); Napi::HandleScope scope(env); if (info.Length() == 1) { Napi::External eventObject = info[0].As>(); this->instance = static_cast(eventObject.Data()); } else { Napi::TypeError::New(env, "Wrong number of arguments") .ThrowAsJavaScriptException(); } this->rawData = extrautils::configureComponent(this->getInternalInstance()); } QMouseEventWrap::~QMouseEventWrap() { // Do not destroy instance here. It will be done by Qt Event loop. } Napi::Value QMouseEventWrap::button(const Napi::CallbackInfo& info) { Napi::Env env = info.Env(); int button = static_cast(this->instance->button()); return Napi::Number::From(env, button); } Napi::Value QMouseEventWrap::buttons(const Napi::CallbackInfo& info) { Napi::Env env = info.Env(); int buttons = static_cast(this->instance->buttons()); return Napi::Number::From(env, buttons); } Napi::Value QMouseEventWrap::x(const Napi::CallbackInfo& info) { Napi::Env env = info.Env(); int x = static_cast(this->instance->x()); return Napi::Number::From(env, x); } Napi::Value QMouseEventWrap::y(const Napi::CallbackInfo& info) { Napi::Env env = info.Env(); int y = static_cast(this->instance->y()); return Napi::Number::From(env, y); } Napi::Value QMouseEventWrap::globalX(const Napi::CallbackInfo& info) { Napi::Env env = info.Env(); int globalX = static_cast(this->instance->globalX()); return Napi::Number::From(env, globalX); } Napi::Value QMouseEventWrap::globalY(const Napi::CallbackInfo& info) { Napi::Env env = info.Env(); int globalY = static_cast(this->instance->globalY()); return Napi::Number::From(env, globalY); }