LMMS
Loading...
Searching...
No Matches
Fl_Osc_TSlider.cpp
Go to the documentation of this file.
1/*
2 ZynAddSubFX - a software synthesizer
3
4 Fl_Osc_TSlider.cpp - Variant Of OSC Based Slider
5 Copyright (C) 2016 Mark McCurry
6
7 This program is free software; you can redistribute it and/or
8 modify it under the terms of the GNU General Public License
9 as published by the Free Software Foundation; either version 2
10 of the License, or (at your option) any later version.
11*/
12#include <cmath>
13#include "Fl_Osc_TSlider.H"
14//Copyright (c) 2015 Christopher Oliver
15//License: GNU GPL version 2 or later
16
17static float identity_ts(float value)
18{
19 return value;
20}
21
22Fl_Osc_TSlider::Fl_Osc_TSlider(int x, int y, int w, int h, const char *label)
24{
25 Fl_Group *save = Fl_Group::current();
26 tipwin = new TipWin();
27 tipwin->hide();
28 Fl_Group::current(save);
29 tipwin->set_rounding();
30}
31
33{
34 if (tipwin)
35 delete tipwin;
36}
37
38void Fl_Osc_TSlider::set_rounding(unsigned int digits)
39{
40 tipwin->set_rounding(digits);
41}
42
43
45{
46 int super = 1;
47
48 super = Fl_Osc_Slider::handle(event);
49
50 switch(event) {
51 case FL_PUSH:
52 case FL_MOUSEWHEEL:
53 if (!Fl::event_inside(x(),y(),w(),h()))
54 return(1);
55 tipwin->position(Fl::event_x_root()-Fl::event_x()+x(),
56 Fl::event_y_root()-Fl::event_y()+h()+y()+5);
57 case FL_DRAG:
58 tipwin->showValue(transform(value()));
59 break;
60 case FL_RELEASE:
61 case FL_HIDE:
62 case FL_LEAVE:
63 if (tipwin)
64 tipwin->hide();
65 return 1;
66 }
67
68 return super;
69}
70
71void Fl_Osc_TSlider::set_transform(float (*transformer)(float))
72{
73 transform = transformer;
74}
static float identity_ts(float value)
Definition Fl_Osc_TSlider.cpp:17
Fl_Osc_Slider(int X, int Y, int W, int H, const char *label=NULL)
Definition Fl_Osc_Slider.cpp:28
int handle(int ev, int X, int Y, int W, int H)
Definition Fl_Osc_Slider.cpp:90
~Fl_Osc_TSlider()
Definition Fl_Osc_TSlider.cpp:32
class TipWin * tipwin
Definition Fl_Osc_TSlider.H:27
void set_transform(float(*transformer)(float))
Definition Fl_Osc_TSlider.cpp:71
float(* transform)(float)
Definition Fl_Osc_TSlider.H:28
Fl_Osc_TSlider(int x, int y, int w, int h, const char *label=0)
Definition Fl_Osc_TSlider.cpp:22
int handle(int event)
Definition Fl_Osc_TSlider.cpp:44
void set_rounding(unsigned int digits=0)
Definition Fl_Osc_TSlider.cpp:38
Definition TipWin.h:20
UINT_D64 w
Definition inflate.c:942
int y
Definition inflate.c:1588
unsigned x[BMAX+1]
Definition inflate.c:1586
static PuglViewHint int value
Definition pugl.h:1708
static LV2_State_Status save(LV2_Handle instance, LV2_State_Store_Function store, void *callback_data, uint32_t flags, const LV2_Feature *const *features)
Definition test.c:161
uch h[RAND_HEAD_LEN]
Definition crypt.c:459