70 lines
1.7 KiB
C++
70 lines
1.7 KiB
C++
|
/******************************************************************************
|
||
|
* QSkinny - Copyright (C) The authors
|
||
|
* SPDX-License-Identifier: BSD-3-Clause
|
||
|
*****************************************************************************/
|
||
|
|
||
|
#include "QskArcHints.h"
|
||
|
#include "QskRgbValue.h"
|
||
|
|
||
|
static inline qreal qskInterpolated( qreal from, qreal to, qreal ratio )
|
||
|
{
|
||
|
return from + ( to - from ) * ratio;
|
||
|
}
|
||
|
|
||
|
QskArcHints::QskArcHints()
|
||
|
{
|
||
|
}
|
||
|
|
||
|
QskArcHints::QskArcHints( const QskArcMetrics& metrics, qreal borderWidth,
|
||
|
const QColor& borderColor, const QskGradient& gradient )
|
||
|
: metrics( metrics )
|
||
|
, borderWidth( borderWidth )
|
||
|
, borderColor( borderColor )
|
||
|
, gradient( gradient )
|
||
|
{
|
||
|
}
|
||
|
|
||
|
bool QskArcHints::isVisible() const
|
||
|
{
|
||
|
if ( metrics.isNull() )
|
||
|
return false;
|
||
|
|
||
|
if ( borderWidth > 0.0 && borderColor.isValid() && borderColor.alpha() > 0 )
|
||
|
return true;
|
||
|
|
||
|
return gradient.isVisible();
|
||
|
}
|
||
|
|
||
|
QskArcHints QskArcHints::toAbsolute( const QSizeF& size ) const noexcept
|
||
|
{
|
||
|
return QskArcHints( metrics.toAbsolute( size ),
|
||
|
borderWidth, borderColor, gradient );
|
||
|
}
|
||
|
|
||
|
QskArcHints QskArcHints::interpolated(
|
||
|
const QskArcHints& to, qreal value ) const noexcept
|
||
|
{
|
||
|
return QskArcHints(
|
||
|
metrics.interpolated( to.metrics, value ),
|
||
|
qskInterpolated( borderWidth, to.borderWidth, value ),
|
||
|
QskRgb::interpolated( borderColor, to.borderColor, value ),
|
||
|
gradient.interpolated( to.gradient, value )
|
||
|
);
|
||
|
}
|
||
|
|
||
|
#ifndef QT_NO_DEBUG_STREAM
|
||
|
|
||
|
#include <qdebug.h>
|
||
|
|
||
|
QDebug operator<<( QDebug debug, const QskArcHints& hints )
|
||
|
{
|
||
|
debug << hints.metrics << hints.borderWidth
|
||
|
<< hints.borderColor << hints.gradient;
|
||
|
|
||
|
return debug;
|
||
|
}
|
||
|
|
||
|
#endif
|
||
|
|
||
|
#include "moc_QskArcHints.cpp"
|