state.ino 606 B

123456789101112131415161718192021222324252627282930313233343536
  1. #include <cassert>
  2. #include <algorithm>
  3. #include <limits>
  4. #include "state.h"
  5. State::State()
  6. : fn(false),
  7. middleClick(false)
  8. {
  9. }
  10. void State::tick(millis_t delta)
  11. {
  12. middleClickTimeout.updateTime(delta);
  13. }
  14. void State::pressMiddleClick() {
  15. middleClick = true;
  16. middleClickTimeout.reset();
  17. }
  18. bool State::releaseMiddleClick() {
  19. middleClick = false;
  20. const auto timeout = middleClickTimeout.get();
  21. return !timeout;
  22. }
  23. TrackballMode State::moveTrackball() {
  24. middleClickTimeout.expire();
  25. if (middleClick) {
  26. return TrackballMode::Wheel;
  27. } else {
  28. return TrackballMode::Mouse;
  29. }
  30. }