state.ino 776 B

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