9 #include <QApplication>    22 } platform_styles[] = {
    23     {
"macosx", 
false, 
false, 
true},
    24     {
"windows", 
true, 
false, 
false},
    26     {
"other", 
true, 
true, 
false}
    28 static const unsigned platform_styles_count = 
sizeof(platform_styles)/
sizeof(*platform_styles);
    33 void MakeSingleColorImage(QImage& img, 
const QColor& colorbase)
    35     img = img.convertToFormat(QImage::Format_ARGB32);
    36     for (
int x = img.width(); x--; )
    38         for (
int y = img.height(); y--; )
    40             const QRgb rgb = img.pixel(x, y);
    41             img.setPixel(x, y, qRgba(colorbase.red(), colorbase.green(), colorbase.blue(), qAlpha(rgb)));
    46 QIcon ColorizeIcon(
const QIcon& ico, 
const QColor& colorbase)
    49     for (
const QSize& sz : ico.availableSizes())
    51         QImage img(ico.pixmap(sz).toImage());
    52         MakeSingleColorImage(img, colorbase);
    53         new_ico.addPixmap(QPixmap::fromImage(img));
    58 QImage ColorizeImage(
const QString& filename, 
const QColor& colorbase)
    61     MakeSingleColorImage(img, colorbase);
    65 QIcon ColorizeIcon(
const QString& filename, 
const QColor& colorbase)
    67     return QIcon(QPixmap::fromImage(ColorizeImage(filename, colorbase)));
    83         const QColor colorHighlightBg(QApplication::palette().color(QPalette::Highlight));
    84         const QColor colorHighlightFg(QApplication::palette().color(QPalette::HighlightedText));
    85         const QColor colorText(QApplication::palette().color(QPalette::WindowText));
    86         const int colorTextLightness = colorText.lightness();
    88         if (abs(colorHighlightBg.lightness() - colorTextLightness) < abs(colorHighlightFg.lightness() - colorTextLightness))
    89             colorbase = colorHighlightBg;
    91             colorbase = colorHighlightFg;
    95     textColor = QColor(QApplication::palette().color(QPalette::WindowText));
   101         return QImage(filename);
   108         return QIcon(filename);
   121     return ColorizeIcon(filename, 
TextColor());
   131     for (
unsigned x=0; x<platform_styles_count; ++x)