00001 #ifndef _QHistogram_hpp_
00002 #define _QHistogram_hpp_
00003
00004 #include <qwidget.h>
00005
00006 class QPen;
00007 class QPaintEvent;
00008
00010 class QHistogram : public QWidget {
00011 Q_OBJECT;
00012 public:
00013 enum DisplayMode {NormalDisplay=0,LogDisplay=1,SqrtDisplay=2,
00014 Power2Display=3,ExpDisplay=4};
00015
00016 QHistogram(QWidget * parent=0, const char * name=0, WFlags f=0 );
00017 virtual ~QHistogram();
00019 bool autoShift() const;
00022 int average() const;
00023 double value(int pos=0) const;
00024 double value(int pos1,int pos2) const;
00025 double max() const;
00026 double min() const;
00027 public slots:
00029 void setDataSize(int dataSize);
00030 void setValue(double value,int pos=0);
00031 void setAutoShift(bool);
00032 void setAverage(int val);
00033 void reset();
00034 void displayMode(DisplayMode);
00036 void draw() { update(); }
00037 protected:
00038 void paintEvent( QPaintEvent * ev);
00039 private:
00040 double findMax() const;
00041 double findMin() const;
00042 double conv2displayMode(double val) const;
00043 DisplayMode dispMode_;
00044 double max_;
00045 double min_;
00046 int dataSize_;
00047 double * dataTable_;
00048 int currentPos_;
00049 bool autoShift_;
00050 int average_;
00051 QPen * normPen_;
00052 QPen * averagePen_;
00053 };
00054 #endif