qtmaterialdrawer_internal.h 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. #ifndef DRAWER_INTERNAL_H
  2. #define DRAWER_INTERNAL_H
  3. #include <QStateMachine>
  4. #include "lib/qtmaterialoverlaywidget.h"
  5. class QtMaterialDrawer;
  6. class QtMaterialDrawerWidget;
  7. class QtMaterialDrawerStateMachine : public QStateMachine
  8. {
  9. Q_OBJECT
  10. Q_PROPERTY(qreal opacity WRITE setOpacity READ opacity)
  11. public:
  12. explicit QtMaterialDrawerStateMachine(QtMaterialDrawerWidget *drawer,
  13. QtMaterialDrawer *parent);
  14. ~QtMaterialDrawerStateMachine();
  15. void setOpacity(qreal opacity);
  16. inline qreal opacity() const;
  17. bool isInClosedState() const;
  18. void updatePropertyAssignments();
  19. signals:
  20. void signalOpen();
  21. void signalClose();
  22. private:
  23. Q_DISABLE_COPY(QtMaterialDrawerStateMachine)
  24. QtMaterialDrawerWidget *const m_drawer;
  25. QtMaterialDrawer *const m_main;
  26. QState *const m_openingState;
  27. QState *const m_openedState;
  28. QState *const m_closingState;
  29. QState *const m_closedState;
  30. qreal m_opacity;
  31. };
  32. inline qreal QtMaterialDrawerStateMachine::opacity() const
  33. {
  34. return m_opacity;
  35. }
  36. class QtMaterialDrawerWidget : public QtMaterialOverlayWidget
  37. {
  38. Q_OBJECT
  39. Q_PROPERTY(int offset WRITE setOffset READ offset)
  40. public:
  41. explicit QtMaterialDrawerWidget(QWidget *parent = 0);
  42. ~QtMaterialDrawerWidget();
  43. void setOffset(int offset);
  44. inline int offset() const;
  45. protected:
  46. void paintEvent(QPaintEvent *event) Q_DECL_OVERRIDE;
  47. QRect overlayGeometry() const Q_DECL_OVERRIDE;
  48. private:
  49. int m_offset;
  50. };
  51. inline int QtMaterialDrawerWidget::offset() const
  52. {
  53. return m_offset;
  54. }
  55. #endif // DRAWER_INTERNAL_H