qtmaterialscrollbar_internal.cpp 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. #include "qtmaterialscrollbar_internal.h"
  2. #include <QPropertyAnimation>
  3. #include <QEventTransition>
  4. /*!
  5. * \class QtMaterialScrollBarStateMachine
  6. * \internal
  7. */
  8. /*!
  9. * \internal
  10. */
  11. QtMaterialScrollBarStateMachine::QtMaterialScrollBarStateMachine(QtMaterialScrollBar *parent)
  12. : QStateMachine(parent),
  13. m_scrollBar(parent),
  14. m_focusState(new QState),
  15. m_blurState(new QState),
  16. m_opacity(0)
  17. {
  18. Q_ASSERT(parent);
  19. addState(m_focusState);
  20. addState(m_blurState);
  21. setInitialState(m_blurState);
  22. QEventTransition *transition;
  23. transition = new QEventTransition(parent, QEvent::Enter);
  24. transition->setTargetState(m_focusState);
  25. m_blurState->addTransition(transition);
  26. transition = new QEventTransition(parent, QEvent::Leave);
  27. transition->setTargetState(m_blurState);
  28. m_focusState->addTransition(transition);
  29. m_focusState->assignProperty(this, "opacity", 1);
  30. m_blurState->assignProperty(this, "opacity", 0);
  31. QPropertyAnimation *animation;
  32. animation = new QPropertyAnimation(this, "opacity", this);
  33. animation->setDuration(340);
  34. addDefaultAnimation(animation);
  35. }
  36. /*!
  37. * \internal
  38. */
  39. QtMaterialScrollBarStateMachine::~QtMaterialScrollBarStateMachine()
  40. {
  41. }