menu item states instead of own API

This commit is contained in:
Peter Hartmann 2021-03-26 13:47:09 +01:00
parent aa6d3eba1b
commit dd124afcf1
3 changed files with 6 additions and 20 deletions

View File

@ -12,6 +12,8 @@ QSK_SUBCONTROL( MenuBarGraphicLabel, Graphic )
QSK_SUBCONTROL( MenuBarLabel, Text ) QSK_SUBCONTROL( MenuBarLabel, Text )
QSK_SUBCONTROL( MenuItem, Panel ) QSK_SUBCONTROL( MenuItem, Panel )
QSK_STATE( MenuItem, Active, ( QskAspect::FirstUserState << 1 ) )
MenuItem::MenuItem( const QString& name, QQuickItem* parent ) : QskLinearBox( Qt::Horizontal, parent ), MenuItem::MenuItem( const QString& name, QQuickItem* parent ) : QskLinearBox( Qt::Horizontal, parent ),
m_name( name ) m_name( name )
{ {
@ -43,23 +45,6 @@ QskAspect::Subcontrol MenuItem::effectiveSubcontrol( QskAspect::Subcontrol subCo
return subControl; return subControl;
} }
void MenuItem::setActive( bool active )
{
QColor color;
if( active )
{
color = Qt::white;
color.setAlphaF( 0.14 );
}
else
{
color = Qt::transparent;
}
setBackgroundColor( color );
}
QSK_SUBCONTROL( MenuBar, Panel ) QSK_SUBCONTROL( MenuBar, Panel )
@ -85,7 +70,7 @@ MenuBar::MenuBar( QQuickItem* parent ) : QskLinearBox( Qt::Vertical, parent )
m_entries.append( entry ); m_entries.append( entry );
} }
m_entries.at( m_activeEntry )->setActive( true ); m_entries.at( m_activeEntry )->setSkinState( MenuItem::Active );
addSpacer( 0, 1 ); // fill the space at the bottom addSpacer( 0, 1 ); // fill the space at the bottom

View File

@ -59,13 +59,12 @@ class MenuItem : public QskLinearBox
public: public:
QSK_SUBCONTROLS( Panel ) QSK_SUBCONTROLS( Panel )
QSK_STATES( Active )
MenuItem( const QString& name, QQuickItem* parent ); MenuItem( const QString& name, QQuickItem* parent );
QskAspect::Subcontrol effectiveSubcontrol( QskAspect::Subcontrol subControl ) const override final; QskAspect::Subcontrol effectiveSubcontrol( QskAspect::Subcontrol subControl ) const override final;
void setActive( bool active );
private: private:
QString m_name; QString m_name;
bool m_isActive = false; bool m_isActive = false;

View File

@ -68,6 +68,8 @@ void Skin::initHints( const Palette& palette )
QColor color( Qt::white ); QColor color( Qt::white );
color.setAlphaF( 0.09 ); color.setAlphaF( 0.09 );
ed.setGradient( MenuItem::Panel | QskControl::Hovered, color ); ed.setGradient( MenuItem::Panel | QskControl::Hovered, color );
color.setAlphaF( 0.14 );
ed.setGradient( MenuItem::Panel | MenuItem::Active, color );
ed.setColor( MenuBarLabel::Text, Qt::white ); ed.setColor( MenuBarLabel::Text, Qt::white );
ed.setFontRole( MenuBarLabel::Text, QskSkin::SmallFont ); ed.setFontRole( MenuBarLabel::Text, QskSkin::SmallFont );