Maraiah/tycho/cc/paint.cc

90 lines
1.8 KiB
C++

#include "tycho.h"
extern "C" {
struct int2 {
qint16 x, y;
};
void paint_arc(QPainter *paint,
qint16 x,
qint16 y,
qint16 w,
qint16 h,
qint16 t,
qint16 p)
{
paint->drawArc(x, y, w, h, t, p);
}
void paint_chord(QPainter *paint,
qint16 x,
qint16 y,
qint16 w,
qint16 h,
qint16 t,
qint16 p)
{
paint->drawChord(x, y, w, h, t, p);
}
void paint_ellipse(QPainter *paint, qint16 x, qint16 y, qint16 w, qint16 h)
{
paint->drawEllipse(x, y, w, h);
}
void paint_image(QPainter *paint, qint16 x, qint16 y, char const *fname)
{
paint->drawImage(x, y, QImage(QString(fname)));
}
void paint_line(QPainter *paint, qint16 x1, qint16 y1, qint16 x2, qint16 y2)
{
paint->drawLine(x1, y1, x2, y2);
}
void paint_point(QPainter *paint, qint16 x, qint16 y)
{
paint->drawPoint(x, y);
}
void paint_polygon(QPainter *paint, int2 const *points, std::size_t len)
{
QPolygon poly;
for(auto i = 0; i < len; i++) {
poly << QPoint(points[i].x, points[i].y);
}
paint->drawPolygon(poly);
}
void paint_rect(QPainter *paint, qint16 x, qint16 y, qint16 w, qint16 h)
{
paint->drawRect(x, y, w, h);
}
void paint_squircle(QPainter *paint,
qint16 x,
qint16 y,
qint16 w,
qint16 h,
qint16 r1,
qint16 r2)
{
paint->drawRoundedRect(x, y, w, h, r1, r2);
}
void paint_text(QPainter *paint, qint16 x, qint16 y, char const *text)
{
paint->drawText(x, y, QString(text));
}
void paint_fg(QPainter *paint, quint8 r, quint8 g, quint8 b, quint8 a)
{
QColor color{r, g, b, a};
paint->setPen(color);
}
}
// EOF