nodeguy/src/cpp/include/nodegui/QtWidgets/QAbstractScrollArea/qabstractscrollarea_macro.h

88 lines
5.0 KiB
C

#pragma once
#include "QtCore/QSize/qsize_wrap.h"
#include "QtWidgets/QFrame/qframe_macro.h"
#include "QtWidgets/QScrollBar/qscrollbar_wrap.h"
#include "QtWidgets/QWidget/qwidget_wrap.h"
/*
This macro adds common QAbstractScrollArea exported methods
The exported methods are taken into this macro to avoid writing them in each
and every widget we export.
*/
#ifndef QABSTRACTSCROLLAREA_WRAPPED_METHODS_DECLARATION
#define QABSTRACTSCROLLAREA_WRAPPED_METHODS_DECLARATION \
\
QFRAME_WRAPPED_METHODS_DECLARATION \
\
Napi::Value maximumViewportSize(const Napi::CallbackInfo& info) { \
Napi::Env env = info.Env(); \
QSize size = this->instance->maximumViewportSize(); \
auto instance = QSizeWrap::constructor.New( \
{Napi::External<QSize>::New(env, new QSize(size))}); \
return instance; \
} \
\
Napi::Value setHorizontalScrollBar(const Napi::CallbackInfo& info) { \
Napi::Env env = info.Env(); \
Napi::Object scrollBarObject = info[0].As<Napi::Object>(); \
QScrollBarWrap* scrollBarWrap = \
Napi::ObjectWrap<QScrollBarWrap>::Unwrap(scrollBarObject); \
QScrollBar* scrollBar = scrollBarWrap->getInternalInstance(); \
this->instance->setHorizontalScrollBar(scrollBar); \
return env.Null(); \
} \
\
Napi::Value setVerticalScrollBar(const Napi::CallbackInfo& info) { \
Napi::Env env = info.Env(); \
Napi::Object scrollBarObject = info[0].As<Napi::Object>(); \
QScrollBarWrap* scrollBarWrap = \
Napi::ObjectWrap<QScrollBarWrap>::Unwrap(scrollBarObject); \
QScrollBar* scrollBar = scrollBarWrap->getInternalInstance(); \
this->instance->setVerticalScrollBar(scrollBar); \
return env.Null(); \
} \
\
Napi::Value setViewport(const Napi::CallbackInfo& info) { \
Napi::Env env = info.Env(); \
Napi::Object viewPortObject = info[0].As<Napi::Object>(); \
NodeWidgetWrap* viewPortWidgetWrap = \
Napi::ObjectWrap<NodeWidgetWrap>::Unwrap(viewPortObject); \
QWidget* viewPort = viewPortWidgetWrap->getInternalInstance(); \
this->instance->setViewport(viewPort); \
return env.Null(); \
} \
\
Napi::Value viewport(const Napi::CallbackInfo& info) { \
Napi::Env env = info.Env(); \
QWidget* viewPort = this->instance->viewport(); \
NWidget* nviewPort = reinterpret_cast<NWidget*>(viewPort); \
auto instance = QWidgetWrap::constructor.New( \
{Napi::External<NWidget>::New(env, nviewPort)}); \
return instance; \
}
#endif // QABSTRACTSCROLLAREA_WRAPPED_METHODS_DECLARATION
#ifndef QABSTRACTSCROLLAREA_WRAPPED_METHODS_EXPORT_DEFINE
#define QABSTRACTSCROLLAREA_WRAPPED_METHODS_EXPORT_DEFINE(WidgetWrapName) \
\
QFRAME_WRAPPED_METHODS_EXPORT_DEFINE(WidgetWrapName) \
\
InstanceMethod("maximumViewportSize", &WidgetWrapName::maximumViewportSize), \
InstanceMethod("setHorizontalScrollBar", \
&WidgetWrapName::setVerticalScrollBar), \
InstanceMethod("setVerticalScrollBar", \
&WidgetWrapName::setVerticalScrollBar), \
InstanceMethod("setViewport", &WidgetWrapName::setViewport), \
InstanceMethod("viewport", &WidgetWrapName::viewport),
#endif // QABSTRACTSCROLLAREA_WRAPPED_METHODS_EXPORT_DEFINE
#ifndef QABSTRACTSCROLLAREA_SIGNALS
#define QABSTRACTSCROLLAREA_SIGNALS QFRAME_SIGNALS
#endif