X-Git-Url: https://sigrok.org/gitweb/?p=pulseview.git;a=blobdiff_plain;f=sigview.h;h=aae9e67e37c7d4fb4b837989df63ade658f62709;hp=d2bdbe4d1839402219dc42a3e8a397aa923b8029;hb=7d5425efcefd801264a504f8a9d92977f2be6eeb;hpb=d7002724cbeb77486c2d5a0ccad2c2a1f14cbf36 diff --git a/sigview.h b/sigview.h index d2bdbe4d..aae9e67e 100644 --- a/sigview.h +++ b/sigview.h @@ -24,11 +24,30 @@ #include #include +class QPainter; +class QPaintEvent; +class SigSession; + class SigView : public QGLWidget { Q_OBJECT + +private: + static const double MaxScale; + static const double MinScale; + + 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(QWidget *parent = 0); + explicit SigView(SigSession &session, QWidget *parent = 0); protected: @@ -36,12 +55,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 data_updated(); + +private: + SigSession &_session; + + double _scale; + double _offset; -signals: - -public slots: - + QPoint _mouse_down_point; + double _mouse_down_offset; }; #endif // SIGVIEW_H