QskBoxBorderMetrics::adjustedRect added

This commit is contained in:
Uwe Rathmann 2022-12-04 19:50:54 +01:00
parent ac73161e33
commit ad8cfbb694
2 changed files with 12 additions and 0 deletions

View File

@ -7,6 +7,7 @@
#include <qhashfunctions.h> #include <qhashfunctions.h>
#include <qvariant.h> #include <qvariant.h>
#include <qrect.h>
static void qskRegisterBoxBorderMetrics() static void qskRegisterBoxBorderMetrics()
{ {
@ -79,6 +80,15 @@ QskBoxBorderMetrics QskBoxBorderMetrics::toAbsolute( const QSizeF& size ) const
return absoluted; return absoluted;
} }
QRectF QskBoxBorderMetrics::adjustedRect( const QRectF& rect ) const
{
if ( m_sizeMode == Qt::AbsoluteSize )
return rect.marginsRemoved( m_widths );
const auto m = toAbsolute( rect.size() );
return rect.marginsRemoved( m.m_widths );
}
QskBoxBorderMetrics QskBoxBorderMetrics::interpolated( QskBoxBorderMetrics QskBoxBorderMetrics::interpolated(
const QskBoxBorderMetrics& to, qreal ratio ) const noexcept const QskBoxBorderMetrics& to, qreal ratio ) const noexcept
{ {

View File

@ -77,6 +77,8 @@ class QSK_EXPORT QskBoxBorderMetrics
constexpr bool isEquidistant() const noexcept; constexpr bool isEquidistant() const noexcept;
QRectF adjustedRect( const QRectF& )const ;
private: private:
QskMargins m_widths; QskMargins m_widths;
Qt::SizeMode m_sizeMode; Qt::SizeMode m_sizeMode;