1 // Licensed GNU LGPL v3 or later: http://www.gnu.org/licenses/lgpl.html
2 
3 #ifndef SPECTMORPH_ZOOMCONTROLLER_HH
4 #define SPECTMORPH_ZOOMCONTROLLER_HH
5 
6 #include <QWidget>
7 #include <QSlider>
8 #include <QScrollBar>
9 #include <QLabel>
10 
11 namespace SpectMorph {
12 
13 class ZoomController : public QObject
14 {
15   Q_OBJECT
16 
17   double   old_hzoom;
18   double   old_vzoom;
19 
20   QLabel  *hzoom_text;
21   QLabel  *vzoom_text;
22 
23   QSlider *hzoom_slider;
24   QLabel  *hzoom_label;
25   QSlider *vzoom_slider;
26   QLabel  *vzoom_label;
27 
28   QScrollBar  *vscrollbar;
29   QScrollBar  *hscrollbar;
30 
31   void init();
32 public:
33   ZoomController (QObject *parent, double hzoom_max = 1000.0, double vzoom_max = 1000.0);
34   ZoomController (QObject *parent, double hzoom_min, double hzoom_max, double vzoom_min, double vzoom_max);
35 
36   QWidget *hwidget (int i);
37   QWidget *vwidget (int i);
38 
39   double get_hzoom();
40   double get_vzoom();
41 
42   void set_vscrollbar (QScrollBar *scrollbar);
43   void set_hscrollbar (QScrollBar *scrollbar);
44 
45 public slots:
46   void on_hzoom_changed();
47   void on_vzoom_changed();
48 
49 signals:
50   void zoom_changed();
51 
52 };
53 
54 }
55 
56 #endif
57