code simplified
This commit is contained in:
parent
68d02006f4
commit
f45946726f
|
@ -6,31 +6,12 @@
|
||||||
#include "QskRadioBoxSkinlet.h"
|
#include "QskRadioBoxSkinlet.h"
|
||||||
|
|
||||||
#include "QskRadioBox.h"
|
#include "QskRadioBox.h"
|
||||||
#include "QskSkinStateChanger.h"
|
|
||||||
#include "QskFunctions.h"
|
#include "QskFunctions.h"
|
||||||
|
|
||||||
#include <qfontmetrics.h>
|
#include <qfontmetrics.h>
|
||||||
|
|
||||||
namespace
|
namespace
|
||||||
{
|
{
|
||||||
QskAspect::States statesForIndex( const QskRadioBox* radioBox, int index )
|
|
||||||
{
|
|
||||||
using Q = QskRadioBox;
|
|
||||||
|
|
||||||
auto states = radioBox->skinStates();
|
|
||||||
|
|
||||||
if( radioBox->selectedIndex() == index )
|
|
||||||
states |= Q::Selected;
|
|
||||||
|
|
||||||
if( radioBox->pressedIndex() == index )
|
|
||||||
states |= Q::Pressed;
|
|
||||||
|
|
||||||
if( radioBox->positionHint( Q::Ripple ) == index )
|
|
||||||
states |= Q::Focused;
|
|
||||||
|
|
||||||
return states;
|
|
||||||
}
|
|
||||||
|
|
||||||
qreal lineHeight( const QskRadioBox* radioBox )
|
qreal lineHeight( const QskRadioBox* radioBox )
|
||||||
{
|
{
|
||||||
using Q = QskRadioBox;
|
using Q = QskRadioBox;
|
||||||
|
@ -126,17 +107,7 @@ QSGNode* QskRadioBoxSkinlet::updateSubNode( const QskSkinnable* skinnable,
|
||||||
return updateSeriesNode( skinnable, Q::Text, node );
|
return updateSeriesNode( skinnable, Q::Text, node );
|
||||||
|
|
||||||
case RippleRole:
|
case RippleRole:
|
||||||
{
|
return updateBoxNode( skinnable, node, Q::Ripple );
|
||||||
auto radioBox = static_cast< const QskRadioBox* >( skinnable );
|
|
||||||
|
|
||||||
#if 1
|
|
||||||
QskSkinStateChanger changer( radioBox );
|
|
||||||
auto ripplePosition = radioBox->positionHint( Q::Ripple );
|
|
||||||
changer.setStates( statesForIndex( radioBox, ripplePosition ) );
|
|
||||||
#endif
|
|
||||||
|
|
||||||
return updateBoxNode( radioBox, node, Q::Ripple );
|
|
||||||
}
|
|
||||||
};
|
};
|
||||||
|
|
||||||
return Inherited::updateSubNode( skinnable, nodeRole, node );
|
return Inherited::updateSubNode( skinnable, nodeRole, node );
|
||||||
|
@ -232,13 +203,29 @@ QRectF QskRadioBoxSkinlet::sampleRect( const QskSkinnable* skinnable,
|
||||||
return QRectF();
|
return QRectF();
|
||||||
}
|
}
|
||||||
|
|
||||||
QskAspect::States QskRadioBoxSkinlet::sampleStates( const QskSkinnable* skinnable,
|
QskAspect::States QskRadioBoxSkinlet::sampleStates(
|
||||||
QskAspect::Subcontrol subControl, int index ) const
|
const QskSkinnable* skinnable, QskAspect::Subcontrol, int index ) const
|
||||||
{
|
{
|
||||||
auto radioBox = static_cast< const QskRadioBox* >( skinnable );
|
using Q = QskRadioBox;
|
||||||
auto states = Inherited::sampleStates( skinnable, subControl, index );
|
|
||||||
|
|
||||||
return states | statesForIndex( radioBox, index );
|
auto radioBox = static_cast< const QskRadioBox* >( skinnable );
|
||||||
|
|
||||||
|
auto states = radioBox->skinStates();
|
||||||
|
|
||||||
|
if( radioBox->selectedIndex() == index )
|
||||||
|
states |= Q::Selected;
|
||||||
|
|
||||||
|
if( radioBox->pressedIndex() == index )
|
||||||
|
states |= Q::Pressed;
|
||||||
|
|
||||||
|
#if 1
|
||||||
|
if( radioBox->positionHint( Q::Ripple ) == index )
|
||||||
|
states |= Q::Focused;
|
||||||
|
else
|
||||||
|
states &= ~Q::Focused;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
return states;
|
||||||
}
|
}
|
||||||
|
|
||||||
QSGNode* QskRadioBoxSkinlet::updateSampleNode( const QskSkinnable* skinnable,
|
QSGNode* QskRadioBoxSkinlet::updateSampleNode( const QskSkinnable* skinnable,
|
||||||
|
|
Loading…
Reference in New Issue