vbuttonmenuitem.h 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. #ifndef VBUTTONMENUITEM_H
  2. #define VBUTTONMENUITEM_H
  3. #include <QPushButton>
  4. #include <QColor>
  5. #include <QFontMetrics>
  6. class QAction;
  7. class QPaintEvent;
  8. class VButtonMenuItem : public QPushButton
  9. {
  10. Q_OBJECT
  11. public:
  12. explicit VButtonMenuItem(QAction *p_action, QWidget *p_parent = nullptr);
  13. VButtonMenuItem(QAction *p_action, const QString &p_text, QWidget *p_parent = nullptr);
  14. VButtonMenuItem(QAction *p_action,
  15. const QIcon &p_icon,
  16. const QString &p_text,
  17. const QString &p_decorationText = QString(),
  18. const QString &p_decorationTextFg = QString(),
  19. QWidget *p_parent = nullptr);
  20. QSize sizeHint() const Q_DECL_OVERRIDE;
  21. protected:
  22. void paintEvent(QPaintEvent *p_event) Q_DECL_OVERRIDE;
  23. private:
  24. void init();
  25. QAction *m_action;
  26. // Decoration text drawn at the right end.
  27. QString m_decorationText;
  28. // Decoration text foreground.
  29. QColor m_decorationTextFg;
  30. // Width in pixels of the decoration text.
  31. int m_decorationWidth;
  32. QFontMetrics m_decorationFM;
  33. };
  34. #endif // VBUTTONMENUITEM_H