diff options
author | Damien Zammit <damien@zamaudio.com> | 2014-04-19 14:29:20 +1000 |
---|---|---|
committer | Damien Zammit <damien@zamaudio.com> | 2014-04-19 14:29:20 +1000 |
commit | 257143d7899db7348f00f190ef9731cae82b0af3 (patch) | |
tree | 4e65bfc465b5c058e8b98f89abe94e275e4273a4 | |
parent | 384f9c1c9542979d1fc532c2ed3fa8661972fabc (diff) |
Made knobs move with both X and Y mouse movement.
Signed-off-by: Damien Zammit <damien@zamaudio.com>
-rw-r--r-- | libs/dgl/src/ImageKnob.cpp | 22 |
1 files changed, 11 insertions, 11 deletions
diff --git a/libs/dgl/src/ImageKnob.cpp b/libs/dgl/src/ImageKnob.cpp index 8ffbc84..0fa7ba1 100644 --- a/libs/dgl/src/ImageKnob.cpp +++ b/libs/dgl/src/ImageKnob.cpp @@ -333,19 +333,19 @@ bool ImageKnob::onMotion(int x, int y) return false; bool doVal = false; - float d, value; - int movX, movY, movR; + float d, value, r, movR; + int movX, movY; movX = x - fLastX; movY = fLastY - y; - movR = (movX + movY); - - if (movR) - { - printf("movR=%d\n",movR); - d = (getModifiers() & MODIFIER_SHIFT) ? 2000.0f : 200.0f; - value = (fValueTmp) + (float(fMaximum - fMinimum) / d * float((movR))); - doVal = true; - } + r = sqrt(movX*movX + movY*movY); + movR = ((movX + movY) > 0) ? r : -r; + + if (movR) + { + d = (getModifiers() & MODIFIER_SHIFT) ? 2000.0f : 200.0f; + value = (fValueTmp) + (float(fMaximum - fMinimum) / d * float((movR))); + doVal = true; + } if (! doVal) return false; |