qt-material-widgets/components/qtmaterialmenuitem_internal.h

48 lines
1.1 KiB
C++

#ifndef QTMATERIALMENUITEM_INTERNAL_H
#define QTMATERIALMENUITEM_INTERNAL_H
#include <QStateMachine>
#include <QColor>
#include "qtmaterialmenuitem.h"
class QtMaterialMenuItem;
class QtMaterialMenuItemStateMachine : public QStateMachine
{
Q_OBJECT
Q_PROPERTY(QColor foregroundColor READ foregroundColor WRITE setForegroundColor)
public:
explicit QtMaterialMenuItemStateMachine(QtMaterialMenuItem *menuItem);
~QtMaterialMenuItemStateMachine();
inline void setForegroundColor(const QColor &color);
inline QColor foregroundColor() const;
signals:
void highlight();
void unhighlight();
private:
Q_DISABLE_COPY(QtMaterialMenuItemStateMachine)
QtMaterialMenuItem *const m_menuItem;
QState *const m_defaultState;
QState *const m_highlightedState;
QColor m_foregroundColor;
};
inline void QtMaterialMenuItemStateMachine::setForegroundColor(const QColor &color)
{
m_foregroundColor = color;
m_menuItem->update();
}
inline QColor QtMaterialMenuItemStateMachine::foregroundColor() const
{
return m_foregroundColor;
}
#endif // QTMATERIALMENUITEM_INTERNAL_H