00001
00002
00003
00004
00005
00006
00007
00009
00010 #ifndef PIEPLOT_H_
00011 #define PIEPLOT_H_
00012
00013 #include <wx/plot.h>
00014 #include <wx/category/categorydataset.h>
00015
00016 #include <wx/colorscheme.h>
00017
00018 const int shift3D = 20;
00019
00024 class WXDLLIMPEXP_FREECHART PiePlot : public Plot, public DatasetObserver
00025 {
00026 public:
00027 PiePlot();
00028 virtual ~PiePlot();
00029
00030 void SetDataset(CategoryDataset *dataset);
00031
00032 void SetUsedSerie(size_t serie)
00033 {
00034 m_serie = serie;
00035 FirePlotNeedRedraw();
00036 }
00037
00038 void SetColorScheme(ColorScheme *cs);
00039
00040 void Set3DView(bool use3DView)
00041 {
00042 if (m_use3DView != use3DView) {
00043 m_use3DView = use3DView;
00044 FirePlotNeedRedraw();
00045 }
00046 }
00047
00048 void SetEllipticAspect(float ellipticAspect)
00049 {
00050 if (m_ellipticAspect != ellipticAspect && ellipticAspect > 0 && ellipticAspect <= 1) {
00051 m_ellipticAspect = ellipticAspect;
00052 FirePlotNeedRedraw();
00053 }
00054 }
00055
00056
00057
00058
00059 virtual void DatasetChanged(Dataset *dataset);
00060
00061 protected:
00062 virtual bool HasData();
00063
00064 virtual void DrawData(wxDC &dc, wxRect rc);
00065
00066 private:
00067
00068 bool m_use3DView;
00069 float m_ellipticAspect;
00070
00071 wxFont m_labelsFont;
00072 wxPen m_outlinePen;
00073
00074 CategoryDataset *m_dataset;
00075
00076 ColorScheme m_colorScheme;
00077
00078 size_t m_serie;
00079 };
00080
00081 #endif