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