X-Git-Url: http://git.code-monkey.de/?a=blobdiff_plain;f=sigview.cpp;h=53fbdeaac148859251c7792ab726c40d6d174c4c;hb=2858b391af20bd46c9a7da17195ec8d58bcd12c3;hp=c83ea7917064d4dbfc1c8c148df97b9826c267ba;hpb=d7002724cbeb77486c2d5a0ccad2c2a1f14cbf36;p=pulseview.git diff --git a/sigview.cpp b/sigview.cpp index c83ea79..53fbdea 100644 --- a/sigview.cpp +++ b/sigview.cpp @@ -20,9 +20,25 @@ #include "sigview.h" -SigView::SigView(QWidget *parent) : - QGLWidget(parent) +#include "sigsession.h" +#include "signal.h" + +#include + +using namespace boost; +using namespace std; + +const int SigView::SignalHeight = 50; + +SigView::SigView(SigSession &session, QWidget *parent) : + QGLWidget(parent), + _session(session), + _scale(1000000000ULL), + _offset(0) { + connect(&_session, SIGNAL(dataUpdated()), + this, SLOT(dataUpdated())); + setMouseTracking(true); } @@ -49,4 +65,20 @@ void SigView::resizeGL(int width, int height) void SigView::paintGL() { glClear(GL_COLOR_BUFFER_BIT); + + QRect rect(0, 0, width(), SignalHeight); + const vector< shared_ptr > &sigs = + _session.get_signals(); + BOOST_FOREACH(const shared_ptr s, sigs) + { + assert(s); + s->paint(*this, rect, _scale, _offset); + rect.translate(0, SignalHeight); + } } + +void SigView::dataUpdated() +{ + update(); +} +