M3 specific definitions moved to M3 classes

This commit is contained in:
Uwe Rathmann 2024-11-20 11:00:17 +01:00
parent 97e3ea6e1f
commit 1e383406e2
5 changed files with 12 additions and 8 deletions

View File

@ -906,6 +906,7 @@ void Editor::setupSlider()
{
using A = QskAspect;
using Q = QskSlider;
using SK = QskMaterial3SliderSkinlet;
const auto extentGroove = 16_dp;
const auto extentPanel = 44_dp;
@ -932,10 +933,9 @@ void Editor::setupSlider()
setGradient( Q::Ticks, m_pal.primary );
setGradient( Q::Ticks | Q::Disabled, m_pal.onSurface );
setGradient( Q::Ticks | Q::Filled, m_pal.secondaryContainer );
setGradient( Q::Ticks | Q::Filled, m_pal.secondaryContainer,
{ QskStateCombination::Combination, Q::Focused | Q::Pressed } );
setGradient( Q::Ticks | Q::Filled | Q::Disabled, m_pal.inverseOnSurface );
setGradient( Q::Ticks | SK::Filled, m_pal.secondaryContainer,
{ QskStateCombination::CombinationNoState, Q::Focused | Q::Pressed } );
setGradient( Q::Ticks | SK::Filled | Q::Disabled, m_pal.inverseOnSurface );
for ( const auto variation : { A::Horizontal, A::Vertical } )
{

View File

@ -11,6 +11,9 @@
#include <qmath.h>
// the color of stop indicators is different, when being on top of the filling
QSK_SYSTEM_STATE( QskMaterial3SliderSkinlet, Filled, QskAspect::FirstUserState >> 1 )
using Q = QskSlider;
static inline bool qskHasOrigin( const QskSlider* )
@ -18,7 +21,7 @@ static inline bool qskHasOrigin( const QskSlider* )
return false; // TODO
}
qreal qskTickValue( const QskSlider* slider, int index )
static inline qreal qskTickValue( const QskSlider* slider, int index )
{
if( slider->snap() )
return slider->minimum() + index * slider->stepSize();
@ -206,7 +209,7 @@ QskAspect::States QskMaterial3SliderSkinlet::sampleStates(
{
const auto slider = static_cast< const QskSlider* >( skinnable );
if ( qskTickValue( slider, index ) <= slider->value() )
states |= Q::Filled;
states |= QskMaterial3SliderSkinlet::Filled;
}
return states;

View File

@ -15,6 +15,8 @@ class QskMaterial3SliderSkinlet : QskSliderSkinlet
using Inherited = QskSliderSkinlet;
public:
QSK_STATES( Filled )
Q_INVOKABLE QskMaterial3SliderSkinlet( QskSkin* = nullptr );
QRectF subControlRect( const QskSkinnable*,

View File

@ -17,7 +17,6 @@ QSK_SUBCONTROL( QskSlider, Ticks )
QSK_SUBCONTROL( QskSlider, Handle )
QSK_SYSTEM_STATE( QskSlider, Pressed, QskAspect::FirstSystemState << 2 )
QSK_SYSTEM_STATE( QskSlider, Filled, QskAspect::FirstSystemState << 3 )
class QskSlider::PrivateData
{

View File

@ -26,7 +26,7 @@ class QSK_EXPORT QskSlider : public QskBoundedValueInput
public:
QSK_SUBCONTROLS( Panel, Groove, Fill, Scale, Ticks, Handle )
QSK_STATES( Pressed, Filled )
QSK_STATES( Pressed )
explicit QskSlider( QQuickItem* parent = nullptr );
explicit QskSlider( Qt::Orientation, QQuickItem* parent = nullptr );