miqt/qt6/gen_qcolormap.cpp
Jacek Sieka a0c6344ecd Avoid dependency on exported go header
The expected type of the callback is already known from the AST - this
change reduces dependency on cgo specifics and makes the generated C ABI
entirely cgo-independent - in particular, there is no need to include
`_cgo_export.h` any more.
2025-01-07 12:55:40 +01:00

82 lines
1.8 KiB
C++

#include <QColor>
#include <QColormap>
#include <QList>
#include <qcolormap.h>
#include "gen_qcolormap.h"
#ifdef __cplusplus
extern "C" {
#endif
#ifdef __cplusplus
} /* extern C */
#endif
QColormap* QColormap_new(QColormap* colormap) {
return new QColormap(*colormap);
}
void QColormap_Initialize() {
QColormap::initialize();
}
void QColormap_Cleanup() {
QColormap::cleanup();
}
QColormap* QColormap_Instance() {
return new QColormap(QColormap::instance());
}
void QColormap_OperatorAssign(QColormap* self, QColormap* colormap) {
self->operator=(*colormap);
}
int QColormap_Mode(const QColormap* self) {
QColormap::Mode _ret = self->mode();
return static_cast<int>(_ret);
}
int QColormap_Depth(const QColormap* self) {
return self->depth();
}
int QColormap_Size(const QColormap* self) {
return self->size();
}
unsigned int QColormap_Pixel(const QColormap* self, QColor* color) {
uint _ret = self->pixel(*color);
return static_cast<unsigned int>(_ret);
}
QColor* QColormap_ColorAt(const QColormap* self, unsigned int pixel) {
return new QColor(self->colorAt(static_cast<uint>(pixel)));
}
struct miqt_array /* of QColor* */ QColormap_Colormap(const QColormap* self) {
const QList<QColor> _ret = self->colormap();
// Convert QList<> from C++ memory to manually-managed C memory
QColor** _arr = static_cast<QColor**>(malloc(sizeof(QColor*) * _ret.length()));
for (size_t i = 0, e = _ret.length(); i < e; ++i) {
_arr[i] = new QColor(_ret[i]);
}
struct miqt_array _out;
_out.len = _ret.length();
_out.data = static_cast<void*>(_arr);
return _out;
}
QColormap* QColormap_Instance1(int screen) {
return new QColormap(QColormap::instance(static_cast<int>(screen)));
}
void QColormap_Delete(QColormap* self, bool isSubclass) {
if (isSubclass) {
delete dynamic_cast<QColormap*>( self );
} else {
delete self;
}
}