qskinny/src/common/QskTextColors.cpp

70 lines
1.7 KiB
C++
Raw Normal View History

2017-10-20 20:26:14 +02:00
/******************************************************************************
* QSkinny - Copyright (C) 2016 Uwe Rathmann
* This file may be used under the terms of the QSkinny License, Version 1.0
*****************************************************************************/
#include "QskTextColors.h"
#include "QskRgbValue.h"
#include <qhashfunctions.h>
2018-08-03 08:15:28 +02:00
#include <qvariant.h>
2017-10-20 20:26:14 +02:00
uint QskTextColors::hash( uint seed ) const
{
2018-08-03 08:15:28 +02:00
const QRgb rgb[] = { textColor.rgba(), styleColor.rgba(), linkColor.rgba() };
2017-10-20 20:26:14 +02:00
return qHashBits( rgb, sizeof( rgb ), seed );
}
QskTextColors QskTextColors::interpolated(
const QskTextColors& to, qreal ratio ) const
{
QskTextColors colors;
2020-08-15 13:29:17 +02:00
colors.textColor = QskRgb::interpolated( textColor, to.textColor, ratio );
colors.styleColor = QskRgb::interpolated( styleColor, to.styleColor, ratio );
colors.linkColor = QskRgb::interpolated( linkColor, to.linkColor, ratio );
2017-10-20 20:26:14 +02:00
return colors;
}
2018-08-03 08:15:28 +02:00
QVariant QskTextColors::interpolate(
const QskTextColors& from, const QskTextColors& to, qreal ratio )
2017-10-20 20:26:14 +02:00
{
return QVariant::fromValue( from.interpolated( to, ratio ) );
}
#ifndef QT_NO_DEBUG_STREAM
2018-07-19 14:10:48 +02:00
#include <qdebug.h>
2017-10-20 20:26:14 +02:00
static inline void qskDebugColor( QDebug debug, const QColor& c )
{
debug << '('
<< c.red() << ','
<< c.green() << ','
<< c.blue() << ','
<< c.alpha() << ')';
}
QDebug operator<<( QDebug debug, const QskTextColors& colors )
{
QDebugStateSaver saver( debug );
debug.nospace();
debug << "TextColors" << '(';
debug << " T";
qskDebugColor( debug, colors.textColor );
debug << ", S";
qskDebugColor( debug, colors.styleColor );
debug << ", L";
qskDebugColor( debug, colors.linkColor );
debug << " )";
return debug;
}
#endif