Browse Source

Merge 5f41b12e96 into 26bcd30edf

pull/263/merge
Martin Bångens GitHub 4 years ago
parent
commit
bd5bb8d237
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 13 additions and 4 deletions
  1. +1
    -0
      dgl/ImageWidgets.hpp
  2. +12
    -4
      dgl/src/ImageWidgets.cpp

+ 1
- 0
dgl/ImageWidgets.hpp View File

@@ -150,6 +150,7 @@ private:

int fRotationAngle;
bool fDragging;
bool fRightClicked;
int fLastX;
int fLastY;



+ 12
- 4
dgl/src/ImageWidgets.cpp View File

@@ -217,6 +217,7 @@ ImageKnob::ImageKnob(Window& parent, const Image& image, Orientation orientation
fOrientation(orientation),
fRotationAngle(0),
fDragging(false),
fRightClicked(false),
fLastX(0),
fLastY(0),
fCallback(nullptr),
@@ -245,6 +246,7 @@ ImageKnob::ImageKnob(Widget* widget, const Image& image, Orientation orientation
fOrientation(orientation),
fRotationAngle(0),
fDragging(false),
fRightClicked(false),
fLastX(0),
fLastY(0),
fCallback(nullptr),
@@ -273,6 +275,7 @@ ImageKnob::ImageKnob(const ImageKnob& imageKnob)
fOrientation(imageKnob.fOrientation),
fRotationAngle(imageKnob.fRotationAngle),
fDragging(false),
fRightClicked(false),
fLastX(0),
fLastY(0),
fCallback(imageKnob.fCallback),
@@ -300,7 +303,8 @@ ImageKnob& ImageKnob::operator=(const ImageKnob& imageKnob)
fUsingLog = imageKnob.fUsingLog;
fOrientation = imageKnob.fOrientation;
fRotationAngle = imageKnob.fRotationAngle;
fDragging = false;
fDragging = false;
fRightClicked = false;
fLastX = 0;
fLastY = 0;
fCallback = imageKnob.fCallback;
@@ -515,9 +519,11 @@ void ImageKnob::onDisplay()

bool ImageKnob::onMouse(const MouseEvent& ev)
{
if (ev.button != 1)
if (ev.button > 3 || ev.button < 1)
return false;

fRightClicked = (ev.button == 3) ? true : false;

if (ev.press)
{
if (! contains(ev.pos))
@@ -563,7 +569,8 @@ bool ImageKnob::onMotion(const MotionEvent& ev)
{
if (const int movX = ev.pos.getX() - fLastX)
{
d = (ev.mod & kModifierControl) ? 2000.0f : 200.0f;
d = (ev.mod & kModifierControl) ? 2000.0f : 200.0f;
if (fRightClicked) d = d*10.0f;
value = (fUsingLog ? _invlogscale(fValueTmp) : fValueTmp) + (float(fMaximum - fMinimum) / d * float(movX));
doVal = true;
}
@@ -572,7 +579,8 @@ bool ImageKnob::onMotion(const MotionEvent& ev)
{
if (const int movY = fLastY - ev.pos.getY())
{
d = (ev.mod & kModifierControl) ? 2000.0f : 200.0f;
d = (ev.mod & kModifierControl) ? 2000.0f : 200.0f;
if (fRightClicked) d = d*10.0f;
value = (fUsingLog ? _invlogscale(fValueTmp) : fValueTmp) + (float(fMaximum - fMinimum) / d * float(movY));
doVal = true;
}


Loading…
Cancel
Save