servatrice/common/color.h

38 lines
No EOL
787 B
C++

#ifndef COLOR_H
#define COLOR_H
#ifdef QT_GUI_LIB
#include <QColor>
#endif
#include "pb/color.pb.h"
class Color {
private:
int value;
public:
Color(const color &other) : value(other.r() * 65536 + other.g() * 256 + other.b()) { } // TEMPORARY HACK
Color(int _value = 0) : value(_value) { }
Color(int r, int g, int b) : value(r * 65536 + g * 256 + b) { }
int getValue() const { return value; }
#ifdef QT_GUI_LIB
Color(const QColor &_color)
{
value = _color.red() * 65536 + _color.green() * 256 + _color.blue();
}
QColor getQColor() const
{
return QColor(value / 65536, (value % 65536) / 256, value % 256);
}
#endif
color get_color() const // HACK
{
color c;
c.set_r(value / 65536);
c.set_g((value % 65536) / 256);
c.set_b(value % 256);
return c;
}
};
#endif