The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
#include <qcolor.h>

struct QColor {
    enum Spec { Rgb, Hsv };
    QColor();
    QColor(const QString &);
    QColor(const QColor &);
    QColor(QRgb, uint = 0xffffffff);
    QColor(int, int, int);
    QColor(int, int, int, QColor::Spec);
    QColor &operator = (const QColor &);
    bool operator == (const QColor &) const;
    bool operator != (const QColor &) const;
    const char *{serial} operator << () const : pig_serialize($this);
    void operator >> (const char *{serial}) : pig_deserialize($this, $1);
    uint alloc();
    int blue() const;
    static int blue(QRgb) : qBlue($0);
    static int currentAllocContext();
    QColor dark(int = 200) const;
    static void destroyAllocContext(int);
    static int enterAllocContext();
    void getHsv(int &, int &, int &) const;
    int green() const;
    static int green(QRgb) : qGreen($0);
    void hsv(int *, int *, int *) const;
    bool isDirty() const;
    bool isValid() const;
    static bool lazyAlloc();
    static void leaveAllocContext();
    QColor light(int = 150) const;
    static int maxColors();
    static int numBitPlanes();
    uint pixel() const;
    int red() const;
    static int red(QRgb) : qRed($0);
    QRgb rgb() const;
    static QRgb rgb(int, int, int) : qRgb($0, $1, $2);
    void rgb(int *, int *, int *) const;
    static void setLazyAlloc(bool);
    void setHsv(int, int, int);
    void setNamedColor(const QString &);
    void setRgb(QRgb);
    void setRgb(int, int, int);
} Qt::Color;