Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035 #ifndef OPENMS_VISUAL_SPECTRUM2DWIDGET_H
00036 #define OPENMS_VISUAL_SPECTRUM2DWIDGET_H
00037
00038
00039 #include <OpenMS/VISUAL/SpectrumWidget.h>
00040 #include <OpenMS/VISUAL/Spectrum2DCanvas.h>
00041
00042 class QGroupBox;
00043 class QLabel;
00044 class QCheckBox;
00045
00046 namespace OpenMS
00047 {
00048 class Spectrum1DWidget;
00049
00061 class OPENMS_GUI_DLLAPI Spectrum2DWidget :
00062 public SpectrumWidget
00063 {
00064 Q_OBJECT
00065 public:
00067 typedef LayerData::ExperimentSharedPtrType ExperimentSharedPtrType;
00068
00070 Spectrum2DWidget(const Param & preferences, QWidget * parent = 0);
00072 virtual ~Spectrum2DWidget();
00073
00075 inline Spectrum2DCanvas * canvas()
00076 {
00077 return static_cast<Spectrum2DCanvas *>(canvas_);
00078 }
00079
00081 const Spectrum1DWidget * getHorizontalProjection() const;
00083 const Spectrum1DWidget * getVerticalProjection() const;
00084
00086 bool projectionsVisible() const;
00087
00088
00089 public slots:
00090
00091 virtual void recalculateAxes_();
00093 void toggleProjections();
00095 void updateProjections();
00096
00097 virtual void showGoToDialog();
00098
00099 signals:
00105 void visibleAreaChanged(DRange<2> area);
00107 void showSpectrumAs1D(int index);
00108 void showSpectrumAs1D(std::vector<int, std::allocator<int> > indices);
00110 void showCurrentPeaksAs3D();
00111
00112 protected:
00113
00114 virtual Math::Histogram<> createIntensityDistribution_() const;
00115
00116 virtual Math::Histogram<> createMetaDistribution_(const String & name) const;
00117
00119 Spectrum1DWidget * projection_vert_;
00121 Spectrum1DWidget * projection_horz_;
00123 QGroupBox * projection_box_;
00125 QLabel * projection_peaks_;
00127 QLabel * projection_sum_;
00129 QLabel * projection_max_;
00131 QCheckBox * projections_auto_;
00133 QTimer * projections_timer_;
00134
00135 private slots:
00137 void horizontalProjection(ExperimentSharedPtrType, Spectrum1DCanvas::DrawModes);
00139 void verticalProjection(ExperimentSharedPtrType exp, Spectrum1DCanvas::DrawModes);
00141 void projectionInfo(int peaks, double intensity, double max);
00143 void autoUpdateProjections();
00144 };
00145 }
00146
00147 #endif