summaryrefslogtreecommitdiff
path: root/dgl/src/ImageWidgets.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'dgl/src/ImageWidgets.cpp')
-rw-r--r--dgl/src/ImageWidgets.cpp17
1 files changed, 17 insertions, 0 deletions
diff --git a/dgl/src/ImageWidgets.cpp b/dgl/src/ImageWidgets.cpp
index 9b4625c1..12f952e7 100644
--- a/dgl/src/ImageWidgets.cpp
+++ b/dgl/src/ImageWidgets.cpp
@@ -649,7 +649,9 @@ ImageSlider::ImageSlider(Window& parent, const Image& image) noexcept
fMaximum(1.0f),
fStep(0.0f),
fValue(0.5f),
+ fValueDef(fValue),
fValueTmp(fValue),
+ fUsingDefault(false),
fDragging(false),
fInverted(false),
fValueIsSet(false),
@@ -670,7 +672,9 @@ ImageSlider::ImageSlider(Widget* widget, const Image& image) noexcept
fMaximum(1.0f),
fStep(0.0f),
fValue(0.5f),
+ fValueDef(fValue),
fValueTmp(fValue),
+ fUsingDefault(false),
fDragging(false),
fInverted(false),
fValueIsSet(false),
@@ -743,6 +747,12 @@ void ImageSlider::setInverted(bool inverted) noexcept
repaint();
}
+void ImageSlider::setDefault(float value) noexcept
+{
+ fValueDef = value;
+ fUsingDefault = true;
+}
+
void ImageSlider::setRange(float min, float max) noexcept
{
fMinimum = min;
@@ -830,6 +840,13 @@ bool ImageSlider::onMouse(const MouseEvent& ev)
if (! fSliderArea.contains(ev.pos))
return false;
+ if ((ev.mod & kModifierShift) != 0 && fUsingDefault)
+ {
+ setValue(fValueDef, true);
+ fValueTmp = fValue;
+ return true;
+ }
+
float vper;
const int x = ev.pos.getX();
const int y = ev.pos.getY();