spectrumview.h
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 #ifndef GCU_SPECTRUM_VIEW_H
00024 #define GCU_SPECTRUM_VIEW_H
00025
00026 #include "macros.h"
00027 #include <goffice/graph/gog-series.h>
00028 #include <gtk/gtkwidget.h>
00029
00031 namespace gcu
00032 {
00033
00034 class SpectrumDocument;
00035
00040 class SpectrumView
00041 {
00042 public:
00044
00049 SpectrumView (SpectrumDocument *pDoc);
00050
00052
00055 virtual ~SpectrumView ();
00056
00065 void SetAxisBounds (GogAxisType target, double min, double max, bool inverted);
00066
00073 void SetAxisLabel (GogAxisType target, char const *unit);
00074
00081 void ShowAxis (GogAxisType target, bool show);
00082
00089 void InvertAxis (GogAxisType target, bool inverted);
00090
00098 void Render (cairo_t *cr, double width, double height);
00099
00103 void OnMinChanged ();
00104
00108 void OnMaxChanged ();
00109
00113 void OnXRangeChanged ();
00114
00119 GogSeries *NewSeries (bool new_plot);
00120
00131 void SaveAsImage (std::string const &filename, char const *mime_type, unsigned width, unsigned height) const;
00132
00133 private:
00134 GtkSpinButton *xminbtn, *xmaxbtn;
00135 GtkRange *xrange;
00136 gulong minsgn, maxsgn, xrangesgn;
00137 double xmin, xmax, xstep;
00138
00142 GCU_RO_PROP (SpectrumDocument *, Doc)
00146 GCU_RO_PROP (GtkWidget *, Widget)
00150 GCU_RO_PROP (GtkWidget *, OptionBox)
00154 GCU_RO_PROP (GogSeries *, Series)
00155 };
00156
00157 }
00158
00159 #endif // GCU_SPECTRUM_VIEW_H