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.

33 lines
643B

  1. #include "widgets.hpp"
  2. #include "gui.hpp"
  3. namespace rack {
  4. void ScrollBar::draw(NVGcontext *vg) {
  5. bndScrollBar(vg, 0.0, 0.0, box.size.x, box.size.y, state, offset, size);
  6. }
  7. void ScrollBar::onDragStart(EventDragStart &e) {
  8. state = BND_ACTIVE;
  9. guiCursorLock();
  10. }
  11. void ScrollBar::onDragMove(EventDragMove &e) {
  12. ScrollWidget *scrollWidget = dynamic_cast<ScrollWidget*>(parent);
  13. assert(scrollWidget);
  14. if (orientation == HORIZONTAL)
  15. scrollWidget->offset.x += e.mouseRel.x;
  16. else
  17. scrollWidget->offset.y += e.mouseRel.y;
  18. }
  19. void ScrollBar::onDragEnd(EventDragEnd &e) {
  20. state = BND_DEFAULT;
  21. guiCursorUnlock();
  22. }
  23. } // namespace rack