X-Git-Url: https://sigrok.org/gitweb/?a=blobdiff_plain;f=sigview.h;h=d66898f4c0981b8f2a933cc425402e1251570fc5;hb=44dbdbf82160043c6934d2cd6c08a4bd2002af91;hp=b43ae9a55e5b0b49987f94b3fb756eed76f97ff8;hpb=e3f65ace22c6bcd371967302f8d01d0769e3a23f;p=pulseview.git diff --git a/sigview.h b/sigview.h index b43ae9a5..d66898f4 100644 --- a/sigview.h +++ b/sigview.h @@ -24,6 +24,8 @@ #include #include +class QPainter; +class QPaintEvent; class SigSession; class SigView : public QGLWidget @@ -32,6 +34,14 @@ class SigView : public QGLWidget 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); @@ -42,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 setupViewport(int width, int height); + + void paintRuler(QPainter &p); private slots: void dataUpdated(); private: SigSession &_session; + + double _scale; + double _offset; + + QPoint _mouse_down_point; + double _mouse_down_offset; }; #endif // SIGVIEW_H