MCPcopy Create free account
hub / github.com/DISTRHO/DPF / scrollEvent

Method scrollEvent

dgl/src/EventHandlers.cpp:550–587  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

548 }
549
550 bool scrollEvent(const Widget::ScrollEvent& ev)
551 {
552 if (! enabledInput)
553 return false;
554
555 if (! widget->contains(ev.pos))
556 return false;
557
558 const float dir = (ev.delta.getY() > 0.f) ? 1.f : -1.f;
559 const float d = (ev.mod & kModifierControl) ? accel * 10.f : accel;
560 float value2 = (usingLog ? invlogscale(valueTmp) : valueTmp)
561 + ((maximum - minimum) / d * 10.f * dir);
562
563 if (usingLog)
564 value2 = logscale(value2);
565
566 if (value2 < minimum)
567 {
568 valueTmp = value2 = minimum;
569 }
570 else if (value2 > maximum)
571 {
572 valueTmp = value2 = maximum;
573 }
574 else
575 {
576 valueTmp = value2;
577
578 if (d_isNotZero(step))
579 {
580 const float rest = std::fmod(value2, step);
581 value2 = value2 - rest + (rest > step/2.0f ? step : 0.0f);
582 }
583 }
584
585 setValue(value2, true);
586 return true;
587 }
588
589 float getNormalizedValue() const noexcept
590 {

Callers

nothing calls this directly

Calls 2

d_isNotZeroFunction · 0.85
containsMethod · 0.45

Tested by

no test coverage detected