#pragma once
#include <QtCore/QObject>
#include <QtWidgets/QSlider>
#include <QtCore/Qt>
#include "signal.h"
inline QSlider *QSlider_new(int orientation, QWidget *parent) {
auto *s = new QSlider(static_cast<Qt::Orientation>(orientation), parent);
s->setRange(0, 100);
return s;
}
inline int QSlider_value(QSlider *s) { return s->value(); }
inline void QSlider_setValue(QSlider *s, int v) { s->setValue(v); }
inline void QSlider_setRange(QSlider *s, int min, int max) {
s->setRange(min, max);
}
inline void QSlider_delete(QSlider *s) { delete s; }
inline void QSlider_onValueChanged(QSlider *s, uint64_t ctx) {
QObject::connect(s, &QSlider::valueChanged,
[ctx](int value) {
if (g_hasIntTrampoline) g_intTrampoline(ctx, value);
});
}
inline void QSlider_setOrientation(QSlider *s, int o) { s->setOrientation(static_cast<Qt::Orientation>(o)); }
inline int QSlider_orientation(QSlider *s) { return static_cast<int>(s->orientation()); }
inline void QSlider_setTickPosition(QSlider *s, int pos) { s->setTickPosition(static_cast<QSlider::TickPosition>(pos)); }
inline void QSlider_setTickInterval(QSlider *s, int interval) { s->setTickInterval(interval); }
inline bool QSlider_invertedAppearance(QSlider *s) { return s->invertedAppearance(); }