qtmaterialcheckable_internal.h 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  1. #ifndef QTMATERIALCHECKABLE_INTERNAL_H
  2. #define QTMATERIALCHECKABLE_INTERNAL_H
  3. #include <QtWidgets/QWidget>
  4. #include <QColor>
  5. #include <QIcon>
  6. class QtMaterialCheckable;
  7. class QtMaterialCheckableIcon : public QWidget
  8. {
  9. Q_OBJECT
  10. Q_PROPERTY(QColor color READ color WRITE setColor)
  11. Q_PROPERTY(qreal iconSize READ iconSize WRITE setIconSize)
  12. Q_PROPERTY(qreal opacity READ opacity WRITE setOpacity)
  13. public:
  14. QtMaterialCheckableIcon(const QIcon &icon, QtMaterialCheckable *parent);
  15. ~QtMaterialCheckableIcon();
  16. QSize sizeHint() const Q_DECL_OVERRIDE;
  17. inline void setIcon(const QIcon &icon);
  18. inline QIcon icon() const;
  19. inline void setColor(const QColor &color);
  20. inline QColor color() const;
  21. inline void setIconSize(qreal size);
  22. inline qreal iconSize() const;
  23. inline void setOpacity(qreal opacity);
  24. inline qreal opacity() const;
  25. protected:
  26. void paintEvent(QPaintEvent *event) Q_DECL_OVERRIDE;
  27. private:
  28. Q_DISABLE_COPY(QtMaterialCheckableIcon)
  29. QtMaterialCheckable *const m_checkable;
  30. QColor m_color;
  31. QIcon m_icon;
  32. qreal m_iconSize;
  33. qreal m_opacity;
  34. };
  35. inline void QtMaterialCheckableIcon::setIcon(const QIcon &icon)
  36. {
  37. m_icon = icon;
  38. update();
  39. }
  40. inline QIcon QtMaterialCheckableIcon::icon() const
  41. {
  42. return m_icon;
  43. }
  44. inline void QtMaterialCheckableIcon::setColor(const QColor &color)
  45. {
  46. m_color = color;
  47. update();
  48. }
  49. inline QColor QtMaterialCheckableIcon::color() const
  50. {
  51. return m_color;
  52. }
  53. inline void QtMaterialCheckableIcon::setIconSize(qreal size)
  54. {
  55. m_iconSize = size;
  56. update();
  57. }
  58. inline qreal QtMaterialCheckableIcon::iconSize() const
  59. {
  60. return m_iconSize;
  61. }
  62. inline void QtMaterialCheckableIcon::setOpacity(qreal opacity)
  63. {
  64. m_opacity = opacity;
  65. update();
  66. }
  67. inline qreal QtMaterialCheckableIcon::opacity() const
  68. {
  69. return m_opacity;
  70. }
  71. #endif // QTMATERIALCHECKABLE_INTERNAL_H