X-Git-Url: http://git.code-monkey.de/?a=blobdiff_plain;f=sigview.h;h=2d450df21c0822374d36aa0bdccd9cf2b24f7b6a;hb=aeed8b418c0e751d7fef6aeaea1347af2077f904;hp=780d765ae5ecbfbc04f40b7a2a55adb3b631de49;hpb=009e1503d46291cbc33cdb900761eaa505fd6269;p=pulseview.git diff --git a/sigview.h b/sigview.h index 780d765..2d450df 100644 --- a/sigview.h +++ b/sigview.h @@ -24,11 +24,25 @@ #include #include +class QPainter; +class QPaintEvent; class SigSession; class SigView : public QGLWidget { Q_OBJECT + +private: + static const int SignalHeight; + static const int LabelMarginWidth; + static const int RulerHeight; + + static const int MinorTickSubdivision; + static const int ScaleUnits[3]; + + static const QString SIPrefixes[9]; + static const int FirstSIPrefixPower; + public: explicit SigView(SigSession &session, QWidget *parent = 0); @@ -38,13 +52,30 @@ protected: void resizeGL(int width, int height); - void paintGL(); + void paintEvent(QPaintEvent *event); + +private: + void mousePressEvent(QMouseEvent *event); + void mouseMoveEvent(QMouseEvent *event); + void mouseReleaseEvent(QMouseEvent *event); + void wheelEvent(QWheelEvent *event); + +private: + void setup_viewport(int width, int height); + + void paint_ruler(QPainter &p); private slots: - void dataUpdated(); + void data_updated(); private: SigSession &_session; + + double _scale; + double _offset; + + QPoint _mouse_down_point; + double _mouse_down_offset; }; #endif // SIGVIEW_H