miqt/qt/script/gen_qscriptclass.cpp

478 lines
17 KiB
C++
Raw Normal View History

2024-11-26 19:55:18 +13:00
#include <QScriptClass>
#include <QScriptClassPropertyIterator>
#include <QScriptEngine>
#include <QScriptString>
#include <QScriptValue>
#include <QString>
#include <QByteArray>
#include <cstring>
#include <QVariant>
#include <qscriptclass.h>
#include "gen_qscriptclass.h"
#ifdef __cplusplus
extern "C" {
#endif
2025-02-01 13:45:16 +13:00
int miqt_exec_callback_QScriptClass_queryProperty(QScriptClass*, intptr_t, QScriptValue*, QScriptString*, int, unsigned int*);
QScriptValue* miqt_exec_callback_QScriptClass_property(QScriptClass*, intptr_t, QScriptValue*, QScriptString*, unsigned int);
void miqt_exec_callback_QScriptClass_setProperty(QScriptClass*, intptr_t, QScriptValue*, QScriptString*, unsigned int, QScriptValue*);
int miqt_exec_callback_QScriptClass_propertyFlags(QScriptClass*, intptr_t, QScriptValue*, QScriptString*, unsigned int);
QScriptClassPropertyIterator* miqt_exec_callback_QScriptClass_newIterator(QScriptClass*, intptr_t, QScriptValue*);
QScriptValue* miqt_exec_callback_QScriptClass_prototype(const QScriptClass*, intptr_t);
struct miqt_string miqt_exec_callback_QScriptClass_name(const QScriptClass*, intptr_t);
bool miqt_exec_callback_QScriptClass_supportsExtension(const QScriptClass*, intptr_t, int);
QVariant* miqt_exec_callback_QScriptClass_extension(QScriptClass*, intptr_t, int, QVariant*);
#ifdef __cplusplus
} /* extern C */
#endif
2024-11-26 19:55:18 +13:00
class MiqtVirtualQScriptClass final : public QScriptClass {
2024-11-26 19:55:18 +13:00
public:
MiqtVirtualQScriptClass(QScriptEngine* engine): QScriptClass(engine) {};
virtual ~MiqtVirtualQScriptClass() override = default;
2024-11-26 19:55:18 +13:00
// cgo.Handle value for overwritten implementation
2025-02-01 13:45:16 +13:00
intptr_t handle__queryProperty = 0;
2024-11-26 19:55:18 +13:00
// Subclass to allow providing a Go implementation
virtual QScriptClass::QueryFlags queryProperty(const QScriptValue& object, const QScriptString& name, QScriptClass::QueryFlags flags, uint* id) override {
2025-02-01 13:45:16 +13:00
if (handle__queryProperty == 0) {
2024-11-26 19:55:18 +13:00
return QScriptClass::queryProperty(object, name, flags, id);
}
const QScriptValue& object_ret = object;
// Cast returned reference into pointer
QScriptValue* sigval1 = const_cast<QScriptValue*>(&object_ret);
const QScriptString& name_ret = name;
// Cast returned reference into pointer
QScriptString* sigval2 = const_cast<QScriptString*>(&name_ret);
QScriptClass::QueryFlags flags_ret = flags;
int sigval3 = static_cast<int>(flags_ret);
uint* id_ret = id;
unsigned int* sigval4 = static_cast<unsigned int*>(id_ret);
2025-02-01 13:45:16 +13:00
int callback_return_value = miqt_exec_callback_QScriptClass_queryProperty(this, handle__queryProperty, sigval1, sigval2, sigval3, sigval4);
2024-11-26 19:55:18 +13:00
return static_cast<QScriptClass::QueryFlags>(callback_return_value);
}
// Wrapper to allow calling protected method
2025-02-01 13:45:16 +13:00
int virtualbase_queryProperty(QScriptValue* object, QScriptString* name, int flags, unsigned int* id) {
2024-11-26 19:55:18 +13:00
QScriptClass::QueryFlags _ret = QScriptClass::queryProperty(*object, *name, static_cast<QScriptClass::QueryFlags>(flags), static_cast<uint*>(id));
return static_cast<int>(_ret);
}
// cgo.Handle value for overwritten implementation
2025-02-01 13:45:16 +13:00
intptr_t handle__property = 0;
2024-11-26 19:55:18 +13:00
// Subclass to allow providing a Go implementation
virtual QScriptValue property(const QScriptValue& object, const QScriptString& name, uint id) override {
2025-02-01 13:45:16 +13:00
if (handle__property == 0) {
2024-11-26 19:55:18 +13:00
return QScriptClass::property(object, name, id);
}
const QScriptValue& object_ret = object;
// Cast returned reference into pointer
QScriptValue* sigval1 = const_cast<QScriptValue*>(&object_ret);
const QScriptString& name_ret = name;
// Cast returned reference into pointer
QScriptString* sigval2 = const_cast<QScriptString*>(&name_ret);
uint id_ret = id;
unsigned int sigval3 = static_cast<unsigned int>(id_ret);
2025-02-01 13:45:16 +13:00
QScriptValue* callback_return_value = miqt_exec_callback_QScriptClass_property(this, handle__property, sigval1, sigval2, sigval3);
2024-11-26 19:55:18 +13:00
return *callback_return_value;
}
// Wrapper to allow calling protected method
2025-02-01 13:45:16 +13:00
QScriptValue* virtualbase_property(QScriptValue* object, QScriptString* name, unsigned int id) {
2024-11-26 19:55:18 +13:00
return new QScriptValue(QScriptClass::property(*object, *name, static_cast<uint>(id)));
}
// cgo.Handle value for overwritten implementation
2025-02-01 13:45:16 +13:00
intptr_t handle__setProperty = 0;
2024-11-26 19:55:18 +13:00
// Subclass to allow providing a Go implementation
virtual void setProperty(QScriptValue& object, const QScriptString& name, uint id, const QScriptValue& value) override {
2025-02-01 13:45:16 +13:00
if (handle__setProperty == 0) {
2024-11-26 19:55:18 +13:00
QScriptClass::setProperty(object, name, id, value);
return;
}
QScriptValue& object_ret = object;
// Cast returned reference into pointer
QScriptValue* sigval1 = &object_ret;
const QScriptString& name_ret = name;
// Cast returned reference into pointer
QScriptString* sigval2 = const_cast<QScriptString*>(&name_ret);
uint id_ret = id;
unsigned int sigval3 = static_cast<unsigned int>(id_ret);
const QScriptValue& value_ret = value;
// Cast returned reference into pointer
QScriptValue* sigval4 = const_cast<QScriptValue*>(&value_ret);
2025-02-01 13:45:16 +13:00
miqt_exec_callback_QScriptClass_setProperty(this, handle__setProperty, sigval1, sigval2, sigval3, sigval4);
2024-11-26 19:55:18 +13:00
}
// Wrapper to allow calling protected method
2025-02-01 13:45:16 +13:00
void virtualbase_setProperty(QScriptValue* object, QScriptString* name, unsigned int id, QScriptValue* value) {
2024-11-26 19:55:18 +13:00
QScriptClass::setProperty(*object, *name, static_cast<uint>(id), *value);
}
// cgo.Handle value for overwritten implementation
2025-02-01 13:45:16 +13:00
intptr_t handle__propertyFlags = 0;
2024-11-26 19:55:18 +13:00
// Subclass to allow providing a Go implementation
virtual QScriptValue::PropertyFlags propertyFlags(const QScriptValue& object, const QScriptString& name, uint id) override {
2025-02-01 13:45:16 +13:00
if (handle__propertyFlags == 0) {
2024-11-26 19:55:18 +13:00
return QScriptClass::propertyFlags(object, name, id);
}
const QScriptValue& object_ret = object;
// Cast returned reference into pointer
QScriptValue* sigval1 = const_cast<QScriptValue*>(&object_ret);
const QScriptString& name_ret = name;
// Cast returned reference into pointer
QScriptString* sigval2 = const_cast<QScriptString*>(&name_ret);
uint id_ret = id;
unsigned int sigval3 = static_cast<unsigned int>(id_ret);
2025-02-01 13:45:16 +13:00
int callback_return_value = miqt_exec_callback_QScriptClass_propertyFlags(this, handle__propertyFlags, sigval1, sigval2, sigval3);
2024-11-26 19:55:18 +13:00
return static_cast<QScriptValue::PropertyFlags>(callback_return_value);
}
// Wrapper to allow calling protected method
2025-02-01 13:45:16 +13:00
int virtualbase_propertyFlags(QScriptValue* object, QScriptString* name, unsigned int id) {
2024-11-26 19:55:18 +13:00
QScriptValue::PropertyFlags _ret = QScriptClass::propertyFlags(*object, *name, static_cast<uint>(id));
return static_cast<int>(_ret);
}
// cgo.Handle value for overwritten implementation
2025-02-01 13:45:16 +13:00
intptr_t handle__newIterator = 0;
2024-11-26 19:55:18 +13:00
// Subclass to allow providing a Go implementation
virtual QScriptClassPropertyIterator* newIterator(const QScriptValue& object) override {
2025-02-01 13:45:16 +13:00
if (handle__newIterator == 0) {
2024-11-26 19:55:18 +13:00
return QScriptClass::newIterator(object);
}
const QScriptValue& object_ret = object;
// Cast returned reference into pointer
QScriptValue* sigval1 = const_cast<QScriptValue*>(&object_ret);
2025-02-01 13:45:16 +13:00
QScriptClassPropertyIterator* callback_return_value = miqt_exec_callback_QScriptClass_newIterator(this, handle__newIterator, sigval1);
2024-11-26 19:55:18 +13:00
return callback_return_value;
}
// Wrapper to allow calling protected method
2025-02-01 13:45:16 +13:00
QScriptClassPropertyIterator* virtualbase_newIterator(QScriptValue* object) {
2024-11-26 19:55:18 +13:00
return QScriptClass::newIterator(*object);
}
// cgo.Handle value for overwritten implementation
2025-02-01 13:45:16 +13:00
intptr_t handle__prototype = 0;
2024-11-26 19:55:18 +13:00
// Subclass to allow providing a Go implementation
virtual QScriptValue prototype() const override {
2025-02-01 13:45:16 +13:00
if (handle__prototype == 0) {
2024-11-26 19:55:18 +13:00
return QScriptClass::prototype();
}
2025-02-01 13:45:16 +13:00
QScriptValue* callback_return_value = miqt_exec_callback_QScriptClass_prototype(this, handle__prototype);
2024-11-26 19:55:18 +13:00
return *callback_return_value;
}
// Wrapper to allow calling protected method
2025-02-01 13:45:16 +13:00
QScriptValue* virtualbase_prototype() const {
2024-11-26 19:55:18 +13:00
return new QScriptValue(QScriptClass::prototype());
}
// cgo.Handle value for overwritten implementation
2025-02-01 13:45:16 +13:00
intptr_t handle__name = 0;
2024-11-26 19:55:18 +13:00
// Subclass to allow providing a Go implementation
virtual QString name() const override {
2025-02-01 13:45:16 +13:00
if (handle__name == 0) {
2024-11-26 19:55:18 +13:00
return QScriptClass::name();
}
2025-02-01 13:45:16 +13:00
struct miqt_string callback_return_value = miqt_exec_callback_QScriptClass_name(this, handle__name);
2024-11-26 19:55:18 +13:00
QString callback_return_value_QString = QString::fromUtf8(callback_return_value.data, callback_return_value.len);
return callback_return_value_QString;
}
// Wrapper to allow calling protected method
2025-02-01 13:45:16 +13:00
struct miqt_string virtualbase_name() const {
2024-11-26 19:55:18 +13:00
QString _ret = QScriptClass::name();
// Convert QString from UTF-16 in C++ RAII memory to UTF-8 in manually-managed C memory
QByteArray _b = _ret.toUtf8();
struct miqt_string _ms;
_ms.len = _b.length();
_ms.data = static_cast<char*>(malloc(_ms.len));
memcpy(_ms.data, _b.data(), _ms.len);
return _ms;
}
// cgo.Handle value for overwritten implementation
2025-02-01 13:45:16 +13:00
intptr_t handle__supportsExtension = 0;
2024-11-26 19:55:18 +13:00
// Subclass to allow providing a Go implementation
virtual bool supportsExtension(QScriptClass::Extension extension) const override {
2025-02-01 13:45:16 +13:00
if (handle__supportsExtension == 0) {
2024-11-26 19:55:18 +13:00
return QScriptClass::supportsExtension(extension);
}
QScriptClass::Extension extension_ret = extension;
int sigval1 = static_cast<int>(extension_ret);
2025-02-01 13:45:16 +13:00
bool callback_return_value = miqt_exec_callback_QScriptClass_supportsExtension(this, handle__supportsExtension, sigval1);
2024-11-26 19:55:18 +13:00
return callback_return_value;
}
// Wrapper to allow calling protected method
2025-02-01 13:45:16 +13:00
bool virtualbase_supportsExtension(int extension) const {
2024-11-26 19:55:18 +13:00
return QScriptClass::supportsExtension(static_cast<QScriptClass::Extension>(extension));
}
// cgo.Handle value for overwritten implementation
2025-02-01 13:45:16 +13:00
intptr_t handle__extension = 0;
2024-11-26 19:55:18 +13:00
// Subclass to allow providing a Go implementation
virtual QVariant extension(QScriptClass::Extension extension, const QVariant& argument) override {
2025-02-01 13:45:16 +13:00
if (handle__extension == 0) {
2024-11-26 19:55:18 +13:00
return QScriptClass::extension(extension, argument);
}
QScriptClass::Extension extension_ret = extension;
int sigval1 = static_cast<int>(extension_ret);
const QVariant& argument_ret = argument;
// Cast returned reference into pointer
QVariant* sigval2 = const_cast<QVariant*>(&argument_ret);
2025-02-01 13:45:16 +13:00
QVariant* callback_return_value = miqt_exec_callback_QScriptClass_extension(this, handle__extension, sigval1, sigval2);
2024-11-26 19:55:18 +13:00
return *callback_return_value;
}
// Wrapper to allow calling protected method
2025-02-01 13:45:16 +13:00
QVariant* virtualbase_extension(int extension, QVariant* argument) {
2024-11-26 19:55:18 +13:00
return new QVariant(QScriptClass::extension(static_cast<QScriptClass::Extension>(extension), *argument));
}
};
2024-12-07 17:15:57 +13:00
QScriptClass* QScriptClass_new(QScriptEngine* engine) {
return new MiqtVirtualQScriptClass(engine);
2024-11-26 19:55:18 +13:00
}
2025-02-01 13:45:16 +13:00
QScriptEngine* QScriptClass_engine(const QScriptClass* self) {
2024-11-26 19:55:18 +13:00
return self->engine();
}
2025-02-01 13:45:16 +13:00
int QScriptClass_queryProperty(QScriptClass* self, QScriptValue* object, QScriptString* name, int flags, unsigned int* id) {
2024-11-26 19:55:18 +13:00
QScriptClass::QueryFlags _ret = self->queryProperty(*object, *name, static_cast<QScriptClass::QueryFlags>(flags), static_cast<uint*>(id));
return static_cast<int>(_ret);
}
2025-02-01 13:45:16 +13:00
QScriptValue* QScriptClass_property(QScriptClass* self, QScriptValue* object, QScriptString* name, unsigned int id) {
2024-11-26 19:55:18 +13:00
return new QScriptValue(self->property(*object, *name, static_cast<uint>(id)));
}
2025-02-01 13:45:16 +13:00
void QScriptClass_setProperty(QScriptClass* self, QScriptValue* object, QScriptString* name, unsigned int id, QScriptValue* value) {
2024-11-26 19:55:18 +13:00
self->setProperty(*object, *name, static_cast<uint>(id), *value);
}
2025-02-01 13:45:16 +13:00
int QScriptClass_propertyFlags(QScriptClass* self, QScriptValue* object, QScriptString* name, unsigned int id) {
2024-11-26 19:55:18 +13:00
QScriptValue::PropertyFlags _ret = self->propertyFlags(*object, *name, static_cast<uint>(id));
return static_cast<int>(_ret);
}
2025-02-01 13:45:16 +13:00
QScriptClassPropertyIterator* QScriptClass_newIterator(QScriptClass* self, QScriptValue* object) {
2024-11-26 19:55:18 +13:00
return self->newIterator(*object);
}
2025-02-01 13:45:16 +13:00
QScriptValue* QScriptClass_prototype(const QScriptClass* self) {
2024-11-26 19:55:18 +13:00
return new QScriptValue(self->prototype());
}
2025-02-01 13:45:16 +13:00
struct miqt_string QScriptClass_name(const QScriptClass* self) {
2024-11-26 19:55:18 +13:00
QString _ret = self->name();
// Convert QString from UTF-16 in C++ RAII memory to UTF-8 in manually-managed C memory
QByteArray _b = _ret.toUtf8();
struct miqt_string _ms;
_ms.len = _b.length();
_ms.data = static_cast<char*>(malloc(_ms.len));
memcpy(_ms.data, _b.data(), _ms.len);
return _ms;
}
2025-02-01 13:45:16 +13:00
bool QScriptClass_supportsExtension(const QScriptClass* self, int extension) {
2024-11-26 19:55:18 +13:00
return self->supportsExtension(static_cast<QScriptClass::Extension>(extension));
}
2025-02-01 13:45:16 +13:00
QVariant* QScriptClass_extension(QScriptClass* self, int extension, QVariant* argument) {
2024-11-26 19:55:18 +13:00
return new QVariant(self->extension(static_cast<QScriptClass::Extension>(extension), *argument));
}
2025-02-01 13:45:16 +13:00
bool QScriptClass_override_virtual_queryProperty(void* self, intptr_t slot) {
MiqtVirtualQScriptClass* self_cast = dynamic_cast<MiqtVirtualQScriptClass*>( (QScriptClass*)(self) );
if (self_cast == nullptr) {
return false;
}
2025-02-01 13:45:16 +13:00
self_cast->handle__queryProperty = slot;
return true;
2024-11-26 19:55:18 +13:00
}
2025-02-01 13:45:16 +13:00
int QScriptClass_virtualbase_queryProperty(void* self, QScriptValue* object, QScriptString* name, int flags, unsigned int* id) {
return ( (MiqtVirtualQScriptClass*)(self) )->virtualbase_queryProperty(object, name, flags, id);
2024-11-26 19:55:18 +13:00
}
2025-02-01 13:45:16 +13:00
bool QScriptClass_override_virtual_property(void* self, intptr_t slot) {
MiqtVirtualQScriptClass* self_cast = dynamic_cast<MiqtVirtualQScriptClass*>( (QScriptClass*)(self) );
if (self_cast == nullptr) {
return false;
}
2025-02-01 13:45:16 +13:00
self_cast->handle__property = slot;
return true;
2024-11-26 19:55:18 +13:00
}
2025-02-01 13:45:16 +13:00
QScriptValue* QScriptClass_virtualbase_property(void* self, QScriptValue* object, QScriptString* name, unsigned int id) {
return ( (MiqtVirtualQScriptClass*)(self) )->virtualbase_property(object, name, id);
2024-11-26 19:55:18 +13:00
}
2025-02-01 13:45:16 +13:00
bool QScriptClass_override_virtual_setProperty(void* self, intptr_t slot) {
MiqtVirtualQScriptClass* self_cast = dynamic_cast<MiqtVirtualQScriptClass*>( (QScriptClass*)(self) );
if (self_cast == nullptr) {
return false;
}
2025-02-01 13:45:16 +13:00
self_cast->handle__setProperty = slot;
return true;
2024-11-26 19:55:18 +13:00
}
2025-02-01 13:45:16 +13:00
void QScriptClass_virtualbase_setProperty(void* self, QScriptValue* object, QScriptString* name, unsigned int id, QScriptValue* value) {
( (MiqtVirtualQScriptClass*)(self) )->virtualbase_setProperty(object, name, id, value);
2024-11-26 19:55:18 +13:00
}
2025-02-01 13:45:16 +13:00
bool QScriptClass_override_virtual_propertyFlags(void* self, intptr_t slot) {
MiqtVirtualQScriptClass* self_cast = dynamic_cast<MiqtVirtualQScriptClass*>( (QScriptClass*)(self) );
if (self_cast == nullptr) {
return false;
}
2025-02-01 13:45:16 +13:00
self_cast->handle__propertyFlags = slot;
return true;
2024-11-26 19:55:18 +13:00
}
2025-02-01 13:45:16 +13:00
int QScriptClass_virtualbase_propertyFlags(void* self, QScriptValue* object, QScriptString* name, unsigned int id) {
return ( (MiqtVirtualQScriptClass*)(self) )->virtualbase_propertyFlags(object, name, id);
2024-11-26 19:55:18 +13:00
}
2025-02-01 13:45:16 +13:00
bool QScriptClass_override_virtual_newIterator(void* self, intptr_t slot) {
MiqtVirtualQScriptClass* self_cast = dynamic_cast<MiqtVirtualQScriptClass*>( (QScriptClass*)(self) );
if (self_cast == nullptr) {
return false;
}
2025-02-01 13:45:16 +13:00
self_cast->handle__newIterator = slot;
return true;
2024-11-26 19:55:18 +13:00
}
2025-02-01 13:45:16 +13:00
QScriptClassPropertyIterator* QScriptClass_virtualbase_newIterator(void* self, QScriptValue* object) {
return ( (MiqtVirtualQScriptClass*)(self) )->virtualbase_newIterator(object);
2024-11-26 19:55:18 +13:00
}
2025-02-01 13:45:16 +13:00
bool QScriptClass_override_virtual_prototype(void* self, intptr_t slot) {
MiqtVirtualQScriptClass* self_cast = dynamic_cast<MiqtVirtualQScriptClass*>( (QScriptClass*)(self) );
if (self_cast == nullptr) {
return false;
}
2025-02-01 13:45:16 +13:00
self_cast->handle__prototype = slot;
return true;
2024-11-26 19:55:18 +13:00
}
2025-02-01 13:45:16 +13:00
QScriptValue* QScriptClass_virtualbase_prototype(const void* self) {
return ( (const MiqtVirtualQScriptClass*)(self) )->virtualbase_prototype();
2024-11-26 19:55:18 +13:00
}
2025-02-01 13:45:16 +13:00
bool QScriptClass_override_virtual_name(void* self, intptr_t slot) {
MiqtVirtualQScriptClass* self_cast = dynamic_cast<MiqtVirtualQScriptClass*>( (QScriptClass*)(self) );
if (self_cast == nullptr) {
return false;
}
2025-02-01 13:45:16 +13:00
self_cast->handle__name = slot;
return true;
2024-11-26 19:55:18 +13:00
}
2025-02-01 13:45:16 +13:00
struct miqt_string QScriptClass_virtualbase_name(const void* self) {
return ( (const MiqtVirtualQScriptClass*)(self) )->virtualbase_name();
2024-11-26 19:55:18 +13:00
}
2025-02-01 13:45:16 +13:00
bool QScriptClass_override_virtual_supportsExtension(void* self, intptr_t slot) {
MiqtVirtualQScriptClass* self_cast = dynamic_cast<MiqtVirtualQScriptClass*>( (QScriptClass*)(self) );
if (self_cast == nullptr) {
return false;
}
2025-02-01 13:45:16 +13:00
self_cast->handle__supportsExtension = slot;
return true;
2024-11-26 19:55:18 +13:00
}
2025-02-01 13:45:16 +13:00
bool QScriptClass_virtualbase_supportsExtension(const void* self, int extension) {
return ( (const MiqtVirtualQScriptClass*)(self) )->virtualbase_supportsExtension(extension);
2024-11-26 19:55:18 +13:00
}
2025-02-01 13:45:16 +13:00
bool QScriptClass_override_virtual_extension(void* self, intptr_t slot) {
MiqtVirtualQScriptClass* self_cast = dynamic_cast<MiqtVirtualQScriptClass*>( (QScriptClass*)(self) );
if (self_cast == nullptr) {
return false;
}
2025-02-01 13:45:16 +13:00
self_cast->handle__extension = slot;
return true;
2024-11-26 19:55:18 +13:00
}
2025-02-01 13:45:16 +13:00
QVariant* QScriptClass_virtualbase_extension(void* self, int extension, QVariant* argument) {
return ( (MiqtVirtualQScriptClass*)(self) )->virtualbase_extension(extension, argument);
2024-11-26 19:55:18 +13:00
}
2025-02-01 13:45:16 +13:00
void QScriptClass_delete(QScriptClass* self) {
delete self;
2024-11-26 19:55:18 +13:00
}