]> git.tdb.fi Git - libs/gltk.git/blob - source/slider.h
Rearrange members
[libs/gltk.git] / source / slider.h
1 /* $Id$
2
3 This file is part of libmspgltk
4 Copyright © 2007, 2010-2011  Mikko Rasa, Mikkosoft Productions
5 Distributed under the LGPL
6 */
7
8 #ifndef MSP_GLTK_SLIDER_H_
9 #define MSP_GLTK_SLIDER_H_
10
11 #include <sigc++/sigc++.h>
12 #include "widget.h"
13
14 namespace Msp {
15 namespace GLtk {
16
17 /**
18 Sliders are used to adjust numeric values visually.  This class provides the
19 common interface for sliders - see classes HSlider and VSlider for concrete
20 variations.
21 */
22 class Slider: public Widget
23 {
24 public:
25         class Loader: public Widget::Loader
26         {
27         public:
28                 Loader(Slider &);
29                 Slider &get_object() const;
30         };
31
32         sigc::signal<void, double> signal_value_changed;
33
34 protected:
35         double min, max;
36         double value;
37         double step;
38
39         bool dragging;
40         double drag_start_pos;
41         double drag_start_value;
42         unsigned drag_area_size;
43
44         Slider();
45
46 public:
47         void set_value(double);
48         void set_range(double, double);
49         void set_step(double);
50         double get_value() const { return value; }
51
52 protected:
53         void start_drag(int);
54         void drag(int);
55         void end_drag();
56 };
57
58 } // namespace GLtk
59 } // namespace Msp
60
61 #endif