Qsk::Position removed ( Qt::Edge is good enough )

This commit is contained in:
Uwe Rathmann 2022-04-17 13:19:33 +02:00
parent d0b926b868
commit df31b57e7c
3 changed files with 47 additions and 71 deletions

View File

@ -26,21 +26,6 @@ static void qskRegisterBoxBorderColors()
Q_CONSTRUCTOR_FUNCTION( qskRegisterBoxBorderColors ) Q_CONSTRUCTOR_FUNCTION( qskRegisterBoxBorderColors )
static inline void qskSetGradients( const QskGradient& gradient, QskGradient* gradients )
{
gradients[ 0 ] = gradients[ 1 ] = gradients[ 2 ] = gradients[ 3 ] = gradient;
}
static inline void qskSetGradients(
const QskGradient& left, const QskGradient& top,
const QskGradient& right, const QskGradient& bottom, QskGradient* gradients )
{
gradients[ Qsk::Left ] = left;
gradients[ Qsk::Top ] = top;
gradients[ Qsk::Right ] = right;
gradients[ Qsk::Bottom ] = bottom;
}
QskBoxBorderColors::QskBoxBorderColors() QskBoxBorderColors::QskBoxBorderColors()
{ {
} }
@ -48,18 +33,13 @@ QskBoxBorderColors::QskBoxBorderColors()
QskBoxBorderColors::QskBoxBorderColors( QskBoxBorderColors::QskBoxBorderColors(
const QskGradient& left, const QskGradient& top, const QskGradient& left, const QskGradient& top,
const QskGradient& right, const QskGradient& bottom ) const QskGradient& right, const QskGradient& bottom )
: m_gradients { top, left, right, bottom }
{ {
qskSetGradients( left, top, right, bottom, m_gradients );
}
QskBoxBorderColors::QskBoxBorderColors( const QColor& color )
{
qskSetGradients( color, m_gradients );
} }
QskBoxBorderColors::QskBoxBorderColors( const QskGradient& gradient ) QskBoxBorderColors::QskBoxBorderColors( const QskGradient& gradient )
: m_gradients { gradient, gradient, gradient, gradient }
{ {
qskSetGradients( gradient, m_gradients );
} }
QskBoxBorderColors::~QskBoxBorderColors() QskBoxBorderColors::~QskBoxBorderColors()
@ -85,53 +65,51 @@ void QskBoxBorderColors::setAlpha( int alpha )
void QskBoxBorderColors::setGradients( const QskGradient& gradient ) void QskBoxBorderColors::setGradients( const QskGradient& gradient )
{ {
qskSetGradients( gradient, m_gradients ); m_gradients[ 0 ] = m_gradients[ 1 ] = m_gradients[ 2 ] = m_gradients[ 3 ] = gradient;
} }
void QskBoxBorderColors::setGradients( const QskGradient& left, const QskGradient& top, void QskBoxBorderColors::setGradients( const QskGradient& left, const QskGradient& top,
const QskGradient& right, const QskGradient& bottom ) const QskGradient& right, const QskGradient& bottom )
{ {
qskSetGradients( left, top, right, bottom, m_gradients ); m_gradients[ Top ] = top;
} m_gradients[ Left ] = left;
m_gradients[ Right ] = right;
void QskBoxBorderColors::setGradient( Qsk::Position position, const QskGradient& gradient ) m_gradients[ Bottom ] = bottom;
{
m_gradients[ position ] = gradient;
} }
void QskBoxBorderColors::setGradientAt( Qt::Edges edges, const QskGradient& gradient ) void QskBoxBorderColors::setGradientAt( Qt::Edges edges, const QskGradient& gradient )
{ {
if ( edges & Qt::TopEdge ) if ( edges & Qt::TopEdge )
m_gradients[ Qsk::Top ] = gradient; m_gradients[ Top ] = gradient;
if ( edges & Qt::LeftEdge ) if ( edges & Qt::LeftEdge )
m_gradients[ Qsk::Left ] = gradient; m_gradients[ Left ] = gradient;
if ( edges & Qt::RightEdge ) if ( edges & Qt::RightEdge )
m_gradients[ Qsk::Right ] = gradient; m_gradients[ Right ] = gradient;
if ( edges & Qt::BottomEdge ) if ( edges & Qt::BottomEdge )
m_gradients[ Qsk::Bottom ] = gradient; m_gradients[ Bottom ] = gradient;
} }
void QskBoxBorderColors::setLeft( const QskGradient& gradient ) void QskBoxBorderColors::setLeft( const QskGradient& gradient )
{ {
m_gradients[ Qsk::Left ] = gradient; m_gradients[ Left ] = gradient;
} }
void QskBoxBorderColors::setTop( const QskGradient& gradient ) void QskBoxBorderColors::setTop( const QskGradient& gradient )
{ {
m_gradients[ Qsk::Top ] = gradient; m_gradients[ Top ] = gradient;
} }
void QskBoxBorderColors::setRight( const QskGradient& gradient ) void QskBoxBorderColors::setRight( const QskGradient& gradient )
{ {
m_gradients[ Qsk::Right ] = gradient; m_gradients[ Right ] = gradient;
} }
void QskBoxBorderColors::setBottom( const QskGradient& gradient ) void QskBoxBorderColors::setBottom( const QskGradient& gradient )
{ {
m_gradients[ Qsk::Bottom ] = gradient; m_gradients[ Bottom ] = gradient;
} }
const QskGradient& QskBoxBorderColors::gradientAt( Qt::Edge edge ) const const QskGradient& QskBoxBorderColors::gradientAt( Qt::Edge edge ) const
@ -139,16 +117,16 @@ const QskGradient& QskBoxBorderColors::gradientAt( Qt::Edge edge ) const
switch ( edge ) switch ( edge )
{ {
case Qt::TopEdge: case Qt::TopEdge:
return m_gradients[ Qsk::Top ]; return m_gradients[ Top ];
case Qt::LeftEdge: case Qt::LeftEdge:
return m_gradients[ Qsk::Left ]; return m_gradients[ Left ];
case Qt::RightEdge: case Qt::RightEdge:
return m_gradients[ Qsk::Right ]; return m_gradients[ Right ];
case Qt::BottomEdge: case Qt::BottomEdge:
return m_gradients[ Qsk::Bottom ]; return m_gradients[ Bottom ];
} }
static QskGradient noGradient; static QskGradient noGradient;
@ -254,20 +232,22 @@ QDebug operator<<( QDebug debug, const QskBoxBorderColors& colors )
if ( colors.isMonochrome() ) if ( colors.isMonochrome() )
{ {
const auto& gradient = colors.gradient( Qsk::Left ); const auto& gradient = colors.gradientAt( Qt::LeftEdge );
QskRgb::debugColor( debug, gradient.startColor() ); QskRgb::debugColor( debug, gradient.startColor() );
} }
else else
{ {
const char prompts[] = { 'L', 'T', 'R', 'B' }; using namespace Qt;
for ( int i = 0; i <= Qsk::Bottom; i++ ) const char prompts[] = { 'L', 'T', 'R', 'B' };
const Edge edges[] = { LeftEdge, TopEdge, RightEdge, BottomEdge };
for ( int i = 0; i <= 4; i++ )
{ {
if ( i != 0 ) if ( i != 0 )
debug << ", "; debug << ", ";
const auto& gradient = colors.gradient( const auto& gradient = colors.gradientAt( edges[i] );
static_cast< Qsk::Position >( i ) );
debug << prompts[ i ] << ": "; debug << prompts[ i ] << ": ";

View File

@ -43,9 +43,6 @@ class QSK_EXPORT QskBoxBorderColors
void setGradients( const QskGradient& left, const QskGradient& top, void setGradients( const QskGradient& left, const QskGradient& top,
const QskGradient& right, const QskGradient& bottom ); const QskGradient& right, const QskGradient& bottom );
void setGradient( Qsk::Position, const QskGradient& );
const QskGradient& gradient( Qsk::Position ) const;
void setGradientAt( Qt::Edges, const QskGradient& ); void setGradientAt( Qt::Edges, const QskGradient& );
const QskGradient& gradientAt( Qt::Edge ) const; const QskGradient& gradientAt( Qt::Edge ) const;
@ -73,16 +70,29 @@ class QSK_EXPORT QskBoxBorderColors
bool isValid() const; bool isValid() const;
private: private:
enum
{
// in order of Qt::Edge
Top = 0,
Left = 1,
Right = 2,
Bottom = 3
};
QskGradient m_gradients[ 4 ]; QskGradient m_gradients[ 4 ];
}; };
inline QskBoxBorderColors::QskBoxBorderColors( Qt::GlobalColor color ) inline QskBoxBorderColors::QskBoxBorderColors( Qt::GlobalColor color )
: QskBoxBorderColors( QColor( color ) ) : QskBoxBorderColors( QskGradient( QColor( color ) ) )
{ {
} }
inline QskBoxBorderColors::QskBoxBorderColors( QRgb rgb ) inline QskBoxBorderColors::QskBoxBorderColors( QRgb rgb )
: QskBoxBorderColors( QColor::fromRgba( rgb ) ) : QskBoxBorderColors( QskGradient( QColor::fromRgba( rgb ) ) )
{
}
inline QskBoxBorderColors::QskBoxBorderColors( const QColor& color )
: QskBoxBorderColors( QskGradient( color ) )
{ {
} }
@ -91,29 +101,24 @@ inline bool QskBoxBorderColors::operator!=( const QskBoxBorderColors& other ) co
return !( *this == other ); return !( *this == other );
} }
inline const QskGradient& QskBoxBorderColors::gradient( Qsk::Position position ) const
{
return m_gradients[ position ];
}
inline const QskGradient& QskBoxBorderColors::left() const inline const QskGradient& QskBoxBorderColors::left() const
{ {
return m_gradients[ Qsk::Left ]; return m_gradients[ Left ];
} }
inline const QskGradient& QskBoxBorderColors::top() const inline const QskGradient& QskBoxBorderColors::top() const
{ {
return m_gradients[ Qsk::Top ]; return m_gradients[ Top ];
} }
inline const QskGradient& QskBoxBorderColors::right() const inline const QskGradient& QskBoxBorderColors::right() const
{ {
return m_gradients[ Qsk::Right ]; return m_gradients[ Right ];
} }
inline const QskGradient& QskBoxBorderColors::bottom() const inline const QskGradient& QskBoxBorderColors::bottom() const
{ {
return m_gradients[ Qsk::Bottom ]; return m_gradients[ Bottom ];
} }
#ifndef QT_NO_DEBUG_STREAM #ifndef QT_NO_DEBUG_STREAM

View File

@ -22,15 +22,6 @@ namespace Qsk
}; };
Q_ENUM_NS( Direction ) Q_ENUM_NS( Direction )
enum Position
{
Top,
Left,
Right,
Bottom
};
Q_ENUM_NS( Position )
enum TextStyle enum TextStyle
{ {
Normal, Normal,