diff --git a/src/common/QskRgbValue.cpp b/src/common/QskRgbValue.cpp index 5dcb8b45..0b76f42f 100644 --- a/src/common/QskRgbValue.cpp +++ b/src/common/QskRgbValue.cpp @@ -153,3 +153,22 @@ QRgb QskRgbValue::rgb( Qt::GlobalColor color ) return rgbValues[ color ]; } + +QRgb QskRgbValue::lighter( QRgb rgb, int factor ) noexcept +{ + if ( factor <= 0 ) + return rgb; + + // guess we can find a faster implementation without using QColor TODO ... + return QColor::fromRgba( rgb ).lighter( factor ).rgba(); +} + +QRgb QskRgbValue::darker( QRgb rgb, int factor ) noexcept +{ + if ( factor <= 0 ) + return rgb; + + // guess we can find a faster implementation without using QColor TODO ... + return QColor::fromRgba( rgb ).darker( factor ).rgba(); +} + diff --git a/src/common/QskRgbValue.h b/src/common/QskRgbValue.h index 28926b50..48e4e7b5 100644 --- a/src/common/QskRgbValue.h +++ b/src/common/QskRgbValue.h @@ -437,7 +437,7 @@ namespace QskRgbValue { -#define RGB( name, value ) static constexpr const unsigned int name = value; +#define RGB( name, value ) static constexpr const QRgb name = value; QSK_RGB_VALUES #undef RGB @@ -460,6 +460,9 @@ namespace QskRgbValue { return ( rgb & ColorMask ) | ( ( static_cast< uint >( alpha ) & 0xffu ) << 24 ); } + + QSK_EXPORT QRgb lighter( QRgb, int factor = 150 ) noexcept; + QSK_EXPORT QRgb darker( QRgb, int factor = 200 ) noexcept; } #endif