SpikeStream Application Library  0.2
SpikeRasterWidget.h
Go to the documentation of this file.
00001 #ifndef SPIKERASTERWIDGET_H
00002 #define SPIKERASTERWIDGET_H
00003 
00004 //SpikeStream includes
00005 #include "NeuronGroup.h"
00006 
00007 //Qt includes
00008 #include <QWidget>
00009 #include <QVector>
00010 #include <QImage>
00011 #include <QTime>
00012 #include <QPainter>
00013 
00014 namespace spikestream {
00015 
00017         class SpikeRasterWidget : public QWidget {
00018                 Q_OBJECT
00019 
00020                 public :
00021                         SpikeRasterWidget(QList<NeuronGroup*>& neuronGroupList, QWidget* parent=0);
00022                         ~SpikeRasterWidget();
00023                         void addSpikes(const QList<unsigned>& firingNeuronIDs, int timeStep);
00024                         void setBlackAndWhite(bool on);
00025 
00026 
00027                 protected:
00028                         void mouseDoubleClickEvent (QMouseEvent* event);
00029                         void paintEvent(QPaintEvent* event);
00030                         void resizeEvent(QResizeEvent* event);
00031 
00032 
00033                 private:
00034                         //=====================  VARIABLES  =====================
00037                         QList<NeuronGroup*> neuronGroupList;
00038 
00041                         QHash<unsigned, unsigned> neurGrpOffsetMap;
00042 
00044                         QHash<unsigned, unsigned> neurGrpColorMap;
00045 
00047                         QImage* bufferImage;
00048 
00050                         int numTimeSteps;
00051 
00053                         int numNeurons;
00054 
00056                         int minTimeStep;
00057 
00059                         int widgetWidth;
00060 
00062                         int widgetHeight;
00063 
00065                         int imageWidth;
00066 
00068                         int imageHeight;
00069 
00071                         bool updateAxes;
00072 
00074                         int xAxisPadding;
00075 
00077                         int xAxisTickLength;
00078 
00080                         int yAxisPadding;
00081 
00083                         int yAxisTickLength;
00084 
00086                         int fontSize;
00087 
00089                         int neurGrpNameFontSize;
00090 
00092                         QRgb backgroundColor;
00093 
00095                         QRgb axesColor;
00096 
00098                         bool blackAndWhiteMode;
00099 
00100 
00101                         //========================  METHODS  =======================
00102                         QString getFilePath(QString fileFilter);
00103                         QList<unsigned> getHueList(unsigned numItems);
00104                         void increaseTimeStep(int currentTimeStep);
00105                         void paintNeuronGroupNames(QPainter& painter);
00106                         void paintYAxis(QPainter&);
00107                         void paintYAxisTick(QPainter& painter, int yPos, int label);
00108                         void paintXAxis(QPainter&);
00109                         void paintXAxisTick(QPainter&, int xval, int xlable);
00110                         void paintAxes(QPainter&);
00111 
00112         };
00113 
00114 }
00115 
00116 #endif//SPIKERASTERWIDGET_H
 All Classes Files Functions Variables Typedefs Friends Defines