You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

29 lines
649B

  1. #include "app.hpp"
  2. #include "window.hpp"
  3. namespace rack {
  4. void RackScrollWidget::step() {
  5. Vec pos = gMousePos;
  6. Rect viewport = getViewport(box.zeroPos());
  7. // Scroll rack if dragging cable near the edge of the screen
  8. if (gRackWidget->wireContainer->activeWire) {
  9. float margin = 20.0;
  10. float speed = 15.0;
  11. if (pos.x <= viewport.pos.x + margin)
  12. offset.x -= speed;
  13. if (pos.x >= viewport.pos.x + viewport.size.x - margin)
  14. offset.x += speed;
  15. if (pos.y <= viewport.pos.y + margin)
  16. offset.y -= speed;
  17. if (pos.y >= viewport.pos.y + viewport.size.y - margin)
  18. offset.y += speed;
  19. }
  20. ScrollWidget::step();
  21. }
  22. } // namespace rack