SpikeStream Application Library
0.2
|
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