#include "QskSwitchButton.h"
QSK_SUBCONTROL( QskSwitchButton, Handle )
QSK_SUBCONTROL( QskSwitchButton, Groove )
QSK_SUBCONTROL( QskSwitchButton, Ripple )
struct QskSwitchButton::PrivateData
{
PrivateData( Qt::Orientation orientation )
: orientation( orientation )
{
}
bool inverted = false;
Qt::Orientation orientation;
};
QskSwitchButton::QskSwitchButton( QQuickItem* parent )
: QskSwitchButton( Qt::Horizontal, parent )
{
}
QskSwitchButton::QskSwitchButton( Qt::Orientation orientation, QQuickItem* parent )
: QskAbstractButton( parent )
, m_data( new PrivateData( orientation ) )
{
initSizePolicy( QskSizePolicy::Fixed, QskSizePolicy::Fixed );
}
QskSwitchButton::~QskSwitchButton()
{
}
bool QskSwitchButton::isCheckable() const
{
return true;
}
Qt::Orientation QskSwitchButton::orientation() const
{
return m_data->orientation;
}
void QskSwitchButton::setOrientation( Qt::Orientation orientation )
{
if( m_data->orientation != orientation )
{
m_data->orientation = orientation;
resetImplicitSize();
update();
Q_EMIT orientationChanged( orientation );
}
}
bool QskSwitchButton::isInverted() const
{
return m_data->inverted;
}
void QskSwitchButton::setInverted( bool on )
{
if( m_data->inverted != on )
{
m_data->inverted = on;
resetImplicitSize(); // in case the size hints depend on it
update();
Q_EMIT invertedChanged( on );
}
}
QskAspect::Placement QskSwitchButton::effectivePlacement() const
{
/*
So you can define different hints depending on the orientation,
but what about the layoutDirection ???
*/
return static_cast< QskAspect::Placement >( m_data->orientation );
}
#include "moc_QskSwitchButton.cpp"
Updated on 28 July 2023 at 14:02:30 CEST