48 const float min_ =
min__(minimum(), maximum());
54 const float min_ =
min__(minimum(), maximum());
55 Fl_Slider::value(
v+min_);
60 const float min_ =
min__(minimum(), maximum());
66 const float min_ =
min__(minimum(), maximum());
67 const float val = Fl_Slider::value();
73 fprintf(stderr,
"invalid `c' from slider %s%s, using `i'\n",
loc.c_str(),
ext.c_str());
88#define MOD_MASK (FL_CTRL | FL_SHIFT)
92 bool middle_mouse = (ev == FL_PUSH && Fl::event_state(FL_BUTTON2) && !Fl::event_shift());
93 bool ctl_click = (ev == FL_PUSH && Fl::event_state(FL_BUTTON3) && Fl::event_ctrl());
94 bool shift_middle = (ev == FL_PUSH && Fl::event_state(FL_BUTTON2) && Fl::event_shift());
95 if(middle_mouse || ctl_click) {
96 printf(
"Trying to learn...\n");
97 osc->write(
"/learn",
"s", (
loc+
ext).c_str());
99 }
else if(shift_middle) {
100 osc->write(
"/unlearn",
"s", (
loc+
ext).c_str());
107 const float range = maximum() - minimum();
108 const float absrange = (range > 0 ? range : -range)+1;
110 const float normal_step = range / W;
117 start_pos = horizontal() ? Fl::event_x() : Fl::event_y();
118 handled =
mod_state ? 1 : Fl_Slider::handle(ev,
X, Y, W, H);
122 if (Fl::event_buttons())
124 if (
this == Fl::belowmouse() && Fl::e_dy != 0) {
125 int step_ = 1, divisor = 16;
129 if (absrange > divisor * 8)
131 case FL_SHIFT | FL_CTRL:
136 step_ = absrange / divisor;
140 int dy = minimum() <= maximum() ? -Fl::e_dy : Fl::e_dy;
142 dy = this->horizontal() ?
dy : -
dy;
147 handled = Fl_Slider::handle(ev,
X, Y, W, H);
148 if (Fl::event_clicks() == 1) {
152 rounded = floorf(
value() + 0.5);
162 int delta = (horizontal() ? Fl::event_x() : Fl::event_y())
164 if (delta < -1 || delta > 1)
166 return Fl_Slider::handle(ev,
X, Y, W, H);
177 start_pos = horizontal() ? Fl::event_x() : Fl::event_y();
180 float step_ = step();
181 if (step_ == 0) step_ = 1;
183 if (absrange / W / step_ > 32)
203 int delta = (horizontal() ? Fl::event_x() : Fl::event_y())
205 if (delta < -1 || delta > 1)
211 new_value =
old_value + delta * normal_step;
213 const float clamped_value =
clamp(new_value);
214 rounded = floor(clamped_value + 0.5);
215 if (new_value != clamped_value) {
216 start_pos = horizontal() ? Fl::event_x() : Fl::event_y();
220 (Fl::event_x() <
X || Fl::event_x() >
X + W)) ||
222 (Fl::event_y() < Y || Fl::event_y() > Y + H))))
233 handled = Fl_Slider::handle(ev,
X, Y, W, H);
241 x()+Fl::box_dx(
box()),
242 y()+Fl::box_dy(
box()),
243 w()-Fl::box_dw(
box()),
244 h()-Fl::box_dh(
box()));
#define MOD_MASK
Definition Fl_Osc_Slider.cpp:88
static double min__(double a, double b)
Definition Fl_Osc_Slider.cpp:23
uint8_t a
Definition Spc_Cpu.h:141
T clamp(T value, T lower, T upper)
Definition basics.h:135
char osc_type
Definition Fl_Osc_Slider.H:42
std::pair< Fl_Callback *, void * > cb_data
Definition Fl_Osc_Slider.H:43
float old_value
Definition Fl_Osc_Slider.H:46
virtual void cb(void)
Definition Fl_Osc_Slider.cpp:64
Fl_Osc_Slider(int X, int Y, int W, int H, const char *label=NULL)
Definition Fl_Osc_Slider.cpp:28
void update(void)
Definition Fl_Osc_Slider.cpp:247
float denominator
Definition Fl_Osc_Slider.H:51
int handle(int ev, int X, int Y, int W, int H)
Definition Fl_Osc_Slider.cpp:90
void OSC_value(int) override
Definition Fl_Osc_Slider.cpp:46
void init(std::string, char type='f')
Definition Fl_Osc_Slider.cpp:36
virtual ~Fl_Osc_Slider(void)
Definition Fl_Osc_Slider.cpp:43
int slow_state
Definition Fl_Osc_Slider.H:48
bool just_pushed
Definition Fl_Osc_Slider.H:50
float reset_value
Definition Fl_Osc_Slider.H:40
int start_pos
Definition Fl_Osc_Slider.H:49
void callback(Fl_Callback *cb, void *p=NULL)
Definition Fl_Osc_Slider.cpp:82
int mod_state
Definition Fl_Osc_Slider.H:47
static void _cb(Fl_Widget *w, void *)
Definition Fl_Osc_Slider.cpp:252
UINT_D64 w
Definition inflate.c:942
int y
Definition inflate.c:1588
unsigned v[N_MAX]
Definition inflate.c:1584
unsigned x[BMAX+1]
Definition inflate.c:1586
static PuglViewHint int value
Definition pugl.h:1708
int val
Definition jpeglib.h:956
#define X(str)
Definition juce_LV2Common.h:197
#define true
Definition ordinals.h:82
uch * p
Definition crypt.c:594
uch h[RAND_HEAD_LEN]
Definition crypt.c:459
dy
Definition zipinfo.c:2288