SpikeStream Application Library  0.2
AbstractGraphWidget.h
Go to the documentation of this file.
00001 #ifndef ABSTRACTGRAPHWIDGET_H
00002 #define ABSTRACTGRAPHWIDGET_H
00003 
00004 //Qt includes
00005 #include <QWidget>
00006 #include <QVector>
00007 #include <QImage>
00008 #include <QTime>
00009 #include <QPainter>
00010 
00011 namespace spikestream {
00012 
00014         class AbstractGraphWidget : public QWidget {
00015                 Q_OBJECT
00016 
00017                 public :
00018                         AbstractGraphWidget(QWidget* parent=0);
00019                         virtual ~AbstractGraphWidget();
00020                         int getMaxY() { return maxY; }
00021                         int getMinY() { return minY; }
00022                         void setYRange(int minY, int maxY);
00023 
00024                 protected:
00025                         //=====================  VARIABLES  =====================
00027                         QImage* bufferImage;
00028 
00030                         int numTimeSteps;
00031 
00033                         int minTimeStep;
00034 
00036                         int widgetWidth;
00037 
00039                         int widgetHeight;
00040 
00042                         int imageWidth;
00043 
00045                         int imageHeight;
00046 
00048                         bool updateAxes;
00049 
00051                         int xAxisTickLength;
00052 
00054                         int xAxisPadding;
00055 
00057                         int yAxisPadding;
00058 
00060                         int yAxisTickLength;
00061 
00063                         int axesLabelFontSize;
00064 
00066                         int labelFontSize;
00067 
00069                         QRgb backgroundColor;
00070 
00072                         QRgb axesColor;
00073 
00075                         QRgb labelsColor;
00076 
00077                         //=========================  METHODS  ======================
00078                         void buildBufferImage();
00079                         void increaseTimeStep(int currentTimeStep);
00080                         void mouseDoubleClickEvent (QMouseEvent* event);
00081                         void paintEvent(QPaintEvent* event);
00082                         void resizeEvent(QResizeEvent* event);
00083                         virtual void paintAxes(QPainter&);
00084                         virtual void paintData(QPainter&) = 0;
00085                         virtual void paintLabels(QPainter&) = 0;
00086 
00087 
00088                 private:
00089                         //========================  VARIABLES  =====================
00091                         int minY;
00092 
00094                         int maxY;
00095 
00096 
00097                         //========================  METHODS  =======================
00098                         QString getFilePath(QString fileFilter);
00099                         void paintYAxis(QPainter&);
00100                         void paintYAxisTick(QPainter& painter, int yPos, int label);
00101                         void paintXAxis(QPainter&);
00102                         void paintXAxisTick(QPainter&, int xval, int xlable);
00103 
00104 
00105         };
00106 
00107 }
00108 
00109 #endif//ABSTRACTGRAPHWIDGET_H
 All Classes Files Functions Variables Typedefs Friends Defines