diff --git a/src/controls/QskRadioBox.cpp b/src/controls/QskRadioBox.cpp index 143aad36..95edfc01 100644 --- a/src/controls/QskRadioBox.cpp +++ b/src/controls/QskRadioBox.cpp @@ -66,6 +66,10 @@ int QskRadioBox::focusedIndex() const { return m_data->focusedIndex; } +int QskRadioBox::pressedIndex() const { + return m_data->pressedIndex; +} + void QskRadioBox::setSelectedIndex( int index ) { if( index == m_data->selectedIndex || index >= m_data->items.count() ) { diff --git a/src/controls/QskRadioBox.h b/src/controls/QskRadioBox.h index 3a1a5fe5..59693698 100644 --- a/src/controls/QskRadioBox.h +++ b/src/controls/QskRadioBox.h @@ -29,9 +29,10 @@ class QSK_EXPORT QskRadioBox : public QskControl QskRadioBox( const QStringList&, QQuickItem* parent = nullptr ); QskRadioBox( const QStringList&, int, QQuickItem* parent = nullptr ); - int selectedIndex() const; const QStringList& items() const; + int selectedIndex() const; int focusedIndex() const; + int pressedIndex() const; public Q_SLOTS: void setSelectedIndex( int ); diff --git a/src/controls/QskRadioBoxSkinlet.cpp b/src/controls/QskRadioBoxSkinlet.cpp index 60b46e18..bfafbc07 100644 --- a/src/controls/QskRadioBoxSkinlet.cpp +++ b/src/controls/QskRadioBoxSkinlet.cpp @@ -170,7 +170,15 @@ QskAspect::States QskRadioBoxSkinlet::sampleStates( const QskSkinnable* skinnabl auto states = Inherited::sampleStates( skinnable, subControl, index ); if( radio->selectedIndex() == index ) { - return states | Q::Selected; + states |= Q::Selected; + } + + if( radio->pressedIndex() == index ) { + states |= Q::Pressed; + } + + if( radio->focusedIndex() == index ) { + states |= Q::Focused; } return states;