commit 6503071f1126b711a0cc130897471b4569a96359
parent b98e1378626bb0c23c31a1c66213c5c33dbab7ae
Author: Christopher A. Oliver <caowasteland@gmail.com>
Date: Tue, 6 Oct 2015 01:50:50 -0400
Kluge around difficulties dials have with negative numbers.
Diffstat:
3 files changed, 13 insertions(+), 6 deletions(-)
diff --git a/src/UI/OscilGenUI.fl b/src/UI/OscilGenUI.fl
@@ -346,8 +346,9 @@ oscildisplaygroup->redraw();}
code1 {oscilo_base->parent(o);oscilo_base->init(true);}
} {}
Fl_Dial bfslider {
- callback {redrawoscil();}
- tooltip {Base Function Parameter} xywh {525 285 20 20} minimum -64 maximum 63 step 1
+ callback {redrawoscil();
+ bfparval->value(o->value() + o->value_offset) }
+ tooltip {Base Function Parameter} xywh {525 285 20 20} minimum 0 maximum 127 step 1
code0 {o->init("Pbasefuncpar");}
class Fl_Osc_Dial
}
@@ -620,8 +621,9 @@ redrawoscil();}
}
}
Fl_Dial wshpar {
- callback {redrawoscil();}
- tooltip {Waveshaping Parameter} xywh {265 318 20 20} minimum -64 maximum 63 step 1
+ callback {redrawoscil();
+ wsparval->value(o->value() + o->value_offset) }
+ tooltip {Waveshaping Parameter} xywh {265 318 20 20} minimum 0 maximum 127 step 1
code0 {o->init("Pwaveshaping");}
class Fl_Osc_Dial
}
@@ -952,6 +954,9 @@ make_window();
bftype->init("Pcurrentbasefunc");
initialized = true;
+wshpar->value_offset=-64;
+bfslider->value_offset=-64;
+
refresh();
osceditUI->show();} {}
}
diff --git a/src/UI/WidgetPDial.cpp b/src/UI/WidgetPDial.cpp
@@ -105,6 +105,7 @@ WidgetPDial::WidgetPDial(int x, int y, int w, int h, const char *label)
tipwin = new TipWin();
tipwin->hide();
Fl_Group::current(save);
+ value_offset=0;
}
WidgetPDial::~WidgetPDial()
@@ -133,7 +134,7 @@ int WidgetPDial::handle(int event)
dragsize *= 10;
value(limit(oldvalue + my / dragsize * (max - min), min, max));
- tipwin->showValue(value());
+ tipwin->showValue(value()+value_offset);
value_damage();
if(this->when() != 0)
do_callback();
@@ -148,7 +149,7 @@ int WidgetPDial::handle(int event)
dragsize *= 10;
value(limit(value() + my / dragsize * (max - min), min, max));
- tipwin->showValue(value());
+ tipwin->showValue(value()+value_offset);
value_damage();
if(this->when() != 0)
do_callback();
diff --git a/src/UI/WidgetPDial.h b/src/UI/WidgetPDial.h
@@ -14,6 +14,7 @@ class WidgetPDial:public Fl_Dial
void draw();
void pdialcolor(int r, int g, int b);
void tooltip(const char *c);
+ float value_offset;
private:
void getPos();
void resetPos();