]> git.tdb.fi Git - libs/gltk.git/blob - source/slider.cpp
Reorder class members
[libs/gltk.git] / source / slider.cpp
1 /* $Id$
2
3 This file is part of libmspgltk
4 Copyright © 2007  Mikko Rasa, Mikkosoft Productions
5 Distributed under the LGPL
6 */
7
8 #include "slider.h"
9
10 namespace Msp {
11 namespace GLtk {
12
13 Slider::Slider(const Resources &r):
14         Widget(r),
15         min(0),
16         max(1),
17         value(0),
18         step(0.1)
19 { }
20
21 void Slider::set_value(double v)
22 {
23         double old_value=value;
24
25         if(v<min)
26                 value=min;
27         else if(v>max)
28                 value=max;
29         else
30         {
31                 unsigned steps=static_cast<unsigned>((v-min)/step+0.5);
32                 value=min+steps*step;
33         }
34
35         if(value!=old_value)
36                 signal_value_changed.emit(value);
37 }
38
39 void Slider::set_range(double a, double b)
40 {
41         min=a;
42         max=b;
43         set_value(value);
44 }
45
46 void Slider::set_step(double s)
47 {
48         step=s;
49         set_value(value);
50 }
51
52 } // namespace GLtk
53 } // namespace Msp